Index: rubycfg_asp/trunk/asp_dcre/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/MANIFEST	(revision 313)
@@ -0,0 +1,115 @@
+PACKAGE asp
+VERSION 1.9.3
+
+configure
+MANIFEST
+README.txt
+
+doc/asp_spec.txt
+doc/configurator.txt
+doc/design.txt
+doc/extension.txt
+doc/porting.txt
+doc/user.txt
+doc/version.txt
+
+include/histogram.h
+include/itron.h
+include/kernel.h
+include/log_output.h
+include/queue.h
+include/sil.h
+include/t_stddef.h
+include/t_stdlib.h
+include/t_syslog.h
+include/test_lib.h
+
+kernel/Makefile.kernel
+kernel/alarm.c
+kernel/alarm.h
+kernel/allfunc.h
+kernel/check.h
+kernel/cyclic.c
+kernel/cyclic.h
+kernel/dataqueue.c
+kernel/dataqueue.h
+kernel/eventflag.c
+kernel/eventflag.h
+kernel/exception.c
+kernel/exception.h
+kernel/genoffset.tf
+kernel/interrupt.c
+kernel/interrupt.h
+kernel/kernel.tf
+kernel/kernel_api.def
+kernel/kernel_check.tf
+kernel/kernel_sym.def
+kernel/kernel_impl.h
+kernel/kernel_int.h
+kernel/kernel_rename.def
+kernel/kernel_rename.h
+kernel/kernel_unrename.h
+kernel/mailbox.c
+kernel/mailbox.h
+kernel/mempfix.c
+kernel/mempfix.h
+kernel/pridataq.c
+kernel/pridataq.h
+kernel/semaphore.c
+kernel/semaphore.h
+kernel/startup.c
+kernel/sys_manage.c
+kernel/task.c
+kernel/task.h
+kernel/task_except.c
+kernel/task_manage.c
+kernel/task_refer.c
+kernel/task_sync.c
+kernel/time_event.c
+kernel/time_event.h
+kernel/time_manage.c
+kernel/wait.c
+kernel/wait.h
+
+library/histogram.c
+library/log_output.c
+library/strerror.c
+library/t_perror.c
+library/test_lib.c
+library/vasyslog.c
+
+sample/Makefile
+sample/sample1.c
+sample/sample1.cfg
+sample/sample1.h
+
+syssvc/banner.c
+syssvc/banner.cfg
+syssvc/banner.h
+syssvc/logtask.c
+syssvc/logtask.cfg
+syssvc/logtask.h
+syssvc/serial.c
+syssvc/serial.cfg
+syssvc/serial.h
+syssvc/syslog.c
+syssvc/syslog.cfg
+syssvc/syslog.h
+
+utils/applyrename
+utils/genoffset
+utils/genrename
+utils/gentest
+utils/makedep
+utils/makerelease
+
+INCLUDE target/gr_sakura_ccrx/MANIFEST
+INCLUDE target/gr_sakura_gcc/MANIFEST
+INCLUDE arch/ccrx/MANIFEST
+INCLUDE arch/gcc/MANIFEST
+INCLUDE arch/logtrace/MANIFEST
+INCLUDE arch/rx630_ccrx/MANIFEST
+INCLUDE arch/rx630_gcc/MANIFEST
+INCLUDE pdic/rx600/MANIFEST
+INCLUDE test/MANIFEST
+INCLUDE extension/MANIFEST
Index: rubycfg_asp/trunk/asp_dcre/README.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/README.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/README.txt	(revision 313)
@@ -0,0 +1,50 @@
+
+	TOPPERS/ASP Kernelï¼Release 1.9.3ï¼
+		Toyohashi Open Platform for Embedded Real-Time Systems/
+		Advanced Standard Profile Kernel
+
+TOPPERS/ASPã«ã¼ãã«ï¼ä»¥ä¸ï¼ASPã«ã¼ãã«ï¼ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã®åºç¤
+ã¨ãªããã®ã¨ãã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«ããã¦éçºãããªã¢ã«ã¿ã¤ã ã«ã¼ã
+ã«ã§ãï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«æºæ ã®ãªã¢ã«ã¿ã¤ã ã«ã¼
+ãã«ã§ããTOPPERS/JSPã«ã¼ãã«ãæ¡å¼µã»æ¹è¯ããå½¢ã§éçºãã¾ããï¼
+
+ãæåã«èª­ãã¹ããã­ã¥ã¡ã³ãã
+
+ASPã«ã¼ãã«ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãï¼doc/user.txtã«ããã¾ãï¼ASPã«ã¼ã
+ã«ãä½¿ç¨ããå ´åã«ã¯ï¼ã¾ãã¯ãã®ãã­ã¥ã¡ã³ããããèª­ã¿ä¸ããï¼
+
+ããã¡ã¤ã«ã®é²è¦§ã«ããã£ã¦ã
+
+ASPã«ã¼ãã«ã®ãã­ã¥ã¡ã³ãï¼ãã¬ã¼ã³ãã­ã¹ããã¡ã¤ã«ï¼ããã³ã½ã¼ã¹ãã¡ã¤
+ã«ãèª­ãéã«ã¯ï¼TABã4ã«è¨­å®ãã¦ãã ããï¼
+
+ãå©ç¨æ¡ä»¶ã
+
+ASPã«ã¼ãã«ã®å©ç¨æ¡ä»¶ã¯ï¼åãã¡ã¤ã«ã®å
+é ­ã«è¡¨ç¤ºããã¦ããTOPPERSã©ã¤ã»
+ã³ã¹ã§ãï¼TOPPERSã©ã¤ã»ã³ã¹ã«é¢ããFAQãï¼ä»¥ä¸ã®ãã¼ã¸ã«ããã¾ãï¼
+
+	http://www.toppers.jp/faq/faq_ct12.html
+
+ãè³ªåã»ãã°ã¬ãã¼ãã»æè¦ç­ã®éä»å
+ã
+
+ASPã«ã¼ãã«ãããè¯ããã®ã«ããããã®ãæè¦ç­ãæ­è¿ãã¾ãï¼ASPã«ã¼ãã«
+ã«é¢ããè³ªåããã°ã¬ãã¼ãï¼ãæè¦ç­ã¯ï¼TOPPERSãã­ã¸ã§ã¯ãã®ä¼å¡ã¯
+TOPPERSéçºè
+ã¡ã¼ãªã³ã°ãªã¹ãï¼dev@toppers.jpï¼å®ã¾ãã¯ASPã«ã¼ãã«ã®ã
+ã°ãã©ãã­ã³ã°ã·ã¹ãã ï¼Tracï¼ã«ï¼ãã®ä»ã®æ¹ã¯TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³
+ã°ãªã¹ãï¼users@toppers.jpï¼å®ã«ãé¡ããã¾ãï¼
+
+TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³ã°ãªã¹ãã¸ã®ç»é²æ¹æ³ã«ã¤ãã¦ã¯ï¼ä»¥ä¸ã®ãã¼ã¸ã«
+èª¬æãããã¾ãï¼
+
+	http://www.toppers.jp/community.html
+
+ããã¼ãã£ã³ã°ã«ããã£ã¦ã
+
+ASPã«ã¼ãã«ãï¼TOPPERSãã­ã¸ã§ã¯ããããªã¼ãã³ã½ã¼ã¹ã«ãããã¨ãåæã«ï¼
+æªãµãã¼ãã®ã¿ã¼ã²ããã«ãã¼ãã£ã³ã°ãããå ´åã«ã¯ï¼ããããããç¸è«ã
+ã ããã¨å¹¸ãã§ãï¼
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/common.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/common.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/common.py	(revision 313)
@@ -0,0 +1,260 @@
+#
+# set cfg and cfg kernel param
+#
+CFG = SRCDIR + "cfg/cfg.rb"
+CFG_KERNEL = "asp"
+
+#
+# files for each project 
+#
+asp_files = []
+asp_configuration_files = ['kernel_cfg_asm.src','kernel_cfg.c']
+asp_syssvc_files = ['syssvc/banner.c', 'syssvc/logtask.c', 'syssvc/serial.c', 'syssvc/syslog.c']
+asp_library_files = ['library/histogram.c', 'library/log_output.c', 'library/strerror.c', 'library/t_perror.c', 'library/test_lib.c', 'library/vasyslog.c']
+
+kernel_kernel_files = ['kernel/alarm.c','kernel/cyclic.c','kernel/dataqueue.c','kernel/eventflag.c','kernel/exception.c','kernel/interrupt.c','kernel/mailbox.c','kernel/mempfix.c','kernel/pridataq.c','kernel/semaphore.c','kernel/startup.c','kernel/sys_manage.c','kernel/task.c','kernel/task_except.c','kernel/task_manage.c','kernel/task_refer.c','kernel/task_sync.c','kernel/time_event.c','kernel/time_manage.c','kernel/wait.c']
+
+cfg_files = []
+cfg_configuration_files = ['cfg1_out.c']
+
+#
+# pre/postbuiled file
+#
+cfg_pre_python_files = ['arch/ccrx/pre_cfg.py']
+cfg_post_python_files = ['arch/ccrx/post_cfg.py']
+asp_post_python_files = ['arch/ccrx/post_asp.py']
+
+#
+# cubesuite+ depend files
+#
+asp_rel_includes = [".","cfg"]
+cfg_rel_includes = [".."]
+kernel_rel_includes = ["..\cfg"]
+
+#
+# library
+#
+asp_lib_files = ['kernel\\%BuildModeName%\\kernel']
+
+#
+# ccrx define
+#
+cfg_define = []
+kernel_define = ['ALLFUNC']
+
+if USE_SERIALDEBUG:
+	cfg_define = cfg_define + ['USE_SERIALDEBUG']
+	kernel_define = kernel_define + ['USE_SERIALDEBUG']
+
+#
+# Set cfg path and srdir path
+#
+cfg = "ruby -Eutf-8 " + proj_rel_dir + CFG
+srcdir = proj_rel_dir + SRCDIR
+
+#
+# soucre target file
+#
+execfile(srcdir + "target/" + TARGET + "/target.py")
+
+#
+# merge files
+#
+asp_files.append(statup_file)
+asp_files = asp_files + asp_syssvc_files + asp_library_files
+cfg_files = cfg_files + cfg_files
+kernel_files = kernel_kernel_files + kernel_target_files + kernel_arch_files
+
+#
+# Set include path and cfg1_def_table
+#
+INCLUDES = USER_INCLUDE + ["", "arch", "include", "kernel", "arch", "syssvc", "library"] + INCLUDES
+CFG1_DEF_TABLES = ["kernel/kernel_sym.def"] + CFG1_DEF_TABLES
+
+API_TABLE = "kernel/kernel_api.def"
+CFG_KERNEL_TRB = "target/" + TARGET + "/target_kernel.trb"
+CFG_OFFSET_TRB = "target/" + TARGET + "/target_offset.trb"
+CFG_CHECK_TRB = "target/" + TARGET + "/target_check.trb"
+
+#
+# make cfg include path
+#
+cfg_includes = ""
+for include in INCLUDES:
+	cfg_includes = cfg_includes + " -I" + srcdir + include
+
+#
+# make cfg1_def_table
+#
+cfg_cfg1_def_tables = ""
+for cfg1_def_table in CFG1_DEF_TABLES:
+	cfg_cfg1_def_tables = cfg_cfg1_def_tables + " --symval-table " + srcdir + cfg1_def_table
+
+#
+# Set api_table
+#
+cfg_api_table = srcdir + API_TABLE
+
+#
+# Set tf 
+#
+cfg_kernel_trb =  srcdir + CFG_KERNEL_TRB
+
+#
+# Set offset tf 
+#
+cfg_offset_trb =  srcdir + CFG_OFFSET_TRB
+
+#
+# Set check tf 
+#
+cfg_check_trb =  srcdir + CFG_CHECK_TRB
+
+#
+#
+# Functions
+#
+#
+import re
+
+#
+# Set Ccrx Includes
+# 
+def SetCcrxIncludes(inputstr, include_list, rel_include_list, relpath):
+	ccrx_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		ccrx_includes = ccrx_includes + include + "\n"
+	ccrx_includes = ccrx_includes.replace('/', r'\\')
+	pattern_pre = r'(\s\<COptionInclude-0\>)[\s\S]+?(\</COptionInclude-0\>)'
+	pattern_post = r'\1' + ccrx_includes + r'\2'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# ChangeSetItemXml
+#
+def ChangeItemXml(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'<' + xml_pattern + r'>[\s\S]+?</' + xml_pattern + '>'
+	pattern_post = '<' + xml_pattern + '>' + newitemstr + '</' + xml_pattern + '>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# NewSetItemXml
+#
+def NewSetItemXml(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'\<' + xml_pattern + r' /\>'
+	pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+#
+# NewSetItemXmlOnce
+#
+def NewSetItemXmlOnce(inputstr, xml_pattern, newitemstr):
+	pattern_pre = r'\<' + xml_pattern + r' /\>'
+	pattern_post = r'<' + xml_pattern + r'>' + newitemstr + '</' + xml_pattern + r'>'
+	inputstr = re.sub (pattern_pre, pattern_post, inputstr, 1)
+	return inputstr
+
+#
+# New set Ccrx Include
+#
+def NewSetCcrxIncludes(inputstr, include_list, rel_include_list, relpath):
+	ccrx_includes = ""
+	for include in rel_include_list:
+		include_list.append(relpath + include)
+	for include in include_list:
+		ccrx_includes = ccrx_includes + include + "\n"
+	ccrx_includes = ccrx_includes.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'COptionInclude-0', ccrx_includes)
+
+#
+# New set library files
+#
+def NewSetLibFiles(inputstr, file_list):
+	lib_files = ""
+	for file in file_list:
+		lib_files = lib_files + file + "\n"
+	lib_files = lib_files.replace('/', r'\\')
+	return NewSetItemXml(inputstr, 'LinkOptionLibrary-0', lib_files)
+
+#
+# New set prebuild
+#
+def NewSetPrebuild(inputstr, rel_command_list, relpath):
+	command_str = ''
+	for command in rel_command_list:
+		command_str = command_str + relpath + command
+	command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
+	return NewSetItemXml(inputstr, 'PreBuildCommands-0', command_str)
+
+
+#
+# New set postbuild
+#
+def NewSetPostbuild(inputstr, rel_command_list, relpath):
+	command_str = ''
+	for command in rel_command_list:
+		command_str = command_str + relpath + command
+	command_str = r'#!python\ncommon.Source("' + command_str + r'")\n'
+	return NewSetItemXml(inputstr, 'PostBuildCommands-0', command_str)
+
+
+#
+# New set Define
+#
+def NewSetDefine(inputstr, define_list):
+	define_str = ''
+	for define in define_list:
+		define_str = define_str + define + '\n'
+	return NewSetItemXml(inputstr, 'COptionDefine-0', define_str)
+
+#
+# New set additional options
+#
+def NewSetAddOpt(inputstr, option_list):
+	option_str = ''
+	for option in option_list:
+		option_str = option_str + option + ' '
+	return NewSetItemXmlOnce(inputstr, 'OtherAdditionalOptions-0', option_str)
+
+
+#
+# Set target file relative path
+#
+def SetTargetFileRelativePath(inputstr, file_list, relpath):
+	relpath_win = re.sub(r'/',r'\\\\', relpath)
+	for file_path in file_list:
+		file_path = re.sub(r'/',r'\\\\',file_path)
+		pattern_pre = r'(\s\<RelativePath\>).+?' + file_path + r'(\</RelativePath\>)'
+		pattern_post = r'\1' + relpath_win + file_path + r'\2'
+		inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+
+#
+# Set python file relative path
+#
+def SetPythonFileRelativePath(inputstr, file_list, relpath):
+	for file_path in file_list:
+		pattern_pre = r'".+?' + file_path + r'"'
+		pattern_post = r'"' + relpath + file_path + r'"'
+		inputstr = re.sub (pattern_pre, pattern_post, inputstr)
+	return inputstr
+
+def ReadFile(filename):
+	f = open(filename, "r")
+	str = f.read()
+	f.close()
+	return str
+
+def WriteFile(filename, str):
+	f = open(filename, "w")
+	f.write(str)
+	f.close()
+
+
+
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/README.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/README.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/README.txt	(revision 313)
@@ -0,0 +1,66 @@
+		TOPPERS/ASP
+        ï¼CubeSuite+ç¨ãã­ã¸ã§ã¯ãçæã¹ã¯ãªããããã¥ã¢ã«ï¼
+        
+âæ¦è¦
+
+CubeSuite+ç¨ãã­ã¸ã§ã¯ãçæã¹ã¯ãªããã¯ï¼RX630ç¨ã®ASPã®ãã­ã¸ã§ã¯ã
+ãä½æããã¹ã¯ãªããã§ããï¼
+                
+âä½¿ç¨æ¹æ³
+
+ä»¥ä¸ã®æé ã§ã¿ã¼ã²ããç¨ã®ãã­ã¸ã§ã¯ããã¡ã¤ã«ãçæããï¼
+
+1.æ¬ãã©ã«ã(configure)ãé©å½ãªå ´æã«ã³ãã¼ããï¼ä»¥ä¸ã®ãã¡ã¤ã«ãå«ã¾
+  ãã¦ããï¼
+  ./configure.mtpj
+  ./configure.py
+  ./def.py
+  ./README.txt
+
+2.def.pyã®ç·¨é
+  ä»¥ä¸ã®def.pyã®è¨­å®å¤ãåèã«è¨­å®ããï¼
+  
+3.configure.mtpjãããã«ã¯ãªãã¯
+  configure.py ãå®è¡ããï¼asp.mtpjãä½æããéãããï¼
+  
+4.ã¢ã¯ãã£ããã­ã¸ã§ã¯ããå¤æ´
+  ã¢ã¯ãã£ããã­ã¸ã§ã¯ããaspã«å¤æ´ããï¼  
+
+  
+ãã­ã¸ã§ã¯ããã¡ã¤ã«çæå¾ã¯ï¼asp.mtpj ãä½¿ç¨ããï¼ãªãï¼ãã­ã¸ã§
+ã¯ããã¡ã¤ã«çæå¾ã¯configure.mtpjã¨configure.pyã¯åé¤å¯è½ã§ããï¼
+
+
+âdef.pyã®è¨­å®å¤
+
+ã»SRCDIR
+ ã»ã½ã¼ã¹ã³ã¼ãã®ãããã¨ã®ç¸å¯¾ä½ç½®
+
+ã»CFG_FILE
+ ã»cfgãã¡ã¤ã«ã®æå®ï¼
+ 
+ã»TARGET 
+ ã»ã¿ã¼ã²ããã®æå®ï¼./target ä»¥ä¸ã®ããããã®ãã©ã«ãåï¼
+ 
+ã»TARGET_MCU
+ ã»ã¿ã¼ã²ããMCUåã®æå®ï¼
+ 
+ã»asp_app_files
+ ã»ã¢ããªã±ã¼ã·ã§ã³ãã¡ã¤ã«ã®æå®ï¼
+ 
+ã»USER_INCLUDE
+ ã»ã¤ã³ã¯ã«ã¼ããã¹ã®æå®
+  
+ã»COPY_SAMPLE1  
+ ã»sample1ã®ãã¡ã¤ã«ã./sampleããã³ãã¼ãããæå®ï¼
+
+ã»USE_SERIALDEBUG
+ ã»CubeSuite+/RXã·ãªã¢ã«ãããã¬ãä½¿ç¨ãããæå®ï¼
+
+âãã­ã¸ã§ã¯ãæ§æ
+
+asp : ããããã­ã¸ã§ã¯ã
+ cfg : ãµããã­ã¸ã§ã¯ã ã³ã³ãã£ã®ã¥ã¬ã¼ã¿å®è¡
+ kernel : ãµããã­ã¸ã§ã¯ã ã«ã¼ãã«ãã«ãç¨
+
+ä»¥ä¸ï¼
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.mtpj
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.mtpj	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.mtpj	(revision 313)
@@ -0,0 +1,1038 @@
+<CubeSuiteProject>
+  <ProductVersion>4.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>4.0</FileVersion>
+      <ProjectGuid>34236c60-0141-466a-9bf9-21e6f6299f84</ProjectGuid>
+      <ProjectItemGuid>4e387f5c-c992-4b8e-bed8-f2c02d429a7c</ProjectItemGuid>
+      <FileCategoryGuid>c9831d3f-f917-4305-bc58-d0a1136d6843</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+      <ActiveProjectGuid>34236c60-0141-466a-9bf9-21e6f6299f84</ActiveProjectGuid>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>500ba51a-4219-4828-b4be-80f54d6d3551</UsingPlatformGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NEDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.0</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemCount>0</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <TimeTagModified--0>-8588151199425400808</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%TargetFiles%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0 />
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.00.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <COptionLangC-0>C</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0 />
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0 />
+      <COptionDefine-0 />
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Sjis</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Auto</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Sjis</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue />
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>SJIS</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue />
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-0>
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>False</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0 />
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVect-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>MakeOptionChanged</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <LbgOptionChangedFlag-DefaultValue>False</LbgOptionChangedFlag-DefaultValue>
+      <TimeTagModified--0>-8588151199425244558</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>MakeOptionChanged</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionHeadRuntime-0>True</LbgOptionHeadRuntime-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+      <LbgOptionChangedFlag-0>False</LbgOptionChangedFlag-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NEDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>1d1a55cf-2b92-481a-af4f-5975d095c419</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NEDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\configure.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4292870143</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4292870144</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/configure.py	(revision 313)
@@ -0,0 +1,18 @@
+#!python
+# -*- coding: utf-8 -*-
+import os.path
+import os
+
+os.chdir(os.path.dirname(project.Path))
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+common.Source("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrx/configure_body.py")
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/def.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/def.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure/def.py	(revision 313)
@@ -0,0 +1,23 @@
+# Source Dir
+SRCDIR = "../../../"
+
+# Configfile name
+CFG_FILE = "sample1.cfg"
+
+# Target board
+TARGET = "gr_sakura_ccrx"
+
+# Target mcu
+TARGET_MCU = 'R5F563NBDxFP'
+
+# Application files
+asp_app_files = ['sample1.c', '../../rx630_ccrx/prc_test.src']
+
+# Addition Dir list (relative path from srcdir)
+USER_INCLUDE = []
+
+# Copy sample1
+COPY_SAMPLE1 = True
+
+# Use RX Serial Debugger
+USE_SERIALDEBUG = True
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure_body.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure_body.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/configure_body.py	(revision 313)
@@ -0,0 +1,166 @@
+#!python
+# -*- coding: utf-8 -*-
+import os.path
+import os
+import shutil
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrx/common.py")
+
+src_abs_path = os.path.abspath(SRCDIR)
+wd_abs_path = os.path.abspath('.')
+cfg_mtsp = wd_abs_path + r"\cfg\cfg.mtsp"
+kernel_mtsp = wd_abs_path + r"\kernel\kernel.mtsp"
+asp_mtpj = wd_abs_path + r"\asp.mtpj"
+
+
+if COPY_SAMPLE1:
+	shutil.copy(src_abs_path + r'/sample/sample1.c', '.')
+	shutil.copy(src_abs_path + r'/sample/sample1.h', '.')
+	shutil.copy(src_abs_path + r'/sample/sample1.cfg', '.')
+
+#
+# close project
+#
+#project.Close() 
+print wd_abs_path + "\\asp_dcre"
+project.Create(wd_abs_path + "\\asp_dcre",
+				MicomType.RX, 
+				TARGET_MCU, 
+				ProjectKind.Empty,
+				Compiler.CC_RX,
+				False)
+
+project.Create(wd_abs_path + "\\cfg\\cfg",
+				MicomType.RX, 
+				TARGET_MCU, 
+				ProjectKind.Empty,
+				Compiler.CC_RX,
+				True)
+
+project.Create(wd_abs_path + "\\kernel\\kernel",
+				MicomType.RX, 
+				TARGET_MCU, 
+				ProjectKind.Library,
+				Compiler.CC_RX,
+				True)
+
+#
+# Change debug tool
+#
+#debugger.DebugTool.Change(DebugTool.Serial)
+
+#
+# Add files for asp
+#
+for file in asp_app_files:
+	project.File.Add(wd_abs_path + "\\" + file, u"app")
+
+for file in asp_syssvc_files:
+	project.File.Add(src_abs_path + "\\" + file, u"syssvc")
+
+for file in asp_library_files:
+	project.File.Add(src_abs_path + "\\" + file, u"library")
+
+for file in asp_configuration_files:
+	project.File.Add(wd_abs_path + "\\cfg\\" + file, u"configuration")
+
+str = src_abs_path + '\\' + statup_file
+project.File.Add(str, u"ã¹ã¿ã¼ãã¢ãã")
+
+#
+# Add files fot cfg
+#
+project.Change(cfg_mtsp)
+
+for file in cfg_configuration_files:
+	project.File.Add(wd_abs_path + "\\cfg\\" + file, u"configuration")
+
+#
+# Add files fot kernel
+#
+project.Change(kernel_mtsp)
+
+for file in kernel_kernel_files:
+	project.File.Add(src_abs_path + "\\" + file, u"kernel")
+
+for file in kernel_arch_files:
+	project.File.Add(src_abs_path + "\\" + file, u"arch")
+
+for file in kernel_target_files:
+	project.File.Add(src_abs_path + "\\" + file, u"target")
+
+for file in kernel_pdic_files:
+	project.File.Add(src_abs_path + "\\" + file, u"pdic")
+
+
+project.Close(True)
+
+
+#
+# Modify asp.mtpfj
+#
+inputstr = ReadFile('asp.mtpj')
+
+# Set ccrx include path
+inputstr = NewSetCcrxIncludes(inputstr, asp_rel_includes, INCLUDES, SRCDIR)
+# Set libary path and file
+inputstr = NewSetLibFiles(inputstr, asp_lib_files)
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', 'B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFFD0')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionConvertFileName-0', '%ProjectName%.srec')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionShowSymbol-0', 'True')
+inputstr = NewSetItemXml(inputstr, 'LinkOptionRom-0', 'D=R\nD_1=R_1\nD_2=R_2\n')
+# Set ccrx assembler include path
+inputstr = NewSetItemXml(inputstr, 'AsmOptionInclude-0', SRCDIR + "target/" + TARGET)
+# Set Prebuild/Postbuile
+inputstr = NewSetPostbuild(inputstr, asp_post_python_files, SRCDIR)
+
+WriteFile('asp.mtpj', inputstr)
+
+#
+# Modify ./cfg/cfg.mtsp
+#
+inputstr = ReadFile('./cfg/cfg.mtsp')
+
+# Set ccrx include path
+inputstr = NewSetCcrxIncludes(inputstr, cfg_rel_includes, INCLUDES, "../" + SRCDIR)
+# change Option
+inputstr = ChangeItemXml(inputstr, 'OutputMessageFormat-0', '%Program% %Options%')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionConvertFileName-0', 'cfg1_out.srec')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionConvertFolder-0', '.')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionStart-0', 'C_1,C_2,C,P/0FFFF8100')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionRom-0', '')
+inputstr = ChangeItemXml(inputstr, 'LinkOptionShowSymbol-0', 'True')
+# Set Prebuild/Postbuile
+inputstr = NewSetPrebuild(inputstr, cfg_pre_python_files, "../" + SRCDIR)
+inputstr = NewSetPostbuild(inputstr, cfg_post_python_files, "../" + SRCDIR)
+
+inputstr = NewSetDefine(inputstr, cfg_define)
+
+WriteFile('./cfg/cfg.mtsp', inputstr)
+
+#
+# Mofity ./kernel/kernel.mtsp
+#
+inputstr = ReadFile('./kernel/kernel.mtsp')
+
+# Set ccrx include path
+inputstr = NewSetCcrxIncludes(inputstr, kernel_rel_includes, INCLUDES, "../" + SRCDIR)
+# Set ccrx define
+inputstr = NewSetDefine(inputstr, kernel_define)
+# Set ccrx assembler include path
+inputstr = NewSetItemXml(inputstr, 'AsmOptionInclude-0', "../cfg")
+# change Option
+
+WriteFile('./kernel/kernel.mtsp', inputstr)
+
+project.Open(wd_abs_path + r'\asp.mtpj')
+project.Change(asp_mtpj)
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/kernel_inline_symbols.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/kernel_inline_symbols.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/kernel_inline_symbols.h	(revision 313)
@@ -0,0 +1,151 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã³ã³ãã¤ã©ä¾å­å®ç¾©
+ */
+
+#ifndef KERNEL_INLINE_SYMBOL_H
+#define KERNEL_INLINE_SYMBOL_H
+
+/*
+ *	å
+±éã¤ã³ã¯ã«ã¼ãã®Inlineé¢æ°ã®ã·ã³ãã«ç»é²
+ */
+
+/* queue.h	*/
+#pragma inline queue_initialize
+#pragma inline queue_insert_prev
+#pragma inline queue_insert_next
+#pragma inline queue_delete
+#pragma inline queue_delete_next
+#pragma inline queue_empty
+
+/* sil.h	*/
+#pragma inline sil_reb_mem
+#pragma inline sil_wrb_mem
+#pragma inline sil_reh_mem
+#pragma inline sil_wrh_mem
+#pragma inline sil_reh_lem
+#pragma inline sil_wrh_lem
+#pragma inline sil_reh_bem
+#pragma inline sil_wrh_bem
+#pragma inline sil_rew_mem
+#pragma inline sil_wrw_mem
+#pragma inline sil_rew_lem
+#pragma inline sil_wrw_lem
+#pragma inline sil_rew_bem
+#pragma inline sil_wrw_bem
+
+/* test_lib.h	*/
+#pragma inline check_state
+#pragma inline check_state_i
+
+/* t_syslog.h	*/
+#pragma inline syslog
+#pragma inline _syslog_0
+#pragma inline _syslog_1
+#pragma inline _syslog_2
+#pragma inline _syslog_3
+#pragma inline _syslog_4
+#pragma inline _syslog_5
+#pragma inline _syslog_6
+
+/*
+ *	ã¿ã¼ã²ããéä¾å­é¨ã®Inlineé¢æ°ã®ã·ã³ãã«ç»é²
+ */
+
+/* cyclic.c	*/
+#pragma inline tmevtb_enqueue_cyc
+
+/* mailbox.c	*/
+#pragma inline enqueue_msg_pri
+
+/* task.c	*/
+#pragma inline bitmap_search
+#pragma inline primap_empty
+#pragma inline primap_search
+#pragma inline primap_set
+#pragma inline primap_clear
+
+/* time_event.c	*/
+#pragma inline tmevtb_delete_top
+
+/* time_event.h	*/
+#pragma inline tmevtb_enqueue
+#pragma inline tmevtb_enqueue_evttim
+#pragma inline tmevtb_dequeue
+
+/* wait.c	*/
+#pragma inline wobj_queue_insert
+
+/* wait.h	*/
+#pragma inline queue_insert_tpri
+#pragma inline make_wait
+#pragma inline make_non_wait
+#pragma inline wait_dequeue_wobj
+#pragma inline wait_dequeue_tmevtb
+#pragma inline wait_tskid
+#pragma inline wobj_change_priority
+
+/* sample1.c	*/
+#pragma inline svc_perror
+
+/* serial.c	*/
+#pragma inline serial_snd_chr
+
+#endif /* KERNEL_INLINE_SYMBOL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_asp.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_asp.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_asp.py	(revision 313)
@@ -0,0 +1,79 @@
+#!python
+import subprocess
+import os
+import sys
+import re  # for regular expression
+import shutil
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+common.Source("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrx/common.py")
+
+#
+# convert map file
+#
+inputfile = open("./DefaultBuild/asp.map")
+outputfile = open("./DefaultBuild/asp.syms", 'w')
+
+r1 = re.compile("^\s+(_\w+)")
+r2 = re.compile("^\s+([0-9a-f]+)\s+")
+line = inputfile.readline() 
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m1 = r1.search(line)
+    if m1:
+        line = inputfile.readline() 
+        line = line.replace('\r\n','')   #delete newline
+        m2 = r2.search(line)
+        outputfile.write("0x" + m2.group(1) + " T " + m1.group(1) + "\n")
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
+
+#
+# copy pass 2 generated files
+#
+print "Copy pass 2 generated file"
+shutil.copy("./cfg/cfg2_out.db", ".")
+
+#
+# Execute cfg path 3
+#
+# make command
+cfg_command = cfg + " --pass 3 " + "--kernel " + CFG_KERNEL + " -O"
+cfg_command += " " + cfg_includes 
+cfg_command += " --rom-image ./DefaultBuild/asp.srec --rom-symbol ./DefaultBuild/asp.syms"
+cfg_command += " -T " + cfg_check_trb
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+#
+# dlete pass 2 generated files
+#
+print "Delete pass 2 generated file"
+os.remove("cfg2_out.db")
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_cfg.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_cfg.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/post_cfg.py	(revision 313)
@@ -0,0 +1,139 @@
+#!python
+import subprocess
+import os
+import sys
+import re  # for regular expression
+import shutil
+import os.path
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+# set relative path from top proj
+proj_rel_dir = "../"
+
+# call definition file
+common.Source(proj_rel_dir + "def.py")
+
+# path
+src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrx/common.py")
+
+#
+# convert map file
+#
+inputfile = open("./DefaultBuild/cfg.map")
+outputfile = open("cfg1_out.syms", 'w')
+
+r1 = re.compile("^\s+(_\w+)")
+r2 = re.compile("^\s+([0-9a-f]+)\s+")
+line = inputfile.readline() 
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m1 = r1.search(line)
+    if m1:
+        line = inputfile.readline() 
+        line = line.replace('\r\n','')   #delete newline
+        m2 = r2.search(line)
+        outputfile.write("0x" + m2.group(1) + " T " + m1.group(1) + "\n")
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
+
+if TCPIP_API_TABLE != "":
+	cfg_tcpip_kernel_trb = srcdir + CFG_TCPIP_KERNEL_TRB
+	cfg_tcpip_api_table = srcdir + TCPIP_API_TABLE
+
+#
+# Execute cfg path 2
+#
+# make command
+cfg_command = cfg + " --pass 2 " + "--kernel " + CFG_KERNEL
+cfg_command += " " + cfg_includes
+if TCPIP_API_TABLE == "":
+	cfg_command += " -T " + cfg_kernel_trb
+else:
+	cfg_command += " -T " + cfg_tcpip_kernel_trb + ":tcpip"
+	cfg_command += " -T " + cfg_kernel_trb + ":kernel"
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+##
+## mov Os_Cfg_tmp.h Os_Cfg.h
+##
+#import filecmp
+#if not os.path.isfile(r'Os_Cfg.h'):
+#	print "Rename Os_Cfg_tmp.h to Os_Cfg.h"
+#	shutil.move("Os_Cfg_tmp.h", "Os_Cfg.h")
+#else:
+#	print "compare Os_Cfg_tmp.h and Os_Cfg.h"
+#	if not filecmp.cmp(r'Os_Cfg_tmp.h', r'Os_Cfg.h'):
+#		print "Rename Os_Cfg_tmp.h to Os_Cfg.h"
+#		shutil.move("Os_Cfg_tmp.h", "Os_Cfg.h")
+#	else:
+#		print "Delete Os_Cfg_tmp.h"
+#		os.remove("Os_Cfg_tmp.h")
+
+#
+# Execute cfg path 3
+#
+# make command
+cfg_command = cfg + " --pass 2 -O " + "--kernel " + CFG_KERNEL 
+cfg_command += " " + cfg_includes
+cfg_command += " --rom-image cfg1_out.srec --rom-symbol cfg1_out.syms"
+cfg_command += " -T " + cfg_offset_trb
+
+print cfg_command
+
+# Execute 
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+    sys.exit()
+
+output.replace('\r','')
+print output
+
+#
+# convert map file
+#
+inputfile = open("offset.h")
+outputfile = open("offset.inc", 'w')
+
+outputfile.write("; offset.inc\n");
+outputfile.write("\n");
+
+r1 = re.compile("^#define\s+([0-9|a-z|A-Z|_]+)\s+(.+)\s*$")
+r2 = re.compile("^0x([0-9A-Fa-f]+)$");
+line = inputfile.readline() 
+while line:
+    line = line.replace('\r\n','')   #delete newline
+    m1 = r1.search(line)
+    if m1:
+        value = m1.group(2)
+        m2 = r2.search(value)
+        if m2:
+            value = "0" + m2.group(1) + "H"
+        line = "	" + m1.group(1) + "	.equ	" + value
+        outputfile.write(line + "\n")
+    line = inputfile.readline()
+
+inputfile.close()
+outputfile.close()
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/pre_cfg.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/pre_cfg.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/pre_cfg.py	(revision 313)
@@ -0,0 +1,76 @@
+#!python
+import subprocess
+import os
+import sys
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+# set relative path from top proj
+proj_rel_dir = "../"
+
+TCPIP_API_TABLE = ""
+CFG_TCPIP_KERNEL_TRB = ""
+
+# call definition file
+common.Source(proj_rel_dir + "def.py")
+
+# path
+src_abs_path = os.path.abspath(proj_rel_dir + SRCDIR)
+
+# call common file
+common.Source(src_abs_path + "/arch/ccrx/common.py")
+
+#
+# delete generated files
+#
+if os.path.exists("cfg1_out.db"):
+	os.remove("cfg1_out.db")
+if os.path.exists("cfg2_out.db"):
+	os.remove("cfg2_out.db")
+if os.path.exists("cfg3_out.db"):
+	os.remove("cfg3_out.db")
+if os.path.exists("cfg1_out.c"):
+	os.remove("cfg1_out.c")
+if os.path.exists("kernel_cfg.c"):
+	os.remove("kernel_cfg.c")
+if os.path.exists("kernel_cfg.h"):
+	os.remove("kernel_cfg.h")
+if os.path.exists("offset.h"):
+	os.remove("offset.h")
+if os.path.exists("tinet_cfg.c"):
+	os.remove("tinet_cfg.c")
+if os.path.exists("tinet_cfg.h"):
+	os.remove("tinet_cfg.h")
+
+if TCPIP_API_TABLE != "":
+	cfg_tcpip_api_table = srcdir + TCPIP_API_TABLE
+
+#
+# make command
+#
+cfg_command = cfg + " --pass 1 " + "--kernel " + CFG_KERNEL 
+cfg_command += " " + cfg_includes
+if TCPIP_API_TABLE == "":
+	cfg_command += " --api-table " + cfg_api_table
+else:
+	cfg_command += " --api-table " + cfg_tcpip_api_table + ":tcpip"
+	cfg_command += " --api-table " + cfg_api_table + ":kernel"
+cfg_command += " " + cfg_cfg1_def_tables
+cfg_command += " -M cfg1_out_c.d"
+cfg_command += " " + proj_rel_dir + CFG_FILE
+
+print cfg_command
+
+#
+# Execute cfg path 1
+#
+try:
+   output = subprocess.check_output(cfg_command, stderr=subprocess.STDOUT,)
+except subprocess.CalledProcessError, e:
+    print "ERROR!! : ", e.output
+
+print output
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/tool_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/tool_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/tool_stddef.h	(revision 313)
@@ -0,0 +1,145 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2007-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *  t_stddef.hã®éçºç°å¢ä¾å­é¨ï¼ã«ããµã¹ RXãã¼ã«ãã§ã¤ã³ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼t_stddef.h ã®å
+é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼
+ *  ä»ã®ãã¡ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ä»ã®ã¤ã³ã¯ã«ã¼ã
+ *  ãã¡ã¤ã«ã«å
+ç«ã£ã¦å¦çãããããï¼ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«ä¾å­ã
+ *  ã¦ã¯ãªããªãï¼
+ */
+
+#if !defined( TOPPERS_TOOL_STDDEF_H )
+#define TOPPERS_TOOL_STDDEF_H
+
+/*
+ *  ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ã­å®ç¾©
+ */
+/*
+ *  inline è­å¥å­ã¯å¤é¨å®ç¾©ãçæããªã.
+ */
+#define Inline static
+#include "target_inline_symbols.h"
+
+/*
+ *  ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã¯æ¬ã³ã³ãã¤ã©ã§ã¯
+ *  #pragma inline_asmã®ã¿ã®ãµãã¼ãã¨ãªããã,
+ *  asm/Asmå®ç¾©ã¯è¡ããªã.
+ */
+
+/*
+ *  NoReturn / alignofã¯æ¬ã³ã³ãã¤ã©ã§ã¯ãµãã¼ããããªã.
+ *  offsetofã¯stddef.hã®å®ç¾©ãå©ç¨ãã.
+ */
+#define	NoReturn
+
+
+/*
+ *  éçºç°å¢ã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®å©ç¨
+ *
+ *  NULLã®å®ç¾©ãstddef.hããï¼INT_MAXï¼INT_MINï¼UINT_MAXï¼LONG_MAXï¼
+ *  LONG_MINï¼ULONG_MAXï¼CHAR_BITã®å®ç¾©ãlimits.hããåãè¾¼ãï¼
+ *
+ *  C++/EC++ã§ã¯ï¼æ¨æºä»æ§ä¸ã¯ãããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç¨æããã¦
+ *  ããã¨ã¯éããªãã®ã§æ³¨æãå¿
+è¦ã§ããï¼ã»ã¨ãã©ã®éçºç°å¢ã§ç¨æãã
+ *  ã¦ããï¼ï¼
+ */
+#ifndef TOPPERS_MACRO_ONLY
+#include <stddef.h>
+#include <limits.h>
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã®å®ç¾©
+ *
+ *  stdint.hãã¤ã³ã¯ã«ã¼ããã
+ */
+#ifndef TOPPERS_MACRO_ONLY
+#include <stdint.h>
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  æµ®åå°æ°ç¹åã«é¢ããå®ç¾©
+ *
+ *  ä¸è¨ã®å®ç¾©ã¯dbl_size = 8ãªãã·ã§ã³ãæå®ããå ´åã®ã¿æå¹ã¨ãããã¨.
+ */
+#ifndef TOPPERS_MACRO_ONLY
+typedef float		float32_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
+typedef double		double64_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
+#endif /* TOPPERS_MACRO_ONLY */
+
+#define FLOAT32_MIN		( 1.4012984643248171e-45F )
+#define FLOAT32_MAX		( 3.4028234663852886e+38F )
+#define DOUBLE64_MIN	( 4.9406564584124654e-324 )
+#define DOUBLE64_MAX	( 1.7976931348623157e+308 )
+
+
+/*
+ *  ç©ºã©ãã«ã®å®ç¾©
+ *
+ *  æ¬ã³ã³ãã¤ã©ã§ã¯å¤§ããã¼ã­ã®é
+åã¯ã³ã³ãã¤ã«ã¨ã©ã¼ã«ãªããã,
+ *  ãµã¤ãº1ã«ã¦å®ç¾©ãã.
+ */
+#define TOPPERS_EMPTY_LABEL( type, symbol )		type symbol[ 1 ]
+
+
+#endif /* TOPPERS_TOOL_STDDEF_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/ccrx/updatepath.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/ccrx/updatepath.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/ccrx/updatepath.py	(revision 313)
@@ -0,0 +1,52 @@
+#!python
+import os
+
+#
+# variable definition
+#
+INCLUDES = []
+CFG1_DEF_TABLES = []
+
+os.chdir(os.path.dirname(project.Path))
+
+ADDITIONAL_INCLUDES = []
+
+# set relative path from top proj
+proj_rel_dir = ""
+
+# call definition file
+execfile("./def.py")
+
+# path
+src_abs_path = os.path.abspath(SRCDIR)
+
+# call common file
+execfile(src_abs_path + "/arch/ccrx/common.py")
+
+#
+# Update asp.mtpj
+#
+inputstr = ReadFile('asp.mtpj')
+inputstr = SetTargetFileRelativePath(inputstr, asp_files, SRCDIR)
+inputstr = SetCcrxIncludes(inputstr, asp_rel_includes, INCLUDES, SRCDIR)
+inputstr = SetPythonFileRelativePath(inputstr, asp_post_python_files, SRCDIR)
+WriteFile('asp.mtpj', inputstr)
+
+#
+# Update ./cfg/cfg.mtpj
+#
+inputstr = ReadFile('./cfg/cfg.mtsp')
+inputstr = SetTargetFileRelativePath(inputstr, asp_files, SRCDIR + "../")
+inputstr = SetCcrxIncludes(inputstr, cfg_rel_includes, INCLUDES, SRCDIR + "../")
+inputstr = SetPythonFileRelativePath(inputstr, cfg_pre_python_files, SRCDIR + "../")
+inputstr = SetPythonFileRelativePath(inputstr, cfg_post_python_files, SRCDIR + "../")
+WriteFile('./cfg/cfg.mtsp', inputstr)
+
+
+#
+# make ccrx include path for kernel
+#
+inputstr = ReadFile('./kernel/kernel.mtsp')
+inputstr = SetTargetFileRelativePath(inputstr, kernel_files, SRCDIR + "../")
+inputstr = SetCcrxIncludes(inputstr, kernel_rel_includes, INCLUDES, SRCDIR + "../")
+WriteFile('./kernel/kernel.mtsp', inputstr)
Index: rubycfg_asp/trunk/asp_dcre/arch/gcc/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/gcc/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/gcc/MANIFEST	(revision 313)
@@ -0,0 +1,4 @@
+PACKAGE asp
+
+MANIFEST
+tool_stddef.h
Index: rubycfg_asp/trunk/asp_dcre/arch/gcc/tool_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/gcc/tool_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/gcc/tool_stddef.h	(revision 313)
@@ -0,0 +1,222 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		t_stddef.hã®éçºç°å¢ä¾å­é¨ï¼GCCç¨ï¼
+ */
+
+#ifndef TOPPERS_TOOL_STDDEF_H
+#define TOPPERS_TOOL_STDDEF_H
+
+/*
+ *  ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ã­å®ç¾©
+ */
+#ifndef __cplusplus					/* C++ã«ã¯inline ããã */
+#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L
+									/* C99ã«ã¯inline ããã */
+#define inline	__inline__			/* ã¤ã³ã©ã¤ã³é¢æ° */
+#endif /* !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901L */
+#endif /* __cplusplus */
+
+#define Inline	static inline		/* ã¤ã³ã©ã¤ã³é¢æ° */
+
+#ifndef __cplusplus					/* C++ã«ã¯asmããã */
+#define asm		__asm__				/* ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã© */
+#endif /* __cplusplus */
+
+#define Asm		__asm__ volatile	/* ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ï¼æé©åææ­¢ï¼*/
+
+#define NoReturn	__attribute__((__noreturn__))
+									/* ãªã¿ã¼ã³ããªãé¢æ° */
+
+/*
+ *  éçºç°å¢ã®æ¨æºã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®å©ç¨
+ *
+ *  NULLã®å®ç¾©ãstddef.hããï¼INT_MAXï¼INT_MINï¼UINT_MAXï¼LONG_MAXï¼
+ *  LONG_MINï¼ULONG_MAXï¼CHAR_BITã®å®ç¾©ãlimits.hããåãè¾¼ãï¼
+ *
+ *  C++/EC++ã§ã¯ï¼æ¨æºä»æ§ä¸ã¯ãããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç¨æããã¦
+ *  ããã¨ã¯éããªãã®ã§æ³¨æãå¿
+è¦ã§ããï¼ã»ã¨ãã©ã®éçºç°å¢ã§ç¨æãã
+ *  ã¦ããï¼ï¼
+ */
+#ifndef TOPPERS_MACRO_ONLY
+#include <stddef.h>
+#include <limits.h>
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  stdint.hã®ä»£ç¨ã¨ãªãå®ç¾©
+ *
+ *  éçºç°å¢ã«stdint.hãç¨æããã¦ãããï¼åæ´æ°åã®ãµã¤ãºããããã¿ã¼
+ *  ã³ã«å½ã¦ã¯ã¾ãå ´åã«ï¼stdint.hã®ä»£ç¨ã¨ãªãå®ç¾©ãä¸ããï¼
+ *
+ *  TOPPERS_STDINT_TYPE1: char/short/int/long longã®ãããé·ããããã
+ *                        8/16/32/64ãããã§ï¼ãã¤ã³ã¿ã®ãããé·ãlong
+ *                        ã®ãããé·ã¨ä¸è´ããå ´å
+ */
+#ifdef TOPPERS_STDINT_TYPE1
+
+/*
+ *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã®å®ç¾©
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef signed char			int8_t;		/* ç¬¦å·ä»ã8ãããæ´æ° */
+typedef unsigned char		uint8_t;	/* ç¬¦å·ç¡ã8ãããæ´æ° */
+
+typedef signed short		int16_t;	/* ç¬¦å·ä»ã16ãããæ´æ° */
+typedef unsigned short		uint16_t;	/* ç¬¦å·ç¡ã16ãããæ´æ° */
+
+typedef signed int			int32_t;	/* ç¬¦å·ä»ã32ãããæ´æ° */
+typedef unsigned int		uint32_t;	/* ç¬¦å·ç¡ã32ãããæ´æ° */
+
+typedef signed long long	int64_t;	/* ç¬¦å·ä»ã64ãããæ´æ° */
+typedef unsigned long long	uint64_t;	/* ç¬¦å·ç¡ã64ãããæ´æ° */
+
+typedef int8_t				int_least8_t;	/* 8ãããä»¥ä¸ã®ç¬¦å·ä»ãæ´æ° */
+typedef uint8_t				uint_least8_t;	/* 8ãããä»¥ä¸ã®ç¬¦å·ç¡ãæ´æ° */
+
+typedef long				intptr_t;	/* ãã¤ã³ã¿ãæ ¼ç´ã§ããç¬¦å·ä»ãæ´æ° */
+typedef unsigned long		uintptr_t;	/* ãã¤ã³ã¿ãæ ¼ç´ã§ããç¬¦å·ç¡ãæ´æ° */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã®æ´æ°å®æ°ãä½ããã¯ã­
+ */
+#ifndef INT8_C
+#define INT8_C(val)			(val)
+#endif /* INT8_C */
+
+#ifndef UINT8_C
+#define UINT8_C(val)		(val ## U)
+#endif /* UINT8_C */
+
+#ifndef INT16_C
+#define INT16_C(val)		(val)
+#endif /* INT16_C */
+
+#ifndef UINT16_C
+#define UINT16_C(val)		(val ## U)
+#endif /* UINT16_C */
+
+#ifndef INT32_C
+#define INT32_C(val)		(val)
+#endif /* INT32_C */
+
+#ifndef UINT32_C
+#define UINT32_C(val)		(val ## U)
+#endif /* UINT32_C */
+
+#ifndef INT64_C
+#define INT64_C(val)		(val ## LL)
+#endif /* INT64_C */
+
+#ifndef UINT64_C
+#define UINT64_C(val)		(val ## ULL)
+#endif /* UINT64_C */
+
+/*
+ *  ã³ã³ãã¤ã©ä¾å­ã®ãã¼ã¿åã«æ ¼ç´ã§ããæå¤§å¤ã¨æå°å¤ã®å®ç¾©
+ */
+#define INT8_MAX			SCHAR_MAX
+#define INT8_MIN			SCHAR_MIN
+#define UINT8_MAX			UCHAR_MAX
+
+#define INT16_MAX			SHRT_MAX
+#define INT16_MIN			SHRT_MIN
+#define UINT16_MAX			USHRT_MAX
+
+#define INT32_MAX			INT_MAX
+#define INT32_MIN			INT_MIN
+#define UINT32_MAX			UINT_MAX
+
+#define INT64_MAX			LLONG_MAX
+#define INT64_MIN			LLONG_MIN
+#define UINT64_MAX			ULLONG_MAX
+
+#define INT_LEAST8_MAX		INT8_MAX
+#define INT_LEAST8_MIN		INT8_MIN
+#define UINT_LEAST8_MAX		INT8_MAX
+
+#else
+#ifndef TOPPERS_MACRO_ONLY
+#include <stdint.h>
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_STDINT_TYPE1 */
+
+/*
+ *  æµ®åå°æ°ç¹åã«é¢ããå®ç¾©
+ *
+ *  TOPPERS_STDFLOAT_TYPE1: floatãIEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ°ï¼
+ *							doubleãåç²¾åº¦æµ®åå°æ°ç¹æ°ã®å ´å
+ */
+#ifdef TOPPERS_STDFLOAT_TYPE1
+#ifndef TOPPERS_MACRO_ONLY
+
+typedef float		float32_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
+typedef double		double64_t;			/* IEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ° */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#define FLOAT32_MIN		1.17549435e-38F
+#define FLOAT32_MAX		3.40282347e+38F
+#define DOUBLE64_MIN	2.2250738585072014e-308
+#define DOUBLE64_MAX	1.7976931348623157e+308
+
+#endif /* TOPPERS_STDFLOAT_TYPE1 */
+#endif /* TOPPERS_TOOL_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/logtrace/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/logtrace/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/logtrace/MANIFEST	(revision 313)
@@ -0,0 +1,6 @@
+PACKAGE asp
+
+MANIFEST
+trace_config.c
+trace_config.h
+trace_dump.c
Index: rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.c	(revision 313)
@@ -0,0 +1,265 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ãã¬ã¼ã¹ã­ã°æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "time_event.h"
+#include <sil.h>
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãããã¡ã¨ããã«ã¢ã¯ã»ã¹ããããã®ãã¤ã³ã¿
+ */
+SYSLOG	trace_buffer[TCNT_TRACE_BUFFER];	/* ãã¬ã¼ã¹ã­ã°ãããã¡ */
+uint_t	trace_count;				/* ãã¬ã¼ã¹ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
+uint_t	trace_head;					/* å
+é ­ã®ãã¬ã¼ã¹ã­ã°ã®æ ¼ç´ä½ç½® */
+uint_t	trace_tail;					/* æ¬¡ã®ãã¬ã¼ã¹ã­ã°ã®æ ¼ç´ä½ç½® */
+MODE	trace_mode;					/* ãã¬ã¼ã¹ã¢ã¼ã */
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°æ©è½ã®åæå
+ */
+void
+trace_initialize(intptr_t exinf)
+{
+	MODE	mode = ((MODE) exinf);
+
+	trace_count = 0U;
+	trace_head = 0U;
+	trace_tail = 0U;
+	trace_mode = mode;
+}     
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®éå§
+ */
+ER
+trace_sta_log(MODE mode)
+{
+	if ((mode & TRACE_CLEAR) != 0U) {
+		trace_count = 0U;
+		trace_head = 0U;
+		trace_tail = 0U;
+	}
+	trace_mode = mode;
+	return(E_OK);
+}     
+
+/* 
+ *  ãã¬ã¼ã¹ã­ã°ã®æ¸è¾¼ã¿
+ */
+ER
+trace_wri_log(TRACE *p_trace)
+{
+	SIL_PRE_LOC;
+
+	if (trace_mode != TRACE_STOP) {
+		SIL_LOC_INT();
+
+		/*
+		 *  ãã¬ã¼ã¹æå»ã®è¨­å®
+		 *
+		 *  LOG_WRI_LOG_ENTERããå¼ã°ããå ´åã«p_trace->logtimãæ¸ãæ
+		 *  ãã¦ãã¾ãã®ã¯æ°æã¡ãæªããï¼wri_logã®æ¹ã§ä¸æ¸ãããããå
+		 *  é¡ã¯ãªãï¼
+		 */
+		p_trace->logtim = TRACE_GET_TIM();
+
+		/*
+		 *  ãã¬ã¼ã¹ãããã¡ã«è¨é²
+		 */
+		trace_buffer[trace_tail] = *p_trace;
+		trace_tail++;
+		if (trace_tail >= TCNT_TRACE_BUFFER) {
+			trace_tail = 0U;
+		}
+		if (trace_count < TCNT_TRACE_BUFFER) {
+			trace_count++;
+			if (trace_count >= TCNT_TRACE_BUFFER
+						&& (trace_mode & TRACE_AUTOSTOP) != 0U) {
+				trace_mode = TRACE_STOP;
+			}
+		}
+		else {
+			trace_head = trace_tail;
+		}
+
+		SIL_UNL_INT();
+	}
+	return(E_OK);
+}
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®èª­åºã
+ */
+ER
+trace_rea_log(TRACE *p_trace)
+{
+	ER_UINT	ercd;
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+
+	/*
+	 *  ãã¬ã¼ã¹ã­ã°ãããã¡ããã®ååºã
+	 */
+	if (trace_count > 0U) {
+		*p_trace = trace_buffer[trace_head];
+		trace_count--;
+		trace_head++;
+		if (trace_head >= TCNT_TRACE_BUFFER) {
+			trace_head = 0U;
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+
+	SIL_UNL_INT();
+	return(ercd);
+}
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãåºåããããã®ã©ã¤ãã©ãªé¢æ°
+ */
+
+void
+trace_write_0(uint_t type)
+{
+	TRACE	trace;
+
+	trace.logtype = type;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_1(uint_t type, intptr_t arg1)
+{
+	TRACE	trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_2(uint_t type, intptr_t arg1, intptr_t arg2)
+{
+	TRACE	trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	(void) trace_wri_log(&trace);
+}
+
+void
+trace_write_3(uint_t type, intptr_t arg1, intptr_t arg2, intptr_t arg3)
+{
+	TRACE	trace;
+
+	trace.logtype = type;
+	trace.loginfo[0] = arg1;
+	trace.loginfo[1] = arg2;
+	trace.loginfo[2] = arg3;
+	(void) trace_wri_log(&trace);
+}
+
+/*
+ *  ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã³ã¼ããããã¬ã¼ã¹ã­ã°ãåºåããããã®é¢
+ *  æ°
+ */
+
+void
+log_dsp_enter(TCB *p_tcb)
+{
+	trace_1(LOG_TYPE_DSP|LOG_ENTER, p_tcb);
+}
+
+void
+log_dsp_leave(TCB *p_tcb)
+{
+	trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb);
+}
+
+void
+log_inh_enter(INHNO inhno)
+{
+	trace_1(LOG_TYPE_INH|LOG_ENTER, inhno);
+}
+
+void
+log_inh_leave(INHNO inhno)
+{
+	trace_1(LOG_TYPE_INH|LOG_LEAVE, inhno);
+}
+
+void
+log_exc_enter(EXCNO excno)
+{
+	trace_1(LOG_TYPE_EXC|LOG_ENTER, excno);
+}
+
+void
+log_exc_leave(EXCNO excno)
+{
+	trace_1(LOG_TYPE_EXC|LOG_LEAVE, excno);
+}
Index: rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_config.h	(revision 313)
@@ -0,0 +1,199 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hããã³target_syssvc.hã®
+ *  ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ã¾ãï¼ãã¬ã¼ã¹ã­ã°æ©è½ã®åæåãè¨é²ã®é
+ *  å§ï¼åæ­¢ï¼ãã¬ã¼ã¹ã­ã°ã®ãã³ããè¡ããã­ã°ã©ã ããã¤ã³ã¯ã«ã¼ããã
+ *  ãã¨ãæ³å®ãã¦ããï¼
+ */
+
+#ifndef TOPPERS_TRACE_CONFIG_H
+#define TOPPERS_TRACE_CONFIG_H
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãããã¡ã®ãµã¤ãº
+ */
+#ifndef TCNT_TRACE_BUFFER
+#define TCNT_TRACE_BUFFER	1024
+#endif /* TCNT_TRACE_BUFFER */
+
+/*
+ *  ãã¬ã¼ã¹æå»ã®åå¾æ¹æ³
+ */
+#ifndef TRACE_GET_TIM
+#define TRACE_GET_TIM()		(current_time)
+#endif /* TRACE_GET_TIM */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®ãã¼ã¿æ§é 
+ *
+ *  ã·ã¹ãã ã­ã°æ©è½ã®ã­ã°æ
+å ±ã®ãã¼ã¿æ§é ã¨åããã®ãç¨ããï¼
+ */
+#include <t_syslog.h>
+typedef	SYSLOG	TRACE;
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãããã¡ã¨ããã«ã¢ã¯ã»ã¹ããããã®ãã¤ã³ã¿
+ */
+extern TRACE	trace_buffer[];		/* ãã¬ã¼ã¹ã­ã°ãããã¡ */
+extern uint_t	trace_count;		/* ãã¬ã¼ã¹ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
+extern uint_t	trace_head;			/* å
+é ­ã®ãã¬ã¼ã¹ã­ã°ã®æ ¼ç´ä½ç½® */
+extern uint_t	trace_tail;			/* æ¬¡ã®ãã¬ã¼ã¹ã­ã°ã®æ ¼ç´ä½ç½® */
+extern uint_t	trace_lost;			/* å¤±ããããã¬ã¼ã¹ã®æ° */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ãã¬ã¼ã¹ã¢ã¼ãã®å®ç¾©
+ */
+#define TRACE_STOP			UINT_C(0x00)	/* ãã¬ã¼ã¹åæ­¢ */
+#define TRACE_RINGBUF		UINT_C(0x01)	/* ãªã³ã°ãããã¡ã¢ã¼ã */
+#define TRACE_AUTOSTOP		UINT_C(0x02)	/* èªååæ­¢ã¢ã¼ã */
+#define TRACE_CLEAR			UINT_C(0x04)	/* ãã¬ã¼ã¹ã­ã°ã®ã¯ãªã¢ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°æ©è½ã®åæå
+ *
+ *  ãã¬ã¼ã¹ã­ã°æ©è½ãåæåããï¼åæåã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ãæ³
+ *  å®ãã¦ããï¼å¼æ°ã«ããæ¬¡ã®åä½ãè¡ãï¼
+ *
+ *  TRACE_STOPï¼åæåã®ã¿ã§ãã¬ã¼ã¹ã¯éå§ããªãï¼
+ *  TRACE_RINGBUFï¼ãªã³ã°ãããã¡ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
+ *  TRACE_AUTOSTOPï¼èªååæ­¢ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
+ */
+extern void	trace_initialize(intptr_t exinf);
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®éå§
+ *
+ *  ãã¬ã¼ã¹ã­ã°ã®è¨é²ãéå§ï¼åæ­¢ããï¼å¼æ°ã«ããæ¬¡ã®åä½ãè¡ãï¼
+ *
+ *  TRACE_STOPï¼ãã¬ã¼ã¹ãåæ­¢ï¼
+ *  TRACE_RINGBUFï¼ãªã³ã°ãããã¡ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
+ *  TRACE_AUTOSTOPï¼èªååæ­¢ã¢ã¼ãã§ãã¬ã¼ã¹ãéå§ï¼
+ *  TRACE_CLEARï¼ãã¬ã¼ã¹ã­ã°ãã¯ãªã¢ï¼
+ */
+extern ER	trace_sta_log(MODE mode);
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®æ¸è¾¼ã¿
+ */
+extern ER	trace_wri_log(TRACE *p_trace);
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã®èª­åºã
+ */
+extern ER	trace_rea_log(TRACE *p_trace);
+
+/* 
+ *  ãã¬ã¼ã¹ã­ã°ã®ãã³ãï¼trace_dump.cï¼
+ *
+ *  ãã¬ã¼ã¹ã­ã°ããã³ãããï¼çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ãæ³å®
+ *  ãã¦ããï¼å¼æ°ã¨ãã¦ï¼ãã³ãå
+ã¨ãªãæå­åºåé¢æ°ã¸ã®ãã¤ã³ã¿ãæ¸¡ãï¼
+ *  ã¿ã¼ã²ããä¾å­ã®ä½ã¬ãã«æå­åºåãå©ç¨ããå ´åã«ã¯ï¼target_putcãæ¸¡
+ *  ãï¼
+ */
+extern void	trace_dump(intptr_t exinf);
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãåºåããããã®ã©ã¤ãã©ãªé¢æ°
+ */
+extern void	trace_write_0(uint_t type);
+extern void	trace_write_1(uint_t type, intptr_t arg1);
+extern void	trace_write_2(uint_t type, intptr_t arg1, intptr_t arg2);
+extern void	trace_write_3(uint_t type, intptr_t arg1, intptr_t arg2,
+														intptr_t arg3);
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãåºåããããã®ãã¯ã­
+ */
+
+#define trace_0(type) \
+				trace_write_0(type)
+
+#define trace_1(type, arg1) \
+				trace_write_1(type, (intptr_t)(arg1))
+
+#define trace_2(type, arg1, arg2) \
+				trace_write_2(type, (intptr_t)(arg1), (intptr_t)(arg2))
+
+#define trace_3(type, arg1, arg2, arg3) \
+				trace_write_3(type, (intptr_t)(arg1), (intptr_t)(arg2), \
+						(intptr_t)(arg3))
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°æ¹æ³ã®è¨­å®
+ */
+#define LOG_TSKSTAT(p_tcb)		trace_2(LOG_TYPE_TSKSTAT, p_tcb, p_tcb->tstat)
+
+#define LOG_DSP_LEAVE(p_tcb)	trace_1(LOG_TYPE_DSP|LOG_LEAVE, p_tcb)
+
+#define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog) \
+								trace_wri_log((TRACE *) p_syslog)
+
+#endif /* TOPPERS_TRACE_CONFIG_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_dump.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_dump.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/logtrace/trace_dump.c	(revision 313)
@@ -0,0 +1,170 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ãã¬ã¼ã¹ã­ã°ã®ãã³ã
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include <log_output.h>
+
+/* 
+ *  ã«ã¼ãã«æ
+å ±ã®ååºã
+ */
+static intptr_t
+get_tskid(intptr_t info)
+{
+	TCB		*p_tcb;
+	ID		tskid;
+
+	p_tcb = (TCB *) info;
+	if (p_tcb == NULL) {
+		tskid = 0;
+	}
+	else {
+		tskid = TSKID(p_tcb);
+	}
+	return((intptr_t) tskid);
+}
+
+static intptr_t
+get_tskstat(intptr_t info)
+{
+	uint_t		tstat;
+	const char	*tstatstr;
+
+	tstat = (uint_t) info;
+	switch (tstat & (TS_RUNNABLE|TS_WAITING|TS_SUSPENDED)) {
+	case TS_DORMANT:
+		tstatstr = "DORMANT";
+		break;
+	case TS_RUNNABLE:
+		tstatstr = "RUNNABLE";
+		break;
+	case TS_WAITING:
+		tstatstr = "WAITING";
+		break;
+	case TS_SUSPENDED:
+		tstatstr = "SUSPENDED";
+		break;
+	case TS_WAITING|TS_SUSPENDED:
+		tstatstr = "WAITING-SUSPENDED";
+		break;
+	default:
+		tstatstr = "unknown state";
+		break;
+	}
+	return((intptr_t) tstatstr);
+}
+
+/* 
+ *  ãã¬ã¼ã¹ã­ã°ã®è¡¨ç¤º
+ */
+static void
+trace_print(TRACE *p_trace, void (*putc)(char))
+{
+	intptr_t	traceinfo[TMAX_LOGINFO + 1];
+	const char	*tracemsg;
+	int_t		i;
+
+	traceinfo[0] = (intptr_t)(p_trace->logtim);
+	syslog_printf("[%d] ", traceinfo, putc);
+
+	switch (p_trace->logtype) {
+	case LOG_TYPE_TSKSTAT:
+		traceinfo[0] = get_tskid(p_trace->loginfo[0]);
+		traceinfo[1] = get_tskstat(p_trace->loginfo[1]);
+		tracemsg = "task %d becomes %s.";
+		break;
+	case LOG_TYPE_DSP|LOG_LEAVE:
+		traceinfo[0] = get_tskid(p_trace->loginfo[0]);
+		tracemsg = "dispatch to task %d.";
+		break;
+	case LOG_TYPE_COMMENT:
+		for (i = 1; i < TMAX_LOGINFO; i++) {
+			traceinfo[i-1] = p_trace->loginfo[i];
+		}
+		tracemsg = (const char *)(p_trace->loginfo[0]);
+		break;
+	case LOG_TYPE_ASSERT:
+		traceinfo[0] = p_trace->loginfo[0];
+		traceinfo[1] = p_trace->loginfo[1];
+		traceinfo[2] = p_trace->loginfo[2];
+		tracemsg = "%s:%u: Assertion `%s' failed.";
+		break;
+	default:
+		traceinfo[0] = p_trace->logtype;
+		tracemsg = "unknown trace log type: %d.";
+		break;
+	}
+	syslog_printf(tracemsg, traceinfo, putc);
+	(*putc)('\n');
+}
+
+/* 
+ *  ãã¬ã¼ã¹ã­ã°ã®ãã³ã
+ */
+void
+trace_dump(intptr_t exinf)
+{
+	TRACE	trace;
+	void	(*putc)(char);
+
+	putc = (void (*)(char)) exinf;
+	while (trace_rea_log(&trace) >= 0) {
+		trace_print(&trace, putc);
+	}
+}
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc.py	(revision 313)
@@ -0,0 +1,3 @@
+CFG1_DEF_TABLES = CFG1_DEF_TABLES + ["arch/rx630_ccrx/prc_sym.def"]
+INCLUDES = INCLUDES + ["arch/rx630_ccrx", "arch/ccrx"]
+kernel_arch_files = ['arch/rx630_ccrx/prc_config.c', 'arch/rx630_ccrx/prc_support.src', 'arch/rx630_ccrx/rx630_config.c']
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_cfg1_out.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_cfg1_out.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_cfg1_out.h	(revision 313)
@@ -0,0 +1,46 @@
+/*
+ *		cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©
+ */
+
+void sta_ker( void )
+{
+}
+
+void hardware_init_hook( void )
+{
+}
+
+void software_init_hook( void )
+{
+}
+
+const SIZE		_kernel_istksz = 0;
+
+STK_T *const	_kernel_istk = NULL;
+
+/*
+ *  ãªãã»ãããã¡ã¤ã«ãçæããããã®å®ç¾©
+ */
+const uint8_t		MAGIC_1 = UINT_C(0x12);
+const uint16_t		MAGIC_2 = UINT_C(0x1234);
+const uint32_t		MAGIC_4 = UINT_C(0x12345678);
+
+const TCB	TCB_enatex = {
+	{ NULL, NULL },			/* task_queue */
+	NULL,					/* p_tinib */
+	0U,						/* tstat */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	0U,						/* bpriority */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+	0U,						/* priority */
+	false,					/* acqeue */
+	false,					/* wupque */
+	true,					/* enatex */
+	0U,						/* texptn */
+	NULL,					/* p_winifo */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	{ NULL, NULL },			/* mutex_queue */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+	{ NULL, NULL }			/* tskctxb */
+};
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_check.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_check.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_check.trb	(revision 313)
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+# 
+#		ãã¹3ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+# 
+#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
+#
+
+#
+#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/kernel_check.trb")
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.c	(revision 313)
@@ -0,0 +1,256 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ */
+
+#include "kernel_impl.h"
+#include "sil.h"
+
+
+/*
+ *  å²è¾¼ã¿çºçåæ°ãä¿å­ããå¤æ°
+ */
+uint16_t	intnest;
+
+/*
+ *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°
+ */
+#if TIPM_LOCK != -15
+bool_t		lock_flag;		/* CPUã­ãã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */
+uint32_t	saved_ipl;		/* å²è¾¼ã¿åªå
+åº¦ã¬ãã«ãä¿å­ããå¤æ° */
+#endif	/* TIPM_LOCK != -15	*/
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®åæå
+ */
+void
+prc_initialize( void )
+{
+	/*
+	 *  å²è¾¼ã¿çºçåæ°ã®åæå
+	 *
+	 *  ã¹ã¿ã¼ãã¢ããã¯å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ & éã¿ã¹ã¯ã³ã³ãã­ã¹ã
+	 *  ã«ã¦åä½ãããã, éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«å½è£
+ãã.
+	 */
+	intnest = 1U;
+
+#if TIPM_LOCK != -15
+	/*
+	 *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°ã®åæå
+	 */
+	lock_flag = true;
+	saved_ipl = IPL_ENAALL;
+#endif	/* TIPM_LOCK != -15	*/
+}
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®çµäºå¦ç
+ */
+void
+prc_terminate( void )
+{
+	/*
+	 *  ç¹ã«å¿
+è¦ãªå¦çã¯ãªã
+	 */
+}
+
+
+/*
+ *  CPUä¾å¤ã®çºçç¶æ³ã®ã­ã°åºå
+ *
+ *  CPUä¾å¤ãã³ãã©ã®ä¸­ããï¼CPUä¾å¤æ
+å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã
+ *  ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ã­ã°ã«åºåããï¼
+ */
+#ifdef SUPPORT_XLOG_SYS
+void
+xlog_sys( void *p_excinf )
+{
+	syslog(LOG_ERROR , "r1 = %u") , *((uint32_t*)((intptr_t)p_excinf + 14));
+	syslog(LOG_ERROR , "r2 = %u") , *((uint32_t*)((intptr_t)p_excinf + 15));
+	syslog(LOG_ERROR , "r3 = %u") , *((uint32_t*)((intptr_t)p_excinf + 16));
+	syslog(LOG_ERROR , "r4 = %u") , *((uint32_t*)((intptr_t)p_excinf + 17));
+	syslog(LOG_ERROR , "r5 = %u") , *((uint32_t*)((intptr_t)p_excinf + 18));
+	syslog(LOG_ERROR , "r6 = %u") , *((uint32_t*)((intptr_t)p_excinf + 1));
+	syslog(LOG_ERROR , "r7 = %u") , *((uint32_t*)((intptr_t)p_excinf + 2));
+	syslog(LOG_ERROR , "r8 = %u") , *((uint32_t*)((intptr_t)p_excinf + 3));
+	syslog(LOG_ERROR , "r9 = %u") , *((uint32_t*)((intptr_t)p_excinf + 4));
+	syslog(LOG_ERROR , "r10 = %u") , *((uint32_t*)((intptr_t)p_excinf + 5));
+	syslog(LOG_ERROR , "r11 = %u") , *((uint32_t*)((intptr_t)p_excinf + 6));
+	syslog(LOG_ERROR , "r12 = %u") , *((uint32_t*)((intptr_t)p_excinf + 7));
+	syslog(LOG_ERROR , "r13 = %u") , *((uint32_t*)((intptr_t)p_excinf + 8));
+	syslog(LOG_ERROR , "r14 = %u") , *((uint32_t*)((intptr_t)p_excinf + 12));
+	syslog(LOG_ERROR , "r15 = %u") , *((uint32_t*)((intptr_t)p_excinf + 13));
+	syslog(LOG_ERROR , "fpsw = %u") , *((uint32_t*)((intptr_t)p_excinf + 11));
+	syslog(LOG_ERROR , "acclo = %u") , *((uint32_t*)((intptr_t)p_excinf + 10));
+	syslog(LOG_ERROR , "acchi = %u") , *((uint32_t*)((intptr_t)p_excinf + 9));
+	syslog(LOG_ERROR , "pc = %x") , *((uint32_t*)((intptr_t)p_excinf + 19));
+	syslog(LOG_ERROR , "psw = %x") , *((uint32_t*)((intptr_t)p_excinf + 20));
+}
+#endif /* SUPPORT_XLOG_SYS */
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+ *
+ *  ASPã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã
+ *  ã¯ãã¦ããï¼cfg_intãµã¼ãã¹ã³ã¼ã«ãè¨­ããå ´åã«ã¯ï¼ã¨ã©ã¼ãè¿ããã
+ *  ã«ãã¹ãã§ãããï¼
+ */
+void
+x_config_int( INTNO intno, ATR intatr, PRI intpri )
+{
+	uint8_t		irq_offset;
+	uint8_t		irq_val;
+
+	assert( VALID_INTNO_CFGINT(intno) );
+
+	assert( ( -15 <= intpri ) && ( intpri <= TMAX_INTPRI ) );
+#if TIPM_LOCK != -15
+	if( intatr == TA_NONKERNEL ){
+		assert( intpri < TMIN_INTPRI );
+ 	}
+	else{
+		assert( TMIN_INTPRI <= intpri ); 
+	}
+#endif
+
+	/*
+	 *  å²è¾¼ã¿ã®ãã¹ã¯
+	 *
+	 *  å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨­å®ãï¼å²
+	 *  è¾¼ã¿åªå
+åº¦ã®è¨­å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼
+	 *  ä¸æ¦ãã¹ã¯ããï¼
+	 */
+	( void )x_disable_int( intno );
+
+	/*
+	 *  ã¬ãã«ããªã¬/ã¨ãã¸ããªã¬ã®è¨­å®
+	 *
+	 *  IRQã®ã¿ãµãã¼ããã
+	 */
+	if( INTNO_IRQ( intno ) != 0U ){
+		irq_offset = INTNO_IRQ_OFFSET( intno );
+
+		if( ( intatr & TA_POSEDGE ) != 0U ){
+			irq_val = IRQ_POSEDGE;
+		}
+		else if( ( intatr & TA_NEGEDGE ) != 0U ){
+			irq_val = IRQ_NEGEDGE;
+		}
+		else if( ( intatr & TA_BOTHEDGE ) != 0U ){
+			irq_val = IRQ_BOTHEDGE;
+		}
+		else if( ( intatr & TA_LOWLEVEL ) != 0U ){
+			irq_val = IRQ_LOWLEVEL;
+		}
+		else{
+			/*
+			 *  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ã¦ãã§ãã¯ãã¦ãããã,
+			 *  ããã¸ãããã¨ã¯ããããªã.
+			 */
+			irq_val = 0U;
+		}
+
+		sil_wrb_mem(irqcr_reg_addr[irq_offset], irq_val);
+	}
+
+	/*
+	 *  å²è¾¼ã¿ã¬ãã«ã®è¨­å®
+	 *
+	 *  å²è¾¼ã¿çªå·ã«å¯¾å¿ããIPRå¤ãè¨­å®ãã.
+	 */
+	sil_wrb_mem(ipr_reg_addr[intno], cfg_int_table[intno].intpri);
+
+	/*
+	 *  å²è¾¼ã¿ã®ãã¹ã¯è§£é¤
+ 	 */
+	if( ( intatr & TA_ENAINT ) != 0U ){
+		( void )x_enable_int( intno );
+	}
+}
+
+
+#ifndef OMIT_DEFAULT_INT_HANDLER
+/*
+ *  æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã
+ */
+void
+default_int_handler( void )
+{
+	syslog(LOG_EMERG, "Unregistered Interrupt occurs.");
+}
+#endif /* OMIT_DEFAULT_INT_HANDLER */
+
+#ifndef OMIT_DEFAULT_EXC_HANDLER
+/*
+ *  æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã
+ */
+void
+default_exc_handler( void )
+{
+	syslog(LOG_EMERG, "Unregistered Expevt error occurs.");
+}
+#endif /* OMIT_DEFAULT_EXC_HANDLER */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_config.h	(revision 313)
@@ -0,0 +1,782 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006,2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_CONFIG_H
+#define TOPPERS_PRC_CONFIG_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ãã­ã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©
+ */
+#include "prc_insn.h"
+#include "interrupt.h"
+
+/* 
+ * ã¿ã¼ã²ããä¾å­ã®å²è¾¼ã¿å±æ§ã®å®ç¾©
+ */
+#define TARGET_INTATR  (TA_POSEDGE | TA_NEGEDGE | TA_BOTHEDGE | TA_LOWLEVEL)
+
+
+/*
+ * ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®
+ */
+#define CHECK_STKSZ_ALIGN 4
+
+
+/*
+ * ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤
+ *
+ * ã¿ã¹ã¯èµ·åæã«4byte,
+ * å²è¾¼ã¿å
+¥å£å¦çã«ã¦48byte, CPUä¾å¤å
+¥å£å¦çã«ã¦84byte,
+ * ã§ãããã, æå°å¤ã¯88byteã¨ãã.
+ */
+#define TARGET_MIN_STKSZ  88
+
+
+/*
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯åæå¤
+ */
+
+#define TOPPERS_ISTKPT( istk, istksz ) (( STK_T * )(( char * )( istk ) + ( istksz )))
+
+
+/*
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã®å®ç¾©
+ */
+typedef struct task_context_block {
+	void	*sp;		/* ã¹ã¿ãã¯ãã¤ã³ã¿ */
+	FP		pc;			/* ãã­ã°ã©ã ã«ã¦ã³ã¿ */
+} TSKCTXB;
+
+
+/*
+ *  å²è¾¼ã¿çºçåæ°ãä¿å­ããå¤æ°
+ */
+extern uint16_t intnest;
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯
+ *
+ *  TIPM_LOCKã¯ï¼CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ããªãã¡ï¼ã«ã¼ã
+ *  ã«ç®¡çå¤ã®ãã®ãé¤ããã¹ã¦ã®å²è¾¼ã¿è¦æ±ããã¹ã¯ããå¤ã«å®ç¾©ããï¼
+ *
+ *  TMIN_INTPRIå¤æ´ãããã¨ã§ç®¡çå¤å²è¾¼ã¿ã®æç¡ãæ±ºå®ããï¼
+ *  ä¾ãã°TMIN_INTPRIã-14ã«è¨­å®ããã¨ï¼ã¬ãã«15ã®å²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨
+ *  ãªãï¼TMIN_INTPRIã-15ã«è¨­å®ããã¨ï¼NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã
+ *  è¨­ããªããã¨ã«ãªãï¼ãã®å ´åã«ã¯-15ã«è¨­å®ãããã¨ãæ¨å¥¨ããï¼ï¼
+ */
+#ifndef TIPM_LOCK
+#ifndef USE_SERIALDEBUG
+#define TIPM_LOCK	TMIN_INTPRI
+#else /* USE_SERIALDEBUG */
+/* CubeSuite+ ã§ RXã·ãªã¢ã«ãããã¬ãä½¿ç¨ããå ´åã¯éä¿¡ç¨CSIå²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨ãã */
+#define TIPM_LOCK	(TMIN_INTPRI + 1)
+#endif /* USE_SERIALDEBUG */
+#endif /* TIPM_LOCK */
+
+
+/*
+ *  TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®å®ç¾
+ */
+/*
+ *  ã³ã³ãã­ã¹ãã®åç
+§
+ *
+ *  RXã§ã¯ï¼å²è¾¼ã¿ã®æ»ãå
+ãã¿ã¹ã¯ãã©ãããå¤æ­ããããã« intnest
+ *  ãä½¿ç¨ãã¦ããï¼ãããç¨ãã¦ã³ã³ãã­ã¹ããå¤æ­ããï¼
+ */
+Inline bool_t
+sense_context( void )
+{
+	/*  ãã¹ãã«ã¦ã³ã¿0ããå¤§ãªãéã¿ã¹ã¯ã³ã³ãã­ã¹ã  */
+	return ( intnest > 0U );
+}
+
+
+/*
+ *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°
+ *
+ *  ãããã®å¤æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã®æã®ã¿æ¸ãæãã¦ãããã®ã¨ããï¼
+ */
+#if TIPM_LOCK != -15
+extern bool_t	lock_flag;		/* CPUã­ãã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */
+extern uint32_t	saved_ipl;		/* å²è¾¼ã¿åªå
+åº¦ã¬ãã«ãä¿å­ããå¤æ° */
+#endif	/* TIPM_LOCK != -15	*/
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤é¨è¡¨ç¾ã¨å
+é¨è¡¨ç¾ã®å¤æ
+ *
+ *  RX630ã§ã¯ï¼ãã­ã»ããµã¹ãã¼ã¿ã¹ã¯ã¼ãã¬ã¸ã¹ã¿ï¼PSWï¼ã®ä¸ãã
+ *  24ï½27ãããç®ã®4ãããã«å²è¾¼ã¿åªå
+åº¦ã¬ãã«ï¼IPLï¼ãç½®ããã¦ããï¼
+ *  ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãå®è£
+ããå ´åã«IPLãä½¿ç¨ããå¶å¾¡ãè¡ãï¼
+ *  ã«ã¼ãã«ã¯å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼-1ããé£ç¶ããè² ã®å¤ï¼ã§ç®¡çããã¦
+ *  ããããIPLã¨ã®å¤æãå¿
+è¦ã¨ãªãï¼
+ */
+#define IPL_TO_IPM( ipl )	(-(( PRI )(( ipl ) >> 24U )))		/* IPLãIPMã«	*/
+#define IPM_TO_IPL( ipm )	((( uint32_t )(-( ipm ))) << 24U )	/* IPMãIPLã«	*/
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®IPL
+ */
+#define IPL_LOCK		( IPM_TO_IPL( TIPM_LOCK ) )
+
+/*
+ *  TIPM_ENAALLï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ï¼ã®IPL
+ */
+#define IPL_ENAALL		( IPM_TO_IPL( TIPM_ENAALL ) )
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  å²è¾¼ã¿è¦å æ¯ã®ã¬ãã« & å±æ§å®ç¾©ãã¼ãã«
+ *  (ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããåºå)
+ */
+typedef struct cfg_int_info {
+	PRI		intpri;
+	ATR		intatr;
+} CFG_INT_INFO;
+
+extern const CFG_INT_INFO cfg_int_table[];
+
+
+/*
+ *  å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å®
+ *
+ *  å²è¾¼ã¿çªå·ãæå¹ãªå¤ãå³å¯ã«ãã§ãã¯ãããã,
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿åºåãã¼ãã«ãåç
+§ãã.
+ */
+#define VALID_INTNO( intno )	\
+ 				( cfg_int_table[( intno )].intpri > 0 )
+#define VALID_INTNO_DISINT( intno )	VALID_INTNO( intno )
+#define VALID_INTNO_CFGINT( intno )	VALID_INTNO( intno )
+
+/* cre_intã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®  */
+#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
+
+/* cre_isrã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®  */
+#define	VALID_INTNO_CREISR(intno)	VALID_INTNO_CFGINT((intno))
+
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿é¢é£ã®å®ç¾©
+ */
+#define	IRQ_POSEDGE			( 0x08U )
+#define	IRQ_NEGEDGE			( 0x04U )
+#define	IRQ_BOTHEDGE		( 0x0CU )
+#define	IRQ_LOWLEVEL		( 0x00U )
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã¸ã®ç§»è¡
+ *
+ *  IPMï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ãï¼saved_iipmã«ä¿å­ãï¼ã«ã¼
+ *  ãã«ç®¡çå¤ã®ãã®ãé¤ããã¹ã¦ã®å²è¾¼ã¿è¦æ±ããã¹ã¯ããå¤ï¼TIPM_LOCKï¼
+ *  ã«è¨­å®ããï¼ã¾ãï¼lock_flagãTRUEã«ããï¼
+ *
+ *  IPMãï¼æåããTIPM_LOCKã¨åããããããé«ãå ´åã«ã¯ï¼ããã
+ *  saved_iipmã«ä¿å­ããã®ã¿ã§ï¼TIPM_LOCKã«ã¯è¨­å®ããªãï¼ããã¯ï¼ã¢ãã«
+ *  ä¸ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼TIPM_LOCKã¨åããããããé«ãã¬ãã«ã«è¨­å®
+ *  ããã¦ããç¶æ
+ã«ãããï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ï¼lock_flagãTRUEã®ç¶æ
+ï¼ã§å¼ã°ãããã¨ã¯
+ *  ãªããã®ã¨æ³å®ãã¦ããï¼
+ */
+Inline void
+x_lock_cpu( void )
+{
+#if TIPM_LOCK == -15
+	disint();
+#else	/* TIPM_LOCK == -15	*/
+	uint32_t	ipl;
+
+	/*
+	 *  current_ipl()ã®è¿ãå¤ãç´æ¥saved_iplã«ä¿å­ããï¼ä¸æå¤æ°ipl
+	 *  ãç¨ãã¦ããã®ã¯ï¼current_ipl()ãå¼ãã ç´å¾ã«å²è¾¼ã¿ãçºçãï¼
+	 *  èµ·åãããå²è¾¼ã¿å¦çã§saved_iplãå¤æ´ãããå¯è½æ§ãããããã§
+	 *  ããï¼
+	 */
+	ipl = current_ipl();
+	if( IPL_LOCK > ipl ){
+		set_ipl( IPL_LOCK );
+	}
+
+	saved_ipl = ipl;
+	lock_flag = true;
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_lock_cpu()	x_lock_cpu()
+#define i_lock_cpu()	x_lock_cpu()
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®è§£é¤
+ *
+ *  lock_flagãFALSEã«ãï¼IPMï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ãï¼
+ *  saved_iipmã«ä¿å­ããå¤ã«æ»ãï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ï¼lock_flagãtrueã®ç¶æ
+ï¼ã§ã®ã¿å¼ã°ããã
+ *  ã®ã¨æ³å®ãã¦ããï¼
+ */
+Inline void
+x_unlock_cpu( void )
+{
+#if TIPM_LOCK == -15
+	enaint();
+#else	/* TIPM_LOCK == -15	*/
+	lock_flag = false;
+	set_ipl( saved_ipl );
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_unlock_cpu()	x_unlock_cpu()
+#define i_unlock_cpu()	x_unlock_cpu()
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®åç
+§
+ */
+Inline bool_t
+x_sense_lock( void )
+{
+#if TIPM_LOCK == -15
+	return (( bool_t )(( current_psw() & PSW_I_MASK) == 0 ));
+#else	/* TIPM_LOCK == -15	*/
+	return lock_flag;
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_sense_lock()	x_sense_lock()
+#define i_sense_lock()	x_sense_lock()
+
+
+/*
+ * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®è¨­å®
+ *
+ *  CPUã­ãã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ã
+ *  ã¹ã¯ãè¨­å®ããï¼CPUã­ãã¯ãã©ã°ãã»ããããã¦ããæã¯ï¼saved_iipm
+ *  ãè¨­å®ãï¼ããã«ï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼è¨­å®ãããã¨
+ *  ããï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã¨TIPM_LOCKã®é«ãæ¹ã«è¨­å®ããï¼
+ */
+Inline void
+x_set_ipm( PRI intpri )
+{
+	uint32_t	ipl = IPM_TO_IPL( intpri );
+#if TIPM_LOCK == -15
+	set_ipl(ipl);
+#else	/* TIPM_LOCK == -15	*/
+	if( !lock_flag ){
+		set_ipl(ipl);
+	}
+	else {
+		saved_ipl = ipl;
+		set_ipl(ipl > IPL_LOCK ? ipl : IPL_LOCK);
+    }
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_set_ipm( intpri )	x_set_ipm( intpri )
+#define i_set_ipm( intpri )	x_set_ipm( intpri )
+
+
+/*
+ * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®åç
+§
+ *
+ *  CPUã­ãã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ã
+ *  ã¹ã¯ãï¼ã»ããããã¦ããæã¯saved_iipmãåç
+§ããï¼
+ */
+Inline PRI
+x_get_ipm( void )
+{
+	uint32_t	ipl;
+#if TIPM_LOCK == -15
+	ipl = current_ipl();
+#else	/* TIPM_LOCK == -15	*/
+	if (!lock_flag) {
+		ipl = current_ipl();
+	}
+	else {
+		ipl = saved_ipl;
+	}
+#endif	/* TIPM_LOCK == -15	*/
+	return IPL_TO_IPM( ipl );
+}
+
+#define t_get_ipm()		x_get_ipm()
+#define i_get_ipm()		x_get_ipm()
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã»ãã
+ *
+ *  å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ­¢
+ *  ãã©ã°ãã»ãããããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼
+ */
+Inline bool_t
+x_disable_int( INTNO intno )
+{
+	/*
+	 *  ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã
+	 */
+	if( cfg_int_table[intno].intpri == 0 ){
+		return ( false );
+	}
+
+	*ier_reg_addr[intno].addr &= ( ~ier_reg_addr[intno].offset );
+
+	return ( true );
+}
+
+#define t_disable_int( intno )	x_disable_int( intno )
+#define i_disable_int( intno )	x_disable_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã¯ãªã¢
+ *
+ *  å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ­¢
+ *  ãã©ã°ãã¯ãªã¢ãããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼
+ */
+Inline bool_t
+x_enable_int( INTNO intno )
+{
+	/*
+	 *  ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã
+	 */
+	if( cfg_int_table[intno].intpri == 0 ){
+		return ( false );
+	}
+
+	*ier_reg_addr[intno].addr |= ier_reg_addr[intno].offset;
+
+	return ( true );
+}
+
+#define t_enable_int( intno )	x_enable_int( intno )
+#define i_enable_int( intno )	x_enable_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+ */
+Inline void
+x_clear_int( INTNO intno )
+{
+	*IR_REG(intno) = 0U;
+}
+
+#define t_clear_int( intno )	x_clear_int( intno )
+#define i_clear_int( intno )	x_clear_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã®ãã§ãã¯
+ */
+Inline bool_t
+x_probe_int( INTNO intno )
+{
+	/*
+	 *  å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¯0 or 1ã§ãããªããã,
+	 *  ãã®ã¾ã¾ã®å¤ãè¿ã.
+	 */
+	return ( *IR_REG(intno) );
+}
+
+#define t_probe_int( intno )	x_probe_int( intno )
+#define i_probe_int( intno )	x_probe_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+ */
+extern void	x_config_int( INTNO intno, ATR intatr, PRI intpri );
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®å
+¥å£ã§å¿
+è¦ãªIRCæä½
+ *
+ */
+Inline void
+i_begin_int( INTNO intno )
+{
+	/* ç¹ã«è¡ãã¹ãå¦çã¯ãªã */
+}
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿
+è¦ãªIRCæä½
+ *
+ */
+Inline void
+i_end_int( INTNO intno )
+{
+	/* ç¹ã«è¡ãã¹ãå¦çã¯ãªã */
+}
+
+
+/*
+ *  æé«åªå
+é ä½ã¿ã¹ã¯ã¸ã®ãã£ã¹ãããï¼prc_support.a30ï¼
+ *
+ *  dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã³åºããããµã¼ãã¹ã³ã¼ã«å¦çã
+ *  ãå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»ãã£ã¹ãã
+ *  ãè¨±å¯ç¶æ
+ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§å¼ã³åºããª
+ *  ããã°ãªããªãï¼
+ */
+extern void	dispatch( void );
+
+/*
+ *  ãã£ã¹ãããã£ã®åä½éå§ï¼prc_support.a30ï¼
+ *
+ *  start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼
+ *  ã¿ãç¦æ­¢ããç¶æ
+ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ã®ç¶æ
+ï¼ã§å¼ã³åºããªããã°
+ *  ãªããªãï¼
+ */
+extern void	start_dispatch( void ) NoReturn;
+
+/*
+ *  ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ãããï¼prc_support.a30ï¼
+ *
+ *  exit_and_dispatchã¯ï¼ext_tskããå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­
+ *  ã¹ãã»CPUã­ãã¯ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+
+ *  åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§å¼ã³åºããªããã°ãªããªãï¼
+ */
+#define _kernel_exit_and_dispatch();	\
+	_exit_and_dispatch();		\
+	ercd = E_SYS;
+
+extern void	_exit_and_dispatch( void ) NoReturn;
+
+/*
+ *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºãï¼prc_support.a30ï¼
+ *
+ *  call_exit_kernelã¯ï¼ã«ã¼ãã«ã®çµäºæã«å¼ã³åºãã¹ããã®ã§ï¼éã¿ã¹ã¯
+ *  ã³ã³ãã­ã¹ãã«åãæãã¦ï¼ã«ã¼ãã«ã®çµäºå¦çï¼exit_kernelï¼ãå¼ã³åº
+ *  ãï¼
+ */
+extern void call_exit_kernel( void ) NoReturn;
+
+/*
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®åæå
+ *
+ *  ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã«ç§»è¡ããæã«å¼ã°ããï¼ãã®æç¹
+ *  ã§ã¹ã¿ãã¯é åãä½¿ã£ã¦ã¯ãªããªãï¼
+ *
+ *  activate_contextãï¼ã¤ã³ã©ã¤ã³é¢æ°ã§ã¯ãªããã¯ã­å®ç¾©ã¨ãã¦ããã®ã¯ï¼
+ *  ãã®æç¹ã§ã¯TCBãå®ç¾©ããã¦ããªãããã§ããï¼
+ */
+extern void	start_r( void );
+
+#define activate_context( p_tcb )														\
+{																						\
+	{																					\
+																						\
+		/*  ã¹ã¿ãã¯ãã¤ã³ã¿åæå¤ã®è¨­å®  */											\
+		( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) + 	\
+								( p_tcb )->p_tinib->stksz );							\
+		/* èµ·åçªå°ã®è¨­å® */															\
+		( p_tcb )->tskctxb.pc = ( FP ) start_r;											\
+	}																					\
+}
+
+
+/*
+ *  calltexã¯ä½¿ç¨ããªã
+ */
+#define OMIT_CALLTEX
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®è¨­å®
+ *
+ *  RX630ã¯ROMã«å²è¾¼ã¿ãã¯ã¿ãé
+ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£
+ããï¼
+ */
+Inline void
+x_define_inh( INHNO inhno, FP inthdr )
+{
+}
+
+
+/*
+ *  CPUä¾å¤ãã³ãã©ã®è¨­å®
+ *
+ *  RX630ã¯ROMã«ä¾å¤ãã¯ã¿ãé
+ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£
+ããï¼
+ */
+Inline void
+x_define_exc( EXCNO excno, FP exchdr )
+{
+}
+
+
+/*
+ *  å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ *
+ *  ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããçæããããç©ºãã¯ã­ã¨ããï¼
+ */
+#define HDR_ENTRY(hdr, intexc_num , tobejmp)
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ */
+#define _INT_ENTRY(inhno, inthdr)				_kernel_##inthdr##_##inhno##_entry
+#define INT_ENTRY(inhno, inthdr)				_INT_ENTRY(inhno , inthdr)
+
+#define _INTHDR_ENTRY(inhno, inhno_num ,inthdr)	\
+		extern _kernel_##inthdr##_##inhno##_entry(void);
+#define INTHDR_ENTRY(inhno, inhno_num ,inthdr)	_INTHDR_ENTRY(inhno, inhno_num ,inthdr)
+
+
+/*
+ *  CPUä¾å¤ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ */
+#define _EXC_ENTRY(excno , exchdr)					_kernel_##exchdr##_##excno##_entry
+#define EXC_ENTRY(excno , exchdr)					_EXC_ENTRY(excno , exchdr)
+
+#define _EXCHDR_ENTRY(excno , excno_num , exchdr)	\
+		extern _kernel_##exchdr##_##excno##_entry(void);
+#define EXCHDR_ENTRY(excno , excno_num , exchdr)	_EXCHDR_ENTRY(excno , excno_num , exchdr)
+
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã®åç
+§
+ *
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®æã«FALSEï¼
+ *  ããã§ãªãæã«trueãè¿ãï¼
+ */
+Inline bool_t
+exc_sense_context( void *p_excinf )
+{
+	/* 
+	 *  ãã¹ãã«ã¦ã³ã¿ã1ããå¤§ãªãéã¿ã¹ã¯ã³ã³ãã­ã¹ã
+	 */
+	return( intnest > 1U );
+}
+
+
+/*
+ *  CPUä¾å¤æ
+å ± p_excinf ãã PSW ã®å¤ãåå¾ããããã®ãªãã»ããå¤
+ *  EXCNO + ACC + FPSW + R1ï½R15 + PC
+ */
+#define EXC_GET_PSW_OFFSET	(4+8+4+60+4)
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®IPLã®åç
+§
+ */
+Inline uint32_t
+exc_get_ipl(void *p_excinf)
+{
+	return((*((uint32_t *)((uintptr_t)p_excinf+EXC_GET_PSW_OFFSET)))
+			& PSW_IPL_MASK);
+}
+
+Inline bool_t
+exc_sense_i(void *p_excinf)
+{
+	return((*(((uint32_t *)((uintptr_t)p_excinf+EXC_GET_PSW_OFFSET)))
+			 & PSW_I_MASK) != 0u);
+}
+
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã¨å²è¾¼ã¿ã®ãã¹ã¯ç¶æ
+ã®åç
+§
+ *
+ *  CPUä¾å¤ã®çºçããæã®ã·ã¹ãã ç¶æ
+ãï¼ã«ã¼ãã«å®è¡ä¸­ã§ãªãï¼ã¿ã¹ã¯ã³
+ *  ã³ãã­ã¹ãã§ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ãªãï¼CPUã­ãã¯ç¶æ
+ã§ãªãï¼ï¼ã¢
+ *  ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããæã«trueï¼ããã§ãªãæ
+ *  ã«FALSEãè¿ãï¼CPUä¾å¤ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸­ã§çºçããå ´å
+ *  ã«ãFALSEãè¿ãï¼ï¼
+ *  
+ *  ã«ã¼ãã«å®è¡ä¸­ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã° == 1
+ *                         (else)           IPL < IPL_LOCK
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ããâintnest == 0
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ã§ãªãâ Iãã©ã° == 1
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤âIPL == 0
+ *  
+ *  
+ */
+Inline bool_t
+exc_sense_intmask(void *p_excinf)
+{
+	return((!exc_sense_context(p_excinf))
+			&& exc_sense_i(p_excinf)
+			&& (exc_get_ipl(p_excinf) == IPL_ENAALL));
+}
+
+/*
+ *  ãã­ã»ããµä¾å­ã®åæå
+ */
+extern void	prc_initialize( void );
+
+/*
+ *  ãã­ã»ããµä¾å­ã®çµäºæå¦ç
+ */
+extern void	prc_terminate( void );
+
+
+#ifndef OMIT_DEFAULT_INT_HANDLER
+/*
+ *  æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã
+ */
+void default_int_handler( void );
+#endif /* OMIT_DEFAULT_INT_HANDLER */
+
+#ifndef OMIT_DEFAULT_EXC_HANDLER
+/*
+ *  æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã
+ */
+void default_exc_handler( void );
+#endif /* OMIT_DEFAULT_EXC_HANDLER */
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_CONFIG_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_inline_symbols.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_inline_symbols.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_inline_symbols.h	(revision 313)
@@ -0,0 +1,95 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã³ã³ãã¤ã©ä¾å­å®ç¾©
+ */
+
+#ifndef PRC_INLINE_SYMBOL_H
+#define PRC_INLINE_SYMBOL_H
+
+#include "kernel_inline_symbols.h"
+
+/* prc_config.h	*/
+#pragma inline sense_context
+#pragma inline x_lock_cpu
+#pragma inline x_unlock_cpu
+#pragma inline x_sense_lock
+#pragma inline x_set_ipm
+#pragma inline x_get_ipm
+#pragma inline x_disable_int
+#pragma inline x_enable_int
+#pragma inline x_clear_int
+#pragma inline x_probe_int
+#pragma inline i_begin_int
+#pragma inline i_end_int
+#pragma inline x_define_inh
+#pragma inline x_define_exc
+#pragma inline exc_sense_context
+#pragma inline exc_get_ipl
+#pragma inline exc_sense_i
+#pragma inline exc_sense_intmask
+
+/* prc_insn.h	*/
+#pragma inline current_ipl
+#pragma inline set_ipl
+
+/* prc_sil.h	*/
+#pragma inline TOPPERS_disint
+#pragma inline TOPPERS_enaint
+
+#endif /* PRC_INLINE_SYMBOL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_insn.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_insn.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_insn.h	(revision 313)
@@ -0,0 +1,165 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã­ã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©
+ */
+
+#ifndef	TOPPERS_PRC_INSN_H
+#define	TOPPERS_PRC_INSN_H
+
+
+static uint32_t current_psw( void );
+static void set_psw( uint32_t psw );
+Inline uint32_t current_ipl( void );
+Inline void set_ipl( uint32_t ipl );
+static void disint( void );
+static void enaint( void );
+static uint16_t rev_endian_uint16( uint16_t data );
+static uint32_t rev_endian_uint32( uint32_t data );
+
+
+/*
+ *  Iãã©ã°, IPLãåå¾ããããã®ãã¯ã­å®ç¾©
+ */
+#define PSW_I_MASK		( 0x00010000UL )
+#define PSW_IPL_MASK	( 0x0F000000UL )
+
+
+/*
+ *  ãã­ã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã®ç¾å¨å¤ã®èª­åºã
+ */
+#pragma inline_asm	current_psw
+static uint32_t
+current_psw( void )
+{
+	mvfc	psw, r1
+}
+
+
+/*
+ *  ãã­ã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã¸è¨­å®
+ */
+#pragma inline_asm	set_psw
+static void
+set_psw( uint32_t psw )
+{
+	mvtc	r1, psw
+}
+
+
+/*
+ *  IPLã®ç¾å¨å¤ã®èª­åºã
+ */
+Inline uint32_t
+current_ipl( void )
+{
+	return ( uint32_t )( current_psw() & PSW_IPL_MASK );
+}
+
+
+/*
+ *  IPLã¸è¨­å®
+ */
+Inline void
+set_ipl( uint32_t ipl )
+{
+	set_psw( ( current_psw() & ( ~PSW_IPL_MASK ) ) | ipl );
+}
+
+
+/*
+ *  NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®ç¦æ­¢
+ */
+#pragma inline_asm	disint
+static void
+disint( void )
+{
+	clrpsw	i
+}
+
+
+/*
+ *  NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®è¨±å¯
+ */
+#pragma inline_asm	enaint
+static void
+enaint( void )
+{
+	setpsw	i
+}
+
+
+/*
+ *  ã¨ã³ãã£ã¢ã³å¤æ 16bit
+ */
+#pragma inline_asm	rev_endian_uint16
+static uint16_t
+rev_endian_uint16( uint16_t data )
+{
+	revw	r1, r1
+}
+
+/*
+ *  ã¨ã³ãã£ã¢ã³å¤æ 32bit
+ */
+#pragma inline_asm	rev_endian_uint32
+static uint32_t
+rev_endian_uint32( uint32_t data )
+{
+	revl	r1, r1
+}
+
+
+#endif /* TOPPERS_PRC_INSN_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.h	(revision 313)
@@ -0,0 +1,119 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		kernel.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_KERNEL_H
+#define TOPPERS_PRC_KERNEL_H
+
+/*
+ *  ã«ã¼ãã«æ¬ä½ãã³ã³ãã¤ã«ããããã®ãã¯ã­å®ç¾©
+ *
+ *  æ¬ç°å¢ã§ã¯1é¢æ°ã1ãªãã¸ã§ã¯ããã¡ã¤ã«ã«ã³ã³ãã¤ã«ãããã¨ãã§ããªãããï¼
+ *  ALLFUNCãã¯ã­ãå®ç¾©ããï¼
+ */
+#define ALLFUNC
+
+
+/*
+ *  ãµãã¼ãããæ©è½ã®å®ç¾©
+ */
+#define TOPPERS_TARGET_SUPPORT_DIS_INT		/* dis_intããµãã¼ããã */
+#define TOPPERS_TARGET_SUPPORT_ENA_INT		/* ena_intããµãã¼ããã */
+
+
+/*
+ *  ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå
+åº¦ã®ç¯å²
+ *
+ *  TMIN_INTPRIã®å®ç¾©ãå¤æ´ãããã¨ã§ï¼ã©ã®ã¬ãã«ãããé«ãå²è¾¼ã¿åªå
+åº¦
+ *  ãæã¤ãã®ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ããããå¤æ´ã§ããï¼
+ *
+ *  TMIN_INTPRIã«è¨­å®ã§ããå¤ã¯ï¼-15ï½-1ã®ç¯å²ã§ããï¼ä¾ãã°TMIN_INTPRI
+ *  ã-14ã«è¨­å®ããã¨ï¼NMIã«å ãã¦ã¬ãã«7ã®å²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨ãªãï¼
+ *  TMIN_INTPRIã-15ã«è¨­å®ããã¨ï¼NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã
+ *  è¨­ããªããã¨ã«ãªãï¼
+ */
+#ifndef TMIN_INTPRI
+#define TMIN_INTPRI		( -15 )		/* å²è¾¼ã¿åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
+#endif /* TMIN_INTPRI */
+#define TMAX_INTPRI		( -1 )		/* å²è¾¼ã¿åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼ */
+
+
+/*
+ *  å²è¾¼ã¿å±æ§ã®å®ç¾©
+ */
+#define	TA_POSEDGE		TA_EDGE			/* ãã¸ãã£ãã¨ãã¸ããªã¬ */
+#define	TA_NEGEDGE		UINT_C( 0x04 )	/* ãã¬ãã£ãã¨ãã¸ããªã¬ */
+#define	TA_BOTHEDGE		UINT_C( 0x08 )	/* ä¸¡ã¨ãã¸ããªã¬ */
+
+#define	TA_LOWLEVEL		UINT_C( 0x10 )	/* Lã¬ãã« */
+
+
+/*
+ *  ããã©ã«ãã®å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®æç¡
+ */
+/*#define	OMIT_DEFAULT_INT_HANDLER*/
+/*#define	OMIT_DEFAULT_EXC_HANDLER*/
+
+
+#endif /* TOPPERS_PRC_KERNEL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_kernel.trb	(revision 313)
@@ -0,0 +1,381 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+# 
+
+#
+#		ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼RXç¨ï¼
+#
+
+# 
+#  å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å®ç¾©
+# 
+#  RX630ã§ã¯å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã1å¯¾1ã§å¯¾å¿ããï¼
+# 
+$INTNO_VALID = [ 16, 21, 23, *(27..59), 62, *(64..79), 90, 91, 92, 93, 98, 102, *(106..112), 114, *(122..167), *(170..203), *(214..253) ]
+$INHNO_VALID = $INTNO_VALID
+
+# 
+#  ä¾å¤çªå·ã®å®ç¾©
+# 
+#  åºå®ãã¯ã¿ãã¼ãã«ã®ãã¯ã¿ãã¼ãã«ã¢ãã¬ã¹ã®å°ããé çªã«ä¾å¤çªå·ãå²æ¯ãï¼
+#  (äºç´é åãå«ã)
+# 
+
+$EXCNO_VALID = [ 20, 23, 25, 30 ]
+
+# 
+#  INTå²è¾¼ã¿ã®çªå·
+# 
+
+$INTNO_INT = [ *(64..79) ]
+
+# 
+#  å²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ä¾å¤çªå·ã®ç¯å²
+# 
+# (äºç´é åãå«ã)
+# 
+
+$INTNO_RANGE = [ *(0..255) ]
+$INHNO_RANGE = $INTNO_RANGE
+$EXCNO_RANGE = [ *(0..31)  ]
+
+# 
+#  ATT_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·
+# 
+
+$INTNO_ATTISR_VALID = $INTNO_VALID
+$INHNO_ATTISR_VALID = $INHNO_VALID
+
+
+# 
+#  DEF_INTï¼DEF_EXCã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·
+# 
+
+$INHNO_DEFINH_VALID = $INHNO_VALID
+$EXCNO_DEFEXC_VALID = $EXCNO_VALID
+
+
+# 
+#  CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨å²è¾¼ã¿åªå
+åº¦
+# 
+
+$INTNO_CFGINT_VALID = $INHNO_VALID
+$INTPRI_CFGINT_VALID = [ *(-7..-1) ]
+
+
+# 
+#  ã¿ã¼ã²ããéä¾å­é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½/ä¾å¤ç®¡çæ©è½ã®åæåå¦çãä½¿ç¨ãã
+# 
+
+$OMIT_INITIALIZE_INTERRUPT = false
+$OMIT_INITIALIZE_EXCEPTION = false
+
+
+# 
+#  ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®
+# 
+
+$CHECK_STKSZ_ALIGN = 4
+
+
+# 
+#  ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤
+# 
+#  ã¿ã¹ã¯èµ·åæã«4byte,
+#  å²è¾¼ã¿å
+¥å£å¦çã«ã¦48byte, CPUä¾å¤å
+¥å£å¦çã«ã¦84byte,
+#  ã§ãããã, æå°å¤ã¯88byteã¨ãã.
+# 
+
+$TARGET_MIN_STKSZ = 88
+
+# 
+#  å®æ°å®ç¾©
+# 
+
+$TA_POSEDGE = $TA_EDGE
+
+#
+#  ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§
+#
+$TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL
+
+# 
+# ã¿ã¼ã²ããä¾å­ã®å²è¾¼ã¿ãã³ãã©å±æ§ã®å®ç¾©
+# 
+
+$TARGET_INHATR = $TA_NONKERNEL
+
+
+# 
+# ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãã³ãã©ã¯åºå®ãããªããã,
+# INTNO_FIX_KERNEL
+# INHNO_FIX_KERNEL
+# INHNO_FIX_NONKERNEL
+# INHNO_FIX_NONKERNEL
+# ãå®ç¾©ããªã.
+# 
+
+$USE_INHINIB_TABLE = true
+$USE_INTINIB_TABLE = true
+
+#
+#  æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/kernel.trb")
+
+#
+#  å²è¾¼ã¿çªå·ããå²è¾¼ã¿åªå
+åº¦åã³å±æ§ãåãåºããã¼ãã«
+#
+$kernelCfgC.comment_header("Interrupt Level and Attribute Table")
+
+$kernelCfgC.add("const CFG_INT_INFO _kernel_cfg_int_table[#{$INTNO_RANGE.length}] = {")
+$INTNO_RANGE.each do |intnoVal|
+  if $cfgData[:CFG_INT].has_key?(intnoVal)
+    $kernelCfgC.append("\t{ #{-$cfgData[:CFG_INT][intnoVal][:intpri].val}, #{$cfgData[:CFG_INT][intnoVal][:intatr]} }")
+  else
+    $kernelCfgC.append("\t{  0, 0xFFFFFFFF }")
+  end
+  $kernelCfgC.append(",") if intnoVal < ($INTNO_RANGE.length - 1)
+  $kernelCfgC.add("\t/* #{sprintf("%02u", intnoVal)} */ ")
+end
+$kernelCfgC.add2("};")
+
+$kernelCfgAsm = GenFile.new("kernel_cfg_asm.src")
+
+#
+#  å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©
+#
+$kernelCfgAsm.add(<<EOS)
+;
+;  RX630ã¢ã¼ã­ãã¯ãã£ä¾å­åºåãã¡ã¤ã«
+;
+;  å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©
+;
+
+
+	.section P, CODE
+	.glb	_kernel_interrupt
+	.glb	__kernel_default_int_handler
+	.glb	__kernel_default_exc_handler
+EOS
+
+$INHNO_RANGE.each do |inhnoVal|
+  if $cfgData[:DEF_INH].has_key?(inhnoVal)
+    $kernelCfgAsm.add(<<EOS)
+	.glb	_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}
+	.glb	__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry
+__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry:
+	pushm	r1-r5
+	mov.l	\##{inhnoVal}, r1
+	mov.l	\#_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}, r2
+	bra.a	_kernel_interrupt
+EOS
+    $kernelCfgAsm.add
+  end
+end
+
+$kernelCfgAsm.add(<<EOS)
+	.glb	__kernel_default_int_handler_entry
+__kernel_default_int_handler_entry:
+	pushm	r1-r5
+	mov.l	\#0FFFFFFFFH, r1
+	mov.l	\#__kernel_default_int_handler, r2
+	bra.a	_kernel_interrupt
+
+	.glb	__kernel_break_int_handler_entry
+__kernel_break_int_handler_entry:
+	rts
+EOS
+$kernelCfgAsm.add
+
+$kernelCfgAsm.add(<<EOS)
+	.glb	_kernel_exception
+EOS
+
+$EXCNO_VALID.each do |excnoVal|
+  if $cfgData[:DEF_EXC].has_key?(excnoVal)
+    $kernelCfgAsm.add(<<EOS)
+	.glb	_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}
+	.glb	__kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry
+__kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry:
+	pushm	r1-r5
+	mov.l	\##{excnoVal}, r1
+	mov.l	\#_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}, r2
+	bra.a	_kernel_exception
+EOS
+    $kernelCfgAsm.add
+  end
+end
+
+$kernelCfgAsm.add(<<EOS)
+	.glb	__kernel_default_exc_handler_entry
+__kernel_default_exc_handler_entry:
+	pushm	r1-r5
+	mov.l	\#0FFFFFFFFH, r1
+	mov.l	\#__kernel_default_exc_handler, r2
+	bra.a	_kernel_exception
+EOS
+$kernelCfgAsm.add
+
+$kernelCfgAsm.append(<<EOS)
+;
+;  å¯å¤ãã¯ã¿ãã¼ãã«
+;
+
+	.glb	_start
+
+	.glb	_vvector_table
+
+
+	.section C$VECT, ROMDATA
+	.glb	VVECTOR_TOP
+VVECTOR_TOP:
+_vvector_table:
+EOS
+
+$INHNO_RANGE.each do |inhnoVal|
+  if $cfgData[:DEF_INH].has_key?(inhnoVal)
+    $kernelCfgAsm.append("	.lword	__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry")
+  elsif inhnoVal != 0
+    $kernelCfgAsm.append("	.lword	__kernel_default_int_handler_entry")
+  else
+    $kernelCfgAsm.append("	.lword	__kernel_break_int_handler_entry")
+  end
+  $kernelCfgAsm.add("		; #{sprintf("%02d", inhnoVal)} ")
+end
+
+$kernelCfgAsm.add2
+
+$kernelCfgAsm.append(<<EOS)
+;
+;  åºå®ãã¯ã¿ãã¼ãã«
+;
+
+	.glb	_fvector_table
+
+	.section FVECT, ROMDATA
+
+_fvector_table:
+	.lword	0FFFFFFFFH 	 ; Endian Select Register (little)
+	.lword	0H
+	.lword	0FFFFFFFFH 	 ; OFS1
+	.lword	0FFFFFFFFH 	 ; OFS0
+	.lword	0H
+	.lword	0H
+	.lword	0H
+	.lword	0H
+	.lword	0FFFFFFFFH 	 ; å¶å¾¡ã³ã¼ã, IDã³ã¼ã1 - 3
+	.lword	0FFFFFFFFH 	 ; IDã³ã¼ã4 - 7
+	.lword	0FFFFFFFFH 	 ; IDã³ã¼ã8 - 11
+	.lword	0FFFFFFFFH 	 ; IDã³ã¼ã12 - 15
+EOS
+(12..30).each do |excnoVal|
+  if $cfgData[:DEF_EXC].has_key?(excnoVal)
+    $kernelCfgAsm.append("	.lword	__kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry")
+  elsif $EXCNO_VALID.include?(excnoVal)
+    $kernelCfgAsm.append("	.lword	__kernel_default_exc_handler_entry")
+  else
+    $kernelCfgAsm.append("	.lword	0H")
+  end
+  $kernelCfgAsm.add("		; #{excnoVal} ")
+end
+
+$kernelCfgAsm.add("	.lword	 _start		; 31:Reset")
+$kernelCfgAsm.add2(".end")
+
+#
+#  å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾å­ã®ã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:CFG_INT].each do |key, params|
+  # IRQå²è¾¼ã¿çªå·ãã©ããããã§ãã¯
+  if $INTNO_INT.include?(key)
+    # TA_POSEDGEã¨TA_NEGEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_POSEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_POSEDGEã¨TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+  else
+    # IRQå²è¾¼ã¿ä»¥å¤ã®å²è¾¼ã¿ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãæå®ããã¦ããå ´å
+    if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+  end
+end
+
+$asmConfig = GenFile.new("asm_config.inc")
+
+$asmConfig.add(<<EOS)
+	TIPM_LOCK			.equ	#{$TIPM_LOCK}
+	IPL_LOCK			.equ	#{$IPL_LOCK}
+	PSW_I_MASK			.equ	#{$PSW_I_MASK}
+	PSW_IPL_MASK		.equ	#{$PSW_IPL_MASK}
+	EXC_GET_PSW_OFFSET	.equ	#{$EXC_GET_PSW_OFFSET}
+EOS
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_offset.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_offset.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_offset.trb	(revision 313)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+#
+#		ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼
+#
+#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
+#
+
+#
+#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/genoffset.trb")
+
+#
+#  ãã£ã¼ã«ãã®ãªãã»ããã®å®ç¾©ã®çæ
+#
+GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
+GenerateDefine("TCB_texptn", $offsetof_TCB_texptn)
+GenerateDefine("TCB_sp", $offsetof_TCB_sp)
+GenerateDefine("TCB_pc", $offsetof_TCB_pc)
+GenerateDefine("TINIB_exinf", $offsetof_TINIB_exinf)
+GenerateDefine("TINIB_task", $offsetof_TINIB_task)
+GenerateDefine("TINIB_stksz", $offsetof_TINIB_stksz)
+GenerateDefine("TINIB_stk", $offsetof_TINIB_stk)
+GenerateDefineBit("TCB_enatex", $sizeof_TCB, "B")
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.def	(revision 313)
@@ -0,0 +1,27 @@
+# prc_config.c
+intnest
+lock_flag
+saved_ipl
+prc_initialize
+prc_terminate
+x_config_int
+default_int_handler
+default_exc_handler
+
+# prc_support.src
+dispatch
+start_dispatch
+exit_and_dispatch
+call_exit_kernel
+start_r
+interrupt
+exception
+
+# rx630_config.c
+ipr_reg_addr
+ier_reg_addr
+ir_reg_addr
+irqcr_reg_addr
+
+# kernel_cfg.c
+cfg_int_table
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_rename.h	(revision 313)
@@ -0,0 +1,84 @@
+/* This file is generated from prc_rename.def by genrename. */
+
+#ifndef TOPPERS_PRC_RENAME_H
+#define TOPPERS_PRC_RENAME_H
+
+/*
+ *  prc_config.c
+ */
+#define intnest						_kernel_intnest
+#define lock_flag					_kernel_lock_flag
+#define saved_ipl					_kernel_saved_ipl
+#define prc_initialize				_kernel_prc_initialize
+#define prc_terminate				_kernel_prc_terminate
+#define x_config_int				_kernel_x_config_int
+#define default_int_handler			_kernel_default_int_handler
+#define default_exc_handler			_kernel_default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#define dispatch					_kernel_dispatch
+#define start_dispatch				_kernel_start_dispatch
+#define exit_and_dispatch			_kernel_exit_and_dispatch
+#define call_exit_kernel			_kernel_call_exit_kernel
+#define start_r						_kernel_start_r
+#define interrupt					_kernel_interrupt
+#define exception					_kernel_exception
+
+/*
+ *  rx630_config.c
+ */
+#define ipr_reg_addr				_kernel_ipr_reg_addr
+#define ier_reg_addr				_kernel_ier_reg_addr
+#define ir_reg_addr					_kernel_ir_reg_addr
+#define irqcr_reg_addr				_kernel_irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#define cfg_int_table				_kernel_cfg_int_table
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  prc_config.c
+ */
+#define _intnest					__kernel_intnest
+#define _lock_flag					__kernel_lock_flag
+#define _saved_ipl					__kernel_saved_ipl
+#define _prc_initialize				__kernel_prc_initialize
+#define _prc_terminate				__kernel_prc_terminate
+#define _x_config_int				__kernel_x_config_int
+#define _default_int_handler		__kernel_default_int_handler
+#define _default_exc_handler		__kernel_default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#define _dispatch					__kernel_dispatch
+#define _start_dispatch				__kernel_start_dispatch
+#define _exit_and_dispatch			__kernel_exit_and_dispatch
+#define _call_exit_kernel			__kernel_call_exit_kernel
+#define _start_r					__kernel_start_r
+#define _interrupt					__kernel_interrupt
+#define _exception					__kernel_exception
+
+
+/*
+ *  rx630_config.c
+ */
+#define _ipr_reg_addr				__kernel_ipr_reg_addr
+#define _ier_reg_addr				__kernel_ier_reg_addr
+#define _ir_reg_addr				__kernel_ir_reg_addr
+#define _irqcr_reg_addr				__kernel_irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#define _cfg_int_table				__kernel_cfg_int_table
+
+#endif /* TOPPERS_LABEL_ASM */
+
+
+#endif /* TOPPERS_PRC_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sil.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sil.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sil.h	(revision 313)
@@ -0,0 +1,313 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		sil.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_SIL_H
+#define TOPPERS_PRC_SIL_H
+
+
+#ifndef TOPPERS_MACRO_ONLY
+#include "prc_insn.h"
+
+
+/*
+ *  å
+¨å²è¾¼ã¿ç¦æ­¢
+ */
+Inline uint32_t
+TOPPERS_disint( void )
+{
+	volatile uint32_t	TOPPERS_psw;
+
+	TOPPERS_psw = current_psw();
+	disint();
+
+	return( TOPPERS_psw );
+}
+
+
+/*
+ *  å
+¨å²è¾¼ã¿è¨±å¯
+ */
+Inline void
+TOPPERS_enaint( uint32_t TOPPERS_psw )
+{
+	if( TOPPERS_psw & PSW_I_MASK ){
+		enaint();
+	}
+}
+
+
+/*
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®å¶å¾¡
+ */
+#define SIL_PRE_LOC		uint32_t TOPPERS_i_psw;
+#define SIL_LOC_INT()	( ( void )( TOPPERS_i_psw = TOPPERS_disint() ) )
+#define SIL_UNL_INT()	( TOPPERS_enaint( TOPPERS_i_psw ) )
+
+
+/*
+ *  ã¨ã³ãã£ã¢ã³ã®åè»¢
+ *
+ *  æ¬éçºç°å¢ã§ã¯ã¨ã³ãã£ã¢ã³å¤æå½ä»¤ãå­å¨ãããã,
+ *  ã¢ã¼ã­ãã¯ãã£ä¾å­é¨ã«ã¦ãã¯ã­ãä¸æ¸ããã.
+ */
+#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )	\
+ 								rev_endian_uint16( data )
+#define TOPPERS_SIL_REV_ENDIAN_UINT32( data )	\
+ 								rev_endian_uint32( data )
+
+
+/*
+ *  å¾®å°æéå¾
+ã¡
+ */
+extern void sil_dly_nse( ulong_t dlytim );
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³
+ */
+#define SIL_ENDIAN_LITTLE			/* ãªãã«ã¨ã³ãã£ã¢ã³ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+ */
+#define TOPPERS_OMIT_SIL_ACCESS
+
+/*
+ *  8ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+#ifdef UINT8_MAX
+
+Inline uint8_t
+sil_reb_mem(const volatile __evenaccess uint8_t *mem)
+{
+	uint8_t	data;
+
+	data = *((const volatile __evenaccess uint8_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrb_mem(volatile __evenaccess uint8_t *mem, uint8_t data)
+{
+	*((volatile __evenaccess uint8_t *) mem) = data;
+}
+
+#endif /* UINT8_MAX */
+
+/*
+ *  16ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint16_t
+sil_reh_mem(const volatile __evenaccess uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile __evenaccess uint16_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrh_mem(volatile __evenaccess uint16_t *mem, uint16_t data)
+{
+	*((volatile __evenaccess uint16_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_bem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_bem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_LEM
+
+Inline uint16_t
+sil_reh_lem(const volatile __evenaccess uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile __evenaccess uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_LEM
+
+Inline void
+sil_wrh_lem(volatile __evenaccess uint16_t *mem, uint16_t data)
+{
+	*((volatile __evenaccess uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
+#else /* SIL_ENDIAN_BIG */
+#ifdef SIL_ENDIAN_LITTLE		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_lem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_lem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_BEM
+
+Inline uint16_t
+sil_reh_bem(const volatile __evenaccess uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile __evenaccess uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_BEM
+
+Inline void
+sil_wrh_bem(volatile __evenaccess uint16_t *mem, uint16_t data)
+{
+	*((volatile __evenaccess uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_BEM */
+#else /* SIL_ENDIAN_LITTLE */
+
+#error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined.
+
+#endif /* SIL_ENDIAN_LITTLE */
+#endif /* SIL_ENDIAN_BIG */
+
+/*
+ *  32ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint32_t
+sil_rew_mem(const volatile __evenaccess uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile __evenaccess uint32_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrw_mem(volatile __evenaccess uint32_t *mem, uint32_t data)
+{
+	*((volatile __evenaccess uint32_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_bem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_bem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_LEM
+
+Inline uint32_t
+sil_rew_lem(const volatile __evenaccess uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile __evenaccess uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_LEM
+
+Inline void
+sil_wrw_lem(volatile __evenaccess uint32_t *mem, uint32_t data)
+{
+	*((volatile __evenaccess uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
+#else /* SIL_ENDIAN_BIG */		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_lem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_lem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_BEM
+
+Inline uint32_t
+sil_rew_bem(const volatile __evenaccess uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile __evenaccess uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_BEM
+
+Inline void
+sil_wrw_bem(volatile __evenaccess uint32_t *mem, uint32_t data)
+{
+	*((volatile __evenaccess uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_BEM */
+#endif /* SIL_ENDIAN_BIG */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_SIL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_stddef.h	(revision 313)
@@ -0,0 +1,69 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		t_stddef.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_STDDEF_H
+#define TOPPERS_PRC_STDDEF_H
+
+/*
+ *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ */
+#define TOPPERS_RX630				/* ãã­ã»ããµç¥ç§° */
+
+#endif /* TOPPERS_PRC_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_support.src
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_support.src	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_support.src	(revision 313)
@@ -0,0 +1,985 @@
+; 
+;   TOPPERS/ASP Kernel
+;       Toyohashi Open Platform for Embedded Real-Time Systems/
+;       Advanced Standard Profile Kernel
+;  
+;   Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+;                               Toyohashi Univ. of Technology, JAPAN
+;   Copyright (C) 2007      by Embedded and Real-Time Systems Laboratory
+;               Graduate School of Information Science, Nagoya Univ., JAPAN
+;   Copyright (C) 2010 by Witz Corporation, JAPAN
+;   Copyright (C) 2013      by Mitsuhiro Matsuura
+;
+;   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+;   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+;   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+;       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+;       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+;       ã¨ï¼
+;     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+;         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+;         å ±åãããã¨ï¼
+;   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+;       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+;       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+;       å
+è²¬ãããã¨ï¼
+;  
+;   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+;   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+;   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+;   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+;   ã®è²¬ä»»ãè² ããªãï¼
+;  
+;
+
+;
+;  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã« ã¢ã»ã³ããªè¨èªé¨ï¼RXç¨ï¼
+;
+
+;
+;  ãã£ã¹ãããã£ããã³å²è¾¼ã¿(CPUä¾å¤)åºå
+¥ãå£ã®ã«ã¼ã«:
+;	åä½ã¢ã¼ããä»¥ä¸ã®ããã«å®ç¾©ãã.
+;		ãã£ã¹ãããã£ã¢ã¼ã:
+;			CPUã­ãã¯ç¶æ
+, å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+,
+;			ã¿ã¹ã¯ã³ã³ãã­ã¹ã(intnest = 0), ã¿ã¹ã¯ã¹ã¿ãã¯
+;		å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ã
+;			å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0),
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+(IPL != 0)
+;			å²è¾¼ã¿ã³ã³ãã­ã¹ã(intnest != 0), å²è¾¼ã¿ã¹ã¿ãã¯
+;
+;	ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ã®ãµãã¼ãæç¡ã¨, CPUã­ãã¯ç¶æ
+, å²è¾¼ã¿åªå
+åº¦
+;	ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã®é¢ä¿ã¯ä»¥ä¸ã®éãã§ãã.
+;		ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿æªãµãã¼ãæ:
+;			CPUã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0)
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+(IPL = 0)
+;		ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãµãã¼ãæ:
+;			CPUã­ãã¯ç¶æ
+
+;				(PSWã¬ã¸ã¹ã¿Iããã = 0, IPL = IPL_LOCK, lock_flag = true)
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+(saved_ipl = 0)
+;
+;	åæ§é ä½ãã¤ã³ã¿ãä»¥ä¸ã®ããã«åã¬ã¸ã¹ã¿ã«ã¢ãµã¤ã³ãã.
+;		r15 = p_runtsk	ãã ããã£ã¹ãããã£ã®ååºå£ã§ã¯ç¡å¹
+;		r14 = *p_runtsk	dispatcher ã®ä¸­ã§ã¯ p_runtsk ç¢ºå®æã«ååå¾ãã
+;	åå
+¥ãå£ããæåã«å¤æ°ã¢ã¯ã»ã¹ããã¨ãã«ä¸è¨ã¬ã¸ã¹ã¿ã«ä¿å­ãã.
+;
+;	æ§é ä½ã¢ã©ã¤ã¡ã³ãã¸ã®å¯¾å¿
+;		æ§é ä½ã¢ã©ã¤ã¡ã³ãã4Byte(ã¢ã³ããã¯)ã®å ´å:
+;			ä¸è¬çãªã¬ã¸ã¹ã¿ç¸å¯¾ã¢ãã¬ãã·ã³ã°ãå¯è½
+;				ä¾:	mov.l	#__kernel_p_runtsk, r15
+;					mov.l  	r0, TCB_sp[r15]
+;		æ§é ä½ã¢ã©ã¤ã¡ã³ãã4Byteã§ã¯ãªã(ããã¯)ã®å ´å:
+;			mov.lã®ããã«ã­ã³ã°ãµã¤ãºæå®ã®å ´åãç¸å¯¾å¤ã¯4ã®åæ°ã®ã¿æå¹
+;			ãã®ãã, ä¸åº¦å¯¾è±¡ã¢ãã¬ã¹ãæ±ãã¦ããã¢ã¯ã»ã¹ããå¿
+è¦ããã
+;				ä¾:	mov.l	#__kernel_p_runtsk, r15
+;					add		#TCB_sp, r15, r5
+;					mov.l  	r0, [r5]
+;		åãªãã»ããå¤ãå¤æ­ã, æ¡ä»¶ã¢ã»ã³ãã«ã«ããã³ã¼ããåãæ¿ãã
+;
+
+;
+;  æ§é ä½ã¢ã¯ã»ã¹ã®ãªãã»ããå®ç¾©
+;
+	.include	offset.inc
+
+;
+;  åç¨®EQUå®ç¾©(Hãã¡ã¤ã«ã®#defineå®ç¾©)
+;
+	.include	asm_config.inc
+
+	.glb	__kernel_istkpt
+	
+	.glb	__kernel_p_runtsk
+	.glb	__kernel_p_schedtsk
+	.glb	__kernel_reqflg
+	.glb	__kernel_dspflg
+
+	.glb	__kernel_dispatch
+	.glb	__exit_and_dispatch
+	.glb	__kernel_start_r
+	.glb	__kernel_call_texrtn
+	.glb	_kernel_interrupt
+	.glb	_kernel_exception
+	.glb	__kernel_intnest
+	.glb	__kernel_call_exit_kernel
+	.glb	__kernel_start_dispatch
+
+	.glb	_ext_tsk
+	.glb	__kernel_exit_kernel
+
+.if	TIPM_LOCK != -15
+	.glb	__kernel_lock_flag
+	.glb	__kernel_saved_ipl
+.endif
+
+	.glb	__kernel_break_wait
+	.glb	_sil_dly_nse
+
+.if LOG_INH_ENTER == 1
+	.glb	_kernel_log_inh_enter
+.endif	; LOG_INH_ENTER == 1
+.if LOG_INH_LEAVE == 1
+	.glb	_kernel_log_inh_leave
+.endif	; LOG_INH_LEAVE == 1
+.if LOG_EXC_ENTER == 1
+	.glb	_kernel_log_exc_enter
+.endif	; LOG_EXC_ENTER == 1
+.if LOG_EXC_LEAVE == 1
+	.glb	_kernel_log_exc_leave
+.endif	; LOG_EXC_LEAVE == 1
+.if LOG_DSP_ENTER == 1
+	.glb	_kernel_log_dsp_enter
+.endif	; LOG_DSP_ENTER == 1
+.if LOG_DSP_LEAVE == 1
+	.glb	_kernel_log_dsp_leave
+.endif	; LOG_DSP_LEAVE == 1
+
+;
+;  TCB_sp ã¸ã®æ¸è¾¼ã¿ãã¯ã­
+;
+st_TCB_sp	.macro	src, tcb, tmp
+.if (TCB_sp % 4) == 0
+	mov.l	src, TCB_sp[tcb]
+.else
+	add		#TCB_sp, tcb, tmp
+	mov.l	src, [tmp]
+.endif
+.endm
+
+;
+;  TCB_sp ããã®èª­åºããã¯ã­
+;
+ld_TCB_sp	.macro	dst, tcb, tmp
+.if (TCB_sp % 4) == 0
+	mov.l	TCB_sp[tcb], dst
+.else
+	add		#TCB_sp, tcb, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+;
+;  TCB_pc ã¸ã®æ¸è¾¼ã¿ãã¯ã­
+;
+st_TCB_pc	.macro	src, tcb, tmp
+.if (TCB_pc % 4) == 0
+	mov.l	src, TCB_pc[tcb]
+.else
+	add		#TCB_pc, tcb, tmp
+	mov.l	src, [tmp]
+.endif
+.endm
+
+;
+;  TCB_pc ããã®èª­åºããã¯ã­
+;
+ld_TCB_pc	.macro	dst, tcb, tmp
+.if (TCB_pc % 4) == 0
+	mov.l	TCB_pc[tcb], dst
+.else
+	add		#TCB_pc, tcb, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+;
+;  TCB_texptn ããã®èª­åºããã¯ã­
+;
+ld_TCB_texptn	.macro	dst, tcb, tmp
+.if (TCB_texptn % 4) == 0
+	mov.l	TCB_texptn[tcb], dst
+.else
+	add		#TCB_texptn, tcb, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+;
+;  TCB_p_tinib ããã®èª­åºããã¯ã­
+;
+ld_TCB_p_tinib	.macro	dst, tcb, tmp
+.if (TCB_p_tinib % 4) == 0
+	mov.l	TCB_p_tinib[tcb], dst
+.else
+	add		#TCB_p_tinib, tcb, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+;
+;  TINIB_exinf ããã®èª­åºããã¯ã­
+;
+ld_TINIB_exinf	.macro	dst, tinib, tmp
+.if (TINIB_exinf % 4) == 0
+	mov.l	TINIB_exinf[tinib], dst
+.else
+	add		#TINIB_exinf, tinib, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+;
+;  TINIB_task ããã®èª­åºããã¯ã­
+;
+ld_TINIB_task	.macro	dst, tinib, tmp
+.if (TINIB_task % 4) == 0
+	mov.l	TINIB_task[tinib], dst
+.else
+	add		#TINIB_task, tinib, tmp
+	mov.l	[tmp], dst
+.endif
+.endm
+
+
+	.section	P, CODE
+
+;
+;  APIããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã³ã³ãã­ã¹ãã®éé¿ã¨, å®è¡åéçªå°ã®è¨­å®ããã.
+;
+__kernel_dispatch:
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	mov.l	#__kernel_p_runtsk, r15
+	mov.l	[r15], r14
+	st_TCB_sp	r0, r14, r5				; ã¹ã¿ãã¯ãã¤ã³ã¿ãTCBã«ä¿å­
+	st_TCB_pc	#dispatch_r, r14, r5	; å®è¡åéçªå°ãTCBã«ä¿å­
+	bra		dispatcher
+
+;
+;  APIã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, ã³ã³ãã­ã¹ãã®å¾©å¸°ããã.
+;
+dispatch_r:
+	btst 	#TCB_enatex_bit, TCB_enatex[r14]	; ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯?
+	bz   	dispatch_r_rts
+	ld_TCB_texptn	r5, r14, r4			; ä¿çä¾å¤è¦å ããããï¼
+	cmp		#0, r5
+	bz   	dispatch_r_rts
+	bsr		__kernel_call_texrtn		; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡
+dispatch_r_rts:
+	popm 	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°
+	rts  	                        	; dispatch å¼ã³åºãå
+ã¸æ»ã.
+
+;
+;  ã¿ã¹ã¯èµ·åå¦ç(ã¿ã¹ã¯å
+é ­ã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£)
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, CPUã­ãã¯è§£é¤ç¶æ
+ã«ã, ã¿ã¹ã¯ãèµ·åãã.
+;
+__kernel_start_r:
+	mov.l 	#_ext_tsk, r5
+	push.l	r5							; æ»ãçªå°ãã¹ã¿ãã¯ã«ç©ã
+	ld_TCB_p_tinib	r5, r14, r4
+	ld_TINIB_exinf	r1, r5, r4			; æ¡å¼µæ
+å ±ãç¬¬ä¸å¼æ°ã«è¨­å®
+	ld_TINIB_task	r5, r5, r4			; ã¿ã¹ã¯ã®èµ·åçªå°ãåå¾
+.if	TIPM_LOCK == -15
+	setpsw	i							; å²è¾¼ã¿è¨±å¯(CPUã­ãã¯è§£é¤ç¶æ
+)
+.else
+	mov.l	#__kernel_lock_flag, r4		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r4]					; ããã«æ¥ãã¨ãã¯å¿
+ã saved_ipl ã®
+	mvtc	#00010000H, psw				; å¤ã¯ 0 ã®ãã, ç´å¤ãè¨­å®ãã.
+								; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+( I = 1 )
+								; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+( IPL = 0 )
+.endif
+	jmp		r5
+
+;
+;  ã«ã¼ãã«èµ·åããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  ãã®ã«ã¼ãã³ã¯ï¼ã«ã¼ãã«èµ·åæã«ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+
+; ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ï¼ã§å¼ã³åºãããï¼ã¾ãï¼å²è¾¼ã¿ã¢ã¼ãï¼é
+;  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨åç­ï¼ã§å¼ã³åºããããã¨ãæ³å®ãã¦ããï¼
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ãã£ã¹ãããã£ã¢ã¼ãã«å¤æ´ãã.
+;
+__kernel_start_dispatch:
+	mov.l	#__kernel_intnest, r5
+	mov.w	#0, [r5]					; ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+.if	TIPM_LOCK != -15
+	mvtc	#(IPL_LOCK | 00010000H), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+.endif
+
+;
+; ã¿ã¹ã¯çµäº(ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã)ããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ä½ããããã¨ã¯ãªã.
+;  ãªã, p_runtsk ã®ã¢ãã¬ã¹åå¾ã ãã¯è¡ãªã.
+;
+__exit_and_dispatch:
+	mov.l	#__kernel_p_runtsk, r15     
+
+;
+; ãã£ã¹ãããã£æ¬ä½
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã¹ã¦ã®ã¿ã¹ã¯ã®ã³ã³ãã­ã¹ãã¯ä¿å­ããã¦ãã.
+;
+;  dispatcher å¼åºæã®ã¹ã¿ãã¯:
+;	ã»__kernel_dispatch ããããå ´å			: ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»exit_and_dispatch ããããå ´å: 
+;		exit_task ããããå ´å					: ã¿ã¹ã¯ã¹ã¿ãã¯
+;		ã«ã¼ãã«èµ·åæ(__kernel_start_dispatch)	: å²è¾¼ã¿ã¹ã¿ãã¯
+;	ã»ret_int ããããå ´å						: ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»dispatcher_idle_loop ããããå ´å			: å²è¾¼ã¿ã¹ã¿ãã¯
+;
+dispatcher:
+.if	LOG_DSP_ENTER == 1
+	push.l	r15
+	mov.l	r14, r1						; å¼æ°(ãã£ã¹ãããå
+TCB)ãè¨­å®
+	bsr		_kernel_log_dsp_enter
+	pop.l	r15
+.endif
+	mov.l	#__kernel_p_schedtsk, r5     
+	mov.l	[r5], [r15]					; p_schedtsk ã p_runtsk ã«
+	mov.l	[r15], r14
+	cmp		#0, r14
+	bz		dispatcher_pre_idle			; schedtsk ããªããã°ã¢ã¤ãã«ã«ã¼ãã¸
+	ld_TCB_sp	r0, r14, r5				; ã¿ã¹ã¯ã¹ã¿ãã¯ãã¤ã³ã¿ãå¾©å¸°
+.if	LOG_DSP_LEAVE == 1
+	push.l	r14
+	mov.l	r14, r1						; å¼æ°(ãã£ã¹ãããå
+TCB)ãè¨­å®
+	bsr		_kernel_log_dsp_leave
+	pop.l	r14
+.endif
+	ld_TCB_pc	r5, r14, r4
+	jmp		r5					; å®è¡åéçªå°ã¸ã¸ã£ã³ã
+
+;
+;  schdedtskãNULLã®å ´åã¯ã¢ã¤ãã«ã«ã¼ãã«å
+¥ã
+;  ã¢ã¤ãã«ã«ã¼ãã¯å²è¾¼ã¿å¦çã¢ã¼ãã§åä½ããã
+;
+;  ããã§å²è¾¼ã¿ã¢ã¼ãã«åãæããã®ã¯ï¼ããã§çºçããå²è¾¼ã¿å¦çã«
+;  ã©ã®ã¹ã¿ãã¯ãä½¿ããã¨ããåé¡ã®è§£æ±ºã¨ï¼å²è¾¼ã¿ãã³ãã©å
+ã§ã®ã¿
+;  ã¹ã¯ãã£ã¹ãããã®é²æ­¢ã¨ãã2ã¤ã®æå³ãããï¼
+;
+dispatcher_pre_idle:
+	mov.l	#__kernel_istkpt,r5
+	mov.l	[r5], r0					; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#1, [r5]					; éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+.if	TIPM_LOCK != -15
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+	mvtc	#0, psw						; åªå
+åº¦0ã®å²è¾¼ã¿å¦çä¸­ãå½è£
+
+.endif
+
+dispatcher_idle_loop:
+	setpsw	i							; å
+¨å²è¾¼ã¿è¨±å¯
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+
+	mov.l	#__kernel_reqflg, r5		; reqflg ã FALSE ãªã
+	mov.l	[r5], r4
+	cmp		#0, r4
+	bz   	dispatcher_idle_loop		; ã¢ã¤ãã«ã«ã¼ããç¹°ãè¿ã
+	mov.l	#0, [r5]					; reqflgãtrueãªãfalseã«ãã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#0, [r5]					; ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+.if	TIPM_LOCK != -15
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯ç¶æ
+ã¸
+	mov.l	#1, [r5]
+	mov.l	#__kernel_saved_ipl, r5
+	mov.l	#0, [r5]
+	mvtc	#(IPL_LOCK | PSW_I_MASK), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+.endif
+	bra		dispatcher					; dispatcher ã¸æ»ã
+
+
+;
+; ã«ã¼ãã«ã®çµäºå¦çã®å¼åºã
+;
+; ã¢ã¼ãã¨ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã«åãæ¿ãï¼
+;
+	.glb	__kernel_call_exit_kernel
+__kernel_call_exit_kernel:
+.if	TIPM_LOCK != -15
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+.endif
+	mov.l	#__kernel_istkpt, r5
+	mov.l	[r5], r0					; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#1, [r5]					; éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+	bsr		__kernel_exit_kernel
+	bra		__kernel_call_exit_kernel
+
+
+;
+;  å²è¾¼ã¿(CPUä¾å¤)ããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;	å¼åºãæ¡ä»¶:
+;	ã»å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0)
+;	ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+(IPL != 0)
+;	ã»ã¿ã¹ã¯ã³ã³ãã­ã¹ã(intnest=0)
+;	ã»ä½¿ç¨ã¹ã¿ãã¯ã¯ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»reqflg = true
+;
+;  ããã§ã¯, ãã£ã¹ãããã£ã¢ã¼ãã«å¤æ´ã, reqflgãOFFã«ãã¦ãã, 
+;  é
+å»¶ãã£ã¹ãããã®æç¡ãå¤æ­ãã.
+;
+
+;
+;  ret_intå
+é ­ã§ã¹ã¿ãã¯ã«ç©ã¾ãã¦ããPSWã¬ã¸ã¹ã¿ã¸ã®ãªãã»ãã
+;  ACC + FPSW + R14--R15 + R1--R5 + PC
+;
+	RET_INT_GET_PSW_OFFSET	.equ	(8+4+28+4)
+
+ret_int:
+.if	TIPM_LOCK == -15
+	mov.l	RET_INT_GET_PSW_OFFSET[r0], r5	; å²è¾¼ã¿/CPUä¾å¤çºçåã®IPLå¤åå¾
+	and		#PSW_IPL_MASK, r5
+	mvtc	r5, psw						; å
+¨å²è¾¼ã¿ã­ãã¯(CPUã­ãã¯)ç¶æ
+
+										; å²è¾¼ã¿/CPUä¾å¤çºçåã®å²è¾¼ã¿åªå
+åº¦
+.else
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯ç¶æ
+ã¸
+	mov.l	#1, [r5]
+	mov.l	RET_INT_GET_PSW_OFFSET[r0], r5	; å²è¾¼ã¿/CPUä¾å¤çºçåã®IPLå¤åå¾
+	and		#PSW_IPL_MASK, r5
+	mov.l	#__kernel_saved_ipl, r4
+	mov.l	r5, [r4]
+	mvtc	#(IPL_LOCK | PSW_I_MASK), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+.endif
+	mov.l	#__kernel_reqflg, r5
+	mov.l	#0, [r5]					; reqflg <--- FALSE
+	mov.l	#__kernel_p_runtsk, r15     
+	mov.l	[r15], r14
+	mov.l	#__kernel_dspflg, r5		; dspflg ã FALSE ãªã ret_int_r ã¸
+	mov.l	[r5], r5
+	cmp		#0, r5
+	bz   	ret_int_r_call_tex
+	mov.l	#__kernel_p_schedtsk, r5
+	mov.l	[r5], r5
+	cmp		r5, r14						; p_schedtsk ã¨ p_runtsk ãåããªã
+	beq  	ret_int_r_call_tex			; ret_int_r_call_tex ã¸
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	st_TCB_sp	r0, r14, r5				; ã¹ã¿ãã¯ãã¤ã³ã¿ãTCBã«ä¿å­
+	st_TCB_pc	#ret_int_r, r14, r5		; å®è¡åéçªå°ãTCBã«ä¿å­
+	bra		dispatcher
+
+;
+;  å²è¾¼ã¿(CPUä¾å¤)ã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ãã¸ã®
+;  å¤æ´ã¨, ã³ã³ãã­ã¹ãã®å¾©å¸°ãè¡ã, å²è¾¼ã¿(CUPä¾å¤)çºçå
+ã¸æ»ã.
+;
+__kernel_break_wait:					;ã¿ã¹ã¯ã¢ãã¿ç¨ã©ãã«
+ret_int_r:
+	popm 	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°
+ret_int_r_call_tex:
+	btst 	#TCB_enatex_bit, TCB_enatex[r14]	; ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯?
+	bz   	ret_int_r_rte
+	ld_TCB_texptn	r5, r14, r4			; ä¿çä¾å¤è¦å ããããï¼
+	cmp		#0, r5
+	bz   	ret_int_r_rte
+	bsr		__kernel_call_texrtn		; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡
+ret_int_r_rte:
+.if	TIPM_LOCK != -15
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+.endif
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  å²è¾¼ã¿ã®åºå
+¥å£å¦ç(ã¢ã»ã³ããªè¨èªè¨è¿°é¨å)
+;
+;  å¼åºãæ¡ä»¶:
+;  ã»å²è¾¼ã¿çºçæã®H/Wå¦çã«ãã, PSWã¬ã¸ã¹ã¿ã®Iããã=0, IPLã¯åä»ã
+;    ãå²è¾¼ã¿ã®IPL.
+;  ã»ã¹ã¿ãã¯ã¯å¤éå²ãè¾¼ã¿ãªãå²è¾¼ã¿ã¹ã¿ãã¯, ããã§ãªããã°
+;    ã¿ã¹ã¯ã¹ã¿ãã¯
+;  ã»å²è¾¼ã¿çºçæã®H/Wå¦çã«ãã,ã¹ã¿ãã¯ã«å²è¾¼ã¿ããã®å¾©å¸°PCã¨PSWã
+;    ä¿å­ããã¦ãã.
+;  ã»ãã¯ã¿ãã¼ãã«ã«ç»é²ãããåå¥ã®å
+¥ãå£å¦çã«ãã, ã¹ã¿ãã¯ã«
+;    ã¹ã¯ã©ããã¬ã¸ã¹ã¿(R1-R5)ãä¿å­ããã¦ãã.
+;
+;  å¼æ°:
+;  ã»r1:å²è¾¼ã¿è¦å çªå·
+;  ã»r2:å²è¾¼ã¿ãã³ãã©ã®ã¢ãã¬ã¹
+;
+;  ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ä¸ã«ã©ã®ããã«ä¿å­ããã¦ããããä»¥ä¸ã«ç¤ºã.
+;  ãã®å³ã§ã¯ä¸ãä½ä½, ä¸ãé«ä½ã®ã¢ãã¬ã¹ã§, ã¹ã¿ãã¯ã¯ä¸ãã
+;  ä¸æ¹åã«åãã£ã¦ç©ã¿ä¸ãããããã®ã¨ãã.
+;
+;	-------------------------
+;	|       ACC-HI(4byte)   |
+;	-------------------------(SP + 0)
+;	|       ACC-LO(4byte)   |
+;	-------------------------(SP + 4)
+;	|       FPSW(4byte)     |
+;	-------------------------(SP + 8)
+;	|       R14(4byte)      |
+;	-------------------------(SP + 12)
+;	|       R15(4byte)      |
+;	-------------------------(SP + 16)
+;	|       R1(4byte)       |
+;	-------------------------(SP + 20)
+;	|       R2(4byte)       |
+;	-------------------------(SP + 24)
+;	|       R3(4byte)       |
+;	-------------------------(SP + 28)
+;	|       R4(4byte)       |
+;	-------------------------(SP + 32)
+;	|       R5(4byte)       |
+;	-------------------------(SP + 36)
+;	|       PC(4byte)       |
+;	-------------------------(SP + 40)
+;	|       PSW(4byte)      |
+;	-------------------------(SP + 44)
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;
+;  ãã³ãã©ãããªã¿ã¼ã³ããå¾ã¯, å¤éå²è¾¼ã¿ã§ãªã, ãã¤ reqflg ã
+;  TRUE ã«ãªã£ãæã«ï¼ret_int ã¸åå²(é
+å»¶ãã£ã¹ããã)ããï¼
+;
+;  å¤éå²è¾¼ã¿ãã©ããã¯å²è¾¼ã¿ãã¹ãã«ã¦ã³ã¿ã®å¤ã§å¤å®ãã.
+;  intnest != 0 ãªãã°å¤éå²è¾¼ã¿ã§ããã¨å¤å®ãã.
+;
+;  reqflg ã¯CPUã­ãã¯ç¶æ
+ã§ãã§ãã¯ãã. ããã§ãªãã¨ï¼
+;  reqflg ãã§ãã¯å¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
+ã§
+;  ãã£ã¹ããããè¦æ±ãããå ´åã«ï¼ãã£ã¹ããããããªã.
+;
+_kernel_interrupt:
+	pushm	r14-r15						; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿
+	pushc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿éé¿
+	mvfacmi	r5
+	shll	#16, r5						; ACCæä¸ä½16bitã¯0ã¨ãã
+	mvfachi	r4
+	pushm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿éé¿
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		interrupt_from_int			; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	r0, r3						; ã¹ã¿ãã¯ãã¤ã³ã¿ãåãåºã
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+interrupt_from_int:		; å¤éå²è¾¼ã¿
+	setpsw	i							; å²è¾¼ã¿è¨±å¯(CPUã­ãã¯è§£é¤ç¶æ
+)
+
+.if	LOG_INH_LEAVE == 1
+	push.l	r1							; ã­ã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ
+.endif
+
+.if	LOG_INH_ENTER == 1
+	push.l	r2
+	bsr		_kernel_log_inh_enter		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+							; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å
+¥ã£ã¦ãã
+	pop		r2
+.endif
+
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+.if	LOG_INH_LEAVE == 1
+	pop		r1							; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨­å®
+	bsr		_kernel_log_inh_leave		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+.endif
+
+	clrpsw	i							; å²è¾¼ã¿ç¦æ­¢(CPUã­ãã¯ç¶æ
+)
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		interrupt_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+	mov.l	#__kernel_reqflg, r5		; ãã£ã¹ãããè¦æ±ããªãã?
+	mov.l	[r5], r5
+	cmp		#1, r5
+	bz		ret_int						; ããã° ret_int ã¸ã¸ã£ã³ã
+interrupt_return:
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  CPUä¾å¤ã®åºå
+¥å£å¦ç(ã¢ã»ã³ããªè¨èªè¨è¿°é¨å)
+;
+;  å¼åºãæ¡ä»¶:
+;  ã»CPUä¾å¤çºçæã®H/Wå¦çã«ãã, PSWã¬ã¸ã¹ã¿ã®Iããã=0, IPL=0.
+;  ã»ã¹ã¿ãã¯ã¯å¤éå²ãè¾¼ã¿ãªãå²è¾¼ã¿ã¹ã¿ãã¯, ããã§ãªããã°
+;    ã¿ã¹ã¯ã¹ã¿ãã¯
+;  ã»CPUä¾å¤çºçæã®H/Wå¦çã«ãã,ã¹ã¿ãã¯ã«CPUä¾å¤ããã®å¾©å¸°PCã¨
+;    PSWãä¿å­ããã¦ãã.
+;  ã»ãã¯ã¿ãã¼ãã«ã«ç»é²ãããåå¥ã®å
+¥ãå£å¦çã«ãã, ã¹ã¿ãã¯ã«
+;    ã¹ã¯ã©ããã¬ã¸ã¹ã¿(R1-R5)ãä¿å­ããã¦ãã.
+;
+;  å¼æ°:
+;  ã»r1:CPUä¾å¤è¦å çªå·
+;  ã»r2:CPUä¾å¤ãã³ãã©ã®ã¢ãã¬ã¹
+;
+;  ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ä¸ã«ã©ã®ããã«ä¿å­ããã¦ããããä»¥ä¸ã«ç¤ºã.
+;  ãã®å³ã§ã¯ä¸ãä½ä½, ä¸ãé«ä½ã®ã¢ãã¬ã¹ã§, ã¹ã¿ãã¯ã¯ä¸ãã
+;  ä¸æ¹åã«åãã£ã¦ç©ã¿ä¸ãããããã®ã¨ãã.
+;  ãªã, CPUä¾å¤è¦å çªå·ã¨R6-R13ã¯CPUä¾å¤ãã³ãã©å
+ã§æ
+å ±ãåå¾
+;  ããç®çã§éé¿ãã¦ãã, åºå£å¦çã§ã¯ä¿å­å
+å®¹ãç ´æ£ããã°ãã.
+;
+;	-------------------------
+;	|    CPUä¾å¤è¦å çªå·    | <----- p_excinf
+;	------------------------- (intptr_t)(p_excinf + 0)
+;	|       R6(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 4)
+;	|       R7(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 8)
+;	|       R8(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 12)
+;	|       R9(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 16)
+;	|       R10(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 20)
+;	|       R11(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 24)
+;	|       R12(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 28)
+;	|       R13(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 32)
+;	|       ACC-HI(4byte)   |
+;	------------------------- (intptr_t)(p_excinf + 36)
+;	|       ACC-LO(4byte)   |
+;	------------------------- (intptr_t)(p_excinf + 40)
+;	|       FPSW(4byte)     |
+;	------------------------- (intptr_t)(p_excinf + 44)
+;	|       R14(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 48)
+;	|       R15(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 52)
+;	|       R1(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 56)
+;	|       R2(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 60)
+;	|       R3(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 64)
+;	|       R4(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 68)
+;	|       R5(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 72)
+;	|       PC(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 76)
+;	|       PSW(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 80)
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;  CPUä¾å¤ãã³ãã©ã«æ¸¡ãVPåã®å¤æ° p_excinf ã¨ãã¦ISPã®å¤æ¸¡ãï¼
+;
+;  ãã³ãã©ãããªã¿ã¼ã³ããå¾ã¯, å¤éå²è¾¼ã¿ã§ãªã, ãã¤ reqflg ã
+;  TRUE ã«ãªã£ãæã«ï¼ret_int ã¸åå²(é
+å»¶ãã£ã¹ããã)ããï¼
+;
+;  å¤éå²è¾¼ã¿ãã©ããã¯å²è¾¼ã¿ãã¹ãã«ã¦ã³ã¿ã®å¤ã§å¤å®ãã.
+;  intnest != 0 ãªãã°å¤éå²è¾¼ã¿ã§ããã¨å¤å®ãã.
+;
+;  reqflg ã¯CPUã­ãã¯ç¶æ
+ã§ãã§ãã¯ãã. ããã§ãªãã¨ï¼
+;  reqflg ãã§ãã¯å¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
+ã§
+;  ãã£ã¹ããããè¦æ±ãããå ´åã«ï¼ãã£ã¹ããããããªã.
+;
+;
+;  CPUä¾å¤å
+¥å£å¦ç
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;
+
+;
+;  CPUä¾å¤ãã³ãã©å¼åºãå¾ã«ä¸è¦ã¨ãªãã¹ã¿ãã¯æ
+å ±ã®ãµã¤ãº
+;  EXCNO + R6--R13
+;
+	EXCINF_REG_SIZE	.equ	(4+32)
+
+_kernel_exception:
+	pushm	r14-r15						; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿
+	pushc	fpsw
+	mvfacmi	r5
+	shll	#16, r5						; ACCæä¸ä½16bitã¯0ã¨ãã
+	mvfachi	r4
+	pushm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿éé¿
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	push.l	r1							; CPUä¾å¤è¦å çªå·ãä¿æ
+	mov.l	r0, r3						; ã¹ã¿ãã¯ãã¤ã³ã¿ãåãåºã
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	and		#PSW_I_MASK, r5
+	bz		exception_nonkernel			; å
+¨å²è¾¼ã¿ç¦æ­¢(CPUã­ãã¯)ç¶æ
+ãªãç®¡çå¤
+.if	TIPM_LOCK != -15
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	and		#PSW_IPL_MASK, r5
+	cmp		#IPL_LOCK, r5
+	bgt	exception_nonkernel			; IPLãCPUã­ãã¯ã¬ãã«ä»¥ä¸ãªãç®¡çå¤
+.endif
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_from_int			; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+exception_from_int:		; å¤éå²è¾¼ã¿
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	mvtc	r5, psw						; CPUä¾å¤çºçåã®ç¶æ
+ã«æ»ã
+.if	LOG_EXC_LEAVE == 1
+	push.l	r1							; ã­ã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ
+.endif
+
+.if	LOG_EXC_ENTER == 1
+	pushm	r2-r3
+	bsr		_kernel_log_exc_enter		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+							; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å
+¥ã£ã¦ãã
+	popm	r2-r3
+.endif
+
+	mov.l	r3, r1						; å¼æ°ã®p_excinfãè¨­å®
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+.if	LOG_EXC_LEAVE == 1
+	pop		r1							; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨­å®
+	bsr		_kernel_log_exc_leave		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+.endif
+
+	clrpsw	i							; ããããã¯å¿
+ãå²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+	mov.l	#__kernel_reqflg, r5		; ãã£ã¹ãããè¦æ±ããªãã?
+	mov.l	[r5], r5
+	cmp		#1, r5
+	bnz		exception_return			; ãªããã°ãªã¿ã¼ã³
+	add		#EXCINF_REG_SIZE, r0		; CPUä¾å¤æ
+å ±ã®ç ´æ£
+	bra		ret_int						; ããã° ret_int ã¸ã¸ã£ã³ã
+
+exception_nonkernel:
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_from_nonkernelint	; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+exception_from_nonkernelint:	; å¤éå²è¾¼ã¿
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	mvtc	r5, psw						; CPUä¾å¤çºçåã®ç¶æ
+ã«æ»ã
+
+	mov.l	r3, r1						; å¼æ°ã®p_excinfãè¨­å®
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+	clrpsw	i							; ããããã¯å¿
+ãå²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+
+exception_return:
+	add		#EXCINF_REG_SIZE, r0		; CPUä¾å¤æ
+å ±ã®ç ´æ£
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  å¾®å°æéå¾
+ã¡
+;
+_sil_dly_nse:
+	mov.l	#SIL_DLY_TIM1, r5
+	sub		r5, r1
+	ble		sil_dly_nse_ret
+sil_dly_nse_loop:
+	mov.l	#SIL_DLY_TIM2, r5
+	sub		r5, r1
+	bgt		sil_dly_nse_loop
+sil_dly_nse_ret:
+	rts
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_sym.def	(revision 313)
@@ -0,0 +1,14 @@
+TA_EDGE
+TA_LOWLEVEL
+TA_BOTHEDGE
+TA_NEGEDGE
+TIPM_LOCK,,signed
+IPL_LOCK
+PSW_I_MASK
+PSW_IPL_MASK
+EXC_GET_PSW_OFFSET
+sizeof_TCB,sizeof(TCB)
+offsetof_TCB_p_tinib,"offsetof(TCB,p_tinib)"
+offsetof_TCB_texptn,"offsetof(TCB,texptn)"
+offsetof_TCB_sp,"offsetof(TCB,tskctxb.sp)"
+offsetof_TCB_pc,"offsetof(TCB,tskctxb.pc)"
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_syssvc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_syssvc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_syssvc.h	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_SYSSVC_H
+#define TOPPERS_PRC_SYSSVC_H
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºã
+ *  è¿½å ããããã®ãã¯ã­ï¼
+ */
+#define PRC_COPYRIGHT										\
+	"Copyright (C) 2010 by Witz Corporation, JAPAN\n"\
+	"Copyright (C) 2013 by Mitsuhiro Matsuura\n"
+
+
+#endif	/* TOPPERS_PRC_SYSSVC_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.h	(revision 313)
@@ -0,0 +1,66 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_TEST_H
+#define TOPPERS_PRC_TEST_H
+
+#define CPUEXC1					25		/* æµ®åå°æ°ç¹ä¾å¤ */
+#define RAISE_CPU_EXCEPTION		trigger_cpu_exception()
+
+extern void trigger_cpu_exception( void );
+
+#endif /* TOPPERS_PRC_TEST_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.src
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.src	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_test.src	(revision 313)
@@ -0,0 +1,63 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2010 by Witz Corporation, JAPAN
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼Free Software Foundation ã«ãã£ã¦å
+¬è¡¨ããã¦ãã 
+;*  GNU General Public License ã® Version 2 ã«è¨è¿°ããã¦ããæ¡ä»¶ãï¼ä»¥
+;*  ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§
+;*  ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+;*  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãåå©ç¨å¯è½ãªãã¤ããªã³ã¼ãï¼ãªã­ã±ã¼ã¿ãã«ãªã
+;*      ã¸ã§ã¯ããã¡ã¤ã«ãã©ã¤ãã©ãªãªã©ï¼ã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼å©ç¨
+;*      ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼
+;*      ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãåå©ç¨ä¸å¯è½ãªãã¤ããªã³ã¼ãã®å½¢ã¾ãã¯æ©å¨ã«çµ
+;*      ã¿è¾¼ãã å½¢ã§å©ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
+;*    (a) å©ç¨ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
+;*        æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) å©ç¨ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼ä¸è¨èä½æ¨©è
+ã«å ±åãã
+;*        ãã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ãå
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã¯ï¼
+;*  æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
+;*  ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
+;*  ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+;* 
+
+	.section	P, CODE
+
+	.glb	_trigger_cpu_exception
+
+_trigger_cpu_exception:
+	;
+	;  CPUä¾å¤ã®çºç
+	;
+	;  ã¼ã­å²ãç®ãè¡ããã¨ã§, æµ®åå°æ°ç¹ä¾å¤ã
+	;  çºçããã.
+	;
+	mvtc	#00001000H, fpsw
+	mov.l	#1, r5
+	fdiv	#0, r5
+	mvtc	#00000000H, fpsw
+	rts
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_unrename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_unrename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/prc_unrename.h	(revision 313)
@@ -0,0 +1,83 @@
+/* This file is generated from prc_rename.def by genrename. */
+
+#ifndef TOPPERS_PRC_RENAME_H
+#define TOPPERS_PRC_RENAME_H
+
+/*
+ *  prc_config.c
+ */
+#undef intnest
+#undef lock_flag
+#undef saved_ipl
+#undef prc_initialize
+#undef prc_terminate
+#undef x_config_int
+#undef default_int_handler
+#undef default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#undef dispatch
+#undef start_dispatch
+#undef exit_and_dispatch
+#undef call_exit_kernel
+#undef start_r
+#undef interrupt
+#undef exception
+
+/*
+ *  rx630_config.c
+ */
+#undef ipr_reg_addr
+#undef ier_reg_addr
+#undef ir_reg_addr
+#undef irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#undef cfg_int_table
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  prc_config.c
+ */
+#undef _intnest
+#undef _lock_flag
+#undef _saved_ipl
+#undef _prc_initialize
+#undef _prc_terminate
+#undef _x_config_int
+#undef _default_int_handler
+#undef _default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#undef _dispatch
+#undef _start_dispatch
+#undef _exit_and_dispatch
+#undef _call_exit_kernel
+#undef _start_r
+#undef _interrupt
+#undef _exception
+
+/*
+ *  rx630_config.c
+ */
+#undef _ipr_reg_addr
+#undef _ier_reg_addr
+#undef _ir_reg_addr
+#undef _irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#undef _cfg_int_table
+
+#endif /* TOPPERS_LABEL_ASM */
+
+
+#endif /* TOPPERS_PRC_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630.h	(revision 313)
@@ -0,0 +1,1927 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  RX630ã«ä¾å­ããå®ç¾©
+ */
+#ifndef TOPPERS_RX630_H
+#define TOPPERS_RX630_H
+
+/*
+ *  CPUä¾å¤ãã³ãã©çªå·ã®å®ç¾©(åºå®ãã¯ã¿ãã¼ãã«)
+ *
+ *  çªå·ã®ç¯å²ã¯0 - 31
+ */
+#define INT_PRIVILEGED_INSTRUNCTION		20		/* ç¹æ¨©å½ä»¤ä¾å¤ */
+#define INT_UNDEF_INSTRUNCTION			23		/* æªå®ç¾©å½ä»¤ä¾å¤ */
+#define INT_FLOATINGPOINT_INSTRUCTION	25		/* æµ®åå°æ°ç¹ä¾å¤ */
+#define INT_NMI							30		/* ãã³ãã¹ã«ãã«å²ãè¾¼ã¿ */
+#define INT_RESET						31		/* ãªã»ãã */
+
+/*
+ *  å²è¾¼ã¿çªå·ã®å®ç¾©(å¯å¤ãã¯ã¿ãã¼ãã«)
+ */
+#define INT_BUSERR			16
+#define INT_FCU_FCUERR		21
+#define INT_FCU_FRDYI		23
+#define INT_ICU_SWINT		27
+#define INT_CMT0_CMI		28
+#define INT_CMT1_CMI		29
+#define INT_CMT2_CMI		30
+#define INT_CMT3_CMI		31
+#define INT_ETH_EINT		32
+#define INT_USB0_D0FIFO0	33
+#define INT_USB0_D1FIFO0	34
+#define INT_USB0_USBI0		35
+#define INT_USB1_D0FIFO1	36
+#define INT_USB1_D1FIFO1	37
+#define INT_USB1_USBI1		38
+#define INT_RSPI0_SPRI0		39
+#define INT_RSPI0_SPTI0		40
+#define INT_RSPI0_SPII0		41
+#define INT_RSPI1_SPRI1		42
+#define INT_RSPI1_SPTI1		43
+#define INT_RSPI1_SPII1		44
+#define INT_RSPI2_SPRI2		45
+#define INT_RSPI2_SPTI2		46
+#define INT_RSPI2_SPII2		47
+#define INT_CAN0_RXF0		48
+#define INT_CAN0_TXF0		49
+#define INT_CAN0_RXM0		50
+#define INT_CAN0_TXM0		51
+#define INT_CAN1_RXF1		52
+#define INT_CAN1_TXF1		53
+#define INT_CAN1_RXM1		54
+#define INT_CAN1_TXM1		55
+#define INT_CAN2_RXF2		56
+#define INT_CAN2_TXF2		57
+#define INT_CAN2_RXM2		58
+#define INT_CAN2_TXM2		59
+#define INT_RTC_CUP			62
+#define INT_IRQ0			64
+#define INT_IRQ1			65
+#define INT_IRQ2			66
+#define INT_IRQ3			67
+#define INT_IRQ4			68
+#define INT_IRQ5			69
+#define INT_IRQ6			70
+#define INT_IRQ7			71
+#define INT_IRQ8			72
+#define INT_IRQ9			73
+#define INT_IRQ10			74
+#define INT_IRQ11			75
+#define INT_IRQ12			76
+#define INT_IRQ13			77
+#define INT_IRQ14			78
+#define INT_IRQ15			79
+#define INT_USB_USBR0		90
+#define INT_USB_USBR1		91
+#define INT_RTC_ALM			92
+#define INT_RTC_PRD			93
+#define INT_AD0_ADI0		98
+#define INT_S12AD_S12ADI0	102
+#define INT_ICU_GROUP0		106
+#define INT_ICU_GROUP1		107
+#define INT_ICU_GROUP2		108
+#define INT_ICU_GROUP3		109
+#define INT_ICU_GROUP4		110
+#define INT_ICU_GROUP5		111
+#define INT_ICU_GROUP6		112
+#define INT_ICU_GROUP12		114
+#define INT_SCI12_SCIX0		122
+#define INT_SCI12_SCIX1		123
+#define INT_SCI12_SCIX2		124
+#define INT_SCI12_SCIX3		125
+#define INT_TPU0_TGI0A		126
+#define INT_TPU0_TGI0B		127
+#define INT_TPU0_TGI0C		128
+#define INT_TPU0_TGI0D		129
+#define INT_TPU1_TGI0A		130
+#define INT_TPU1_TGI0B		131
+#define INT_TPU2_TGI0A		132
+#define INT_TPU2_TGI0B		133
+#define INT_TPU3_TGI0A		134
+#define INT_TPU3_TGI0B		135
+#define INT_TPU3_TGI0C		136
+#define INT_TPU3_TGI0D		137
+#define INT_TPU4_TGI0A		138
+#define INT_TPU4_TGI0B		139
+#define INT_TPU5_TGI0A		140
+#define INT_TPU5_TGI0B		141
+#define INT_MTU0_TGIA0		142
+#define INT_MTU0_TGIB0		143
+#define INT_MTU0_TGIC0		144
+#define INT_MTU0_TGID0		145
+#define INT_MTU0_TCIE0		146
+#define INT_MTU0_TCIF0		147
+#define INT_MTU1_TGIA1		148
+#define INT_MTU1_TGIB1		149
+#define INT_MTU2_TGIA2		150
+#define INT_MTU2_TGIB2		151
+#define INT_MTU3_TGIA3		152
+#define INT_MTU3_TGIB3		153
+#define INT_MTU3_TGIC3		154
+#define INT_MTU3_TGID3		155
+#define INT_MTU4_TGIA4		156
+#define INT_MTU4_TGIB4		157
+#define INT_MTU4_TGIC4		158
+#define INT_MTU4_TGID4		159
+#define INT_MTU4_TCIV4		160
+#define INT_MTU5_TGIU5		161
+#define INT_MTU5_TGIV5		162
+#define INT_MTU5_TGIW5		163
+#define INT_MTU5_TGI11A		164
+#define INT_MTU5_TGI11B		165
+#define INT_POE_OEI1		166
+#define INT_POE_OEI2		167
+#define INT_TMR0_CMI0A		170
+#define INT_TMR0_CMI0B		171
+#define INT_TMR0_OV0I		172
+#define INT_TMR1_CMI1A		173
+#define INT_TMR1_CMI1B		174
+#define INT_TMR1_OV1I		175
+#define INT_TMR2_CMI2A		176
+#define INT_TMR2_CMI2B		177
+#define INT_TMR2_OV2I		178
+#define INT_TMR3_CMI3A		179
+#define INT_TMR3_CMI3B		180
+#define INT_TMR3_OV3I		181
+#define INT_RIIC0_EEI		182
+#define INT_RIIC0_RXI		183
+#define INT_RIIC0_TXI		184
+#define INT_RIIC0_TEI		185
+#define INT_RIIC1_EEI		186
+#define INT_RIIC1_RXI		187
+#define INT_RIIC1_TXI		188
+#define INT_RIIC1_TEI		189
+#define INT_RIIC2_EEI		190
+#define INT_RIIC2_RXI		191
+#define INT_RIIC2_TXI		192
+#define INT_RIIC2_TEI		193
+#define INT_RIIC3_EEI		194
+#define INT_RIIC3_RXI		195
+#define INT_RIIC3_TXI		196
+#define INT_RIIC3_TEI		197
+#define INT_DMAC_DMAC0I		198
+#define INT_DMAC_DMAC1I		199
+#define INT_DMAC_DMAC2I		200
+#define INT_DMAC_DMAC3I		201
+#define INT_SCI0_RXI		214
+#define INT_SCI0_TXI		215
+#define INT_SCI0_TEI		216
+#define INT_SCI1_RXI		217
+#define INT_SCI1_TXI		218
+#define INT_SCI1_TEI		219
+#define INT_SCI2_RXI		220
+#define INT_SCI2_TXI		221
+#define INT_SCI2_TEI		222
+#define INT_SCI3_RXI		223
+#define INT_SCI3_TXI		224
+#define INT_SCI3_TEI		225
+#define INT_SCI4_RXI		226
+#define INT_SCI4_TXI		227
+#define INT_SCI4_TEI		228
+#define INT_SCI5_RXI		229
+#define INT_SCI5_TXI		230
+#define INT_SCI5_TEI		231
+#define INT_SCI6_RXI		232
+#define INT_SCI6_TXI		233
+#define INT_SCI6_TEI		234
+#define INT_SCI7_RXI		235
+#define INT_SCI7_TXI		236
+#define INT_SCI7_TEI		237
+#define INT_SCI8_RXI		238
+#define INT_SCI8_TXI		239
+#define INT_SCI8_TEI		240
+#define INT_SCI9_RXI		241
+#define INT_SCI9_TXI		242
+#define INT_SCI9_TEI		243
+#define INT_SCI10_RXI		244
+#define INT_SCI10_TXI		245
+#define INT_SCI10_TEI		246
+#define INT_SCI11_RXI		247
+#define INT_SCI11_TXI		248
+#define INT_SCI11_TEI		249
+#define INT_SCI12_RXI		250
+#define INT_SCI12_TXI		251
+#define INT_SCI12_TEI		252
+#define INT_IEB_IEBINT		253
+
+/*
+ *  åã¢ã¸ã¥ã¼ã«ã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+
+#define SYSTEM_SYSCR0_ADDR		( ( volatile uint16_t __evenaccess * )0x00080006 )
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Aï¼MSTPCRAï¼
+ */
+#define SYSTEM_MSTPCRA_ADDR			( ( volatile uint32_t __evenaccess * )0x00080010 )
+#define SYSTEM_MSTPCRA_MSTPA0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRA_MSTPA1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRA_MSTPA2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRA_MSTPA3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRA_MSTPA4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRA_MSTPA5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRA_MSTPA6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRA_MSTPA7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRA_MSTPA8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRA_MSTPA9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRA_MSTPA10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRA_MSTPA11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRA_MSTPA12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRA_MSTPA13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRA_MSTPA14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRA_MSTPA15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRA_MSTPA16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRA_MSTPA17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRA_MSTPA18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRA_MSTPA19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRA_MSTPA20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRA_MSTPA21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRA_MSTPA22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRA_MSTPA23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRA_MSTPA24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRA_MSTPA25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRA_MSTPA26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRA_MSTPA27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRA_MSTPA28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRA_MSTPA29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRA_MSTPA30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRA_MSTPA31_BIT	( 1UL << 31U )
+#define SYSTEM_MSTPCRA_ACSE_BIT		( 1UL << 31U)
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Bï¼MSTPCRBï¼
+ */
+#define SYSTEM_MSTPCRB_ADDR			( ( volatile uint32_t __evenaccess * )0x00080014 )
+#define SYSTEM_MSTPCRB_MSTPB0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRB_MSTPB1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRB_MSTPB2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRB_MSTPB3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRB_MSTPB4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRB_MSTPB5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRB_MSTPB6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRB_MSTPB7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRB_MSTPB8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRB_MSTPB9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRB_MSTPB10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRB_MSTPB11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRB_MSTPB12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRB_MSTPB13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRB_MSTPB14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRB_MSTPB15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRB_MSTPB16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRB_MSTPB17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRB_MSTPB18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRB_MSTPB19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRB_MSTPB20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRB_MSTPB21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRB_MSTPB22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRB_MSTPB23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRB_MSTPB24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRB_MSTPB25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRB_MSTPB26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRB_MSTPB27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRB_MSTPB28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRB_MSTPB29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRB_MSTPB30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRB_MSTPB31_BIT	( 1UL << 31U )
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Cï¼MSTPCRCï¼
+ */
+#define SYSTEM_MSTPCRC_ADDR			( ( volatile uint32_t __evenaccess * )0x00080018 )
+#define SYSTEM_MSTPCRC_MSTPC0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRC_MSTPC1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRC_MSTPC2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRC_MSTPC3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRC_MSTPC4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRC_MSTPC5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRC_MSTPC6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRC_MSTPC7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRC_MSTPC8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRC_MSTPC9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRC_MSTPC10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRC_MSTPC11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRC_MSTPC12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRC_MSTPC13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRC_MSTPC14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRC_MSTPC15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRC_MSTPC16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRC_MSTPC17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRC_MSTPC18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRC_MSTPC19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRC_MSTPC20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRC_MSTPC21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRC_MSTPC22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRC_MSTPC23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRC_MSTPC24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRC_MSTPC25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRC_MSTPC26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRC_MSTPC27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRC_MSTPC28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRC_MSTPC29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRC_MSTPC30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRC_MSTPC31_BIT	( 1UL << 31U )
+
+/*
+ * ã¯ã­ãã¯çºçåè·¯
+ */
+#define SYSTEM_SCKCR_ADDR			( ( volatile uint32_t __evenaccess * )0x00080020 )
+#define SYSTEM_SCKCR2_ADDR		( ( volatile uint16_t __evenaccess * )0x00080024 )
+#define SYSTEM_SCKCR2_UCK_OFFSET	( 4U )
+#define SYSTEM_SCKCR2_UCK_MASK		( 0xFU << SYSTEM_SCKCR2_UCK_OFFSET )
+#define SYSTEM_SCKCR3_ADDR		( ( volatile uint16_t __evenaccess * )0x00080026 )
+#define SYSTEM_SCKCR3_CKSEL_OFFSET	( 8U )
+#define SYSTEM_SCKCR3_CKSEL_MASK	( 0x7U << SYSTEM_SCKCR3_CKSEL_OFFSET )
+#define SYSTEM_PLLCR_ADDR		( ( volatile uint16_t __evenaccess * )0x00080028 )
+#define SYSTEM_PLLCR_STC_OFFSET		( 8U )
+#define SYSTEM_PLLCR_STC_MASK		( 0x3FU << SYSTEM_PLLCR_STC_OFFSET )
+#define SYSTEM_PLLCR2_ADDR			( ( volatile uint8_t __evenaccess * )0x0008002A )
+#define SYSTEM_PLLCR2_PLLEN			( 1UL << 0U )
+#define SYSTEM_MOFCR_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C293 )
+#define SYSTEM_MOFCR_MOFXIN		( 1UL << 0U )
+#define SYSTEM_MOSCCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00080032 )
+#define SYSTEM_MOSCCR_MOSTP			( 1UL << 0U )
+
+/*
+ * ãã­ãã¯ãã¬ã¸ã¹ã¿
+ */
+#define SYSTEM_PRCR_ADDR		( ( volatile uint16_t __evenaccess * )0x000803FE )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿
+ */
+#define ICU_IR000_ADDR			( ( volatile uint8_t __evenaccess * )0x00087000 )
+#define ICU_IR001_ADDR			( ( volatile uint8_t __evenaccess * )0x00087001 )
+#define ICU_IR002_ADDR			( ( volatile uint8_t __evenaccess * )0x00087002 )
+#define ICU_IR003_ADDR			( ( volatile uint8_t __evenaccess * )0x00087003 )
+#define ICU_IR004_ADDR			( ( volatile uint8_t __evenaccess * )0x00087004 )
+#define ICU_IR005_ADDR			( ( volatile uint8_t __evenaccess * )0x00087005 )
+#define ICU_IR006_ADDR			( ( volatile uint8_t __evenaccess * )0x00087006 )
+#define ICU_IR007_ADDR			( ( volatile uint8_t __evenaccess * )0x00087007 )
+#define ICU_IR008_ADDR			( ( volatile uint8_t __evenaccess * )0x00087008 )
+#define ICU_IR009_ADDR			( ( volatile uint8_t __evenaccess * )0x00087009 )
+#define ICU_IR010_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700A )
+#define ICU_IR011_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700B )
+#define ICU_IR012_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700C )
+#define ICU_IR013_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700D )
+#define ICU_IR014_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700E )
+#define ICU_IR015_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700F )
+#define ICU_IR016_ADDR			( ( volatile uint8_t __evenaccess * )0x00087010 )
+#define ICU_IR017_ADDR			( ( volatile uint8_t __evenaccess * )0x00087011 )
+#define ICU_IR018_ADDR			( ( volatile uint8_t __evenaccess * )0x00087012 )
+#define ICU_IR019_ADDR			( ( volatile uint8_t __evenaccess * )0x00087013 )
+#define ICU_IR020_ADDR			( ( volatile uint8_t __evenaccess * )0x00087014 )
+#define ICU_IR021_ADDR			( ( volatile uint8_t __evenaccess * )0x00087015 )
+#define ICU_IR022_ADDR			( ( volatile uint8_t __evenaccess * )0x00087016 )
+#define ICU_IR023_ADDR			( ( volatile uint8_t __evenaccess * )0x00087017 )
+#define ICU_IR024_ADDR			( ( volatile uint8_t __evenaccess * )0x00087018 )
+#define ICU_IR025_ADDR			( ( volatile uint8_t __evenaccess * )0x00087019 )
+#define ICU_IR026_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701A )
+#define ICU_IR027_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701B )
+#define ICU_IR028_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701C )
+#define ICU_IR029_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701D )
+#define ICU_IR030_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701E )
+#define ICU_IR031_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701F )
+#define ICU_IR032_ADDR			( ( volatile uint8_t __evenaccess * )0x00087020 )
+#define ICU_IR033_ADDR			( ( volatile uint8_t __evenaccess * )0x00087021 )
+#define ICU_IR034_ADDR			( ( volatile uint8_t __evenaccess * )0x00087022 )
+#define ICU_IR035_ADDR			( ( volatile uint8_t __evenaccess * )0x00087023 )
+#define ICU_IR036_ADDR			( ( volatile uint8_t __evenaccess * )0x00087024 )
+#define ICU_IR037_ADDR			( ( volatile uint8_t __evenaccess * )0x00087025 )
+#define ICU_IR038_ADDR			( ( volatile uint8_t __evenaccess * )0x00087026 )
+#define ICU_IR039_ADDR			( ( volatile uint8_t __evenaccess * )0x00087027 )
+#define ICU_IR040_ADDR			( ( volatile uint8_t __evenaccess * )0x00087028 )
+#define ICU_IR041_ADDR			( ( volatile uint8_t __evenaccess * )0x00087029 )
+#define ICU_IR042_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702A )
+#define ICU_IR043_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702B )
+#define ICU_IR044_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702C )
+#define ICU_IR045_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702D )
+#define ICU_IR046_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702E )
+#define ICU_IR047_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702F )
+#define ICU_IR048_ADDR			( ( volatile uint8_t __evenaccess * )0x00087030 )
+#define ICU_IR049_ADDR			( ( volatile uint8_t __evenaccess * )0x00087031 )
+#define ICU_IR050_ADDR			( ( volatile uint8_t __evenaccess * )0x00087032 )
+#define ICU_IR051_ADDR			( ( volatile uint8_t __evenaccess * )0x00087033 )
+#define ICU_IR052_ADDR			( ( volatile uint8_t __evenaccess * )0x00087034 )
+#define ICU_IR053_ADDR			( ( volatile uint8_t __evenaccess * )0x00087035 )
+#define ICU_IR054_ADDR			( ( volatile uint8_t __evenaccess * )0x00087036 )
+#define ICU_IR055_ADDR			( ( volatile uint8_t __evenaccess * )0x00087037 )
+#define ICU_IR056_ADDR			( ( volatile uint8_t __evenaccess * )0x00087038 )
+#define ICU_IR057_ADDR			( ( volatile uint8_t __evenaccess * )0x00087039 )
+#define ICU_IR058_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703A )
+#define ICU_IR059_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703B )
+#define ICU_IR060_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703C )
+#define ICU_IR061_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703D )
+#define ICU_IR062_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703E )
+#define ICU_IR063_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703F )
+#define ICU_IR064_ADDR			( ( volatile uint8_t __evenaccess * )0x00087040 )
+#define ICU_IR065_ADDR			( ( volatile uint8_t __evenaccess * )0x00087041 )
+#define ICU_IR066_ADDR			( ( volatile uint8_t __evenaccess * )0x00087042 )
+#define ICU_IR067_ADDR			( ( volatile uint8_t __evenaccess * )0x00087043 )
+#define ICU_IR068_ADDR			( ( volatile uint8_t __evenaccess * )0x00087044 )
+#define ICU_IR069_ADDR			( ( volatile uint8_t __evenaccess * )0x00087045 )
+#define ICU_IR070_ADDR			( ( volatile uint8_t __evenaccess * )0x00087046 )
+#define ICU_IR071_ADDR			( ( volatile uint8_t __evenaccess * )0x00087047 )
+#define ICU_IR072_ADDR			( ( volatile uint8_t __evenaccess * )0x00087048 )
+#define ICU_IR073_ADDR			( ( volatile uint8_t __evenaccess * )0x00087049 )
+#define ICU_IR074_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704A )
+#define ICU_IR075_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704B )
+#define ICU_IR076_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704C )
+#define ICU_IR077_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704D )
+#define ICU_IR078_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704E )
+#define ICU_IR079_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704F )
+#define ICU_IR080_ADDR			( ( volatile uint8_t __evenaccess * )0x00087050 )
+#define ICU_IR081_ADDR			( ( volatile uint8_t __evenaccess * )0x00087051 )
+#define ICU_IR082_ADDR			( ( volatile uint8_t __evenaccess * )0x00087052 )
+#define ICU_IR083_ADDR			( ( volatile uint8_t __evenaccess * )0x00087053 )
+#define ICU_IR084_ADDR			( ( volatile uint8_t __evenaccess * )0x00087054 )
+#define ICU_IR085_ADDR			( ( volatile uint8_t __evenaccess * )0x00087055 )
+#define ICU_IR086_ADDR			( ( volatile uint8_t __evenaccess * )0x00087056 )
+#define ICU_IR087_ADDR			( ( volatile uint8_t __evenaccess * )0x00087057 )
+#define ICU_IR088_ADDR			( ( volatile uint8_t __evenaccess * )0x00087058 )
+#define ICU_IR089_ADDR			( ( volatile uint8_t __evenaccess * )0x00087059 )
+#define ICU_IR090_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705A )
+#define ICU_IR091_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705B )
+#define ICU_IR092_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705C )
+#define ICU_IR093_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705D )
+#define ICU_IR094_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705E )
+#define ICU_IR095_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705F )
+#define ICU_IR096_ADDR			( ( volatile uint8_t __evenaccess * )0x00087060 )
+#define ICU_IR097_ADDR			( ( volatile uint8_t __evenaccess * )0x00087061 )
+#define ICU_IR098_ADDR			( ( volatile uint8_t __evenaccess * )0x00087062 )
+#define ICU_IR099_ADDR			( ( volatile uint8_t __evenaccess * )0x00087063 )
+#define ICU_IR100_ADDR			( ( volatile uint8_t __evenaccess * )0x00087064 )
+#define ICU_IR101_ADDR			( ( volatile uint8_t __evenaccess * )0x00087065 )
+#define ICU_IR102_ADDR			( ( volatile uint8_t __evenaccess * )0x00087066 )
+#define ICU_IR103_ADDR			( ( volatile uint8_t __evenaccess * )0x00087067 )
+#define ICU_IR104_ADDR			( ( volatile uint8_t __evenaccess * )0x00087068 )
+#define ICU_IR105_ADDR			( ( volatile uint8_t __evenaccess * )0x00087069 )
+#define ICU_IR106_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706A )
+#define ICU_IR107_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706B )
+#define ICU_IR108_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706C )
+#define ICU_IR109_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706D )
+#define ICU_IR110_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706E )
+#define ICU_IR111_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706F )
+#define ICU_IR112_ADDR			( ( volatile uint8_t __evenaccess * )0x00087070 )
+#define ICU_IR113_ADDR			( ( volatile uint8_t __evenaccess * )0x00087071 )
+#define ICU_IR114_ADDR			( ( volatile uint8_t __evenaccess * )0x00087072 )
+#define ICU_IR115_ADDR			( ( volatile uint8_t __evenaccess * )0x00087073 )
+#define ICU_IR116_ADDR			( ( volatile uint8_t __evenaccess * )0x00087074 )
+#define ICU_IR117_ADDR			( ( volatile uint8_t __evenaccess * )0x00087075 )
+#define ICU_IR118_ADDR			( ( volatile uint8_t __evenaccess * )0x00087076 )
+#define ICU_IR119_ADDR			( ( volatile uint8_t __evenaccess * )0x00087077 )
+#define ICU_IR120_ADDR			( ( volatile uint8_t __evenaccess * )0x00087078 )
+#define ICU_IR121_ADDR			( ( volatile uint8_t __evenaccess * )0x00087079 )
+#define ICU_IR122_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707A )
+#define ICU_IR123_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707B )
+#define ICU_IR124_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707C )
+#define ICU_IR125_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707D )
+#define ICU_IR126_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707E )
+#define ICU_IR127_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707F )
+#define ICU_IR128_ADDR			( ( volatile uint8_t __evenaccess * )0x00087080 )
+#define ICU_IR129_ADDR			( ( volatile uint8_t __evenaccess * )0x00087081 )
+#define ICU_IR130_ADDR			( ( volatile uint8_t __evenaccess * )0x00087082 )
+#define ICU_IR131_ADDR			( ( volatile uint8_t __evenaccess * )0x00087083 )
+#define ICU_IR132_ADDR			( ( volatile uint8_t __evenaccess * )0x00087084 )
+#define ICU_IR133_ADDR			( ( volatile uint8_t __evenaccess * )0x00087085 )
+#define ICU_IR134_ADDR			( ( volatile uint8_t __evenaccess * )0x00087086 )
+#define ICU_IR135_ADDR			( ( volatile uint8_t __evenaccess * )0x00087087 )
+#define ICU_IR136_ADDR			( ( volatile uint8_t __evenaccess * )0x00087088 )
+#define ICU_IR137_ADDR			( ( volatile uint8_t __evenaccess * )0x00087089 )
+#define ICU_IR138_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708A )
+#define ICU_IR139_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708B )
+#define ICU_IR140_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708C )
+#define ICU_IR141_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708D )
+#define ICU_IR142_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708E )
+#define ICU_IR143_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708F )
+#define ICU_IR144_ADDR			( ( volatile uint8_t __evenaccess * )0x00087090 )
+#define ICU_IR145_ADDR			( ( volatile uint8_t __evenaccess * )0x00087091 )
+#define ICU_IR146_ADDR			( ( volatile uint8_t __evenaccess * )0x00087092 )
+#define ICU_IR147_ADDR			( ( volatile uint8_t __evenaccess * )0x00087093 )
+#define ICU_IR148_ADDR			( ( volatile uint8_t __evenaccess * )0x00087094 )
+#define ICU_IR149_ADDR			( ( volatile uint8_t __evenaccess * )0x00087095 )
+#define ICU_IR150_ADDR			( ( volatile uint8_t __evenaccess * )0x00087096 )
+#define ICU_IR151_ADDR			( ( volatile uint8_t __evenaccess * )0x00087097 )
+#define ICU_IR152_ADDR			( ( volatile uint8_t __evenaccess * )0x00087098 )
+#define ICU_IR153_ADDR			( ( volatile uint8_t __evenaccess * )0x00087099 )
+#define ICU_IR154_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709A )
+#define ICU_IR155_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709B )
+#define ICU_IR156_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709C )
+#define ICU_IR157_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709D )
+#define ICU_IR158_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709E )
+#define ICU_IR159_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709F )
+#define ICU_IR160_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A0 )
+#define ICU_IR161_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A1 )
+#define ICU_IR162_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A2 )
+#define ICU_IR163_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A3 )
+#define ICU_IR164_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A4 )
+#define ICU_IR165_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A5 )
+#define ICU_IR166_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A6 )
+#define ICU_IR167_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A7 )
+#define ICU_IR168_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A8 )
+#define ICU_IR169_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A9 )
+#define ICU_IR170_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AA )
+#define ICU_IR171_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AB )
+#define ICU_IR172_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AC )
+#define ICU_IR173_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AD )
+#define ICU_IR174_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AE )
+#define ICU_IR175_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AF )
+#define ICU_IR176_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B0 )
+#define ICU_IR177_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B1 )
+#define ICU_IR178_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B2 )
+#define ICU_IR179_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B3 )
+#define ICU_IR180_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B4 )
+#define ICU_IR181_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B5 )
+#define ICU_IR182_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B6 )
+#define ICU_IR183_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B7 )
+#define ICU_IR184_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B8 )
+#define ICU_IR185_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B9 )
+#define ICU_IR186_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BA )
+#define ICU_IR187_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BB )
+#define ICU_IR188_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BC )
+#define ICU_IR189_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BD )
+#define ICU_IR190_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BE )
+#define ICU_IR191_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BF )
+#define ICU_IR192_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C0 )
+#define ICU_IR193_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C1 )
+#define ICU_IR194_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C2 )
+#define ICU_IR195_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C3 )
+#define ICU_IR196_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C4 )
+#define ICU_IR197_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C5 )
+#define ICU_IR198_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C6 )
+#define ICU_IR199_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C7 )
+#define ICU_IR200_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C8 )
+#define ICU_IR201_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C9 )
+#define ICU_IR202_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CA )
+#define ICU_IR203_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CB )
+#define ICU_IR204_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CC )
+#define ICU_IR205_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CD )
+#define ICU_IR206_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CE )
+#define ICU_IR207_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CF )
+#define ICU_IR208_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D0 )
+#define ICU_IR209_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D1 )
+#define ICU_IR210_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D2 )
+#define ICU_IR211_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D3 )
+#define ICU_IR212_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D4 )
+#define ICU_IR213_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D5 )
+#define ICU_IR214_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D6 )
+#define ICU_IR215_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D7 )
+#define ICU_IR216_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D8 )
+#define ICU_IR217_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D9 )
+#define ICU_IR218_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DA )
+#define ICU_IR219_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DB )
+#define ICU_IR220_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DC )
+#define ICU_IR221_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DD )
+#define ICU_IR222_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DE )
+#define ICU_IR223_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DF )
+#define ICU_IR224_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E0 )
+#define ICU_IR225_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E1 )
+#define ICU_IR226_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E2 )
+#define ICU_IR227_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E3 )
+#define ICU_IR228_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E4 )
+#define ICU_IR229_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E5 )
+#define ICU_IR230_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E6 )
+#define ICU_IR231_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E7 )
+#define ICU_IR232_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E8 )
+#define ICU_IR233_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E9 )
+#define ICU_IR234_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EA )
+#define ICU_IR235_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EB )
+#define ICU_IR236_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EC )
+#define ICU_IR237_ADDR			( ( volatile uint8_t __evenaccess * )0x000870ED )
+#define ICU_IR238_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EE )
+#define ICU_IR239_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EF )
+#define ICU_IR240_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F0 )
+#define ICU_IR241_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F1 )
+#define ICU_IR242_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F2 )
+#define ICU_IR243_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F3 )
+#define ICU_IR244_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F4 )
+#define ICU_IR245_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F5 )
+#define ICU_IR246_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F6 )
+#define ICU_IR247_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F7 )
+#define ICU_IR248_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F8 )
+#define ICU_IR249_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F9 )
+#define ICU_IR250_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FA )
+#define ICU_IR251_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FB )
+#define ICU_IR252_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FC )
+#define ICU_IR253_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FD )
+#define ICU_IR254_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FE )
+#define ICU_IR255_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FF )
+#define ICU_IR_BIT				( 1U << 0U )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿
+ */
+#define ICU_ISELR000_ADDR		( ( volatile uint8_t __evenaccess * )0x00087100 )
+#define ICU_ISELR001_ADDR		( ( volatile uint8_t __evenaccess * )0x00087101 )
+#define ICU_ISELR002_ADDR		( ( volatile uint8_t __evenaccess * )0x00087102 )
+#define ICU_ISELR003_ADDR		( ( volatile uint8_t __evenaccess * )0x00087103 )
+#define ICU_ISELR004_ADDR		( ( volatile uint8_t __evenaccess * )0x00087104 )
+#define ICU_ISELR005_ADDR		( ( volatile uint8_t __evenaccess * )0x00087105 )
+#define ICU_ISELR006_ADDR		( ( volatile uint8_t __evenaccess * )0x00087106 )
+#define ICU_ISELR007_ADDR		( ( volatile uint8_t __evenaccess * )0x00087107 )
+#define ICU_ISELR008_ADDR		( ( volatile uint8_t __evenaccess * )0x00087108 )
+#define ICU_ISELR009_ADDR		( ( volatile uint8_t __evenaccess * )0x00087109 )
+#define ICU_ISELR010_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710A )
+#define ICU_ISELR011_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710B )
+#define ICU_ISELR012_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710C )
+#define ICU_ISELR013_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710D )
+#define ICU_ISELR014_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710E )
+#define ICU_ISELR015_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710F )
+#define ICU_ISELR016_ADDR		( ( volatile uint8_t __evenaccess * )0x00087110 )
+#define ICU_ISELR017_ADDR		( ( volatile uint8_t __evenaccess * )0x00087111 )
+#define ICU_ISELR018_ADDR		( ( volatile uint8_t __evenaccess * )0x00087112 )
+#define ICU_ISELR019_ADDR		( ( volatile uint8_t __evenaccess * )0x00087113 )
+#define ICU_ISELR020_ADDR		( ( volatile uint8_t __evenaccess * )0x00087114 )
+#define ICU_ISELR021_ADDR		( ( volatile uint8_t __evenaccess * )0x00087115 )
+#define ICU_ISELR022_ADDR		( ( volatile uint8_t __evenaccess * )0x00087116 )
+#define ICU_ISELR023_ADDR		( ( volatile uint8_t __evenaccess * )0x00087117 )
+#define ICU_ISELR024_ADDR		( ( volatile uint8_t __evenaccess * )0x00087118 )
+#define ICU_ISELR025_ADDR		( ( volatile uint8_t __evenaccess * )0x00087119 )
+#define ICU_ISELR026_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711A )
+#define ICU_ISELR027_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711B )
+#define ICU_ISELR028_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711C )
+#define ICU_ISELR029_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711D )
+#define ICU_ISELR030_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711E )
+#define ICU_ISELR031_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711F )
+#define ICU_ISELR032_ADDR		( ( volatile uint8_t __evenaccess * )0x00087120 )
+#define ICU_ISELR033_ADDR		( ( volatile uint8_t __evenaccess * )0x00087121 )
+#define ICU_ISELR034_ADDR		( ( volatile uint8_t __evenaccess * )0x00087122 )
+#define ICU_ISELR035_ADDR		( ( volatile uint8_t __evenaccess * )0x00087123 )
+#define ICU_ISELR036_ADDR		( ( volatile uint8_t __evenaccess * )0x00087124 )
+#define ICU_ISELR037_ADDR		( ( volatile uint8_t __evenaccess * )0x00087125 )
+#define ICU_ISELR038_ADDR		( ( volatile uint8_t __evenaccess * )0x00087126 )
+#define ICU_ISELR039_ADDR		( ( volatile uint8_t __evenaccess * )0x00087127 )
+#define ICU_ISELR040_ADDR		( ( volatile uint8_t __evenaccess * )0x00087128 )
+#define ICU_ISELR041_ADDR		( ( volatile uint8_t __evenaccess * )0x00087129 )
+#define ICU_ISELR042_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712A )
+#define ICU_ISELR043_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712B )
+#define ICU_ISELR044_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712C )
+#define ICU_ISELR045_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712D )
+#define ICU_ISELR046_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712E )
+#define ICU_ISELR047_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712F )
+#define ICU_ISELR048_ADDR		( ( volatile uint8_t __evenaccess * )0x00087130 )
+#define ICU_ISELR049_ADDR		( ( volatile uint8_t __evenaccess * )0x00087131 )
+#define ICU_ISELR050_ADDR		( ( volatile uint8_t __evenaccess * )0x00087132 )
+#define ICU_ISELR051_ADDR		( ( volatile uint8_t __evenaccess * )0x00087133 )
+#define ICU_ISELR052_ADDR		( ( volatile uint8_t __evenaccess * )0x00087134 )
+#define ICU_ISELR053_ADDR		( ( volatile uint8_t __evenaccess * )0x00087135 )
+#define ICU_ISELR054_ADDR		( ( volatile uint8_t __evenaccess * )0x00087136 )
+#define ICU_ISELR055_ADDR		( ( volatile uint8_t __evenaccess * )0x00087137 )
+#define ICU_ISELR056_ADDR		( ( volatile uint8_t __evenaccess * )0x00087138 )
+#define ICU_ISELR057_ADDR		( ( volatile uint8_t __evenaccess * )0x00087139 )
+#define ICU_ISELR058_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713A )
+#define ICU_ISELR059_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713B )
+#define ICU_ISELR060_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713C )
+#define ICU_ISELR061_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713D )
+#define ICU_ISELR062_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713E )
+#define ICU_ISELR063_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713F )
+#define ICU_ISELR064_ADDR		( ( volatile uint8_t __evenaccess * )0x00087140 )
+#define ICU_ISELR065_ADDR		( ( volatile uint8_t __evenaccess * )0x00087141 )
+#define ICU_ISELR066_ADDR		( ( volatile uint8_t __evenaccess * )0x00087142 )
+#define ICU_ISELR067_ADDR		( ( volatile uint8_t __evenaccess * )0x00087143 )
+#define ICU_ISELR068_ADDR		( ( volatile uint8_t __evenaccess * )0x00087144 )
+#define ICU_ISELR069_ADDR		( ( volatile uint8_t __evenaccess * )0x00087145 )
+#define ICU_ISELR070_ADDR		( ( volatile uint8_t __evenaccess * )0x00087146 )
+#define ICU_ISELR071_ADDR		( ( volatile uint8_t __evenaccess * )0x00087147 )
+#define ICU_ISELR072_ADDR		( ( volatile uint8_t __evenaccess * )0x00087148 )
+#define ICU_ISELR073_ADDR		( ( volatile uint8_t __evenaccess * )0x00087149 )
+#define ICU_ISELR074_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714A )
+#define ICU_ISELR075_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714B )
+#define ICU_ISELR076_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714C )
+#define ICU_ISELR077_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714D )
+#define ICU_ISELR078_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714E )
+#define ICU_ISELR079_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714F )
+#define ICU_ISELR080_ADDR		( ( volatile uint8_t __evenaccess * )0x00087150 )
+#define ICU_ISELR081_ADDR		( ( volatile uint8_t __evenaccess * )0x00087151 )
+#define ICU_ISELR082_ADDR		( ( volatile uint8_t __evenaccess * )0x00087152 )
+#define ICU_ISELR083_ADDR		( ( volatile uint8_t __evenaccess * )0x00087153 )
+#define ICU_ISELR084_ADDR		( ( volatile uint8_t __evenaccess * )0x00087154 )
+#define ICU_ISELR085_ADDR		( ( volatile uint8_t __evenaccess * )0x00087155 )
+#define ICU_ISELR086_ADDR		( ( volatile uint8_t __evenaccess * )0x00087156 )
+#define ICU_ISELR087_ADDR		( ( volatile uint8_t __evenaccess * )0x00087157 )
+#define ICU_ISELR088_ADDR		( ( volatile uint8_t __evenaccess * )0x00087158 )
+#define ICU_ISELR089_ADDR		( ( volatile uint8_t __evenaccess * )0x00087159 )
+#define ICU_ISELR090_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715A )
+#define ICU_ISELR091_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715B )
+#define ICU_ISELR092_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715C )
+#define ICU_ISELR093_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715D )
+#define ICU_ISELR094_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715E )
+#define ICU_ISELR095_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715F )
+#define ICU_ISELR096_ADDR		( ( volatile uint8_t __evenaccess * )0x00087160 )
+#define ICU_ISELR097_ADDR		( ( volatile uint8_t __evenaccess * )0x00087161 )
+#define ICU_ISELR098_ADDR		( ( volatile uint8_t __evenaccess * )0x00087162 )
+#define ICU_ISELR099_ADDR		( ( volatile uint8_t __evenaccess * )0x00087163 )
+#define ICU_ISELR100_ADDR		( ( volatile uint8_t __evenaccess * )0x00087164 )
+#define ICU_ISELR101_ADDR		( ( volatile uint8_t __evenaccess * )0x00087165 )
+#define ICU_ISELR102_ADDR		( ( volatile uint8_t __evenaccess * )0x00087166 )
+#define ICU_ISELR103_ADDR		( ( volatile uint8_t __evenaccess * )0x00087167 )
+#define ICU_ISELR104_ADDR		( ( volatile uint8_t __evenaccess * )0x00087168 )
+#define ICU_ISELR105_ADDR		( ( volatile uint8_t __evenaccess * )0x00087169 )
+#define ICU_ISELR106_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716A )
+#define ICU_ISELR107_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716B )
+#define ICU_ISELR108_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716C )
+#define ICU_ISELR109_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716D )
+#define ICU_ISELR110_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716E )
+#define ICU_ISELR111_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716F )
+#define ICU_ISELR112_ADDR		( ( volatile uint8_t __evenaccess * )0x00087170 )
+#define ICU_ISELR113_ADDR		( ( volatile uint8_t __evenaccess * )0x00087171 )
+#define ICU_ISELR114_ADDR		( ( volatile uint8_t __evenaccess * )0x00087172 )
+#define ICU_ISELR115_ADDR		( ( volatile uint8_t __evenaccess * )0x00087173 )
+#define ICU_ISELR116_ADDR		( ( volatile uint8_t __evenaccess * )0x00087174 )
+#define ICU_ISELR117_ADDR		( ( volatile uint8_t __evenaccess * )0x00087175 )
+#define ICU_ISELR118_ADDR		( ( volatile uint8_t __evenaccess * )0x00087176 )
+#define ICU_ISELR119_ADDR		( ( volatile uint8_t __evenaccess * )0x00087177 )
+#define ICU_ISELR120_ADDR		( ( volatile uint8_t __evenaccess * )0x00087178 )
+#define ICU_ISELR121_ADDR		( ( volatile uint8_t __evenaccess * )0x00087179 )
+#define ICU_ISELR122_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717A )
+#define ICU_ISELR123_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717B )
+#define ICU_ISELR124_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717C )
+#define ICU_ISELR125_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717D )
+#define ICU_ISELR126_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717E )
+#define ICU_ISELR127_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717F )
+#define ICU_ISELR128_ADDR		( ( volatile uint8_t __evenaccess * )0x00087180 )
+#define ICU_ISELR129_ADDR		( ( volatile uint8_t __evenaccess * )0x00087181 )
+#define ICU_ISELR130_ADDR		( ( volatile uint8_t __evenaccess * )0x00087182 )
+#define ICU_ISELR131_ADDR		( ( volatile uint8_t __evenaccess * )0x00087183 )
+#define ICU_ISELR132_ADDR		( ( volatile uint8_t __evenaccess * )0x00087184 )
+#define ICU_ISELR133_ADDR		( ( volatile uint8_t __evenaccess * )0x00087185 )
+#define ICU_ISELR134_ADDR		( ( volatile uint8_t __evenaccess * )0x00087186 )
+#define ICU_ISELR135_ADDR		( ( volatile uint8_t __evenaccess * )0x00087187 )
+#define ICU_ISELR136_ADDR		( ( volatile uint8_t __evenaccess * )0x00087188 )
+#define ICU_ISELR137_ADDR		( ( volatile uint8_t __evenaccess * )0x00087189 )
+#define ICU_ISELR138_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718A )
+#define ICU_ISELR139_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718B )
+#define ICU_ISELR140_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718C )
+#define ICU_ISELR141_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718D )
+#define ICU_ISELR142_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718E )
+#define ICU_ISELR143_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718F )
+#define ICU_ISELR144_ADDR		( ( volatile uint8_t __evenaccess * )0x00087190 )
+#define ICU_ISELR145_ADDR		( ( volatile uint8_t __evenaccess * )0x00087191 )
+#define ICU_ISELR146_ADDR		( ( volatile uint8_t __evenaccess * )0x00087192 )
+#define ICU_ISELR147_ADDR		( ( volatile uint8_t __evenaccess * )0x00087193 )
+#define ICU_ISELR148_ADDR		( ( volatile uint8_t __evenaccess * )0x00087194 )
+#define ICU_ISELR149_ADDR		( ( volatile uint8_t __evenaccess * )0x00087195 )
+#define ICU_ISELR150_ADDR		( ( volatile uint8_t __evenaccess * )0x00087196 )
+#define ICU_ISELR151_ADDR		( ( volatile uint8_t __evenaccess * )0x00087197 )
+#define ICU_ISELR152_ADDR		( ( volatile uint8_t __evenaccess * )0x00087198 )
+#define ICU_ISELR153_ADDR		( ( volatile uint8_t __evenaccess * )0x00087199 )
+#define ICU_ISELR154_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719A )
+#define ICU_ISELR155_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719B )
+#define ICU_ISELR156_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719C )
+#define ICU_ISELR157_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719D )
+#define ICU_ISELR158_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719E )
+#define ICU_ISELR159_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719F )
+#define ICU_ISELR160_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A0 )
+#define ICU_ISELR161_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A1 )
+#define ICU_ISELR162_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A2 )
+#define ICU_ISELR163_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A3 )
+#define ICU_ISELR164_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A4 )
+#define ICU_ISELR165_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A5 )
+#define ICU_ISELR166_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A6 )
+#define ICU_ISELR167_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A7 )
+#define ICU_ISELR168_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A8 )
+#define ICU_ISELR169_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A9 )
+#define ICU_ISELR170_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AA )
+#define ICU_ISELR171_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AB )
+#define ICU_ISELR172_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AC )
+#define ICU_ISELR173_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AD )
+#define ICU_ISELR174_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AE )
+#define ICU_ISELR175_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AF )
+#define ICU_ISELR176_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B0 )
+#define ICU_ISELR177_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B1 )
+#define ICU_ISELR178_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B2 )
+#define ICU_ISELR179_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B3 )
+#define ICU_ISELR180_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B4 )
+#define ICU_ISELR181_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B5 )
+#define ICU_ISELR182_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B6 )
+#define ICU_ISELR183_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B7 )
+#define ICU_ISELR184_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B8 )
+#define ICU_ISELR185_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B9 )
+#define ICU_ISELR186_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BA )
+#define ICU_ISELR187_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BB )
+#define ICU_ISELR188_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BC )
+#define ICU_ISELR189_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BD )
+#define ICU_ISELR190_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BE )
+#define ICU_ISELR191_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BF )
+#define ICU_ISELR192_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C0 )
+#define ICU_ISELR193_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C1 )
+#define ICU_ISELR194_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C2 )
+#define ICU_ISELR195_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C3 )
+#define ICU_ISELR196_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C4 )
+#define ICU_ISELR197_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C5 )
+#define ICU_ISELR198_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C6 )
+#define ICU_ISELR199_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C7 )
+#define ICU_ISELR200_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C8 )
+#define ICU_ISELR201_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C9 )
+#define ICU_ISELR202_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CA )
+#define ICU_ISELR203_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CB )
+#define ICU_ISELR204_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CC )
+#define ICU_ISELR205_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CD )
+#define ICU_ISELR206_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CE )
+#define ICU_ISELR207_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CF )
+#define ICU_ISELR208_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D0 )
+#define ICU_ISELR209_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D1 )
+#define ICU_ISELR210_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D2 )
+#define ICU_ISELR211_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D3 )
+#define ICU_ISELR212_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D4 )
+#define ICU_ISELR213_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D5 )
+#define ICU_ISELR214_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D6 )
+#define ICU_ISELR215_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D7 )
+#define ICU_ISELR216_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D8 )
+#define ICU_ISELR217_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D9 )
+#define ICU_ISELR218_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DA )
+#define ICU_ISELR219_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DB )
+#define ICU_ISELR220_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DC )
+#define ICU_ISELR221_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DD )
+#define ICU_ISELR222_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DE )
+#define ICU_ISELR223_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DF )
+#define ICU_ISELR224_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E0 )
+#define ICU_ISELR225_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E1 )
+#define ICU_ISELR226_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E2 )
+#define ICU_ISELR227_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E3 )
+#define ICU_ISELR228_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E4 )
+#define ICU_ISELR229_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E5 )
+#define ICU_ISELR230_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E6 )
+#define ICU_ISELR231_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E7 )
+#define ICU_ISELR232_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E8 )
+#define ICU_ISELR233_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E9 )
+#define ICU_ISELR234_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EA )
+#define ICU_ISELR235_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EB )
+#define ICU_ISELR236_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EC )
+#define ICU_ISELR237_ADDR		( ( volatile uint8_t __evenaccess * )0x000871ED )
+#define ICU_ISELR238_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EE )
+#define ICU_ISELR239_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EF )
+#define ICU_ISELR240_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F0 )
+#define ICU_ISELR241_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F1 )
+#define ICU_ISELR242_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F2 )
+#define ICU_ISELR243_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F3 )
+#define ICU_ISELR244_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F4 )
+#define ICU_ISELR245_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F5 )
+#define ICU_ISELR246_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F6 )
+#define ICU_ISELR247_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F7 )
+#define ICU_ISELR248_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F8 )
+#define ICU_ISELR249_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F9 )
+#define ICU_ISELR250_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FA )
+#define ICU_ISELR251_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FB )
+#define ICU_ISELR252_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FC )
+#define ICU_ISELR253_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FD )
+#define ICU_ISELR254_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FE )
+#define ICU_ISELR255_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FF )
+#define ICU_ISEL_BIT			( 3U << 0U )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿
+ */
+#define ICU_IER02_ADDR			( ( volatile uint8_t __evenaccess * )0x00087202 )
+#define ICU_IER03_ADDR			( ( volatile uint8_t __evenaccess * )0x00087203 )
+#define ICU_IER04_ADDR			( ( volatile uint8_t __evenaccess * )0x00087204 )
+#define ICU_IER05_ADDR			( ( volatile uint8_t __evenaccess * )0x00087205 )
+#define ICU_IER06_ADDR			( ( volatile uint8_t __evenaccess * )0x00087206 )
+#define ICU_IER07_ADDR			( ( volatile uint8_t __evenaccess * )0x00087207 )
+#define ICU_IER08_ADDR			( ( volatile uint8_t __evenaccess * )0x00087208 )
+#define ICU_IER09_ADDR			( ( volatile uint8_t __evenaccess * )0x00087209 )
+#define ICU_IER0B_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720B )
+#define ICU_IER0C_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720C )
+#define ICU_IER0D_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720D )
+#define ICU_IER0E_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720E )
+#define ICU_IER0F_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720F )
+#define ICU_IER10_ADDR			( ( volatile uint8_t __evenaccess * )0x00087210 )
+#define ICU_IER11_ADDR			( ( volatile uint8_t __evenaccess * )0x00087211 )
+#define ICU_IER12_ADDR			( ( volatile uint8_t __evenaccess * )0x00087212 )
+#define ICU_IER13_ADDR			( ( volatile uint8_t __evenaccess * )0x00087213 )
+#define ICU_IER14_ADDR			( ( volatile uint8_t __evenaccess * )0x00087214 )
+#define ICU_IER15_ADDR			( ( volatile uint8_t __evenaccess * )0x00087215 )
+#define ICU_IER16_ADDR			( ( volatile uint8_t __evenaccess * )0x00087216 )
+#define ICU_IER17_ADDR			( ( volatile uint8_t __evenaccess * )0x00087217 )
+#define ICU_IER18_ADDR			( ( volatile uint8_t __evenaccess * )0x00087218 )
+#define ICU_IER19_ADDR			( ( volatile uint8_t __evenaccess * )0x00087219 )
+#define ICU_IER1A_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721A )
+#define ICU_IER1B_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721B )
+#define ICU_IER1C_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721C )
+#define ICU_IER1D_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721D )
+#define ICU_IER1E_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721E )
+#define ICU_IER1F_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721F )
+#define ICU_IEN0_BIT			( 1U << 0U )
+#define ICU_IEN1_BIT			( 1U << 1U )
+#define ICU_IEN2_BIT			( 1U << 2U )
+#define ICU_IEN3_BIT			( 1U << 3U )
+#define ICU_IEN4_BIT			( 1U << 4U )
+#define ICU_IEN5_BIT			( 1U << 5U )
+#define ICU_IEN6_BIT			( 1U << 6U )
+#define ICU_IEN7_BIT			( 1U << 7U )
+
+/* 
+ * å²ãè¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿i(i=0ï½253)ã®è¨­å®
+ */
+#define ICU_IPR000_ADDR			( ( volatile uint8_t __evenaccess * )0x00087300 )
+#define ICU_IPR001_ADDR			( ( volatile uint8_t __evenaccess * )0x00087301 )
+#define ICU_IPR002_ADDR			( ( volatile uint8_t __evenaccess * )0x00087302 )
+#define ICU_IPR003_ADDR			( ( volatile uint8_t __evenaccess * )0x00087303 )
+#define ICU_IPR004_ADDR			( ( volatile uint8_t __evenaccess * )0x00087304 )
+#define ICU_IPR005_ADDR			( ( volatile uint8_t __evenaccess * )0x00087305 )
+#define ICU_IPR006_ADDR			( ( volatile uint8_t __evenaccess * )0x00087306 )
+#define ICU_IPR007_ADDR			( ( volatile uint8_t __evenaccess * )0x00087307 )
+#define ICU_IPR008_ADDR			( ( volatile uint8_t __evenaccess * )0x00087308 )
+#define ICU_IPR009_ADDR			( ( volatile uint8_t __evenaccess * )0x00087309 )
+#define ICU_IPR010_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730A )
+#define ICU_IPR011_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730B )
+#define ICU_IPR012_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730C )
+#define ICU_IPR013_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730D )
+#define ICU_IPR014_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730E )
+#define ICU_IPR015_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730F )
+#define ICU_IPR016_ADDR			( ( volatile uint8_t __evenaccess * )0x00087310 )
+#define ICU_IPR017_ADDR			( ( volatile uint8_t __evenaccess * )0x00087311 )
+#define ICU_IPR018_ADDR			( ( volatile uint8_t __evenaccess * )0x00087312 )
+#define ICU_IPR019_ADDR			( ( volatile uint8_t __evenaccess * )0x00087313 )
+#define ICU_IPR020_ADDR			( ( volatile uint8_t __evenaccess * )0x00087314 )
+#define ICU_IPR021_ADDR			( ( volatile uint8_t __evenaccess * )0x00087315 )
+#define ICU_IPR022_ADDR			( ( volatile uint8_t __evenaccess * )0x00087316 )
+#define ICU_IPR023_ADDR			( ( volatile uint8_t __evenaccess * )0x00087317 )
+#define ICU_IPR024_ADDR			( ( volatile uint8_t __evenaccess * )0x00087318 )
+#define ICU_IPR025_ADDR			( ( volatile uint8_t __evenaccess * )0x00087319 )
+#define ICU_IPR026_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731A )
+#define ICU_IPR027_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731B )
+#define ICU_IPR028_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731C )
+#define ICU_IPR029_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731D )
+#define ICU_IPR030_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731E )
+#define ICU_IPR031_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731F )
+#define ICU_IPR032_ADDR			( ( volatile uint8_t __evenaccess * )0x00087320 )
+#define ICU_IPR033_ADDR			( ( volatile uint8_t __evenaccess * )0x00087321 )
+#define ICU_IPR034_ADDR			( ( volatile uint8_t __evenaccess * )0x00087322 )
+#define ICU_IPR035_ADDR			( ( volatile uint8_t __evenaccess * )0x00087323 )
+#define ICU_IPR036_ADDR			( ( volatile uint8_t __evenaccess * )0x00087324 )
+#define ICU_IPR037_ADDR			( ( volatile uint8_t __evenaccess * )0x00087325 )
+#define ICU_IPR038_ADDR			( ( volatile uint8_t __evenaccess * )0x00087326 )
+#define ICU_IPR039_ADDR			( ( volatile uint8_t __evenaccess * )0x00087327 )
+#define ICU_IPR040_ADDR			( ( volatile uint8_t __evenaccess * )0x00087328 )
+#define ICU_IPR041_ADDR			( ( volatile uint8_t __evenaccess * )0x00087329 )
+#define ICU_IPR042_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732A )
+#define ICU_IPR043_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732B )
+#define ICU_IPR044_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732C )
+#define ICU_IPR045_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732D )
+#define ICU_IPR046_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732E )
+#define ICU_IPR047_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732F )
+#define ICU_IPR048_ADDR			( ( volatile uint8_t __evenaccess * )0x00087330 )
+#define ICU_IPR049_ADDR			( ( volatile uint8_t __evenaccess * )0x00087331 )
+#define ICU_IPR050_ADDR			( ( volatile uint8_t __evenaccess * )0x00087332 )
+#define ICU_IPR051_ADDR			( ( volatile uint8_t __evenaccess * )0x00087333 )
+#define ICU_IPR052_ADDR			( ( volatile uint8_t __evenaccess * )0x00087334 )
+#define ICU_IPR053_ADDR			( ( volatile uint8_t __evenaccess * )0x00087335 )
+#define ICU_IPR054_ADDR			( ( volatile uint8_t __evenaccess * )0x00087336 )
+#define ICU_IPR055_ADDR			( ( volatile uint8_t __evenaccess * )0x00087337 )
+#define ICU_IPR056_ADDR			( ( volatile uint8_t __evenaccess * )0x00087338 )
+#define ICU_IPR057_ADDR			( ( volatile uint8_t __evenaccess * )0x00087339 )
+#define ICU_IPR058_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733A )
+#define ICU_IPR059_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733B )
+#define ICU_IPR060_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733C )
+#define ICU_IPR061_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733D )
+#define ICU_IPR062_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733E )
+#define ICU_IPR063_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733F )
+#define ICU_IPR064_ADDR			( ( volatile uint8_t __evenaccess * )0x00087340 )
+#define ICU_IPR065_ADDR			( ( volatile uint8_t __evenaccess * )0x00087341 )
+#define ICU_IPR066_ADDR			( ( volatile uint8_t __evenaccess * )0x00087342 )
+#define ICU_IPR067_ADDR			( ( volatile uint8_t __evenaccess * )0x00087343 )
+#define ICU_IPR068_ADDR			( ( volatile uint8_t __evenaccess * )0x00087344 )
+#define ICU_IPR069_ADDR			( ( volatile uint8_t __evenaccess * )0x00087345 )
+#define ICU_IPR070_ADDR			( ( volatile uint8_t __evenaccess * )0x00087346 )
+#define ICU_IPR071_ADDR			( ( volatile uint8_t __evenaccess * )0x00087347 )
+#define ICU_IPR072_ADDR			( ( volatile uint8_t __evenaccess * )0x00087348 )
+#define ICU_IPR073_ADDR			( ( volatile uint8_t __evenaccess * )0x00087349 )
+#define ICU_IPR074_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734A )
+#define ICU_IPR075_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734B )
+#define ICU_IPR076_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734C )
+#define ICU_IPR077_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734D )
+#define ICU_IPR078_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734E )
+#define ICU_IPR079_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734F )
+#define ICU_IPR080_ADDR			( ( volatile uint8_t __evenaccess * )0x00087350 )
+#define ICU_IPR081_ADDR			( ( volatile uint8_t __evenaccess * )0x00087351 )
+#define ICU_IPR082_ADDR			( ( volatile uint8_t __evenaccess * )0x00087352 )
+#define ICU_IPR083_ADDR			( ( volatile uint8_t __evenaccess * )0x00087353 )
+#define ICU_IPR084_ADDR			( ( volatile uint8_t __evenaccess * )0x00087354 )
+#define ICU_IPR085_ADDR			( ( volatile uint8_t __evenaccess * )0x00087355 )
+#define ICU_IPR086_ADDR			( ( volatile uint8_t __evenaccess * )0x00087356 )
+#define ICU_IPR087_ADDR			( ( volatile uint8_t __evenaccess * )0x00087357 )
+#define ICU_IPR088_ADDR			( ( volatile uint8_t __evenaccess * )0x00087358 )
+#define ICU_IPR089_ADDR			( ( volatile uint8_t __evenaccess * )0x00087359 )
+#define ICU_IPR090_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735A )
+#define ICU_IPR091_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735B )
+#define ICU_IPR092_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735C )
+#define ICU_IPR093_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735D )
+#define ICU_IPR094_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735E )
+#define ICU_IPR095_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735F )
+#define ICU_IPR096_ADDR			( ( volatile uint8_t __evenaccess * )0x00087360 )
+#define ICU_IPR097_ADDR			( ( volatile uint8_t __evenaccess * )0x00087361 )
+#define ICU_IPR098_ADDR			( ( volatile uint8_t __evenaccess * )0x00087362 )
+#define ICU_IPR099_ADDR			( ( volatile uint8_t __evenaccess * )0x00087363 )
+#define ICU_IPR100_ADDR			( ( volatile uint8_t __evenaccess * )0x00087364 )
+#define ICU_IPR101_ADDR			( ( volatile uint8_t __evenaccess * )0x00087365 )
+#define ICU_IPR102_ADDR			( ( volatile uint8_t __evenaccess * )0x00087366 )
+#define ICU_IPR103_ADDR			( ( volatile uint8_t __evenaccess * )0x00087367 )
+#define ICU_IPR104_ADDR			( ( volatile uint8_t __evenaccess * )0x00087368 )
+#define ICU_IPR105_ADDR			( ( volatile uint8_t __evenaccess * )0x00087369 )
+#define ICU_IPR106_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736A )
+#define ICU_IPR107_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736B )
+#define ICU_IPR108_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736C )
+#define ICU_IPR109_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736D )
+#define ICU_IPR110_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736E )
+#define ICU_IPR111_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736F )
+#define ICU_IPR112_ADDR			( ( volatile uint8_t __evenaccess * )0x00087370 )
+#define ICU_IPR113_ADDR			( ( volatile uint8_t __evenaccess * )0x00087371 )
+#define ICU_IPR114_ADDR			( ( volatile uint8_t __evenaccess * )0x00087372 )
+#define ICU_IPR115_ADDR			( ( volatile uint8_t __evenaccess * )0x00087373 )
+#define ICU_IPR116_ADDR			( ( volatile uint8_t __evenaccess * )0x00087374 )
+#define ICU_IPR117_ADDR			( ( volatile uint8_t __evenaccess * )0x00087375 )
+#define ICU_IPR118_ADDR			( ( volatile uint8_t __evenaccess * )0x00087376 )
+#define ICU_IPR119_ADDR			( ( volatile uint8_t __evenaccess * )0x00087377 )
+#define ICU_IPR120_ADDR			( ( volatile uint8_t __evenaccess * )0x00087378 )
+#define ICU_IPR121_ADDR			( ( volatile uint8_t __evenaccess * )0x00087379 )
+#define ICU_IPR122_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737A )
+#define ICU_IPR123_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737B )
+#define ICU_IPR124_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737C )
+#define ICU_IPR125_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737D )
+#define ICU_IPR126_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737E )
+#define ICU_IPR127_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737F )
+#define ICU_IPR128_ADDR			( ( volatile uint8_t __evenaccess * )0x00087380 )
+#define ICU_IPR129_ADDR			( ( volatile uint8_t __evenaccess * )0x00087381 )
+#define ICU_IPR130_ADDR			( ( volatile uint8_t __evenaccess * )0x00087382 )
+#define ICU_IPR131_ADDR			( ( volatile uint8_t __evenaccess * )0x00087383 )
+#define ICU_IPR132_ADDR			( ( volatile uint8_t __evenaccess * )0x00087384 )
+#define ICU_IPR133_ADDR			( ( volatile uint8_t __evenaccess * )0x00087385 )
+#define ICU_IPR134_ADDR			( ( volatile uint8_t __evenaccess * )0x00087386 )
+#define ICU_IPR135_ADDR			( ( volatile uint8_t __evenaccess * )0x00087387 )
+#define ICU_IPR136_ADDR			( ( volatile uint8_t __evenaccess * )0x00087388 )
+#define ICU_IPR137_ADDR			( ( volatile uint8_t __evenaccess * )0x00087389 )
+#define ICU_IPR138_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738A )
+#define ICU_IPR139_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738B )
+#define ICU_IPR140_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738C )
+#define ICU_IPR141_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738D )
+#define ICU_IPR142_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738E )
+#define ICU_IPR143_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738F )
+#define ICU_IPR144_ADDR			( ( volatile uint8_t __evenaccess * )0x00087390 )
+#define ICU_IPR145_ADDR			( ( volatile uint8_t __evenaccess * )0x00087391 )
+#define ICU_IPR146_ADDR			( ( volatile uint8_t __evenaccess * )0x00087392 )
+#define ICU_IPR147_ADDR			( ( volatile uint8_t __evenaccess * )0x00087393 )
+#define ICU_IPR148_ADDR			( ( volatile uint8_t __evenaccess * )0x00087394 )
+#define ICU_IPR149_ADDR			( ( volatile uint8_t __evenaccess * )0x00087395 )
+#define ICU_IPR150_ADDR			( ( volatile uint8_t __evenaccess * )0x00087396 )
+#define ICU_IPR151_ADDR			( ( volatile uint8_t __evenaccess * )0x00087397 )
+#define ICU_IPR152_ADDR			( ( volatile uint8_t __evenaccess * )0x00087398 )
+#define ICU_IPR153_ADDR			( ( volatile uint8_t __evenaccess * )0x00087399 )
+#define ICU_IPR154_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739A )
+#define ICU_IPR155_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739B )
+#define ICU_IPR156_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739C )
+#define ICU_IPR157_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739D )
+#define ICU_IPR158_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739E )
+#define ICU_IPR159_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739F )
+#define ICU_IPR160_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A0 )
+#define ICU_IPR161_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A1 )
+#define ICU_IPR162_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A2 )
+#define ICU_IPR163_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A3 )
+#define ICU_IPR164_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A4 )
+#define ICU_IPR165_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A5 )
+#define ICU_IPR166_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A6 )
+#define ICU_IPR167_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A7 )
+#define ICU_IPR168_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A8 )
+#define ICU_IPR169_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A9 )
+#define ICU_IPR170_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AA )
+#define ICU_IPR171_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AB )
+#define ICU_IPR172_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AC )
+#define ICU_IPR173_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AD )
+#define ICU_IPR174_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AE )
+#define ICU_IPR175_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AF )
+#define ICU_IPR176_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B0 )
+#define ICU_IPR177_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B1 )
+#define ICU_IPR178_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B2 )
+#define ICU_IPR179_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B3 )
+#define ICU_IPR180_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B4 )
+#define ICU_IPR181_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B5 )
+#define ICU_IPR182_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B6 )
+#define ICU_IPR183_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B7 )
+#define ICU_IPR184_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B8 )
+#define ICU_IPR185_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B9 )
+#define ICU_IPR186_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BA )
+#define ICU_IPR187_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BB )
+#define ICU_IPR188_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BC )
+#define ICU_IPR189_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BD )
+#define ICU_IPR190_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BE )
+#define ICU_IPR191_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BF )
+#define ICU_IPR192_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C0 )
+#define ICU_IPR193_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C1 )
+#define ICU_IPR194_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C2 )
+#define ICU_IPR195_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C3 )
+#define ICU_IPR196_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C4 )
+#define ICU_IPR197_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C5 )
+#define ICU_IPR198_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C6 )
+#define ICU_IPR199_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C7 )
+#define ICU_IPR200_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C8 )
+#define ICU_IPR201_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C9 )
+#define ICU_IPR202_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CA )
+#define ICU_IPR203_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CB )
+#define ICU_IPR204_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CC )
+#define ICU_IPR205_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CD )
+#define ICU_IPR206_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CE )
+#define ICU_IPR207_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CF )
+#define ICU_IPR208_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D0 )
+#define ICU_IPR209_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D1 )
+#define ICU_IPR210_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D2 )
+#define ICU_IPR211_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D3 )
+#define ICU_IPR212_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D4 )
+#define ICU_IPR213_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D5 )
+#define ICU_IPR214_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D6 )
+#define ICU_IPR215_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D7 )
+#define ICU_IPR216_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D8 )
+#define ICU_IPR217_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D9 )
+#define ICU_IPR218_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DA )
+#define ICU_IPR219_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DB )
+#define ICU_IPR220_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DC )
+#define ICU_IPR221_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DD )
+#define ICU_IPR222_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DE )
+#define ICU_IPR223_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DF )
+#define ICU_IPR224_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E0 )
+#define ICU_IPR225_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E1 )
+#define ICU_IPR226_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E2 )
+#define ICU_IPR227_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E3 )
+#define ICU_IPR228_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E4 )
+#define ICU_IPR229_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E5 )
+#define ICU_IPR230_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E6 )
+#define ICU_IPR231_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E7 )
+#define ICU_IPR232_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E8 )
+#define ICU_IPR233_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E9 )
+#define ICU_IPR234_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EA )
+#define ICU_IPR235_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EB )
+#define ICU_IPR236_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EC )
+#define ICU_IPR237_ADDR			( ( volatile uint8_t __evenaccess * )0x000873ED )
+#define ICU_IPR238_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EE )
+#define ICU_IPR239_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EF )
+#define ICU_IPR240_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F0 )
+#define ICU_IPR241_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F1 )
+#define ICU_IPR242_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F2 )
+#define ICU_IPR243_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F3 )
+#define ICU_IPR244_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F4 )
+#define ICU_IPR245_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F5 )
+#define ICU_IPR246_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F6 )
+#define ICU_IPR247_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F7 )
+#define ICU_IPR248_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F8 )
+#define ICU_IPR249_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F9 )
+#define ICU_IPR250_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FA )
+#define ICU_IPR251_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FB )
+#define ICU_IPR252_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FC )
+#define ICU_IPR253_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FD )
+#define ICU_IPR254_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FE )
+#define ICU_IPR255_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FF )
+#define ICU_IPR_BIT				( 7U << 0U )
+
+
+/*
+ *  IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿
+ */
+#define ICU_IRQ0_ADDR			( ( volatile uint8_t __evenaccess * )0x00087500 )
+#define ICU_IRQ1_ADDR			( ( volatile uint8_t __evenaccess * )0x00087501 )
+#define ICU_IRQ2_ADDR			( ( volatile uint8_t __evenaccess * )0x00087502 )
+#define ICU_IRQ3_ADDR			( ( volatile uint8_t __evenaccess * )0x00087503 )
+#define ICU_IRQ4_ADDR			( ( volatile uint8_t __evenaccess * )0x00087504 )
+#define ICU_IRQ5_ADDR			( ( volatile uint8_t __evenaccess * )0x00087505 )
+#define ICU_IRQ6_ADDR			( ( volatile uint8_t __evenaccess * )0x00087506 )
+#define ICU_IRQ7_ADDR			( ( volatile uint8_t __evenaccess * )0x00087507 )
+#define ICU_IRQ8_ADDR			( ( volatile uint8_t __evenaccess * )0x00087508 )
+#define ICU_IRQ9_ADDR			( ( volatile uint8_t __evenaccess * )0x00087509 )
+#define ICU_IRQ10_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750A )
+#define ICU_IRQ11_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750B )
+#define ICU_IRQ12_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750C )
+#define ICU_IRQ13_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750D )
+#define ICU_IRQ14_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750E )
+#define ICU_IRQ15_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750F )
+#define ICU_IRQMD_BIT			( 3U << 2U )
+
+
+/*
+ *  åãã£ã³ãã«ã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+#define CMT_CMSTR0_ADDR			( ( volatile uint16_t __evenaccess * )0x00088000 )
+#define CMT_CMSTR0_STR0_BIT		( 1U << 0U )
+#define CMT_CMSTR0_STR1_BIT		( 1U << 1U )
+#define CMT_CMSTR1_ADDR			( ( volatile uint16_t __evenaccess * )0x00088010 )
+#define CMT_CMSTR1_STR2_BIT		( 1U << 0U )
+#define CMT_CMSTR1_STR3_BIT		( 1U << 1U )
+#define CMT0_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088002 )
+#define CMT0_CMCR_CKS_BIT		( 3U )
+#define CMT0_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT1_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088008 )
+#define CMT1_CMCR_CKS_BIT		( 3U )
+#define CMT1_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT2_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088012 )
+#define CMT2_CMCR_CKS_BIT		( 3U)
+#define CMT2_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT3_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088018 )
+#define CMT3_CMCR_CKS_BIT		( 3U )
+#define CMT3_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT0_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x00088004 )
+#define CMT1_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x0008800A )
+#define CMT2_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x00088014 )
+#define CMT3_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x0008801A )
+#define CMT0_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088006 )
+#define CMT1_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x0008800C )
+#define CMT2_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088016 )
+#define CMT3_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x0008801C )
+
+#define SCI0_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A000 )
+#define SCI0_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A001 )
+#define SCI0_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A002 )
+#define SCI0_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A003 )
+#define SCI0_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A004 )
+#define SCI0_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A005 )
+#define SCI0_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A006 )
+#define SCI0_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A007 )
+#define SCI1_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A020 )
+#define SCI1_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A021 )
+#define SCI1_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A022 )
+#define SCI1_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A023 )
+#define SCI1_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A024 )
+#define SCI1_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A025 )
+#define SCI1_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A026 )
+#define SCI1_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A027 )
+#define SCI2_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A040 )
+#define SCI2_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A041 )
+#define SCI2_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A042 )
+#define SCI2_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A043 )
+#define SCI2_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A044 )
+#define SCI2_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A045 )
+#define SCI2_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A046 )
+#define SCI2_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A047 )
+#define SCI3_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A060 )
+#define SCI3_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A061 )
+#define SCI3_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A062 )
+#define SCI3_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A063 )
+#define SCI3_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A064 )
+#define SCI3_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A065 )
+#define SCI3_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A066 )
+#define SCI3_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A067 )
+#define SCI4_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A080 )
+#define SCI4_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A081 )
+#define SCI4_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A082 )
+#define SCI4_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A083 )
+#define SCI4_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A084 )
+#define SCI4_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A085 )
+#define SCI4_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A086 )
+#define SCI4_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A087 )
+#define SCI5_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A0 )
+#define SCI5_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A1 )
+#define SCI5_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A2 )
+#define SCI5_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A3 )
+#define SCI5_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A4 )
+#define SCI5_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A5 )
+#define SCI5_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A6 )
+#define SCI5_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A7 )
+#define SCI6_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C0 )
+#define SCI6_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C1 )
+#define SCI6_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C2 )
+#define SCI6_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C3 )
+#define SCI6_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C4 )
+#define SCI6_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C5 )
+#define SCI6_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C6 )
+#define SCI6_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C7 )
+#define SCI_SMR_CKS_BIT			( 3U << 0U )
+#define SCI_SMR_STOP_BIT		( 1U << 3U )
+#define SCI_SMR_PM_BIT			( 1U << 4U )
+#define SCI_SMR_PE_BIT			( 1U << 5U )
+#define SCI_SMR_CHR_BIT			( 1U << 6U )
+#define SCI_SMR_CM_BIT			( 1U << 7U )
+#define SCI_SCR_CKE_BIT			( 3U << 0U )
+#define SCI_SCR_TEIE_BIT		( 1U << 2U )
+#define SCI_SCR_RE_BIT			( 1U << 4U )
+#define SCI_SCR_TE_BIT			( 1U << 5U )
+#define SCI_SCR_RIE_BIT			( 1U << 6U )
+#define SCI_SCR_TIE_BIT			( 1U << 7U )
+#define SCI_SSR_TEND_BIT		( 1U << 2U )
+#define SCI_SSR_PER_BIT			( 1U << 3U )
+#define SCI_SSR_FER_BIT			( 1U << 4U )
+#define SCI_SSR_ORER_BIT		( 1U << 5U )
+#define SCI_SCMR_SMIF_BIT		( 1U << 0U )
+#define SCI_SCMR_SINV_BIT		( 1U << 2U )
+#define SCI_SCMR_SDIR_BIT		( 1U << 3U )
+#define SCI_SCMR_BCP2_BIT		( 1U << 7U )
+#define SCI_SEMR_ACS0_BIT		( 1U << 0U )
+#define SCI_SEMR_ABCS_BIT		( 1U << 4U )
+
+/*
+ *  I/Oãã¼ãã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+#define PORT0_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C000 )
+#define PORT1_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C001 )
+#define PORT2_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C002 )
+#define PORT3_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C003 )
+#define PORT4_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C004 )
+#define PORT5_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C005 )
+#define PORT6_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C006 )
+#define PORT7_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C007 )
+#define PORT8_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C008 )
+#define PORT9_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C009 )
+#define PORTA_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00A )
+#define PORTB_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00B )
+#define PORTC_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00C )
+#define PORTD_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00D )
+#define PORTE_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00E )
+#define PORTF_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00F )
+#define PORTG_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C010 )
+#define PORTJ_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C012 )
+#define PORT_PDR_B0_BIT			( 0x01U << 0U )
+#define PORT_PDR_B1_BIT			( 0x01U << 1U )
+#define PORT_PDR_B2_BIT			( 0x01U << 2U )
+#define PORT_PDR_B3_BIT			( 0x01U << 3U )
+#define PORT_PDR_B4_BIT			( 0x01U << 4U )
+#define PORT_PDR_B5_BIT			( 0x01U << 5U )
+#define PORT_PDR_B6_BIT			( 0x01U << 6U )
+#define PORT_PDR_B7_BIT			( 0x01U << 7U )
+#define PORT0_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C020 )
+#define PORT1_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C021 )
+#define PORT2_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C022 )
+#define PORT3_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C023 )
+#define PORT4_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C024 )
+#define PORT5_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C025 )
+#define PORT6_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C026 )
+#define PORT7_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C027 )
+#define PORT8_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C028 )
+#define PORT9_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C029 )
+#define PORTA_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02A )
+#define PORTB_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02B )
+#define PORTC_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02C )
+#define PORTD_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02D )
+#define PORTE_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02E )
+#define PORTF_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02F )
+#define PORTG_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C030 )
+#define PORTJ_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C032 )
+#define PORT_PODR_B0_BIT		( 0x01U << 0U )
+#define PORT_PODR_B1_BIT		( 0x01U << 1U )
+#define PORT_PODR_B2_BIT		( 0x01U << 2U )
+#define PORT_PODR_B3_BIT		( 0x01U << 3U )
+#define PORT_PODR_B4_BIT		( 0x01U << 4U )
+#define PORT_PODR_B5_BIT		( 0x01U << 5U )
+#define PORT_PODR_B6_BIT		( 0x01U << 6U )
+#define PORT_PODR_B7_BIT		( 0x01U << 7U )
+#define PORT0_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C040 )
+#define PORT1_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C041 )
+#define PORT2_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C042 )
+#define PORT3_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C043 )
+#define PORT4_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C044 )
+#define PORT5_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C045 )
+#define PORT6_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C046 )
+#define PORT7_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C047 )
+#define PORT8_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C048 )
+#define PORT9_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C049 )
+#define PORTA_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04A )
+#define PORTB_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04B )
+#define PORTC_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04C )
+#define PORTD_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04D )
+#define PORTE_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04E )
+#define PORTF_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04F )
+#define PORTG_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C050 )
+#define PORTJ_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C052 )
+#define PORT_PIDR_B0_BIT		( 0x01U << 0U )
+#define PORT_PIDR_B1_BIT		( 0x01U << 1U )
+#define PORT_PIDR_B2_BIT		( 0x01U << 2U )
+#define PORT_PIDR_B3_BIT		( 0x01U << 3U )
+#define PORT_PIDR_B4_BIT		( 0x01U << 4U )
+#define PORT_PIDR_B5_BIT		( 0x01U << 5U )
+#define PORT_PIDR_B6_BIT		( 0x01U << 6U )
+#define PORT_PIDR_B7_BIT		( 0x01U << 7U )
+#define PORT0_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C060 )
+#define PORT1_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C061 )
+#define PORT2_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C062 )
+#define PORT3_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C063 )
+#define PORT4_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C064 )
+#define PORT5_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C065 )
+#define PORT6_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C066 )
+#define PORT7_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C067 )
+#define PORT8_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C068 )
+#define PORT9_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C069 )
+#define PORTA_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06A )
+#define PORTB_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06B )
+#define PORTC_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06C )
+#define PORTD_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06D )
+#define PORTE_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06E )
+#define PORTF_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06F )
+#define PORTG_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C070 )
+#define PORTJ_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C072 )
+#define PORT_PMR_B0_BIT			( 0x01U << 0U )
+#define PORT_PMR_B1_BIT			( 0x01U << 1U )
+#define PORT_PMR_B2_BIT			( 0x01U << 2U )
+#define PORT_PMR_B3_BIT			( 0x01U << 3U )
+#define PORT_PMR_B4_BIT			( 0x01U << 4U )
+#define PORT_PMR_B5_BIT			( 0x01U << 5U )
+#define PORT_PMR_B6_BIT			( 0x01U << 6U )
+#define PORT_PMR_B7_BIT			( 0x01U << 7U )
+#define PORT0_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C0 )
+#define PORT1_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C1 )
+#define PORT2_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C2 )
+#define PORT3_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C3 )
+#define PORT4_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C4 )
+#define PORT5_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C5 )
+#define PORT6_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C6 )
+#define PORT7_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C7 )
+#define PORT8_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C8 )
+#define PORT9_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C9 )
+#define PORTA_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CA )
+#define PORTB_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CB )
+#define PORTC_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CC )
+#define PORTD_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CD )
+#define PORTE_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CE )
+#define PORTF_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CF )
+#define PORTG_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0D0 )
+#define PORTJ_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0D2 )
+#define PORT_PCR_B0_BIT			( 0x01U << 0U )
+#define PORT_PCR_B1_BIT			( 0x01U << 1U )
+#define PORT_PCR_B2_BIT			( 0x01U << 2U )
+#define PORT_PCR_B3_BIT			( 0x01U << 3U )
+#define PORT_PCR_B4_BIT			( 0x01U << 4U )
+#define PORT_PCR_B5_BIT			( 0x01U << 5U )
+#define PORT_PCR_B6_BIT			( 0x01U << 6U )
+#define PORT_PCR_B7_BIT			( 0x01U << 7U )
+#define PORT0_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C080 )
+#define PORT1_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C082 )
+#define PORT2_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C084 )
+#define PORT3_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C086 )
+#define PORT4_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C088 )
+#define PORT5_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08A )
+#define PORT6_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08C )
+#define PORT7_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08E )
+#define PORT8_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C090 )
+#define PORT9_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C092 )
+#define PORTA_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C094 )
+#define PORTB_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C096 )
+#define PORTC_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C098 )
+#define PORTD_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09A )
+#define PORTE_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09C )
+#define PORTF_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09E )
+#define PORTG_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A0 )
+#define PORTJ_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A4 )
+#define PORT0_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C081 )
+#define PORT1_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C083 )
+#define PORT2_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C085 )
+#define PORT3_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C087 )
+#define PORT4_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C089 )
+#define PORT5_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08B )
+#define PORT6_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08D )
+#define PORT7_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08F )
+#define PORT8_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C091 )
+#define PORT9_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C093 )
+#define PORTA_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C095 )
+#define PORTB_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C097 )
+#define PORTC_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C099 )
+#define PORTD_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09B )
+#define PORTE_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09D )
+#define PORTF_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09F )
+#define PORTG_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A1 )
+#define PORTJ_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A5 )
+
+/*
+ *  ãã«ããã¡ã³ã¯ã·ã§ã³ãã³ã³ã³ãã­ã¼ã©ã®ã¬ã¸ã¹ã¿æ
+å ±
+ */
+#define MPC_PFUSB0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C114 )
+#define MPC_PFUSB0_PDHZS_BIT	( 0x01U << 2U )
+#define MPC_PFUSB0_PUPHZS_BIT	( 0x01U << 3U )
+#define MPC_PWPR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C11F )
+#define MPC_PWPR_PFSWE			( 0x01U << 6U )
+#define MPC_PWPR_B0WI			( 0x01U << 7U )
+#define MPC_P00PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C140 )
+#define MPC_P01PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C141 )
+#define MPC_P02PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C142 )
+#define MPC_P03PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C143 )
+#define MPC_P04PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C144 )
+#define MPC_P05PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C145 )
+#define MPC_P06PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C146 )
+#define MPC_P07PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C147 )
+#define MPC_P10PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C148 )
+#define MPC_P11PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C149 )
+#define MPC_P12PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14A )
+#define MPC_P13PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14B )
+#define MPC_P14PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14C )
+#define MPC_P15PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14D )
+#define MPC_P16PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14E )
+#define MPC_P17PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14F )
+#define MPC_P20PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C150 )
+#define MPC_P21PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C151 )
+#define MPC_P22PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C152 )
+#define MPC_P23PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C153 )
+#define MPC_P24PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C154 )
+#define MPC_P25PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C155 )
+#define MPC_P26PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C156 )
+#define MPC_P27PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C157 )
+#define MPC_P30PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C158 )
+#define MPC_P31PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C159 )
+#define MPC_P32PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15A )
+#define MPC_P33PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15B )
+#define MPC_P34PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15C )
+#define MPC_P35PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15D )
+#define MPC_P36PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15E )
+#define MPC_P37PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15F )
+#define MPC_P40PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C160 )
+#define MPC_P41PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C161 )
+#define MPC_P42PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C162 )
+#define MPC_P43PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C163 )
+#define MPC_P44PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C164 )
+#define MPC_P45PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C165 )
+#define MPC_P46PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C166 )
+#define MPC_P47PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C167 )
+#define MPC_P50PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C168 )
+#define MPC_P51PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C169 )
+#define MPC_P52PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16A )
+#define MPC_P53PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16B )
+#define MPC_P54PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16C )
+#define MPC_P55PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16D )
+#define MPC_P56PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16E )
+#define MPC_P57PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16F )
+#define MPC_P60PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C170 )
+#define MPC_P61PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C171 )
+#define MPC_P62PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C172 )
+#define MPC_P63PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C173 )
+#define MPC_P64PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C174 )
+#define MPC_P65PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C175 )
+#define MPC_P66PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C176 )
+#define MPC_P67PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C177 )
+#define MPC_P70PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C178 )
+#define MPC_P71PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C179 )
+#define MPC_P72PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17A )
+#define MPC_P73PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17B )
+#define MPC_P74PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17C )
+#define MPC_P75PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17D )
+#define MPC_P76PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17E )
+#define MPC_P77PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17F )
+#define MPC_P80PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C180 )
+#define MPC_P81PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C181 )
+#define MPC_P82PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C182 )
+#define MPC_P83PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C183 )
+#define MPC_P84PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C184 )
+#define MPC_P85PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C185 )
+#define MPC_P86PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C186 )
+#define MPC_P87PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C187 )
+#define MPC_P90PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C188 )
+#define MPC_P91PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C189 )
+#define MPC_P92PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18A )
+#define MPC_P93PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18B )
+#define MPC_P94PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18C )
+#define MPC_P95PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18D )
+#define MPC_P96PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18E )
+#define MPC_P97PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18F )
+#define MPC_PA0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C190 )
+#define MPC_PA1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C191 )
+#define MPC_PA2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C192 )
+#define MPC_PA3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C193 )
+#define MPC_PA4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C194 )
+#define MPC_PA5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C195 )
+#define MPC_PA6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C196 )
+#define MPC_PA7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C197 )
+#define MPC_PB0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C198 )
+#define MPC_PB1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C199 )
+#define MPC_PB2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19A )
+#define MPC_PB3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19B )
+#define MPC_PB4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19C )
+#define MPC_PB5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19D )
+#define MPC_PB6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19E )
+#define MPC_PB7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19F )
+#define MPC_PC0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A0 )
+#define MPC_PC1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A1 )
+#define MPC_PC2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A2 )
+#define MPC_PC3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A3 )
+#define MPC_PC4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A4 )
+#define MPC_PC5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A5 )
+#define MPC_PC6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A6 )
+#define MPC_PC7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A7 )
+#define MPC_PD0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A8 )
+#define MPC_PD1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A9 )
+#define MPC_PD2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AA )
+#define MPC_PD3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AB )
+#define MPC_PD4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AC )
+#define MPC_PD5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AD )
+#define MPC_PD6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AE )
+#define MPC_PD7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AF )
+#define MPC_PE0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B0 )
+#define MPC_PE1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B1 )
+#define MPC_PE2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B2 )
+#define MPC_PE3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B3 )
+#define MPC_PE4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B4 )
+#define MPC_PE5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B5 )
+#define MPC_PE6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B6 )
+#define MPC_PE7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B7 )
+#define MPC_PF0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B8 )
+#define MPC_PF1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B9 )
+#define MPC_PF2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BA )
+#define MPC_PF3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BB )
+#define MPC_PF4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BC )
+#define MPC_PF5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BD )
+#define MPC_PF6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BE )
+#define MPC_PF7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BF )
+#define MPC_PJ3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1D3 )
+
+/*
+ * ãªã¢ã«ã¿ã¤ã ã¯ã­ãã¯
+ */
+#define RTC_R64CNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C400 )
+#define RTC_RSECCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C402 )
+#define RTC_RMINCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C404 )
+#define RTC_RHRCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C406 )
+#define RTC_RWKCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C408 )
+#define RTC_RDAYCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C40A )
+#define RTC_RMONCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C40C )
+#define RTC_RYRCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C40E )
+
+/*
+ * 12 ãããA/D ã³ã³ãã¼ã¿
+ */
+#define S12AD_ADCSR_ADDR		( ( volatile uint8_t __evenaccess * )0x00089000 )
+#define S12AD_ADCSR_ADST_BIT	0x80
+#define S12AD_ADANS0_ADDR		( ( volatile uint16_t __evenaccess * )0x00089004 )
+#define S12AD_ADANS1_ADDR		( ( volatile uint16_t __evenaccess * )0x00089006 )
+#define S12AD_ADEXICR_ADDR		( ( volatile uint16_t __evenaccess * )0x00089012 )
+#define S12AD_ADDR0_ADDR		( ( volatile uint16_t __evenaccess * )0x00089020 )
+#define S12AD_ADDR1_ADDR		( ( volatile uint16_t __evenaccess * )0x00089022 )
+#define S12AD_ADDR2_ADDR		( ( volatile uint16_t __evenaccess * )0x00089024 )
+#define S12AD_ADDR3_ADDR		( ( volatile uint16_t __evenaccess * )0x00089026 )
+#define S12AD_ADDR4_ADDR		( ( volatile uint16_t __evenaccess * )0x00089028 )
+#define S12AD_ADDR5_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902A )
+#define S12AD_ADDR6_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902C )
+#define S12AD_ADDR7_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902E )
+#define S12AD_ADDR8_ADDR		( ( volatile uint16_t __evenaccess * )0x00089030 )
+#define S12AD_ADDR9_ADDR		( ( volatile uint16_t __evenaccess * )0x00089032 )
+#define S12AD_ADDR10_ADDR		( ( volatile uint16_t __evenaccess * )0x00089034 )
+#define S12AD_ADDR11_ADDR		( ( volatile uint16_t __evenaccess * )0x00089036 )
+#define S12AD_ADDR12_ADDR		( ( volatile uint16_t __evenaccess * )0x00089038 )
+#define S12AD_ADDR13_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903A )
+#define S12AD_ADDR14_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903C )
+#define S12AD_ADDR15_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903E )
+#define S12AD_ADDR16_ADDR		( ( volatile uint16_t __evenaccess * )0x00089040 )
+#define S12AD_ADDR17_ADDR		( ( volatile uint16_t __evenaccess * )0x00089042 )
+#define S12AD_ADDR18_ADDR		( ( volatile uint16_t __evenaccess * )0x00089044 )
+#define S12AD_ADDR19_ADDR		( ( volatile uint16_t __evenaccess * )0x00089046 )
+#define S12AD_ADDR20_ADDR		( ( volatile uint16_t __evenaccess * )0x00089048 )
+
+#define TPU0_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088110 )
+#define TPU1_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088120 )
+#define TPU2_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088130 )
+#define TPU3_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088140 )
+#define TPU4_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088150 )
+#define TPU5_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088160 )
+#define TPU6_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088180 )
+#define TPU7_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088190 )
+#define TPU8_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A0 )
+#define TPU9_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B0 )
+#define TPU10_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C0 )
+#define TPU11_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D0 )
+#define TPU_TCR_TPSC_OFFSET		( 0U )
+#define TPU_TCR_TPSC_MASK		( 0x7U << TPU_TCR_TPSC_OFFSET )
+#define TPU_TCR_CKEG_OFFSET		( 3U )
+#define TPU_TCR_CKEG_MASK		( 0x3U << TPU_TCR_CKEG_OFFSET )
+#define TPU_TCR_CCLR_OFFSET		( 5U )
+#define TPU_TCR_CCLR_MASK		( 0x7U << TPU_TCR_CCLR_OFFSET )
+
+#define TPU0_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088111 )
+#define TPU1_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088121 )
+#define TPU2_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088131 )
+#define TPU3_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088141 )
+#define TPU4_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088151 )
+#define TPU5_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088161 )
+#define TPU6_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088181 )
+#define TPU7_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088191 )
+#define TPU8_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A1 )
+#define TPU9_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B1 )
+#define TPU10_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C1 )
+#define TPU11_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D1 )
+
+#define TPU0_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C0 )
+#define TPU0_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088112 )
+#define TPU0_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088113 )
+#define TPU1_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088122 )
+#define TPU2_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088132 )
+#define TPU3_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088142 )
+#define TPU3_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088143 )
+#define TPU4_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088152 )
+#define TPU5_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088162 )
+#define TPU6_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088182 )
+#define TPU6_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088183 )
+#define TPU7_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088192 )
+#define TPU8_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A2 )
+#define TPU9_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B2 )
+#define TPU9_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B3 )
+#define TPU10_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C2 )
+#define TPU11_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D2 )
+#define TPU_TIORL_IOA_OFFSET	( 0U )
+#define TPU_TIORL_IOA_MASK		( 0xFU << TPU_TIORL_IOA_OFFSET )
+#define TPU_TIORL_IOB_OFFSET	( 4U )
+#define TPU_TIORL_IOB_MASK		( 0xFU << TPU_TIORL_IOB_OFFSET )
+#define TPU_TIORL_IOC_OFFSET	( 0U )
+#define TPU_TIORL_IOC_MASK		( 0xFU << TPU_TIORL_IOC_OFFSET )
+#define TPU_TIORL_IOD_OFFSET	( 4U )
+#define TPU_TIORL_IOD_MASK		( 0xFU << TPU_TIORL_IOD_OFFSET )
+
+#define TPU0_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088118 )
+#define TPU0_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811A )
+#define TPU0_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811C )
+#define TPU0_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811E )
+#define TPU1_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088128 )
+#define TPU1_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008812A )
+#define TPU2_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088138 )
+#define TPU2_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008813A )
+#define TPU3_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088148 )
+#define TPU3_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814A )
+#define TPU3_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814C )
+#define TPU3_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814E )
+#define TPU4_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088158 )
+#define TPU4_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008815A )
+#define TPU5_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088168 )
+#define TPU5_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008816A )
+#define TPU6_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088188 )
+#define TPU6_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818A )
+#define TPU6_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818C )
+#define TPU6_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818E )
+#define TPU7_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088198 )
+#define TPU7_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008819A )
+#define TPU8_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881A8 )
+#define TPU8_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881AA )
+#define TPU9_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881B8 )
+#define TPU9_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BA )
+#define TPU9_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BC )
+#define TPU9_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BE )
+#define TPU10_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881C8 )
+#define TPU10_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881CA )
+#define TPU11_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881D8 )
+#define TPU11_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881DA )
+
+#define TPUA_TSTR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088100 )
+#define TPUB_TSTR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088170 )
+#define TPU_TSTR_CST0_BIT		( 0x01U << 0U )
+#define TPU_TSTR_CST1_BIT		( 0x01U << 1U )
+#define TPU_TSTR_CST2_BIT		( 0x01U << 2U )
+#define TPU_TSTR_CST3_BIT		( 0x01U << 3U )
+#define TPU_TSTR_CST4_BIT		( 0x01U << 4U )
+#define TPU_TSTR_CST5_BIT		( 0x01U << 5U )
+
+#define TPUA_TSYR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088101 )
+#define TPUB_TSYR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088171 )
+#define TPU_TSYR_SYNC0_BIT		( 0x01U << 0U )
+#define TPU_TSYR_SYNC1_BIT		( 0x01U << 1U )
+#define TPU_TSYR_SYNC2_BIT		( 0x01U << 2U )
+#define TPU_TSYR_SYNC3_BIT		( 0x01U << 3U )
+#define TPU_TSYR_SYNC4_BIT		( 0x01U << 4U )
+#define TPU_TSYR_SYNC5_BIT		( 0x01U << 5U )
+
+/*
+ * RSPI
+ */
+#define RSPI0_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x00088380 )
+#define RSPI1_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A0 )
+#define RSPI2_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C0 )
+#define RSPI_SPCR_SPMS_BIT	( 0x01U << 0U )
+#define RSPI_SPCR_TXMD_BIT	( 0x01U << 1U )
+#define RSPI_SPCR_MODFEN_BIT	( 0x01U << 2U )
+#define RSPI_SPCR_MSTR_BIT	( 0x01U << 3U )
+#define RSPI_SPCR_SPEIE_BIT	( 0x01U << 4U )
+#define RSPI_SPCR_SPTIE_BIT	( 0x01U << 5U )
+#define RSPI_SPCR_SPE_BIT	( 0x01U << 6U )
+#define RSPI_SPCR_SPRIE_BIT	( 0x01U << 7U )
+
+#define RSPI0_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x00088381 )
+#define RSPI1_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A1 )
+#define RSPI2_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C1 )
+
+#define RSPI0_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088382 )
+#define RSPI1_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A2 )
+#define RSPI2_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C2 )
+
+#define RSPI0_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x00088383 )
+#define RSPI1_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A3 )
+#define RSPI2_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C3 )
+
+#define RSPI0_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x00088384 )
+#define RSPI1_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x000883A4 )
+#define RSPI2_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x000883C4 )
+
+#define RSPI0_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088388 )
+#define RSPI1_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A8 )
+#define RSPI2_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C8 )
+
+#define RSPI0_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088389 )
+#define RSPI1_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A9 )
+#define RSPI2_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C9 )
+
+#define RSPI0_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x0008838A )
+#define RSPI1_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883AA )
+#define RSPI2_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883CA )
+
+#define RSPI0_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838B )
+#define RSPI1_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AB )
+#define RSPI2_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CB )
+
+#define RSPI0_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838C )
+#define RSPI1_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AC )
+#define RSPI2_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CC )
+
+#define RSPI0_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838D )
+#define RSPI1_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AD )
+#define RSPI2_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CD )
+
+#define RSPI0_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x0008838E )
+#define RSPI1_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x000883AE )
+#define RSPI2_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x000883CE )
+
+#define RSPI0_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838F )
+#define RSPI1_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AF )
+#define RSPI2_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CF )
+
+#define RSPI0_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x00088390 )
+#define RSPI0_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x00088392 )
+#define RSPI0_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x00088394 )
+#define RSPI0_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x00088396 )
+#define RSPI0_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x00088398 )
+#define RSPI0_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839A )
+#define RSPI0_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839C )
+#define RSPI0_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839E )
+#define RSPI1_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B0 )
+#define RSPI1_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B2 )
+#define RSPI1_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B4 )
+#define RSPI1_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B6 )
+#define RSPI1_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B8 )
+#define RSPI1_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BA )
+#define RSPI1_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BC )
+#define RSPI1_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BE )
+#define RSPI2_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D0 )
+#define RSPI2_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D2 )
+#define RSPI2_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D4 )
+#define RSPI2_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D6 )
+#define RSPI2_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D8 )
+#define RSPI2_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DA )
+#define RSPI2_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DC )
+#define RSPI2_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DE )
+#define RSPI_SPCMD_SPB_OFFSET	(8)
+#define RSPI_SPCMD_SPB_MASK (0xF << RSPI_SPCMD_SPB_OFFSET)
+
+/*
+ *  UARTé¢é£ã®å®ç¾©
+ *
+ *  pdicã®rx600/rx630_uart.cã§ä½¿ç¨ããï¼
+ */
+/*
+ *  ã·ãªã¢ã«I/Oã®åæ°
+ */
+#define TNUM_SIOP	( 2 )
+
+#endif	/* TOPPERS_RX630_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.c	(revision 313)
@@ -0,0 +1,609 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«
+ */
+
+#include "kernel_impl.h"
+
+
+/*
+ *  å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
+	NULL,							/* No.0  äºç´ */
+	NULL,							/* No.1  äºç´ */
+	NULL,							/* No.2  äºç´ */
+	NULL,							/* No.3  äºç´ */
+	NULL,							/* No.4  äºç´ */
+	NULL,							/* No.5  äºç´ */
+	NULL,							/* No.6  äºç´ */
+	NULL,							/* No.7  äºç´ */
+	NULL,							/* No.8  äºç´ */
+	NULL,							/* No.9  äºç´ */
+	NULL,							/* No.10  äºç´ */
+	NULL,							/* No.11  äºç´ */
+	NULL,							/* No.12  äºç´ */
+	NULL,							/* No.13  äºç´ */
+	NULL,							/* No.14  äºç´ */
+	NULL,							/* No.15  äºç´ */
+	ICU_IPR000_ADDR,				/* No.16  ãã¹ã¨ã©ã¼ BUSERR */
+	NULL,							/* No.17  äºç´ */
+	NULL,							/* No.18  äºç´ */
+	NULL,							/* No.19  äºç´ */
+	NULL,							/* No.20  äºç´ */
+	ICU_IPR001_ADDR,				/* No.21  FCU FIFERR */
+	NULL,							/* No.22  äºç´ */
+	ICU_IPR002_ADDR,				/* No.23  FCU FRDYI */
+	NULL,							/* No.24  äºç´ */
+	NULL,							/* No.25  äºç´ */
+	NULL,							/* No.26  äºç´ */
+	ICU_IPR003_ADDR,				/* No.27  SWINT */
+	ICU_IPR004_ADDR,				/* No.28  CMTã¦ããã0 CMT0 */
+	ICU_IPR005_ADDR,				/* No.29  CMTã¦ããã0 CMT1 */
+	ICU_IPR006_ADDR,				/* No.30  CMTã¦ããã1 CMT2 */
+	ICU_IPR007_ADDR,				/* No.31  CMTã¦ããã1 CMT3 */
+	ICU_IPR032_ADDR,				/* No.32  ETHER */
+	ICU_IPR033_ADDR,				/* No.33  USB0 D0FIFO0 */
+	ICU_IPR034_ADDR,				/* No.34  USB0 D1FIFO0 */
+	ICU_IPR035_ADDR,				/* No.35  USB0 USBI0 */
+	ICU_IPR036_ADDR,				/* No.36  USB1 D0FIFO1 */
+	ICU_IPR037_ADDR,				/* No.37  USB1 D1FIFO1 */
+	ICU_IPR038_ADDR,				/* No.38  USB1 USBI1 */
+	ICU_IPR039_ADDR,				/* No.39  SPRI0 */
+	ICU_IPR039_ADDR,				/* No.40  SPTI0 */
+	ICU_IPR039_ADDR,				/* No.41  SPII0 */
+	ICU_IPR042_ADDR,				/* No.42  SPRI1 */
+	ICU_IPR042_ADDR,				/* No.43  SPTI1 */
+	ICU_IPR042_ADDR,				/* No.44  SPII1 */
+	ICU_IPR045_ADDR,				/* No.45  SPRI2 */
+	ICU_IPR045_ADDR,				/* No.46  SPTI2 */
+	ICU_IPR045_ADDR,				/* No.47  SPII2 */
+	ICU_IPR048_ADDR, 				/* No.48  CAN RXF0 */
+	ICU_IPR048_ADDR, 				/* No.49  CAN TXF0 */
+	ICU_IPR048_ADDR, 				/* No.50  CAN RXM0 */
+	ICU_IPR048_ADDR, 				/* No.51  CAN TXM0 */
+	ICU_IPR052_ADDR, 				/* No.52  CAN RXF1 */
+	ICU_IPR052_ADDR, 				/* No.53  CAN TXF1 */
+	ICU_IPR052_ADDR, 				/* No.54  CAN RXM1 */
+	ICU_IPR052_ADDR, 				/* No.55  CAN TXM1 */
+	ICU_IPR056_ADDR, 				/* No.56  CAN RXF2 */
+	ICU_IPR056_ADDR, 				/* No.57  CAN TXF2 */
+	ICU_IPR056_ADDR, 				/* No.58  CAN RXM2 */
+	ICU_IPR056_ADDR, 				/* No.59  CAN TXM2 */
+	NULL,							/* No.60  äºç´ */
+	NULL,							/* No.61  äºç´ */
+	ICU_IPR062_ADDR,			 	/* No.62  RTC PRD */
+	NULL,							/* No.63  äºç´ */
+	ICU_IPR064_ADDR,				/* No.64  å¤é¨ç«¯å­ IRQ0 */
+	ICU_IPR065_ADDR,				/* No.65  å¤é¨ç«¯å­ IRQ1 */
+	ICU_IPR066_ADDR,				/* No.66  å¤é¨ç«¯å­ IRQ2 */
+	ICU_IPR067_ADDR,				/* No.67  å¤é¨ç«¯å­ IRQ3 */
+	ICU_IPR068_ADDR,				/* No.68  å¤é¨ç«¯å­ IRQ4 */
+	ICU_IPR069_ADDR,				/* No.69  å¤é¨ç«¯å­ IRQ5 */
+	ICU_IPR070_ADDR,				/* No.70  å¤é¨ç«¯å­ IRQ6 */
+	ICU_IPR071_ADDR,				/* No.71  å¤é¨ç«¯å­ IRQ7 */
+	ICU_IPR072_ADDR,				/* No.72  å¤é¨ç«¯å­ IRQ8 */
+	ICU_IPR073_ADDR,				/* No.73  å¤é¨ç«¯å­ IRQ9 */
+	ICU_IPR074_ADDR,				/* No.74  å¤é¨ç«¯å­ IRQ10 */
+	ICU_IPR075_ADDR,				/* No.75  å¤é¨ç«¯å­ IRQ11 */
+	ICU_IPR076_ADDR,				/* No.76  å¤é¨ç«¯å­ IRQ12 */
+	ICU_IPR077_ADDR,				/* No.77  å¤é¨ç«¯å­ IRQ13 */
+	ICU_IPR078_ADDR,				/* No.78  å¤é¨ç«¯å­ IRQ14 */
+	ICU_IPR079_ADDR,				/* No.79  å¤é¨ç«¯å­ IRQ15 */
+	NULL,							/* No.80  äºç´ */
+	NULL,							/* No.81  äºç´ */
+	NULL,							/* No.82  äºç´ */
+	NULL,							/* No.83  äºç´ */
+	NULL,							/* No.84  äºç´ */
+	NULL,							/* No.85  äºç´ */
+	NULL,							/* No.86  äºç´ */
+	NULL,							/* No.87  äºç´ */
+	NULL,							/* No.88  äºç´ */
+	NULL,							/* No.89  äºç´ */
+	ICU_IPR090_ADDR, 				/* No.90  USBR0 */
+	ICU_IPR091_ADDR, 				/* No.91  USBR1 */
+	ICU_IPR092_ADDR,				/* No.92  RTC ALM */
+	ICU_IPR093_ADDR,				/* No.93  RTC PRD */
+	NULL,							/* No.94  äºç´ */
+	NULL,							/* No.95  äºç´ */
+	NULL,							/* No.96  äºç´ */
+	NULL,							/* No.97  äºç´ */
+	ICU_IPR098_ADDR,				/* No.98  AD ADI0 */
+	NULL,							/* No.99  äºç´ */
+	NULL,							/* No.100  äºç´ */
+	NULL,							/* No.101  äºç´ */
+	ICU_IPR102_ADDR,				/* No.102 S12AD S12ADIO */
+	NULL,							/* No.103  äºç´ */
+	NULL,							/* No.104  äºç´ */
+	NULL,							/* No.105  äºç´ */
+	ICU_IPR106_ADDR,				/* No.106 ICU GROUP0 */
+	ICU_IPR107_ADDR,				/* No.107 ICU GROUP1 */
+	ICU_IPR108_ADDR,				/* No.108 ICU GROUP2 */
+	ICU_IPR109_ADDR,				/* No.109 ICU GROUP3 */
+	ICU_IPR110_ADDR,				/* No.110 ICU GROUP4 */
+	ICU_IPR111_ADDR,				/* No.111 ICU GROUP5 */
+	ICU_IPR112_ADDR,				/* No.112 ICU GROUP6 */
+	NULL,							/* No.113  äºç´ */
+	ICU_IPR114_ADDR,				/* No.114 ICU GROUP12 */
+	NULL,							/* No.115  äºç´ */
+	NULL,							/* No.116  äºç´ */
+	NULL,							/* No.117  äºç´ */
+	NULL,							/* No.118  äºç´ */
+	NULL,							/* No.119  äºç´ */
+	NULL,							/* No.120  äºç´ */
+	NULL,							/* No.121  äºç´ */
+	ICU_IPR122_ADDR,				/* No.122 SCI12 SCIX0 */
+	ICU_IPR123_ADDR,				/* No.123 SCI12 SCIX1 */
+	ICU_IPR124_ADDR,				/* No.124 SCI12 SCIX2 */
+	ICU_IPR125_ADDR,				/* No.125 SCI12 SCIX3 */
+	ICU_IPR126_ADDR,				/* No.126 TPU0 TGI0A */
+	ICU_IPR126_ADDR,				/* No.127 TPU0 TGI0B */
+	ICU_IPR126_ADDR,				/* No.128 TPU0 TGI0C */
+	ICU_IPR126_ADDR,				/* No.129 TPU0 TGI0D */
+	ICU_IPR130_ADDR,				/* No.130 TPU1 TGI1A */
+	ICU_IPR130_ADDR,				/* No.131 TPU1 TGI1B */
+	ICU_IPR132_ADDR,				/* No.132 TPU2 TGI2A */
+	ICU_IPR132_ADDR,				/* No.133 TPU2 TGI2B */
+	ICU_IPR134_ADDR,				/* No.134 TPU3 TGI3A */
+	ICU_IPR134_ADDR,				/* No.135 TPU3 TGI3B */
+	ICU_IPR134_ADDR,				/* No.136 TPU3 TGI3C */
+	ICU_IPR134_ADDR,				/* No.137 TPU3 TGI3D */
+	ICU_IPR138_ADDR,				/* No.138 TPU4 TGI4A */
+	ICU_IPR138_ADDR,				/* No.139 TPU4 TGI4B */
+	ICU_IPR140_ADDR,				/* No.140 TPU5 TGI5A */
+	ICU_IPR140_ADDR,				/* No.141 TPU5 TGI5B */
+	ICU_IPR142_ADDR,				/* No.142 TPU6 TGI6A */
+	ICU_IPR142_ADDR,				/* No.143 TPU6 TGI6B */
+	ICU_IPR142_ADDR,				/* No.144 TPU6 TGI6C */
+	ICU_IPR142_ADDR,				/* No.145 TPU6 TGI6D */
+	ICU_IPR146_ADDR,				/* No.146 TGIE0 */
+	ICU_IPR146_ADDR,				/* No.147 TGIF0 */
+	ICU_IPR148_ADDR,				/* No.148 TPU7 TGI7A */
+	ICU_IPR148_ADDR,				/* No.149 TPU7 TGI7B */
+	ICU_IPR150_ADDR,				/* No.150 TPU8 TGI8A */
+	ICU_IPR150_ADDR,				/* No.151 TPU8 TGI8B */
+	ICU_IPR152_ADDR,				/* No.152 TPU9 TGI9A */
+	ICU_IPR152_ADDR,				/* No.153 TPU9 TGI9B */
+	ICU_IPR152_ADDR,				/* No.154 TPU9 TGI9C */
+	ICU_IPR152_ADDR,				/* No.155 TPU9 TGI9D */
+	ICU_IPR156_ADDR,				/* No.156 TPU10 TGI10A */
+	ICU_IPR156_ADDR,				/* No.157 TPU10 TGI10B */
+	ICU_IPR156_ADDR,				/* No.158 TGIC4 */
+	ICU_IPR156_ADDR,				/* No.159 TGID4 */
+	ICU_IPR160_ADDR,				/* No.160 TGIV4 */
+	ICU_IPR161_ADDR,				/* No.161 TGIU5 */
+	ICU_IPR162_ADDR,				/* No.162 TGIV5 */
+	ICU_IPR163_ADDR,				/* No.163 TGIW5 */
+	ICU_IPR164_ADDR,				/* No.164 TCI11A */
+	ICU_IPR165_ADDR,				/* No.165 TCI11B */
+	ICU_IPR167_ADDR,				/* No.166 POE OEI1 */
+	ICU_IPR167_ADDR,				/* No.167 POE OEI2 */
+	NULL,							/* No.168  äºç´ */
+	NULL,							/* No.169  äºç´ */
+	ICU_IPR170_ADDR,				/* No.170 TMR0 CMIA0 */
+	ICU_IPR170_ADDR,				/* No.171 TMR0 CMIB0 */
+	ICU_IPR170_ADDR,				/* No.172 TMR0 OVI0 */
+	ICU_IPR173_ADDR,				/* No.173 TMR1 CMIA1 */
+	ICU_IPR173_ADDR,				/* No.174 TMR1 CMIB1 */
+	ICU_IPR173_ADDR,				/* No.175 TMR1 OVI1 */
+	ICU_IPR176_ADDR,				/* No.176 TMR2 CMIA2 */
+	ICU_IPR176_ADDR,				/* No.177 TMR2 CMIB2 */
+	ICU_IPR176_ADDR,				/* No.178 TMR2 OVI2 */
+	ICU_IPR179_ADDR,				/* No.179 TMR3 CMIA3 */
+	ICU_IPR179_ADDR,				/* No.180 TMR3 CMIB3 */
+	ICU_IPR179_ADDR,				/* No.181 TMR3 OVI3 */
+	ICU_IPR182_ADDR,				/* No.182 RIIC0 EEI0 */
+	ICU_IPR183_ADDR,				/* No.183 RIIC0 RXI0 */
+	ICU_IPR184_ADDR,				/* No.184 RIIC0 TXI0 */
+	ICU_IPR185_ADDR,				/* No.185 RIIC0 TEI0 */
+	ICU_IPR186_ADDR,				/* No.186 RIIC0 EEI1 */
+	ICU_IPR187_ADDR,				/* No.187 RIIC0 RXI1 */
+	ICU_IPR188_ADDR,				/* No.188 RIIC0 TXI1 */
+	ICU_IPR189_ADDR,				/* No.189 RIIC0 TEI1 */
+	ICU_IPR190_ADDR,				/* No.190 RIIC0 EEI2 */
+	ICU_IPR191_ADDR,				/* No.191 RIIC0 RXI2 */
+	ICU_IPR192_ADDR,				/* No.192 RIIC0 TXI2 */
+	ICU_IPR193_ADDR,				/* No.193 RIIC0 TEI2 */
+	ICU_IPR194_ADDR,				/* No.194 RIIC0 EEI3 */
+	ICU_IPR195_ADDR,				/* No.195 RIIC0 RXI3 */
+	ICU_IPR196_ADDR,				/* No.196 RIIC0 TXI3 */
+	ICU_IPR197_ADDR,				/* No.197 RIIC0 TEI3 */
+	ICU_IPR198_ADDR,				/* No.198 DMAC DMTEND0 */
+	ICU_IPR199_ADDR,				/* No.199 DMAC DMTEND1 */
+	ICU_IPR200_ADDR,				/* No.200 DMAC DMTEND2 */
+	ICU_IPR201_ADDR,				/* No.201 DMAC DMTEND3 */
+	ICU_IPR202_ADDR,				/* No.202 EXDMAC EXDMACI0 */
+	ICU_IPR203_ADDR,				/* No.203 EXDMAC EXDMACI1 */
+	NULL,							/* No.204  äºç´ */
+	NULL,							/* No.205  äºç´ */
+	NULL,							/* No.206  äºç´ */
+	NULL,							/* No.207  äºç´ */
+	NULL,							/* No.208  äºç´ */
+	NULL,							/* No.209  äºç´ */
+	NULL,							/* No.210  äºç´ */
+	NULL,							/* No.211  äºç´ */
+	NULL,							/* No.212  äºç´ */
+	NULL,							/* No.213  äºç´ */
+	ICU_IPR214_ADDR,				/* No.214 SCI0 RXI0 */
+	ICU_IPR214_ADDR,				/* No.215 SCI0 TXI0 */
+	ICU_IPR214_ADDR,				/* No.216 SCI0 TEI0 */
+	ICU_IPR217_ADDR,				/* No.217 SCI1 RXI1 */
+	ICU_IPR217_ADDR,				/* No.218 SCI1 TXI1 */
+	ICU_IPR217_ADDR,				/* No.219 SCI1 TEI1 */
+	ICU_IPR220_ADDR,				/* No.220 SCI2 RXI2 */
+	ICU_IPR220_ADDR,				/* No.221 SCI2 TXI2 */
+	ICU_IPR220_ADDR,				/* No.222 SCI2 TEI2 */
+	ICU_IPR223_ADDR,				/* No.223 SCI3 RXI3 */
+	ICU_IPR223_ADDR,				/* No.224 SCI3 TXI3 */
+	ICU_IPR223_ADDR,				/* No.225 SCI3 TEI3 */
+	ICU_IPR226_ADDR,				/* No.226 SCI4 RXI4 */
+	ICU_IPR226_ADDR,				/* No.227 SCI4 TXI4 */
+	ICU_IPR226_ADDR,				/* No.228 SCI4 TEI4 */
+	ICU_IPR229_ADDR,				/* No.229 SCI5 RXI5 */
+	ICU_IPR229_ADDR,				/* No.230 SCI5 TXI5 */
+	ICU_IPR229_ADDR,				/* No.231 SCI5 TEI5 */
+	ICU_IPR232_ADDR,				/* No.232 SCI6 RXI6 */
+	ICU_IPR232_ADDR,				/* No.233 SCI6 TXI6 */
+	ICU_IPR232_ADDR,				/* No.234 SCI6 TEI6 */
+	ICU_IPR235_ADDR,				/* No.235 SCI7 RXI7 */
+	ICU_IPR235_ADDR,				/* No.236 SCI7 TXI7 */
+	ICU_IPR235_ADDR,				/* No.237 SCI7 TEI7 */
+	ICU_IPR238_ADDR,				/* No.238 SCI8 RXI8 */
+	ICU_IPR238_ADDR,				/* No.239 SCI8 TXI8 */
+	ICU_IPR238_ADDR,				/* No.240 SCI8 TEI8 */
+	ICU_IPR241_ADDR,				/* No.241 SCI9 RXI9 */
+	ICU_IPR241_ADDR,				/* No.242 SCI9 TXI9 */
+	ICU_IPR241_ADDR,				/* No.243 SCI9 TEI9 */
+	ICU_IPR244_ADDR,				/* No.244 SCI10 RXI10 */
+	ICU_IPR244_ADDR,				/* No.245 SCI10 TXI10 */
+	ICU_IPR244_ADDR,				/* No.246 SCI10 TEI10 */
+	ICU_IPR247_ADDR,				/* No.247 SCI11 RXI11 */
+	ICU_IPR247_ADDR,				/* No.248 SCI11 TXI11 */
+	ICU_IPR247_ADDR,				/* No.249 SCI11 TEI11 */
+	ICU_IPR250_ADDR,				/* No.250 SCI12 RXI12 */
+	ICU_IPR250_ADDR,				/* No.251 SCI12 TXI12 */
+	ICU_IPR250_ADDR,				/* No.252 SCI12 TEI12 */
+	ICU_IPR253_ADDR,				/* No.253 IEB IEBINT */
+	NULL,							/* No.254  äºç´ */
+	NULL,							/* No.255  äºç´ */
+};
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
+	{ NULL, INVALID_OFFSET },			/* No.0   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.1   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.2   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.3   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.4   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.5   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.6   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.7   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.8   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.9   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.10  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.11  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.12  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.13  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.14  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.15  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN0_BIT },	/* No.16  ãã¹ã¨ã©ã¼ BUSERR */
+	{ NULL, INVALID_OFFSET },			/* No.17  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.18  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.19  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.20  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN5_BIT },	/* No.21  FCU FIFERR */
+	{ NULL, INVALID_OFFSET },			/* No.22  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN7_BIT },	/* No.23  FCU FRDYI */
+	{ NULL, INVALID_OFFSET },			/* No.24  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.25  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.26  äºç´ */
+	{ ICU_IER03_ADDR, ICU_IEN3_BIT },	/* No.27  SWINT */
+	{ ICU_IER03_ADDR, ICU_IEN4_BIT },	/* No.28  CMTã¦ããã0 CMT0 */
+	{ ICU_IER03_ADDR, ICU_IEN5_BIT },	/* No.29  CMTã¦ããã0 CMT1 */
+	{ ICU_IER03_ADDR, ICU_IEN6_BIT },	/* No.30  CMTã¦ããã1 CMT2 */
+	{ ICU_IER03_ADDR, ICU_IEN7_BIT },	/* No.31  CMTã¦ããã1 CMT3 */
+	{ ICU_IER04_ADDR, ICU_IEN0_BIT },	/* No.32  ETHER */
+	{ ICU_IER04_ADDR, ICU_IEN1_BIT },	/* No.33  USB0 D0FIFO0 */
+	{ ICU_IER04_ADDR, ICU_IEN2_BIT },	/* No.34  USB0 D1FIFO0 */
+	{ ICU_IER04_ADDR, ICU_IEN3_BIT },	/* No.35  USB0 USBI0 */
+	{ ICU_IER04_ADDR, ICU_IEN4_BIT },	/* No.36  USB1 D0FIFO1 */
+	{ ICU_IER04_ADDR, ICU_IEN5_BIT },	/* No.37  USB1 D1FIFO1 */
+	{ ICU_IER04_ADDR, ICU_IEN6_BIT },	/* No.38  USB1 USBI1 */
+	{ ICU_IER04_ADDR, ICU_IEN7_BIT },	/* No.39  RSPI0 SPRI0 */
+	{ ICU_IER05_ADDR, ICU_IEN0_BIT },	/* No.40  RSPI0 SPTI0 */
+	{ ICU_IER05_ADDR, ICU_IEN1_BIT },	/* No.41  RSPI0 SPII0 */
+	{ ICU_IER05_ADDR, ICU_IEN2_BIT },	/* No.42  RSPI1 SPRI1 */
+	{ ICU_IER05_ADDR, ICU_IEN3_BIT },	/* No.43  RSPI1 SPTI1 */
+	{ ICU_IER05_ADDR, ICU_IEN4_BIT },	/* No.44  RSPI1 SPII1 */
+	{ ICU_IER05_ADDR, ICU_IEN5_BIT },	/* No.45  RSPI2 SPRI2 */
+	{ ICU_IER05_ADDR, ICU_IEN6_BIT },	/* No.46  RSPI2 SPTI2 */
+	{ ICU_IER05_ADDR, ICU_IEN7_BIT },	/* No.47  RSPI2 SPII2 */
+	{ ICU_IER06_ADDR, ICU_IEN0_BIT },	/* No.48  CAN0 RXF0 */
+	{ ICU_IER06_ADDR, ICU_IEN1_BIT },	/* No.49  CAN0 TXF0 */
+	{ ICU_IER06_ADDR, ICU_IEN2_BIT },	/* No.50  CAN0 RXM0 */
+	{ ICU_IER06_ADDR, ICU_IEN3_BIT },	/* No.51  CAN0 TXM0 */
+	{ ICU_IER06_ADDR, ICU_IEN4_BIT },	/* No.52  CAN1 RXF1 */
+	{ ICU_IER06_ADDR, ICU_IEN5_BIT },	/* No.53  CAN1 TXF1 */
+	{ ICU_IER06_ADDR, ICU_IEN6_BIT },	/* No.54  CAN1 RXM1 */
+	{ ICU_IER06_ADDR, ICU_IEN7_BIT },	/* No.55  CAN1 TXM1 */
+	{ ICU_IER07_ADDR, ICU_IEN0_BIT },	/* No.56  CAN2 RXF2 */
+	{ ICU_IER07_ADDR, ICU_IEN1_BIT },	/* No.57  CAN2 TXF2 */
+	{ ICU_IER07_ADDR, ICU_IEN2_BIT },	/* No.58  CAN2 RXM2 */
+	{ ICU_IER07_ADDR, ICU_IEN3_BIT },	/* No.59  CAN2 TXM2 */
+	{ NULL, INVALID_OFFSET },			/* No.60  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.61  äºç´ */
+	{ ICU_IER07_ADDR, ICU_IEN6_BIT },	/* No.62  RTC PRD */
+	{ NULL, INVALID_OFFSET },			/* No.63  äºç´ */
+	{ ICU_IER08_ADDR, ICU_IEN0_BIT },	/* No.64  å¤é¨ç«¯å­ IRQ0 */
+	{ ICU_IER08_ADDR, ICU_IEN1_BIT },	/* No.65  å¤é¨ç«¯å­ IRQ1 */
+	{ ICU_IER08_ADDR, ICU_IEN2_BIT },	/* No.66  å¤é¨ç«¯å­ IRQ2 */
+	{ ICU_IER08_ADDR, ICU_IEN3_BIT },	/* No.67  å¤é¨ç«¯å­ IRQ3 */
+	{ ICU_IER08_ADDR, ICU_IEN4_BIT },	/* No.68  å¤é¨ç«¯å­ IRQ4 */
+	{ ICU_IER08_ADDR, ICU_IEN5_BIT },	/* No.69  å¤é¨ç«¯å­ IRQ5 */
+	{ ICU_IER08_ADDR, ICU_IEN6_BIT },	/* No.70  å¤é¨ç«¯å­ IRQ6 */
+	{ ICU_IER08_ADDR, ICU_IEN7_BIT },	/* No.71  å¤é¨ç«¯å­ IRQ7 */
+	{ ICU_IER09_ADDR, ICU_IEN0_BIT },	/* No.72  å¤é¨ç«¯å­ IRQ8 */
+	{ ICU_IER09_ADDR, ICU_IEN1_BIT },	/* No.73  å¤é¨ç«¯å­ IRQ9 */
+	{ ICU_IER09_ADDR, ICU_IEN2_BIT },	/* No.74  å¤é¨ç«¯å­ IRQ10 */
+	{ ICU_IER09_ADDR, ICU_IEN3_BIT },	/* No.75  å¤é¨ç«¯å­ IRQ11 */
+	{ ICU_IER09_ADDR, ICU_IEN4_BIT },	/* No.76  å¤é¨ç«¯å­ IRQ12 */
+	{ ICU_IER09_ADDR, ICU_IEN5_BIT },	/* No.77  å¤é¨ç«¯å­ IRQ13 */
+	{ ICU_IER09_ADDR, ICU_IEN6_BIT },	/* No.78  å¤é¨ç«¯å­ IRQ14 */
+	{ ICU_IER09_ADDR, ICU_IEN7_BIT },	/* No.79  å¤é¨ç«¯å­ IRQ15 */
+	{ NULL, INVALID_OFFSET },			/* No.80  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.81  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.82  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.83  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.84  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.85  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.86  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.87  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.88  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.89  äºç´ */
+	{ ICU_IER0B_ADDR, ICU_IEN2_BIT },	/* No.90  USBR0 */
+	{ ICU_IER0B_ADDR, ICU_IEN3_BIT },	/* No.91  USBR1 */
+	{ ICU_IER0B_ADDR, ICU_IEN4_BIT },	/* No.92  RTC ALM */
+	{ ICU_IER0B_ADDR, ICU_IEN5_BIT },	/* No.92  RTC PRD */
+	{ NULL, INVALID_OFFSET },			/* No.94  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.95  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.96  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.97  äºç´ */
+	{ ICU_IER0C_ADDR, ICU_IEN2_BIT },	/* No.98  AD0 ADI0 */
+	{ NULL, INVALID_OFFSET },			/* No.99  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.100 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.101 äºç´ */
+	{ ICU_IER0C_ADDR, ICU_IEN6_BIT },	/* No.102 S12AD S12ADI00 */
+	{ NULL, INVALID_OFFSET },			/* No.103 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.104 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.105 äºç´ */
+	{ ICU_IER0D_ADDR, ICU_IEN2_BIT },	/* No.106 ICU GROUP0 */
+	{ ICU_IER0D_ADDR, ICU_IEN3_BIT },	/* No.107 ICU GROUP1 */
+	{ ICU_IER0D_ADDR, ICU_IEN4_BIT },	/* No.108 ICU GROUP2 */
+	{ ICU_IER0D_ADDR, ICU_IEN5_BIT },	/* No.109 ICU GROUP3 */
+	{ ICU_IER0D_ADDR, ICU_IEN6_BIT },	/* No.110 ICU GROUP4 */
+	{ ICU_IER0D_ADDR, ICU_IEN7_BIT },	/* No.111 ICU GROUP5 */
+	{ ICU_IER0E_ADDR, ICU_IEN0_BIT },	/* No.112 ICU GROUP6 */
+	{ NULL, INVALID_OFFSET },			/* No.113 äºç´ */
+	{ ICU_IER0E_ADDR, ICU_IEN1_BIT },	/* No.114 ICU GROUP12 */
+	{ NULL, INVALID_OFFSET },			/* No.115 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.116 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.117 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.118 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.119 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.120 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.121 äºç´ */
+	{ ICU_IER0F_ADDR, ICU_IEN2_BIT },	/* No.122 SCI12 SCIX0 */
+	{ ICU_IER0F_ADDR, ICU_IEN3_BIT },	/* No.123 SCI12 SCIX1 */
+	{ ICU_IER0F_ADDR, ICU_IEN4_BIT },	/* No.124 SCI12 SCIX2 */
+	{ ICU_IER0F_ADDR, ICU_IEN5_BIT },	/* No.125 SCI12 SCIX3 */
+	{ ICU_IER0F_ADDR, ICU_IEN6_BIT },	/* No.126 TPU0 TGI0A */
+	{ ICU_IER0F_ADDR, ICU_IEN7_BIT },	/* No.127 TPU0 TGI0B */
+	{ ICU_IER10_ADDR, ICU_IEN0_BIT },	/* No.128 TPU0 TGI0C */
+	{ ICU_IER10_ADDR, ICU_IEN1_BIT },	/* No.129 TPU0 TGI0D */
+	{ ICU_IER10_ADDR, ICU_IEN2_BIT },	/* No.130 TPU1 TGI1A */
+	{ ICU_IER10_ADDR, ICU_IEN3_BIT },	/* No.131 TPU1 TGI1B */
+	{ ICU_IER10_ADDR, ICU_IEN4_BIT },	/* No.132 TPU2 TGI2A */
+	{ ICU_IER10_ADDR, ICU_IEN5_BIT },	/* No.133 TPU2 TGI2B */
+	{ ICU_IER10_ADDR, ICU_IEN6_BIT },	/* No.134 TPU3 TGI3A */
+	{ ICU_IER10_ADDR, ICU_IEN7_BIT },	/* No.135 TPU3 TGI3B */
+	{ ICU_IER11_ADDR, ICU_IEN0_BIT },	/* No.136 TPU3 TGI3C */
+	{ ICU_IER11_ADDR, ICU_IEN1_BIT },	/* No.137 TPU3 TGI3D */
+	{ ICU_IER11_ADDR, ICU_IEN2_BIT },	/* No.138 TPU4 TGI4A */
+	{ ICU_IER11_ADDR, ICU_IEN3_BIT },	/* No.139 TPU4 TGI4B */
+	{ ICU_IER11_ADDR, ICU_IEN4_BIT },	/* No.140 TPU5 TGI5A */
+	{ ICU_IER11_ADDR, ICU_IEN5_BIT },	/* No.141 TPU5 TGI5B */
+	{ ICU_IER11_ADDR, ICU_IEN6_BIT },	/* No.142 TPU6 TGI6A */
+	{ ICU_IER11_ADDR, ICU_IEN7_BIT },	/* No.143 TPU6 TGI6B */
+	{ ICU_IER12_ADDR, ICU_IEN0_BIT },	/* No.144 TPU6 TGI6C */
+	{ ICU_IER12_ADDR, ICU_IEN1_BIT },	/* No.145 TPU6 TGI6D */
+	{ ICU_IER12_ADDR, ICU_IEN2_BIT },	/* No.146 TPU6 TGIE0 */
+	{ ICU_IER12_ADDR, ICU_IEN3_BIT },	/* No.147 TPU6 TGIF0 */
+	{ ICU_IER12_ADDR, ICU_IEN4_BIT },	/* No.148 TPU7 TGI7A */
+	{ ICU_IER12_ADDR, ICU_IEN5_BIT },	/* No.149 TPU7 TGI7B */
+	{ ICU_IER12_ADDR, ICU_IEN6_BIT },	/* No.150 TPU8 TGI8A */
+	{ ICU_IER12_ADDR, ICU_IEN7_BIT },	/* No.151 TPU8 TGI8B */
+	{ ICU_IER13_ADDR, ICU_IEN0_BIT },	/* No.152 TPU9 TGI9A */
+	{ ICU_IER13_ADDR, ICU_IEN1_BIT },	/* No.153 TPU9 TGI9B */
+	{ ICU_IER13_ADDR, ICU_IEN2_BIT },	/* No.154 TPU9 TGI9C */
+	{ ICU_IER13_ADDR, ICU_IEN3_BIT },	/* No.155 TPU9 TGI9D */
+	{ ICU_IER13_ADDR, ICU_IEN4_BIT },	/* No.156 TPU10 TGI10A */
+	{ ICU_IER13_ADDR, ICU_IEN5_BIT },	/* No.157 TPU10 TGI10B */
+	{ ICU_IER13_ADDR, ICU_IEN6_BIT },	/* No.158 TPU10 TGIC4 */
+	{ ICU_IER13_ADDR, ICU_IEN7_BIT },	/* No.159 TPU10 TGID4 */
+	{ ICU_IER14_ADDR, ICU_IEN0_BIT },	/* No.160 TPU10 TGIV4 */
+	{ ICU_IER14_ADDR, ICU_IEN1_BIT },	/* No.161 TPU11 TGIU5 */
+	{ ICU_IER14_ADDR, ICU_IEN2_BIT },	/* No.162 TPU11 TGIV5 */
+	{ ICU_IER14_ADDR, ICU_IEN3_BIT },	/* No.163 TPU11 TGIW5 */
+	{ ICU_IER14_ADDR, ICU_IEN4_BIT },	/* No.164 TPU11 TCI11A */
+	{ ICU_IER14_ADDR, ICU_IEN5_BIT },	/* No.165 TPU11 TCI11B */
+	{ ICU_IER14_ADDR, ICU_IEN6_BIT },	/* No.166 POE OEI1 */
+	{ ICU_IER14_ADDR, ICU_IEN7_BIT },	/* No.167 POE OEI2 */
+	{ NULL, INVALID_OFFSET },			/* No.168 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.169 äºç´ */
+	{ ICU_IER15_ADDR, ICU_IEN2_BIT },	/* No.170 TMR0 CMIA0 */
+	{ ICU_IER15_ADDR, ICU_IEN3_BIT },	/* No.171 TMR0 CMIB0 */
+	{ ICU_IER15_ADDR, ICU_IEN4_BIT },	/* No.172 TMR0 OVI0 */
+	{ ICU_IER15_ADDR, ICU_IEN5_BIT },	/* No.173 TMR1 CMIA1 */
+	{ ICU_IER15_ADDR, ICU_IEN6_BIT },	/* No.174 TMR1 CMIB1 */
+	{ ICU_IER15_ADDR, ICU_IEN7_BIT },	/* No.175 TMR1 OVI1 */
+	{ ICU_IER16_ADDR, ICU_IEN0_BIT },	/* No.176 TMR2 CMIA2 */
+	{ ICU_IER16_ADDR, ICU_IEN1_BIT },	/* No.177 TMR2 CMIB2 */
+	{ ICU_IER16_ADDR, ICU_IEN2_BIT },	/* No.178 TMR2 OVI2 */
+	{ ICU_IER16_ADDR, ICU_IEN3_BIT },	/* No.179 TMR3 CMIA3 */
+	{ ICU_IER16_ADDR, ICU_IEN4_BIT },	/* No.180 TMR3 CMIB3 */
+	{ ICU_IER16_ADDR, ICU_IEN5_BIT },	/* No.181 TMR3 OVI3 */
+	{ ICU_IER16_ADDR, ICU_IEN6_BIT },	/* No.182 RIIC0 EEI0 */
+	{ ICU_IER16_ADDR, ICU_IEN7_BIT },	/* No.183 RIIC0 RXI0 */
+	{ ICU_IER17_ADDR, ICU_IEN0_BIT },	/* No.184 RIIC0 TXI0 */
+	{ ICU_IER17_ADDR, ICU_IEN1_BIT },	/* No.185 RIIC0 TEI0 */
+	{ ICU_IER17_ADDR, ICU_IEN2_BIT },	/* No.186 RIIC0 EEI1 */
+	{ ICU_IER17_ADDR, ICU_IEN3_BIT },	/* No.187 RIIC0 RXI1 */
+	{ ICU_IER17_ADDR, ICU_IEN4_BIT },	/* No.188 RIIC0 TXI1 */
+	{ ICU_IER17_ADDR, ICU_IEN5_BIT },	/* No.189 RIIC0 TEI1 */
+	{ ICU_IER17_ADDR, ICU_IEN6_BIT },	/* No.190 RIIC0 EEI2 */
+	{ ICU_IER17_ADDR, ICU_IEN7_BIT },	/* No.191 RIIC0 RXI2 */
+	{ ICU_IER18_ADDR, ICU_IEN0_BIT },	/* No.192 RIIC0 TXI2 */
+	{ ICU_IER18_ADDR, ICU_IEN1_BIT },	/* No.193 RIIC0 TEI2 */
+	{ ICU_IER18_ADDR, ICU_IEN2_BIT },	/* No.194 RIIC0 EEI3 */
+	{ ICU_IER18_ADDR, ICU_IEN3_BIT },	/* No.195 RIIC0 RXI3 */
+	{ ICU_IER18_ADDR, ICU_IEN4_BIT },	/* No.196 RIIC0 TXI3 */
+	{ ICU_IER18_ADDR, ICU_IEN5_BIT },	/* No.197 RIIC0 TEI3 */
+	{ ICU_IER18_ADDR, ICU_IEN6_BIT },	/* No.198 DMAC DMAC0I */
+	{ ICU_IER18_ADDR, ICU_IEN7_BIT },	/* No.199 DMAC DMAC1I */
+	{ ICU_IER19_ADDR, ICU_IEN0_BIT },	/* No.200 DMAC DMAC2I */
+	{ ICU_IER19_ADDR, ICU_IEN1_BIT },	/* No.201 DMAC DMAC3I */
+	{ ICU_IER19_ADDR, ICU_IEN2_BIT },	/* No.202 EXDMAC EXDMAC0I */
+	{ ICU_IER19_ADDR, ICU_IEN3_BIT },	/* No.203 EXDMAC EXDMAC1I */
+	{ NULL, INVALID_OFFSET },			/* No.204 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.205 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.206 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.207 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.208 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.209 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.210 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.211 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.212 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.213 äºç´ */
+	{ ICU_IER1A_ADDR, ICU_IEN6_BIT },	/* No.214 SCI0 RXI0 */
+	{ ICU_IER1A_ADDR, ICU_IEN7_BIT },	/* No.215 SCI0 TXI0 */
+	{ ICU_IER1B_ADDR, ICU_IEN0_BIT },	/* No.216 SCI0 TEI0 */
+	{ ICU_IER1B_ADDR, ICU_IEN1_BIT },	/* No.217 SCI1 RXI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN2_BIT },	/* No.228 SCI1 TXI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN3_BIT },	/* No.229 SCI1 TEI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN4_BIT },	/* No.220 SCI2 RXI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN5_BIT },	/* No.221 SCI2 TXI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN6_BIT },	/* No.222 SCI2 TEI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN7_BIT },	/* No.223 SCI3 RXI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN0_BIT },	/* No.224 SCI3 TXI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN1_BIT },	/* No.225 SCI3 TEI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN2_BIT },	/* No.226 SCI4 RXI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN3_BIT },	/* No.227 SCI4 TXI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN4_BIT },	/* No.228 SCI4 TEI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN5_BIT },	/* No.229 SCI5 RXI5 */
+	{ ICU_IER1C_ADDR, ICU_IEN6_BIT },	/* No.230 SCI5 TXI5 */
+	{ ICU_IER1C_ADDR, ICU_IEN7_BIT },	/* No.231 SCI5 TEI5 */
+	{ ICU_IER1D_ADDR, ICU_IEN0_BIT },	/* No.232 SCI6 RXI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN1_BIT },	/* No.233 SCI6 TXI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN2_BIT },	/* No.234 SCI6 TEI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN3_BIT },	/* No.235 SCI7 RXI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN4_BIT },	/* No.236 SCI7 TXI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN5_BIT },	/* No.237 SCI7 TEI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN6_BIT },	/* No.238 SCI8 RXI8 */
+	{ ICU_IER1D_ADDR, ICU_IEN7_BIT },	/* No.239 SCI8 TXI8 */
+	{ ICU_IER1E_ADDR, ICU_IEN0_BIT },	/* No.240 SCI8 TEI8 */
+	{ ICU_IER1E_ADDR, ICU_IEN1_BIT },	/* No.241 SCI9 RXI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN2_BIT },	/* No.242 SCI9 TXI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN3_BIT },	/* No.243 SCI9 TEI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN4_BIT },	/* No.244 SCI10 RXI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN5_BIT },	/* No.245 SCI10 TXI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN6_BIT },	/* No.246 SCI10 TEI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN7_BIT },	/* No.247 SCI11 RXI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN0_BIT },	/* No.248 SCI11 TXI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN1_BIT },	/* No.249 SCI11 TEI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN2_BIT },	/* No.250 SCI12 RXI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN3_BIT },	/* No.251 SCI12 TXI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN4_BIT },	/* No.252 SCI12 TEI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN5_BIT },	/* No.253 IEB IEBINT */
+	{ NULL, INVALID_OFFSET },			/* No.254 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.255 äºç´ */
+};
+
+
+/*
+ *  IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
+	ICU_IRQ0_ADDR,
+	ICU_IRQ1_ADDR,
+	ICU_IRQ2_ADDR,
+	ICU_IRQ3_ADDR,
+	ICU_IRQ4_ADDR,
+	ICU_IRQ5_ADDR,
+	ICU_IRQ6_ADDR,
+	ICU_IRQ7_ADDR,
+	ICU_IRQ8_ADDR,
+	ICU_IRQ9_ADDR,
+	ICU_IRQ10_ADDR,
+	ICU_IRQ11_ADDR,
+	ICU_IRQ12_ADDR,
+	ICU_IRQ13_ADDR,
+	ICU_IRQ14_ADDR,
+	ICU_IRQ15_ADDR,
+};
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/rx630_config.h	(revision 313)
@@ -0,0 +1,112 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+
+#ifndef TOPPERS_RX630_CONFIG_H
+#define TOPPERS_RX630_CONFIG_H
+
+
+/*
+ *  å²è¾¼ã¿è¦å æ°
+ */
+#define	INHNO_MAX	UINT_C( 256 )
+
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨åå®ç¾©
+ */
+typedef struct ier_info {
+	volatile uint8_t __evenaccess	*addr;
+			 uint8_t				offset;
+} IER_INFO;
+
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨å®ç¾©
+ */
+#define	INVALID_OFFSET				( 0xFFU )
+#define	INTNO_IRQ( intno )			( ( 64U <= ( intno ) ) && ( ( intno ) <= 79U ) )
+#define	INTNO_IRQ_OFFSET( intno )	( ( intno ) - 64U )
+#define	IRQ_MAX						UINT_C( 16 )
+
+#define IR_TOP						(0x00087010)
+#define IR_REG( intno )				((volatile uint8_t __evenaccess * )(IR_TOP + (intno-16)))
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨ãã¼ãã«
+ */
+
+/* å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
+/* å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern const IER_INFO ier_reg_addr[];
+/* IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«
+ */
+#include "prc_config.h"
+
+#endif	/* TOPPERS_RX630_CONFIG_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/start.src
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/start.src	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_ccrx/start.src	(revision 313)
@@ -0,0 +1,184 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+;*                              Toyohashi Univ. of Technology, JAPAN
+;*  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+;*  Copyright (C) 2013      by Mitsuhiro Matsuura
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼Free Software Foundation ã«ãã£ã¦å
+¬è¡¨ããã¦ãã 
+;*  GNU General Public License ã® Version 2 ã«è¨è¿°ããã¦ããæ¡ä»¶ãï¼ä»¥
+;*  ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§
+;*  ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+;*  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãåå©ç¨å¯è½ãªãã¤ããªã³ã¼ãï¼ãªã­ã±ã¼ã¿ãã«ãªã
+;*      ã¸ã§ã¯ããã¡ã¤ã«ãã©ã¤ãã©ãªãªã©ï¼ã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼å©ç¨
+;*      ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼
+;*      ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãåå©ç¨ä¸å¯è½ãªãã¤ããªã³ã¼ãã®å½¢ã¾ãã¯æ©å¨ã«çµ
+;*      ã¿è¾¼ãã å½¢ã§å©ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
+;*    (a) å©ç¨ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
+;*        æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) å©ç¨ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼ä¸è¨èä½æ¨©è
+ã«å ±åãã
+;*        ãã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ãå
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã¯ï¼
+;*  æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
+;*  ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
+;*  ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+;* 
+
+
+	;
+	;  ã¡ã¢ãªãããã®å®ç¾©(ã¿ã¼ã²ããä¾å­é¨)
+	;
+	.include	sectrx.inc
+
+DFLRE				.equ	007FC440H		; DFLREã¬ã¸ã¹ã¿
+
+DB_BLOCK_ENABLE		.equ	02D0FH
+
+;
+;  åæåã«ã¼ãã³
+;
+	.section	P_START, CODE
+
+	.glb	_start
+	.glb	_sta_ker
+	.glb	_software_init_hook
+	.glb	_hardware_init_hook
+	.glb	__kernel_istkpt
+
+_start:
+	;
+	;  é»æºæå
+¥å¾ã¯ã¬ãã«0, å
+¨å²è¾¼ã¿ç¦æ­¢ç¶æ
+ã§ãã.
+	;  ã«ã¼ãã«ã§ã¯é«éå²è¾¼ã¿ãä½¿ç¨ããªããããBPC, BPSWåã³FINTV
+	;  ã®åæåã¯è¡ããªã.
+	;
+
+	;
+	;  å
+èµROMï¼ãã¼ã¿ãã©ãã·ã¥ï¼é åã®è¨­å®
+	;
+	;  ãªã»ããå¾, ãã¼ã¿ãã©ãã·ã¥é åã¯èª­ã¿åºãç¦æ­¢ã¨ãªã£ã¦ãã
+	;  ãã, èª­ã¿åºãè¨±å¯ã«è¨­å®ãã.
+	;
+	mov.l	#DFLRE, r5
+	mov.w	#DB_BLOCK_ENABLE, [R5]
+	
+	;
+	;  ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨­å®
+	;
+	;  ã¦ã¼ã¶ã«ã¦éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã¹ã¿ãã¯é åãç¨æããå ´å,
+	;  ã¦ã¼ã¶é åãè¨­å®ãã.
+	;  kernel_cfg.cã«ã¦"_kernel_istkpt"ã®å¤ãæ±ºå®ãã.
+	;
+	mov.l	#__kernel_istkpt, r5
+	mov.l	[r5], r0			; éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã¹ã¿ãã¯é åãè¨­å®
+
+	;
+	;  å¯å¤ãã¯ã¿ãã¼ãã«ã®è¨­å®
+	;
+	mvtc	#VVECTOR_TOP, intb			; ãã¯ã¿ãã¼ãã«ã®è¨­å®
+
+	;
+	;  ãã¼ãã¦ã§ã¢åºæã®åæåã«ã¼ãã³ã®å¼åºã
+	;
+	mov.l	#_hardware_init_hook, r5
+	cmp		#0, r5
+	beq.b	init_D
+	jsr		r5
+
+	;
+	;  åæå¤ããå¤æ°é åã®åæå
+	;
+init_D:
+	mov.l	#(sizeof R), r3
+	cmp		#0, r3
+	beq.b	init_D_2					; ãµã¤ãº0ãªãåæåå¿
+è¦ãªã
+	mov.l	#(topof R), r1
+	mov.l	#(topof D), r2
+	smovf
+
+init_D_2:
+	mov.l	#(sizeof R_2), r3
+	cmp		#0, r3
+	beq.b	init_D_1					; ãµã¤ãº0ãªãåæåå¿
+è¦ãªã
+	mov.l	#(topof R_2), r1
+	mov.l	#(topof D_2), r2
+	smovf
+
+init_D_1:
+	mov.l	#(sizeof R_1), r3
+	cmp		#0, r3
+	beq.b	clear_B						; ãµã¤ãº0ãªãåæåå¿
+è¦ãªã
+	mov.l	#(topof R_1), r1
+	mov.l	#(topof D_1), r2
+	smovf
+
+	;
+	;  åæå¤ãªãå¤æ°é åã®åæå
+	;
+clear_B:
+	mov.l	#0, r2
+	mov.l	#(topof B), r1
+	mov.l	#(sizeof B) , r3
+	sstr.b
+
+clear_B_2:
+	mov.l	#0, r2
+	mov.l	#(topof B_2), r1
+	mov.l	#(sizeof B_2) , r3
+	sstr.b
+
+clear_B_1:
+	mov.l	#0, r2
+	mov.l	#(topof B_1), r1
+	mov.l	#(sizeof B_1) , r3
+	sstr.b
+
+	;
+	;  software_init_hook ãå¼åºãï¼0 ã§ãªãå ´åï¼
+	;
+	;  ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾å­ãã¦å¿
+è¦ãªåæåå¦ç
+	;  ãããå ´åã¯ï¼software_init_hook ã¨ããé¢æ°ãç¨æããã°ãã.
+	;
+	mov.l	#_software_init_hook, r5
+	cmp		#0, r5
+	beq.b	kernel_link
+	jsr		r5
+
+	;
+	;  ã«ã¼ãã«ã¹ã¿ã¼ã
+	;
+kernel_link:
+	bra.a	_sta_ker					; --> _sta_ker()
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/Makefile.prc	(revision 313)
@@ -0,0 +1,36 @@
+#
+#		Makefileã®ãã­ã»ããµä¾å­é¨ï¼M68040ç¨ï¼
+#
+
+#
+#  GNUéçºç°å¢ã®ã¿ã¼ã²ããã¢ã¼ã­ãã¯ãã£ã®å®ç¾©
+#
+GCC_TARGET = rx-elf
+
+#
+#  ãã­ã»ããµä¾å­é¨ãã£ã¬ã¯ããªåã®å®ç¾©
+#
+PRCDIR = $(SRCDIR)/arch/$(PRC)_$(TOOL)
+
+#
+#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#
+COPTS := $(COPTS) -ffunction-sections -fno-function-cse -fsigned-char -fdata-sections -mlittle-endian-data -mcpu=rx600 -m64bit-doubles
+LDFLAGS := $(LDFLAGS) -flto
+
+#
+#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#
+KERNEL_DIR := $(KERNEL_DIR) $(PRCDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) prc_support.o prc_test.o
+KERNEL_COBJS := $(KERNEL_COBJS) prc_config.o rx630_config.o
+
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#
+CFG_TABS := $(CFG_TABS) --symval-table $(PRCDIR)/prc_sym.def
+
+#
+#  ãªãã»ãããã¡ã¤ã«çæã®ããã®å®ç¾©
+#
+OFFSET_TRB = $(PRCDIR)/prc_offset.trb
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/makeoffset.c	(revision 313)
@@ -0,0 +1,258 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+
+/*
+ *	offset.inc (ãããã¯ offset.h) ã«ã¤ãã¦
+ *
+ *	  offset.inc ã¯æ§é ä½ã®ç¹å®ã®è¦ç´ ãæ§é ä½ã®å
+é ­ããä½ãã¤ãç®ã«
+ *	å­å¨ãããã¨ãããã¨ã, ç¹å®ã®ããããã£ã¼ã«ããå
+é ­ãã
+ *	ä½ãã¤ãå
+ã®ä½ãããç®ã«å­å¨ããã, ã¨ããæ
+å ±ã
+ *	ã¢ã»ã³ããªè¨èªãã¡ã¤ã«ã«ä¸ããããã«å­å¨ãã¦ãã.
+ *
+ *	  offset.inc ãã¡ã¤ã«ã®ä¸­èº«ã¯, åãªãã·ã³ãã«å®ç¾©ãã¡ã¤ã«ã§ãã.
+ *	ã·ã³ãã«ã¨ãã£ã¦ãå®ç¾©ããã·ã³ãã«ã®åç§°ã«ã¯ãã¿ã¼ã³ããã,
+ *	å¤§ããåãã¦æ¬¡ã®3ç¨®é¡ã«åé¡ã§ãã.
+ *
+ *	<æ§é ä½å>_<è¦ç´ å>	(ä¾) TCB_sp, TCB_pc, TCB_enatex ãªã©
+ *	<æ§é ä½å>_<è¦ç´ å>_bit	(ä¾) TCB_enatex_bit ãªã©
+ *	<æ§é ä½å>_<è¦ç´ å>_mask (ä¾) TCB_enatex_mask ãªã©
+ *
+ *	(ä¾)
+ *		TCB_texptn		.equ	14
+ *		TCB_sp			.equ	20
+ *		TCB_pc			.equ	24
+ *		TCB_enatex		.equ	13
+ *		TCB_enatex_bit		.equ	 6
+ *		TCB_enatex_mask		.equ	0040H
+ *
+ *	  ä¸çªã¯ããã¯ç¹å®ã®è¦ç´ ãæ§é ä½ã®å
+é ­ããä½ãã¤ãå
+ã«ããã
+ *	ã¨ãããã¨ãç¤ºãæ°å¤ã«ã¤ããã©ãã«ã®åç§°.
+ *	  äºçªç®ã¯ç¹å®ã®ããããã£ã¼ã«ãä¸­ã®ãããã, ä¸ä½ããæ°ãã¦
+ *	ä½ãããç®ã«ãããã¨ãããã¨ãç¤ºãæ°å¤ã«ã¤ããã©ãã«ã®åç§°. 
+ *	0ããå§ã¾ãæ°å¤ã§è¡¨ç¾ãã. æãä¸ä½ã®ãããã¯ç¬¬0ãããã§ãã.
+ *	  ä¸çªç®ã¯å
+ã»ã©ã® <æ§é ä½å>_<è¦ç´ å>_bit ã¨ãé¢é£ããã,
+ *	ç¹å®ã®ããããã£ã¼ã«ãä¸­ã®ãããã®ãã¹ã¯å¤ã®åç§°.
+ *	_bit ã¨ *_mask ã®å¤ã®éã«ã¯æ¬¡ã®é¢ä¿ããã.
+ *		(*_mask) == (1 << *_bit)
+ * *	(ä¾) TCB_enatex_bit ã 6 ã®æ, TCB_enatex_mask ã¯ 40H
+ *
+ *	  ã¡ãªã¿ã«M32Cä¾å­é¨ã®å®è£
+ã§ã¯, ç¹å®ãããã®ãã§ãã¯ãªã©ã«
+ *	ãããå½ä»¤ã¢ãã¬ãã·ã³ã°ãä½¿ç¨ãã¦ããã®ã§ *_mask ã¨ããã©ãã«ã¯
+ *	ä½¿ç¨ãã¦ããªã.
+ */
+
+/*
+ *	offset.inc ã®ä½ãæ¹(M32Cã¿ã¼ã²ããä¾å­é¨åã)
+ *
+ *	  GNU Cã³ã³ãã¤ã©ãç¨ãã¦ããã¿ã¼ã²ããä¾å­é¨ã«ã¤ãã¦ã¯,
+ *	ã«ã¼ãã«ã®ããããã£ã¬ã¯ããªã®ä¸ã«ãã util ã¨ãããã£ã¬ã¯ããªã®
+ *	ä¸ã« genoffset ã¨ãã perl ã¹ã¯ãªãããç¨æããã¦ããã®ã§,
+ *	ç¹ã«æåã§ offset.h ãä½æããå¿
+è¦ã¯ãªã.
+ *	  genoffset ã¯ GNU éçºç°å¢ãæ³å®ãã¦ä½æããã¦ããã®ã§,
+ *	çæãããã¢ã»ã³ããªè¨èªçä¼¼å½ä»¤ãçæè¦åã®ç°ãªãä»ã®
+ *	Cã³ã³ãã¤ã©ã«ã¯ãã®ã¾ã¾é©ç¨ã§ããªãå¯è½æ§ããã.
+ *	  ããã§, ããã§ã¯Windowsç°å¢ åãã® genoffset ãç¨æãã,
+ *	ä½ãæ¹ãããã«è¨ã, æä½æ¥­ã§ offset.inc ãä½æãã¦ããããã¨ã¨
+ *	ãã. ä»¥ä¸ã«ãã®æ¹æ³ãç¤ºã. ãªã, ãã®æ¹æ³ã¯M32Cã®éçºç°å¢ã
+ *	å½ä»¤ã»ããã«ä¾å­ãã¦ãããã, ä»ã®ã¿ã¼ã²ãããä½¿ç¨ãã¦ããå ´åã¯
+ *	ãã®ã¾ã¾é©ç¨ã§ããªã.
+ *
+ *  1.	makeoffset.c ã¨ãããã¡ã¤ã«ããCã³ã³ãã¤ã©ãä½¿ç¨ãã¦
+ *	ã¢ã»ã³ããªè¨èªãã¡ã¤ã« makeoffset.a30 ãçæãã.
+ *	ã³ã³ãã¤ã«ãªãã·ã§ã³ã¯ã«ã¼ãã«ã³ã¼ãã«ä¸ãããã®ã¨åã
+ *	ãã®ãä¸ãã. 
+ *	ã«ããµã¹è£½ãã¼ã« TM ãä½¿ç¨ãã¦ããå ´åã¯, ãã­ã¸ã§ã¯ãã¨ãã£ã¿ã®
+ *	çææé ãã¥ã¼ãã makeoffset.a30 ãé¸ã³, å³ã¯ãªãã¯ã¡ãã¥ã¼ã®
+ *	ï½¢é¨åãã«ãï½£ãé¸æãããã¨ã§çæã§ãã.
+ *	ãããã¯ã³ãã³ããã­ã³ããã§ã¡ã¤ã¯ãã¡ã¤ã«ã¨åããã£ã¬ã¯ããªã«
+ *	ç§»åã, "make -f ã¡ã¤ã¯ãã¡ã¤ã«å makeoffset.a30" ã
+ *	å®è¡ãã¦ãåæ§ã®çµæãå¾ããã. (ã¡ã¤ã¯ãã¡ã¤ã«ã¯TMãä½¿ç¨ãã¦
+ *	ãããã®ã¨åããã¡ã¤ã«ãæå®å¯è½)
+ *
+ *  2.	å
+ã»ã©ã® 1. ã®ä½æ¥­ã§å¾ããã, makeoffset.a30 ãã¡ã¤ã«ãã
+ *	"! BEGIN XXXX"  ã§ã¯ãã¾ã "! END" ã§çµãã£ã¦ããé¨åãæ¢ã.
+ *
+ *	4ç®æãã, ããããå°ããã¤ç°ãªãã®ã§é ã«èª¬æãã.
+ *	(ä»¥ä¸, èª¬æä¸­ã§ã¯ã¢ã»ã³ããªè¨èªãã¡ã¤ã«ã®ã³ã¡ã³ãè¡ã¯çã)
+ *
+ * (1)	æ§é ä½ã®å
+é ­ããã¡ã³ãã¸ã®ãªãã»ãã
+ *
+ *	! BEGIN TCB_texptn
+ *		bset	00H,0000000eH
+ *	! END
+ *
+ *	ä¸è¨"! BEGIN"ã®å¾ãã®æå­åãoffset.incã§å®ç¾©ããã·ã³ãã«åã¨ãªã.
+ *	ãã®ã·ã³ãã«ã®å¤ã¯, æ¬¡è¡ã®bsetå½ä»¤ã®ç¬¬2ãªãã©ã³ãã®å¤ã§ãã
+ *	0000000eHãããã«ç¸å½ãã. ãããæ§é ä½ã®å
+é ­ããtexptnã¾ã§ã®
+ *	ãªãã»ããå¤ã¨ãªã. ãããã£ã¦ãã®å ´å, offset.inc ã«ã¯
+ *	TCB_texptn	.equ	14
+ *	ã¨ããè¡ãè¨è¿°ãã.
+ *
+ * (2)	æ§é ä½ã®ã¡ã³ããæ§é ä½ã§, ãã®ä¸­ã®ã¡ã³ãã«å¯¾ãããªãã»ãã
+ *
+ *	TCB_sp ã«ã¤ãã¦ãã»ã¼åæ§ã ã, sp ã¯TCBæ§é ä½ã®ç´æ¥ã®
+ *	ã¡ã³ãã§ãªãTCBæ§é ä½ã®ã¡ã³ãã§ããTSKCTXBæ§é ä½ã®ã¡ã³ãã§
+ *	ããç¹ãç°ãªã. ããã§ãå®ç¾©ããã·ã³ãã«åã¨ãã¦ã¯
+ *	TCB_sp ã®ããã«è¡¨ç¾ãã. ã¢ã»ã³ããªè¨èªãã¡ã¤ã«ã§ã¯
+ *
+ *	! BEGIN TCB_sp
+ *		mov.l	00000014H,A0
+ *		extz	[A0],R0
+ *		bset	0,R0L
+ *		mov.l	#00000014H,A0
+ *		mov.b	R0L,[[A0]]
+ *	! END *
+ *
+ *	ã®ããã«ãªã,14H(=20) ãæ±ããå¤ãªã®ã§offset.inc ã«ã¯æ¬¡ã®ããã«
+ *	è¨è¿°ãã.
+ *
+ *	TCB_sp	.equ	20
+ *
+ * (3)	ã¡ã³ããé¢æ°ã¸ã®ãã¤ã³ã¿ã§ãã£ãå ´å
+ *
+ *	æ¬¡ã¯ TCB_pc ã®å ´å.
+ *
+ *	! BEGIN TCB_pc
+ *		mov.l	#00000018H,A0
+ *		jsri.a	[A0]
+ *	! END
+ *
+ *	pc ã sp ã¨åãã, TCBæ§é ä½ã®ç´æ¥ã®ã¡ã³ãã§ã¯ãªãã
+ *	TCB_pc ã¨è¡¨ç¾ãã¦ãã. ããã¯é¢æ°ã®ã¢ãã¬ã¹ãæ ¼ç´ããå¤æ°ãªã®ã§,
+ *	(((TCB *)0)->tskctxb.pc)();
+ *	ã¨ãã¦é¢æ°å¼ã³åºãã®ããã«è¨è¿°ããã¨ä¸è¨ã®ãããªã¢ã»ã³ããªè¨èª
+ *	ã³ã¼ããåºåãã. ã·ã³ãã«å®ç¾©ããéã®ã·ã³ãã«åã¯ä»ã¾ã§ã¨
+ *	åãã, TCB_pc ã¨ãã. 
+ *	æ±ããå¤ã¯æ§é ä½ããé¢æ°ãã¤ã³ã¿ã¾ã§ã®ãªãã»ããã§ãã, ä¸ã®mov.l
+ *	å½ä»¤ã®çµæãã 	00000018H(=24) ã¨ãªã.
+ *	ãããã£ã¦, offset.inc ã«ã¯æ¬¡ã®ããã«è¨è¿°ãã.
+ *
+ *	TCB_pc	.equ	24
+ *
+ * (4)	æ§é ä½ã®ã¡ã³ããããããã£ã¼ã«ãã§ãã®ãããä½ç½®ãç¥ãããå ´å
+ *
+ *	! BEGIN TCB_enatex
+ *		bset	6,0000000cH+1
+ *	! END
+ *
+ *	ä»ã¾ã§ã¨åæ§, BEGIN ã®å¾ã®æå­åãã·ã³ãã«åã¨ãã.
+ *	ããã§ã®TCB_enatexã®å¤ã¯æ§é ä½ã®å
+é ­ããããããã£ã¼ã«ããå«ãã
+ *	ã¤ãã¾ã§ã®ãªãã»ããã§, M32Cã®ãããå½ä»¤ã¢ãã¬ãã·ã³ã°ã¯æå®ã§ã
+ *	ããããä½ç½®ã0ãã7ã®éã«åã¾ãããã«ã¢ã¯ã»ã¹ããã¢ãã¬ã¹ã«é©å½
+ *	æ°ãå ããããã®ã§ cH+1(=13) ã¨ãªã£ã¦ãã. ã¾ã, ããããã£ã¼ã«ã
+ *	ä¸­ã®æä¸ä½ãããããã®ãããä½ç½®ã¯ 6ã¨ãªã.
+ *	ä»¥ä¸ããæ¬¡ã®ããã«æ¸ããã¨ãã§ãã.
+ *
+ *		TCB_enatex	.equ	13
+ *		TCB_enatex_bit	.equ	 6
+ *		TCB_enatex_mask	.equ	40H
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "sil.h"
+
+const TCB	____BEGIN_OFF_TCB_tstat = {
+		{ NULL, NULL }, NULL , 1, 0,
+		0, 0 , 0 , 0 , NULL , { NULL , NULL }
+	};
+
+const TCB	____BEGIN_OFF_TCB_tinib = {
+		{ NULL, NULL }, (TINIB *)1 , 0 , 0,
+		0, 0 , 0 , 0 , NULL , { NULL , NULL }
+	};
+
+const TCB	____BEGIN_OFF_TCB_pc = {
+		{ NULL, NULL }, NULL, 0, 0,
+		0, 0 , 0 , 0 , NULL , { NULL , (FP)1 }
+	};
+const TCB	____BEGIN_OFF_TCB_sp = {
+		{ NULL, NULL }, NULL, 0, 0,
+		0, 0 , 0 , 0 , NULL , { (void *)1 , NULL }
+	};
+
+const TCB	____BEGIN_BIT_TCB_enatex = {
+		{ NULL, NULL }, NULL, 0, 0,
+		0, 0 , 1 , 0 , NULL , { NULL , NULL }
+	};
+
+const TCB	____BEGIN_OFF_TCB_texptn = {
+		{ NULL, NULL }, NULL, 0, 0,
+		0 , 0 , 0 , 1 , NULL , { NULL , NULL }
+	};
+
+const TINIB	____BEGIN_OFF_TINIB_exinf = {
+		0 , (intptr_t)1 , NULL , 0 , 0 , NULL , 0 , NULL
+	};
+
+const TINIB	____BEGIN_OFF_TINIB_task = {
+		0 , NULL , (TASK)1 , 0 , 0 , NULL , 0 , NULL
+	};
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_cfg1_out.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_cfg1_out.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_cfg1_out.h	(revision 313)
@@ -0,0 +1,49 @@
+/*
+ *		cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©
+ */
+
+void sta_ker( void )
+{
+}
+
+void hardware_init_hook( void )
+{
+}
+
+void software_init_hook( void )
+{
+}
+
+const SIZE		_kernel_istksz = 0;
+
+STK_T *const	_kernel_istk = NULL;
+
+/*
+ *  ãªãã»ãããã¡ã¤ã«ãçæããããã®å®ç¾©
+ */
+const uint8_t	MAGIC_1 = 0x12;
+const uint16_t	MAGIC_2 = 0x1234;
+const uint32_t	MAGIC_4 = 0x12345678;
+
+const TCB	TCB_enatex = {
+	{ NULL, NULL },			/* task_queue */
+	NULL,					/* p_tinib */
+	0U,						/* tstat */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	0U,						/* bpriority */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+	0U,						/* priority */
+	false,					/* acqeue */
+	false,					/* wupque */
+	true,					/* enatex */
+	0U,						/* texptn */
+	NULL,					/* p_winifo */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	{ NULL, NULL },			/* mutex_queue */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+#ifdef TOPPERS_SUPPORT_OVRHDR
+	0U,						/* leftotm */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	{ NULL, NULL }			/* tskctxb */
+};
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_check.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_check.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_check.trb	(revision 313)
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+# 
+#		ãã¹3ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼ARMç¨ï¼
+# 
+#  $Id: core_check.trb 730 2016-04-03 02:04:52Z ertl-hiro $
+#
+
+#
+#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/kernel_check.trb")
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.c	(revision 313)
@@ -0,0 +1,260 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ */
+
+#include "kernel_impl.h"
+#include "sil.h"
+
+
+/*
+ *  å²è¾¼ã¿çºçåæ°ãä¿å­ããå¤æ°
+ */
+uint16_t	intnest;
+
+/*
+ *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°
+ */
+#if TIPM_LOCK != -15
+bool_t		lock_flag;		/* CPUã­ãã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */
+uint32_t	saved_ipl;		/* å²è¾¼ã¿åªå
+åº¦ã¬ãã«ãä¿å­ããå¤æ° */
+#endif	/* TIPM_LOCK != -15	*/
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®åæå
+ */
+void
+prc_initialize( void )
+{
+	/*
+	 *  å²è¾¼ã¿çºçåæ°ã®åæå
+	 *
+	 *  ã¹ã¿ã¼ãã¢ããã¯å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ & éã¿ã¹ã¯ã³ã³ãã­ã¹ã
+	 *  ã«ã¦åä½ãããã, éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«å½è£
+ãã.
+	 */
+	intnest = 1U;
+
+#if TIPM_LOCK != -15
+	/*
+	 *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°ã®åæå
+	 */
+	lock_flag = true;
+	saved_ipl = IPL_ENAALL;
+#endif	/* TIPM_LOCK != -15	*/
+}
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®çµäºå¦ç
+ */
+void
+prc_terminate( void )
+{
+	/*
+	 *  ç¹ã«å¿
+è¦ãªå¦çã¯ãªã
+	 */
+}
+
+
+/*
+ *  CPUä¾å¤ã®çºçç¶æ³ã®ã­ã°åºå
+ *
+ *  CPUä¾å¤ãã³ãã©ã®ä¸­ããï¼CPUä¾å¤æ
+å ±ãã¤ã³ã¿ï¼p_excinfï¼ãå¼æ°ã¨ã
+ *  ã¦å¼ã³åºããã¨ã§ï¼CPUä¾å¤ã®çºçç¶æ³ãã·ã¹ãã ã­ã°ã«åºåããï¼
+ */
+#ifdef SUPPORT_XLOG_SYS
+void
+xlog_sys( void *p_excinf )
+{
+	syslog(LOG_ERROR , "r1 = %u") , *((uint32_t*)((intptr_t)p_excinf + 14));
+	syslog(LOG_ERROR , "r2 = %u") , *((uint32_t*)((intptr_t)p_excinf + 15));
+	syslog(LOG_ERROR , "r3 = %u") , *((uint32_t*)((intptr_t)p_excinf + 16));
+	syslog(LOG_ERROR , "r4 = %u") , *((uint32_t*)((intptr_t)p_excinf + 17));
+	syslog(LOG_ERROR , "r5 = %u") , *((uint32_t*)((intptr_t)p_excinf + 18));
+	syslog(LOG_ERROR , "r6 = %u") , *((uint32_t*)((intptr_t)p_excinf + 1));
+	syslog(LOG_ERROR , "r7 = %u") , *((uint32_t*)((intptr_t)p_excinf + 2));
+	syslog(LOG_ERROR , "r8 = %u") , *((uint32_t*)((intptr_t)p_excinf + 3));
+	syslog(LOG_ERROR , "r9 = %u") , *((uint32_t*)((intptr_t)p_excinf + 4));
+	syslog(LOG_ERROR , "r10 = %u") , *((uint32_t*)((intptr_t)p_excinf + 5));
+	syslog(LOG_ERROR , "r11 = %u") , *((uint32_t*)((intptr_t)p_excinf + 6));
+	syslog(LOG_ERROR , "r12 = %u") , *((uint32_t*)((intptr_t)p_excinf + 7));
+	syslog(LOG_ERROR , "r13 = %u") , *((uint32_t*)((intptr_t)p_excinf + 8));
+	syslog(LOG_ERROR , "r14 = %u") , *((uint32_t*)((intptr_t)p_excinf + 12));
+	syslog(LOG_ERROR , "r15 = %u") , *((uint32_t*)((intptr_t)p_excinf + 13));
+	syslog(LOG_ERROR , "fpsw = %u") , *((uint32_t*)((intptr_t)p_excinf + 11));
+	syslog(LOG_ERROR , "acclo = %u") , *((uint32_t*)((intptr_t)p_excinf + 10));
+	syslog(LOG_ERROR , "acchi = %u") , *((uint32_t*)((intptr_t)p_excinf + 9));
+	syslog(LOG_ERROR , "pc = %x") , *((uint32_t*)((intptr_t)p_excinf + 19));
+	syslog(LOG_ERROR , "psw = %x") , *((uint32_t*)((intptr_t)p_excinf + 20));
+}
+#endif /* SUPPORT_XLOG_SYS */
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+ *
+ *  ASPã«ã¼ãã«ã§ã®å©ç¨ãæ³å®ãã¦ï¼ãã©ã¡ã¼ã¿ã¨ã©ã¼ã¯ã¢ãµã¼ã·ã§ã³ã§ãã§ã
+ *  ã¯ãã¦ããï¼cfg_intãµã¼ãã¹ã³ã¼ã«ãè¨­ããå ´åã«ã¯ï¼ã¨ã©ã¼ãè¿ããã
+ *  ã«ãã¹ãã§ãããï¼
+ */
+void
+x_config_int( INTNO intno, ATR intatr, PRI intpri )
+{
+	uint8_t		irq_offset;
+	uint8_t		irq_val;
+
+	assert( VALID_INTNO_CFGINT(intno) );
+
+	assert( ( -15 <= intpri ) && ( intpri <= TMAX_INTPRI ) );
+#if TIPM_LOCK != -15
+	if( intatr == TA_NONKERNEL ){
+		assert( intpri < TMIN_INTPRI );
+ 	}
+	else{
+		assert( TMIN_INTPRI <= intpri ); 
+	}
+#endif
+
+	/*
+	 *  å²è¾¼ã¿ã®ãã¹ã¯
+	 *
+	 *  å²è¾¼ã¿ãåãä»ããã¾ã¾ï¼ã¬ãã«ããªã¬ï¼ã¨ãã¸ããªã¬ã®è¨­å®ãï¼å²
+	 *  è¾¼ã¿åªå
+åº¦ã®è¨­å®ãè¡ãã®ã¯å±éºãªããï¼å²è¾¼ã¿å±æ§ã«ãããããï¼
+	 *  ä¸æ¦ãã¹ã¯ããï¼
+	 */
+	( void )x_disable_int( intno );
+
+	/*
+	 *  ã¬ãã«ããªã¬/ã¨ãã¸ããªã¬ã®è¨­å®
+	 *
+	 *  IRQã®ã¿ãµãã¼ããã
+	 */
+	if( INTNO_IRQ( intno ) != 0U ){
+		irq_offset = INTNO_IRQ_OFFSET( intno );
+
+		if( ( intatr & TA_POSEDGE ) != 0U ){
+			irq_val = IRQ_POSEDGE;
+		}
+		else if( ( intatr & TA_NEGEDGE ) != 0U ){
+			irq_val = IRQ_NEGEDGE;
+		}
+		else if( ( intatr & TA_BOTHEDGE ) != 0U ){
+			irq_val = IRQ_BOTHEDGE;
+		}
+		else if( ( intatr & TA_LOWLEVEL ) != 0U ){
+			irq_val = IRQ_LOWLEVEL;
+		}
+		else{
+			/*
+			 *  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ã¦ãã§ãã¯ãã¦ãããã,
+			 *  ããã¸ãããã¨ã¯ããããªã.
+			 */
+			irq_val = 0U;
+		}
+
+		sil_wrb_mem((uint8_t *)irqcr_reg_addr[irq_offset], irq_val);
+	}
+
+	/*
+	 *  å²è¾¼ã¿ã¬ãã«ã®è¨­å®
+	 *
+	 *  å²è¾¼ã¿çªå·ã«å¯¾å¿ããIPRå¤ãè¨­å®ãã.
+	 */
+	sil_wrb_mem((uint8_t *)ipr_reg_addr[intno], cfg_int_table[intno].intpri);
+
+	/*
+	 *  å²è¾¼ã¿ã®ãã¹ã¯è§£é¤
+ 	 */
+	if( ( intatr & TA_ENAINT ) != 0U ){
+		( void )x_enable_int( intno );
+	}
+}
+
+
+#ifndef OMIT_DEFAULT_INT_HANDLER
+/*
+ *  æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã
+ */
+void
+default_int_handler( void )
+{
+	syslog(LOG_EMERG, "Unregistered Interrupt occurs.");
+}
+#endif /* OMIT_DEFAULT_INT_HANDLER */
+
+#ifndef OMIT_DEFAULT_EXC_HANDLER
+/*
+ *  æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã
+ */
+void
+default_exc_handler( void )
+{
+	syslog(LOG_EMERG, "Unregistered Expevt error occurs.");
+}
+#endif /* OMIT_DEFAULT_EXC_HANDLER */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_config.h	(revision 313)
@@ -0,0 +1,818 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_CONFIG_H
+#define TOPPERS_PRC_CONFIG_H
+
+/*
+ *  ãã­ã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©
+ */
+#include "prc_insn.h"
+#include "sil.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯åæå¤
+ */
+
+#define TOPPERS_ISTKPT( istk, istksz ) (( STK_T * )(( char * )( istk ) + ( istksz )))
+
+/*
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã®å®ç¾©
+ */
+typedef struct task_context_block {
+	void	*sp;		/* ã¹ã¿ãã¯ãã¤ã³ã¿ */
+	FP		pc;			/* ãã­ã°ã©ã ã«ã¦ã³ã¿ */
+} TSKCTXB;
+
+
+/*
+ *  å²è¾¼ã¿çºçåæ°ãä¿å­ããå¤æ°
+ */
+extern uint16_t intnest;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯
+ *
+ *  TIPM_LOCKã¯ï¼CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ããªãã¡ï¼ã«ã¼ã
+ *  ã«ç®¡çå¤ã®ãã®ãé¤ããã¹ã¦ã®å²è¾¼ã¿è¦æ±ããã¹ã¯ããå¤ã«å®ç¾©ããï¼
+ *
+ *  TMIN_INTPRIå¤æ´ãããã¨ã§ç®¡çå¤å²è¾¼ã¿ã®æç¡ãæ±ºå®ããï¼
+ *  ä¾ãã°TMIN_INTPRIã-14ã«è¨­å®ããã¨ï¼ã¬ãã«15ã®å²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨
+ *  ãªãï¼TMIN_INTPRIã-15ã«è¨­å®ããã¨ï¼NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã
+ *  è¨­ããªããã¨ã«ãªãï¼ãã®å ´åã«ã¯-15ã«è¨­å®ãããã¨ãæ¨å¥¨ããï¼ï¼
+ */
+#ifndef TIPM_LOCK
+#define TIPM_LOCK	TMIN_INTPRI
+#endif /* TIPM_LOCK */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®å®ç¾
+ */
+/*
+ *  ã³ã³ãã­ã¹ãã®åç
+§
+ *
+ *  RXã§ã¯ï¼å²è¾¼ã¿ã®æ»ãå
+ãã¿ã¹ã¯ãã©ãããå¤æ­ããããã« intnest
+ *  ãä½¿ç¨ãã¦ããï¼ãããç¨ãã¦ã³ã³ãã­ã¹ããå¤æ­ããï¼
+ */
+Inline bool_t
+sense_context( void )
+{
+	/*  ãã¹ãã«ã¦ã³ã¿0ããå¤§ãªãéã¿ã¹ã¯ã³ã³ãã­ã¹ã  */
+	return ( intnest > 0U );
+}
+
+
+/*
+ *  CPUã­ãã¯ãã©ã°å®ç¾ã®ããã®å¤æ°
+ *
+ *  ãããã®å¤æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã®æã®ã¿æ¸ãæãã¦ãããã®ã¨ããï¼
+ */
+#if TIPM_LOCK != -15
+extern bool_t	lock_flag;		/* CPUã­ãã¯ãã©ã°ã®å¤ãä¿æããå¤æ° */
+extern uint32_t	saved_ipl;		/* å²è¾¼ã¿åªå
+åº¦ã¬ãã«ãä¿å­ããå¤æ° */
+#endif	/* TIPM_LOCK != -15	*/
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤é¨è¡¨ç¾ã¨å
+é¨è¡¨ç¾ã®å¤æ
+ *
+ *  RX630ã§ã¯ï¼ãã­ã»ããµã¹ãã¼ã¿ã¹ã¯ã¼ãã¬ã¸ã¹ã¿ï¼PSWï¼ã®ä¸ãã
+ *  24ï½27ãããç®ã®4ãããã«å²è¾¼ã¿åªå
+åº¦ã¬ãã«ï¼IPLï¼ãç½®ããã¦ããï¼
+ *  ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãå®è£
+ããå ´åã«IPLãä½¿ç¨ããå¶å¾¡ãè¡ãï¼
+ *  ã«ã¼ãã«ã¯å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼-1ããé£ç¶ããè² ã®å¤ï¼ã§ç®¡çããã¦
+ *  ããããIPLã¨ã®å¤æãå¿
+è¦ã¨ãªãï¼
+ */
+#define IPL_TO_IPM( ipl )	(-(( PRI )(( ipl ) >> 24U )))		/* IPLãIPMã«	*/
+#define IPM_TO_IPL( ipm )	((( uint32_t )(-( ipm ))) << 24U )	/* IPMãIPLã«	*/
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã§ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®IPL
+ */
+#define IPL_LOCK		( IPM_TO_IPL( TIPM_LOCK ) )
+
+/*
+ *  TIPM_ENAALLï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ï¼ã®IPL
+ */
+#define IPL_ENAALL		( IPM_TO_IPL( TIPM_ENAALL ) )
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  å²è¾¼ã¿è¦å æ¯ã®ã¬ãã« & å±æ§å®ç¾©ãã¼ãã«
+ *  (ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããåºå)
+ */
+typedef struct cfg_int_info {
+	PRI		intpri;
+	ATR		intatr;
+} CFG_INT_INFO;
+
+extern const CFG_INT_INFO cfg_int_table[];
+
+
+/*
+ *  å²è¾¼ã¿çªå·ã®ç¯å²ã®å¤å®
+ *
+ *  å²è¾¼ã¿çªå·ãæå¹ãªå¤ãå³å¯ã«ãã§ãã¯ãããã,
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿åºåãã¼ãã«ãåç
+§ãã.
+ */
+#define VALID_INTNO( intno )	\
+ 				( cfg_int_table[( intno )].intpri > 0 )
+#define VALID_INTNO_DISINT( intno )	VALID_INTNO( intno )
+#define VALID_INTNO_CFGINT( intno )	VALID_INTNO( intno )
+
+/* cre_intã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®  */
+#define VALID_INTNO_CREINT          VALID_INTNO_CFGINT((intno))
+
+/* cre_isrã§æå¹ãªå²è¾¼ã¿çªå·ã®æå®  */
+#define	VALID_INTNO_CREISR(intno)	VALID_INTNO_CFGINT((intno))
+
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ã¬ã¸ã¹ã¿é¢é£ã®å®ç¾©
+ */
+#define	IRQ_POSEDGE			( 0x08U )
+#define	IRQ_NEGEDGE			( 0x04U )
+#define	IRQ_BOTHEDGE		( 0x0CU )
+#define	IRQ_LOWLEVEL		( 0x00U )
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã¸ã®ç§»è¡
+ *
+ *  IPMï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ãï¼saved_iipmã«ä¿å­ãï¼ã«ã¼
+ *  ãã«ç®¡çå¤ã®ãã®ãé¤ããã¹ã¦ã®å²è¾¼ã¿è¦æ±ããã¹ã¯ããå¤ï¼TIPM_LOCKï¼
+ *  ã«è¨­å®ããï¼ã¾ãï¼lock_flagãTRUEã«ããï¼
+ *
+ *  IPMãï¼æåããTIPM_LOCKã¨åããããããé«ãå ´åã«ã¯ï¼ããã
+ *  saved_iipmã«ä¿å­ããã®ã¿ã§ï¼TIPM_LOCKã«ã¯è¨­å®ããªãï¼ããã¯ï¼ã¢ãã«
+ *  ä¸ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼TIPM_LOCKã¨åããããããé«ãã¬ãã«ã«è¨­å®
+ *  ããã¦ããç¶æ
+ã«ãããï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ï¼lock_flagãTRUEã®ç¶æ
+ï¼ã§å¼ã°ãããã¨ã¯
+ *  ãªããã®ã¨æ³å®ãã¦ããï¼
+ */
+Inline void
+x_lock_cpu( void )
+{
+#if TIPM_LOCK == -15
+	disint();
+#else	/* TIPM_LOCK == -15	*/
+	uint32_t	ipl;
+
+	/*
+	 *  current_ipl()ã®è¿ãå¤ãç´æ¥saved_iplã«ä¿å­ããï¼ä¸æå¤æ°ipl
+	 *  ãç¨ãã¦ããã®ã¯ï¼current_ipl()ãå¼ãã ç´å¾ã«å²è¾¼ã¿ãçºçãï¼
+	 *  èµ·åãããå²è¾¼ã¿å¦çã§saved_iplãå¤æ´ãããå¯è½æ§ãããããã§
+	 *  ããï¼
+	 */
+	ipl = current_ipl();
+	if( IPL_LOCK > ipl ){
+		set_ipl( IPL_LOCK );
+	}
+
+	saved_ipl = ipl;
+	lock_flag = true;
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_lock_cpu()	x_lock_cpu()
+#define i_lock_cpu()	x_lock_cpu()
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®è§£é¤
+ *
+ *  lock_flagãFALSEã«ãï¼IPMï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼ãï¼
+ *  saved_iipmã«ä¿å­ããå¤ã«æ»ãï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ï¼lock_flagãtrueã®ç¶æ
+ï¼ã§ã®ã¿å¼ã°ããã
+ *  ã®ã¨æ³å®ãã¦ããï¼
+ */
+Inline void
+x_unlock_cpu( void )
+{
+#if TIPM_LOCK == -15
+	enaint();
+#else	/* TIPM_LOCK == -15	*/
+	lock_flag = false;
+	set_ipl( saved_ipl );
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_unlock_cpu()	x_unlock_cpu()
+#define i_unlock_cpu()	x_unlock_cpu()
+
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®åç
+§
+ */
+Inline bool_t
+x_sense_lock( void )
+{
+#if TIPM_LOCK == -15
+	return (( bool_t )(( current_psw() & PSW_I_MASK) == 0 ));
+#else	/* TIPM_LOCK == -15	*/
+	return lock_flag;
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_sense_lock()	x_sense_lock()
+#define i_sense_lock()	x_sense_lock()
+
+
+/*
+ * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®è¨­å®
+ *
+ *  CPUã­ãã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ã
+ *  ã¹ã¯ãè¨­å®ããï¼CPUã­ãã¯ãã©ã°ãã»ããããã¦ããæã¯ï¼saved_iipm
+ *  ãè¨­å®ãï¼ããã«ï¼ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼è¨­å®ãããã¨
+ *  ããï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã¨TIPM_LOCKã®é«ãæ¹ã«è¨­å®ããï¼
+ */
+Inline void
+x_set_ipm( PRI intpri )
+{
+	uint32_t	ipl = IPM_TO_IPL( intpri );
+#if TIPM_LOCK == -15
+	set_ipl(ipl);
+#else	/* TIPM_LOCK == -15	*/
+	if( !lock_flag ){
+		set_ipl(ipl);
+	}
+	else {
+		saved_ipl = ipl;
+		set_ipl(ipl > IPL_LOCK ? ipl : IPL_LOCK);
+    }
+#endif	/* TIPM_LOCK == -15	*/
+}
+
+#define t_set_ipm( intpri )	x_set_ipm( intpri )
+#define i_set_ipm( intpri )	x_set_ipm( intpri )
+
+
+/*
+ * ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®åç
+§
+ *
+ *  CPUã­ãã¯ãã©ã°ãã¯ãªã¢ããã¦ããæã¯ãã¼ãã¦ã§ã¢ã®å²è¾¼ã¿åªå
+åº¦ã
+ *  ã¹ã¯ãï¼ã»ããããã¦ããæã¯saved_iipmãåç
+§ããï¼
+ */
+Inline PRI
+x_get_ipm( void )
+{
+	uint32_t	ipl;
+#if TIPM_LOCK == -15
+	ipl = current_ipl();
+#else	/* TIPM_LOCK == -15	*/
+	if (!lock_flag) {
+		ipl = current_ipl();
+	}
+	else {
+		ipl = saved_ipl;
+	}
+#endif	/* TIPM_LOCK == -15	*/
+	return IPL_TO_IPM( ipl );
+}
+
+#define t_get_ipm()		x_get_ipm()
+#define i_get_ipm()		x_get_ipm()
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã»ãã
+ *
+ *  å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ­¢
+ *  ãã©ã°ãã»ãããããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼
+ */
+Inline bool_t
+x_disable_int( INTNO intno )
+{
+	/*
+	 *  ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã
+	 */
+	if( cfg_int_table[intno].intpri == 0 ){
+		return ( false );
+	}
+
+	*ier_reg_addr[intno].addr &= ( ~ier_reg_addr[intno].offset );
+
+	return ( true );
+}
+
+#define t_disable_int( intno )	x_disable_int( intno )
+#define i_disable_int( intno )	x_disable_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ã¯ãªã¢
+ *
+ *  å²è¾¼ã¿å±æ§ãè¨­å®ããã¦ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦å²è¾¼ã¿è¦æ±ç¦æ­¢
+ *  ãã©ã°ãã¯ãªã¢ãããã¨ããå ´åã«ã¯ï¼FALSEãè¿ãï¼
+ */
+Inline bool_t
+x_enable_int( INTNO intno )
+{
+	/*
+	 *  ã¬ãã«å®ç¾©ã0ã§ããå ´åã¯CFG_INTããã¦ããªã
+	 */
+	if( cfg_int_table[intno].intpri == 0 ){
+		return ( false );
+	}
+
+	*ier_reg_addr[intno].addr |= ier_reg_addr[intno].offset;
+
+	return ( true );
+}
+
+#define t_enable_int( intno )	x_enable_int( intno )
+#define i_enable_int( intno )	x_enable_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+ */
+Inline void
+x_clear_int( INTNO intno )
+{
+	*IR_REG(intno) = 0U;
+}
+
+#define t_clear_int( intno )	x_clear_int( intno )
+#define i_clear_int( intno )	x_clear_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã®ãã§ãã¯
+ */
+Inline bool_t
+x_probe_int( INTNO intno )
+{
+	/*
+	 *  å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¯0 or 1ã§ãããªããã,
+	 *  ãã®ã¾ã¾ã®å¤ãè¿ã.
+	 */
+	return ( *IR_REG(intno) );
+}
+
+#define t_probe_int( intno )	x_probe_int( intno )
+#define i_probe_int( intno )	x_probe_int( intno )
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+ */
+extern void	x_config_int( INTNO intno, ATR intatr, PRI intpri );
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®å
+¥å£ã§å¿
+è¦ãªIRCæä½
+ *
+ */
+Inline void
+i_begin_int( INTNO intno )
+{
+	//volatile uint8_t	reg;
+
+	/*
+	 *  ã¬ãã«æ¤åºã®å²è¾¼ã¿ã«å¯¾ãã¦ã¯å²è¾¼ã¿ã¹ãã¼ã¿ã¹
+	 *  ãã©ã°ãã¯ãªã¢ãã.
+	 */
+	if( ( cfg_int_table[intno].intatr & TA_LOWLEVEL ) > 0 ){
+		if( *IR_REG(intno) > 0U ){
+			/*
+			 *  å¤é¨å²è¾¼ã¿ã®å ´å, IRQç«¯å­ãHighã«æ»ã£ã¦ãã
+			 *  ãã¨ãç¢ºèªããæ¨ãè¨è¼ããã¦ããã, çç¥ãã.
+			 */
+		//	*ir_reg_addr[intno] = 0U;
+
+			/*
+			 *  ãã¼ãã¦ã§ã¢ããã¥ã¢ã«ã«0ã«ãªã£ããã¨ã
+			 *  ç¢ºèªããæ¨ãè¨è¼ãããã, ã¬ã¸ã¹ã¿å¤ãèª­ã¿åºã.
+			 */
+		//	reg = *ir_reg_addr[intno];
+		}
+	}
+}
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¿
+è¦ãªIRCæä½
+ *
+ */
+Inline void
+i_end_int( INTNO intno )
+{
+	/* ç¹ã«è¡ãã¹ãå¦çã¯ãªã */
+}
+
+
+/*
+ *  æé«åªå
+é ä½ã¿ã¹ã¯ã¸ã®ãã£ã¹ãããï¼prc_support.a30ï¼
+ *
+ *  dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã³åºããããµã¼ãã¹ã³ã¼ã«å¦çã
+ *  ãå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»ãã£ã¹ãã
+ *  ãè¨±å¯ç¶æ
+ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§å¼ã³åºããª
+ *  ããã°ãªããªãï¼
+ */
+extern void	dispatch( void );
+
+/*
+ *  ãã£ã¹ãããã£ã®åä½éå§ï¼prc_support.a30ï¼
+ *
+ *  start_dispatchã¯ï¼ã«ã¼ãã«èµ·åæã«å¼ã³åºãã¹ããã®ã§ï¼ãã¹ã¦ã®å²è¾¼
+ *  ã¿ãç¦æ­¢ããç¶æ
+ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ã®ç¶æ
+ï¼ã§å¼ã³åºããªããã°
+ *  ãªããªãï¼
+ */
+extern void	start_dispatch( void ) NoReturn;
+
+/*
+ *  ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ãããï¼prc_support.a30ï¼
+ *
+ *  exit_and_dispatchã¯ï¼ext_tskããå¼ã³åºãã¹ããã®ã§ï¼ã¿ã¹ã¯ã³ã³ãã­
+ *  ã¹ãã»CPUã­ãã¯ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã»ï¼ã¢ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+
+ *  åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§å¼ã³åºããªããã°ãªããªãï¼
+ */
+#define _kernel_exit_and_dispatch();	\
+	_exit_and_dispatch();		\
+	ercd = E_SYS;
+
+extern void	_exit_and_dispatch( void ) NoReturn;
+
+/*
+ *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºãï¼prc_support.a30ï¼
+ *
+ *  call_exit_kernelã¯ï¼ã«ã¼ãã«ã®çµäºæã«å¼ã³åºãã¹ããã®ã§ï¼éã¿ã¹ã¯
+ *  ã³ã³ãã­ã¹ãã«åãæãã¦ï¼ã«ã¼ãã«ã®çµäºå¦çï¼exit_kernelï¼ãå¼ã³åº
+ *  ãï¼
+ */
+extern void call_exit_kernel( void ) NoReturn;
+
+/*
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®åæå
+ *
+ *  ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã«ç§»è¡ããæã«å¼ã°ããï¼ãã®æç¹
+ *  ã§ã¹ã¿ãã¯é åãä½¿ã£ã¦ã¯ãªããªãï¼
+ *
+ *  activate_contextãï¼ã¤ã³ã©ã¤ã³é¢æ°ã§ã¯ãªããã¯ã­å®ç¾©ã¨ãã¦ããã®ã¯ï¼
+ *  ãã®æç¹ã§ã¯TCBãå®ç¾©ããã¦ããªãããã§ããï¼
+ */
+extern void	start_r( void );
+
+#define activate_context( p_tcb )														\
+{																						\
+	{																					\
+																						\
+		/*  ã¹ã¿ãã¯ãã¤ã³ã¿åæå¤ã®è¨­å®  */											\
+		( p_tcb )->tskctxb.sp = ( void * )((( uint32_t ) ( p_tcb )->p_tinib->stk ) + 	\
+								( p_tcb )->p_tinib->stksz );							\
+		/* èµ·åçªå°ã®è¨­å® */															\
+		( p_tcb )->tskctxb.pc = ( FP ) start_r;											\
+	}																					\
+}
+
+
+/*
+ *  calltexã¯ä½¿ç¨ããªã
+ */
+#define OMIT_CALLTEX
+
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®è¨­å®
+ *
+ *  RX630ã¯ROMã«å²è¾¼ã¿ãã¯ã¿ãé
+ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£
+ããï¼
+ */
+Inline void
+x_define_inh( INHNO inhno, FP inthdr )
+{
+}
+
+
+/*
+ *  CPUä¾å¤ãã³ãã©ã®è¨­å®
+ *
+ *  RX630ã¯ROMã«ä¾å¤ãã¯ã¿ãé
+ç½®ããããï¼æ¬é¢æ°ã¯ç©ºé¢æ°ã§å®è£
+ããï¼
+ */
+Inline void
+x_define_exc( EXCNO excno, FP exchdr )
+{
+}
+
+
+/*
+ *  å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ *
+ *  ãã³ãã¬ã¼ããã¡ã¤ã«ã«ããçæããããç©ºãã¯ã­ã¨ããï¼
+ */
+#define HDR_ENTRY(hdr, intexc_num , tobejmp)
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ */
+#define _INT_ENTRY(inhno, inthdr)				_kernel_##inthdr##_##inhno##_entry
+#define INT_ENTRY(inhno, inthdr)				_INT_ENTRY(inhno , inthdr)
+
+#define _INTHDR_ENTRY(inhno, inhno_num ,inthdr)	\
+		extern void _kernel_##inthdr##_##inhno##_entry(void);
+#define INTHDR_ENTRY(inhno, inhno_num ,inthdr)	_INTHDR_ENTRY(inhno, inhno_num ,inthdr)
+
+
+/*
+ *  CPUä¾å¤ãã³ãã©ã®å
+¥å£å¦çã®çæãã¯ã­
+ */
+#define _EXC_ENTRY(excno , exchdr)					_kernel_##exchdr##_##excno##_entry
+#define EXC_ENTRY(excno , exchdr)					_EXC_ENTRY(excno , exchdr)
+
+#define _EXCHDR_ENTRY(excno , excno_num , exchdr)	\
+		extern void _kernel_##exchdr##_##excno##_entry(void);
+#define EXCHDR_ENTRY(excno , excno_num , exchdr)	_EXCHDR_ENTRY(excno , excno_num , exchdr)
+
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã®åç
+§
+ *
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®æã«FALSEï¼
+ *  ããã§ãªãæã«trueãè¿ãï¼
+ */
+Inline bool_t
+exc_sense_context( void *p_excinf )
+{
+	/* 
+	 *  ãã¹ãã«ã¦ã³ã¿ã1ããå¤§ãªãéã¿ã¹ã¯ã³ã³ãã­ã¹ã
+	 */
+	return( intnest > 1U );
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  CPUä¾å¤æ
+å ± p_excinf ãã PSW ã®å¤ãåå¾ããããã®ãªãã»ããå¤
+ *  EXCNO + ACC + FPSW + R1ï½R15 + PC
+ */
+#define EXC_GET_PSW_OFFSET	(4+8+4+60+4)
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®IPLã®åç
+§
+ */
+Inline uint32_t
+exc_get_ipl(void *p_excinf)
+{
+	return((*((uint32_t *)((uintptr_t)p_excinf+EXC_GET_PSW_OFFSET)))
+			& PSW_IPL_MASK);
+}
+
+Inline bool_t
+exc_sense_i(void *p_excinf)
+{
+	return((*(((uint32_t *)((uintptr_t)p_excinf+EXC_GET_PSW_OFFSET)))
+			 & PSW_I_MASK) != 0u);
+}
+
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã¨å²è¾¼ã¿ã®ãã¹ã¯ç¶æ
+ã®åç
+§
+ *
+ *  CPUä¾å¤ã®çºçããæã®ã·ã¹ãã ç¶æ
+ãï¼ã«ã¼ãã«å®è¡ä¸­ã§ãªãï¼ã¿ã¹ã¯ã³
+ *  ã³ãã­ã¹ãã§ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ãªãï¼CPUã­ãã¯ç¶æ
+ã§ãªãï¼ï¼ã¢
+ *  ãã«ä¸ã®ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããæã«trueï¼ããã§ãªãæ
+ *  ã«FALSEãè¿ãï¼CPUä¾å¤ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸­ã§çºçããå ´å
+ *  ã«ãFALSEãè¿ãï¼ï¼
+ *  
+ *  ã«ã¼ãã«å®è¡ä¸­ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã° == 1
+ *                         (else)           IPL < IPL_LOCK
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ããâintnest == 0
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ã§ãªãâ Iãã©ã° == 1
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤âIPL == 0
+ *  
+ *  
+ */
+Inline bool_t
+exc_sense_intmask(void *p_excinf)
+{
+	return((!exc_sense_context(p_excinf))
+			&& exc_sense_i(p_excinf)
+			&& (exc_get_ipl(p_excinf) == IPL_ENAALL));
+}
+
+/*
+ *  CPUä¾å¤ã®çºçããæã®ã³ã³ãã­ã¹ãã¨å²è¾¼ã¿ï¼CPUã­ãã¯ç¶æ
+ã®åç
+§
+ *
+ *  CPUä¾å¤ã®çºçããæã®ã·ã¹ãã ç¶æ
+ãï¼ã«ã¼ãã«å®è¡ä¸­ã§ãªãï¼ã¿ã¹ã¯ã³
+ *  ã³ãã­ã¹ãã§ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ãªãï¼CPUã­ãã¯ç¶æ
+ã§ãªãæã«
+ *  trueï¼ããã§ãªãæã«falseãè¿ãï¼CPUä¾å¤ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦
+ *  çä¸­ã§çºçããå ´åã«ãfalseãè¿ãï¼ï¼
+ *  
+ *  ã«ã¼ãã«å®è¡ä¸­ã§ãªãâ (TIPM_LOCK== -15) Iãã©ã° == 1
+ *                         (else)           IPL < TIPM_LOCK
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ããâintnest < 1 
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ã§ãªãâ Iãã©ã° == 1
+ *  CPUã­ãã¯ç¶æ
+ã§ãªãâ(TIPM_LOCK== -15) Iãã©ã° == 1
+ *                         (else)           IPL < TIPM_LOCK
+ */
+Inline bool_t
+exc_sense_unlock(void *p_excinf)
+{
+#if TIPM_LOCK == -15
+	return((!exc_sense_context(p_excinf))
+			&& exc_sense_i(p_excinf));
+#else
+	return((!exc_sense_context(p_excinf))
+			&& exc_sense_i(p_excinf)
+			&& exc_get_ipl(p_excinf) < IPL_LOCK);
+#endif
+}
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®åæå
+ */
+extern void	prc_initialize( void );
+
+/*
+ *  ãã­ã»ããµä¾å­ã®çµäºæå¦ç
+ */
+extern void	prc_terminate( void );
+
+
+#ifndef OMIT_DEFAULT_INT_HANDLER
+/*
+ *  æªç»é²ã®å²è¾¼ã¿ãçºçããå ´åã«å¼ã³åºããã
+ */
+void default_int_handler( void );
+#endif /* OMIT_DEFAULT_INT_HANDLER */
+
+#ifndef OMIT_DEFAULT_EXC_HANDLER
+/*
+ *  æªç»é²ã®ä¾å¤ãçºçããå ´åã«å¼ã³åºããã
+ */
+void default_exc_handler( void );
+#endif /* OMIT_DEFAULT_EXC_HANDLER */
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_CONFIG_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_insn.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_insn.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_insn.h	(revision 313)
@@ -0,0 +1,179 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã­ã»ããµã®ç¹æ®å½ä»¤ã®ã¤ã³ã©ã¤ã³é¢æ°å®ç¾©ï¼RX630ç¨ï¼
+ */
+
+#ifndef	TOPPERS_PRC_INSN_H
+#define	TOPPERS_PRC_INSN_H
+
+#ifndef TOPPERS_MACRO_ONLY
+
+static uint32_t current_psw( void );
+static void set_psw( uint32_t psw );
+Inline uint32_t current_ipl( void );
+Inline void set_ipl( uint32_t ipl );
+static void disint( void );
+static void enaint( void );
+static uint16_t rev_endian_uint16( uint16_t data );
+static uint32_t rev_endian_uint32( uint32_t data );
+
+/*
+ *  Iãã©ã°, IPLãåå¾ããããã®ãã¯ã­å®ç¾©
+ */
+#define PSW_I_MASK		( 0x00010000UL )
+#define PSW_IPL_MASK	( 0x0F000000UL )
+
+#else /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  Iãã©ã°, IPLãåå¾ããããã®ãã¯ã­å®ç¾©
+ */
+#define PSW_I_MASK		( 0x00010000 )
+#define PSW_IPL_MASK	( 0x0F000000 )
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ãã­ã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã®ç¾å¨å¤ã®èª­åºã
+ */
+static uint32_t
+current_psw( void )
+{
+	uint32_t psw;
+	Asm("mvfc	psw, %0" : "=r"(psw));
+	return psw;
+}
+
+
+/*
+ *  ãã­ã»ããµã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿(PSW)ã¸è¨­å®
+ */
+static void
+set_psw( uint32_t psw )
+{
+	Asm("mvtc %0, psw" :: "r"(psw));
+}
+
+
+/*
+ *  IPLã®ç¾å¨å¤ã®èª­åºã
+ */
+Inline uint32_t
+current_ipl( void )
+{
+	return ( uint32_t )( current_psw() & PSW_IPL_MASK );
+}
+
+
+/*
+ *  IPLã¸è¨­å®
+ */
+Inline void
+set_ipl( uint32_t ipl )
+{
+	set_psw( ( current_psw() & ( ~PSW_IPL_MASK ) ) | ipl );
+}
+
+
+/*
+ *  NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®ç¦æ­¢
+ */
+static void
+disint( void )
+{
+	Asm("clrpsw	i");
+}
+
+
+/*
+ *  NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ã®è¨±å¯
+ */
+static void
+enaint( void )
+{
+	Asm("setpsw	i");
+}
+
+
+/*
+ *  ã¨ã³ãã£ã¢ã³å¤æ 16bit
+ */
+static uint16_t
+rev_endian_uint16( uint16_t data )
+{
+	Asm("revw %0, %1" : "=r"(data) : "r"(data));
+	return data;
+}
+
+/*
+ *  ã¨ã³ãã£ã¢ã³å¤æ 32bit
+ */
+static uint32_t
+rev_endian_uint32( uint32_t data )
+{
+	Asm("revl %0, %1" : "=r"(data) : "r"(data));
+	return data;
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_INSN_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.h	(revision 313)
@@ -0,0 +1,116 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		kernel.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_KERNEL_H
+#define TOPPERS_PRC_KERNEL_H
+
+/*
+ *  ã«ã¼ãã«æ¬ä½ãã³ã³ãã¤ã«ããããã®ãã¯ã­å®ç¾©
+ */
+//#define ALLFUNC
+
+
+/*
+ *  ãµãã¼ãããæ©è½ã®å®ç¾©
+ */
+#define TOPPERS_TARGET_SUPPORT_DIS_INT		/* dis_intããµãã¼ããã */
+#define TOPPERS_TARGET_SUPPORT_ENA_INT		/* ena_intããµãã¼ããã */
+
+/*
+ *  ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå
+åº¦ã®ç¯å²
+ *
+ *  TMIN_INTPRIã®å®ç¾©ãå¤æ´ãããã¨ã§ï¼ã©ã®ã¬ãã«ãããé«ãå²è¾¼ã¿åªå
+åº¦
+ *  ãæã¤ãã®ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ããããå¤æ´ã§ããï¼
+ *
+ *  TMIN_INTPRIã«è¨­å®ã§ããå¤ã¯ï¼-15ï½-1ã®ç¯å²ã§ããï¼ä¾ãã°TMIN_INTPRI
+ *  ã-14ã«è¨­å®ããã¨ï¼NMIã«å ãã¦ã¬ãã«7ã®å²è¾¼ã¿ãã«ã¼ãã«ç®¡çå¤ã¨ãªãï¼
+ *  TMIN_INTPRIã-15ã«è¨­å®ããã¨ï¼NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã
+ *  è¨­ããªããã¨ã«ãªãï¼
+ */
+#ifndef TMIN_INTPRI
+#define TMIN_INTPRI		( -15 )		/* å²è¾¼ã¿åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
+#endif /* TMIN_INTPRI */
+#define TMAX_INTPRI		( -1 )		/* å²è¾¼ã¿åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼ */
+
+
+/*
+ *  å²è¾¼ã¿å±æ§ã®å®ç¾©
+ */
+#define	TA_POSEDGE		TA_EDGE			/* ãã¸ãã£ãã¨ãã¸ããªã¬ */
+#define	TA_NEGEDGE		UINT_C( 0x04 )	/* ãã¬ãã£ãã¨ãã¸ããªã¬ */
+#define	TA_BOTHEDGE		UINT_C( 0x08 )	/* ä¸¡ã¨ãã¸ããªã¬ */
+
+#define	TA_LOWLEVEL		UINT_C( 0x10 )	/* Lã¬ãã« */
+
+
+/*
+ *  ããã©ã«ãã®å²è¾¼ã¿/ä¾å¤ãã³ãã©ã®æç¡
+ */
+/*#define	OMIT_DEFAULT_INT_HANDLER*/
+/*#define	OMIT_DEFAULT_EXC_HANDLER*/
+
+
+#endif /* TOPPERS_PRC_KERNEL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_kernel.trb	(revision 313)
@@ -0,0 +1,367 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: core_kernel.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+# 
+
+#
+#		ãã¹2ã®çæã¹ã¯ãªããã®ã³ã¢ä¾å­é¨ï¼RXç¨ï¼
+#
+
+# 
+#  å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å®ç¾©
+# 
+#  RX630ã§ã¯å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã1å¯¾1ã§å¯¾å¿ããï¼
+# 
+$INTNO_VALID = [ 16, 21, 23, *(27..59), 62, *(64..79), 90, 91, 92, 93, 98, 102, *(106..112), 114, *(122..167), *(170..203), *(214..253) ]
+$INHNO_VALID = $INTNO_VALID
+
+# 
+#  ä¾å¤çªå·ã®å®ç¾©
+# 
+#  åºå®ãã¯ã¿ãã¼ãã«ã®ãã¯ã¿ãã¼ãã«ã¢ãã¬ã¹ã®å°ããé çªã«ä¾å¤çªå·ãå²æ¯ãï¼
+#  (äºç´é åãå«ã)
+# 
+
+$EXCNO_VALID = [ 20, 23, 25, 30 ]
+
+# 
+#  INTå²è¾¼ã¿ã®çªå·
+# 
+
+$INTNO_INT = [ *(64..79) ]
+
+# 
+#  å²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ä¾å¤çªå·ã®ç¯å²
+# 
+# (äºç´é åãå«ã)
+# 
+
+$INTNO_RANGE = [ *(0..255) ]
+$INHNO_RANGE = $INTNO_RANGE
+$EXCNO_RANGE = [ *(0..31)  ]
+
+# 
+#  ATT_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·
+# 
+
+$INTNO_ATTISR_VALID = $INTNO_VALID
+$INHNO_ATTISR_VALID = $INHNO_VALID
+
+
+# 
+#  DEF_INTï¼DEF_EXCã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·
+# 
+
+$INHNO_DEFINH_VALID = $INHNO_VALID
+$EXCNO_DEFEXC_VALID = $EXCNO_VALID
+
+
+# 
+#  CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨å²è¾¼ã¿åªå
+åº¦
+# 
+
+$INTNO_CFGINT_VALID = $INHNO_VALID
+$INTPRI_CFGINT_VALID = [ *(-7..-1) ]
+
+
+# 
+#  ã¿ã¼ã²ããéä¾å­é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½/ä¾å¤ç®¡çæ©è½ã®åæåå¦çãä½¿ç¨ãã
+# 
+
+$OMIT_INITIALIZE_INTERRUPT = false
+$OMIT_INITIALIZE_EXCEPTION = false
+
+
+# 
+#  ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯æ¹æ³æå®
+# 
+
+$CHECK_STKSZ_ALIGN = 4
+
+
+# 
+#  ã¿ã¹ã¯ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤
+# 
+#  ã¿ã¹ã¯èµ·åæã«4byte,
+#  å²è¾¼ã¿å
+¥å£å¦çã«ã¦48byte, CPUä¾å¤å
+¥å£å¦çã«ã¦84byte,
+#  ã§ãããã, æå°å¤ã¯88byteã¨ãã.
+# 
+
+$TARGET_MIN_STKSZ = 88
+
+# 
+#  å®æ°å®ç¾©
+# 
+
+$TA_POSEDGE = $TA_EDGE
+
+#
+#  ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§
+#
+$TARGET_INTATR = $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE|$TA_LOWLEVEL
+
+# 
+# ã¿ã¼ã²ããä¾å­ã®å²è¾¼ã¿ãã³ãã©å±æ§ã®å®ç¾©
+# 
+
+$TARGET_INHATR = $TA_NONKERNEL
+
+
+# 
+# ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãã³ãã©ã¯åºå®ãããªããã,
+# INTNO_FIX_KERNEL
+# INHNO_FIX_KERNEL
+# INHNO_FIX_NONKERNEL
+# INHNO_FIX_NONKERNEL
+# ãå®ç¾©ããªã.
+# 
+
+$USE_INHINIB_TABLE = true
+$USE_INTINIB_TABLE = true
+
+#
+#  æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/kernel.trb")
+
+#
+#  å²è¾¼ã¿çªå·ããå²è¾¼ã¿åªå
+åº¦åã³å±æ§ãåãåºããã¼ãã«
+#
+$kernelCfgC.comment_header("Interrupt Level and Attribute Table")
+
+$kernelCfgC.add("const CFG_INT_INFO _kernel_cfg_int_table[#{$INTNO_RANGE.length}] = {")
+$INTNO_RANGE.each do |intnoVal|
+  if $cfgData[:CFG_INT].has_key?(intnoVal)
+    $kernelCfgC.append("\t{ #{-$cfgData[:CFG_INT][intnoVal][:intpri].val}, #{$cfgData[:CFG_INT][intnoVal][:intatr]} }")
+  else
+    $kernelCfgC.append("\t{  0, 0xFFFFFFFF }")
+  end
+  $kernelCfgC.append(",") if intnoVal < ($INTNO_RANGE.length - 1)
+  $kernelCfgC.add("\t/* #{sprintf("%02u", intnoVal)} */ ")
+end
+$kernelCfgC.add2("};")
+
+$kernelCfgAsm = GenFile.new("kernel_cfg_asm.S")
+
+#
+#  å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©
+#
+$kernelCfgAsm.add(<<EOS)
+;
+;  RX630ã¢ã¼ã­ãã¯ãã£ä¾å­åºåãã¡ã¤ã«
+;
+;  å²è¾¼ã¿ãã¯ã¿åã³å²è¾¼ã¿ãã³ãã©å®ç¾©
+;
+
+
+	.section P, CODE
+	.global	_kernel_interrupt
+	.global	__kernel_default_int_handler
+	.global	__kernel_default_exc_handler
+EOS
+
+$INHNO_RANGE.each do |inhnoVal|
+  if $cfgData[:DEF_INH].has_key?(inhnoVal)
+    $kernelCfgAsm.add(<<EOS)
+	.global	_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}
+	.global	__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry
+__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry:
+	pushm	r1-r5
+	mov.l	\##{inhnoVal}, r1
+	mov.l	\#_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}, r2
+	bra.a	_kernel_interrupt
+EOS
+    $kernelCfgAsm.add
+  end
+end
+
+$kernelCfgAsm.add(<<EOS)
+	.global	__kernel_default_int_handler_entry
+__kernel_default_int_handler_entry:
+	pushm	r1-r5
+	mov.l	\#0FFFFFFFFH, r1
+	mov.l	\#__kernel_default_int_handler, r2
+	bra.a	_kernel_interrupt
+
+	.global	__kernel_break_int_handler_entry
+__kernel_break_int_handler_entry:
+	rts
+EOS
+$kernelCfgAsm.add
+
+$kernelCfgAsm.add(<<EOS)
+	.global	_kernel_exception
+EOS
+
+$EXCNO_VALID.each do |excnoVal|
+  if $cfgData[:DEF_EXC].has_key?(excnoVal)
+    $kernelCfgAsm.add(<<EOS)
+	.global	_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}
+	.global	__kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry
+__kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry:
+	pushm	r1-r5
+	mov.l	\##{excnoVal}, r1
+	mov.l	\#_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}, r2
+	bra.a	_kernel_exception
+EOS
+    $kernelCfgAsm.add
+  end
+end
+
+$kernelCfgAsm.add(<<EOS)
+	.global	__kernel_default_exc_handler_entry
+__kernel_default_exc_handler_entry:
+	pushm	r1-r5
+	mov.l	\#0FFFFFFFFH, r1
+	mov.l	\#__kernel_default_exc_handler, r2
+	bra.a	_kernel_exception
+EOS
+$kernelCfgAsm.add
+
+$kernelCfgAsm.append(<<EOS)
+;
+;  å¯å¤ãã¯ã¿ãã¼ãã«
+;
+
+	.global	_start
+
+	.global	_vvector_table
+
+
+	.section .rvectors, ROMDATA
+
+_vvector_table:
+EOS
+
+$INHNO_RANGE.each do |inhnoVal|
+  if $cfgData[:DEF_INH].has_key?(inhnoVal)
+    $kernelCfgAsm.append("	.lword	__kernel_#{$cfgData[:DEF_INH][inhnoVal][:inthdr]}_#{inhnoVal}_entry")
+  elsif inhnoVal != 0
+    $kernelCfgAsm.append("	.lword	__kernel_default_int_handler_entry")
+  else
+    $kernelCfgAsm.append("	.lword	__kernel_break_int_handler_entry")
+  end
+  $kernelCfgAsm.add("		; #{sprintf("%02d", inhnoVal)} ")
+end
+
+$kernelCfgAsm.add2
+
+$kernelCfgAsm.append(<<EOS)
+;
+;  åºå®ãã¯ã¿ãã¼ãã«
+;
+
+	.global	_fvector_table
+
+	.section .fvectors, ROMDATA
+
+_fvector_table:
+	 .word	 0FFFFFFFFH 	 ; Endian Select Register (little)
+	 .space	 004H
+	 .word	 0FFFFFFFFH 	 ; OFS1
+	 .word	 0FFFFFFFFH 	 ; OFS0
+	 .space	 010H
+	 .word	 0FFFFFFFFH 	 ; å¶å¾¡ã³ã¼ã, IDã³ã¼ã1 - 3
+	 .word	 0FFFFFFFFH 	 ; IDã³ã¼ã4 - 7
+	 .word	 0FFFFFFFFH 	 ; IDã³ã¼ã8 - 11
+	 .word	 0FFFFFFFFH 	 ; IDã³ã¼ã12 - 15
+EOS
+(12..30).each do |excnoVal|
+  if $cfgData[:DEF_EXC].has_key?(excnoVal)
+    $kernelCfgAsm.append("	.word	 __kernel_#{$cfgData[:DEF_EXC][excnoVal][:exchdr]}_#{excnoVal}_entry")
+  elsif $EXCNO_VALID.include?(excnoVal)
+    $kernelCfgAsm.append("	.word	 __kernel_default_exc_handler_entry")
+  else
+    $kernelCfgAsm.append("	.word	 0")
+  end
+  $kernelCfgAsm.add("		; #{excnoVal} ")
+end
+
+$kernelCfgAsm.add("	.word	 _start		; 31:Reset")
+$kernelCfgAsm.add2(".end")
+
+#
+#  å²è¾¼ã¿è¦æ±ã©ã¤ã³å±æ§ã«é¢ããã¿ã¼ã²ããä¾å­ã®ã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:CFG_INT].each do |key, params|
+  # IRQå²è¾¼ã¿çªå·ãã©ããããã§ãã¯
+  if $INTNO_INT.include?(key)
+    # TA_POSEDGEã¨TA_NEGEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE) == $TA_POSEDGE|$TA_NEGEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_POSEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_NEGEDGE|$TA_BOTHEDGE) == $TA_NEGEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+    # TA_POSEDGEã¨TA_NEGEDGEã¨TA_BOTHEDGEãåæã«è¨­å®ããã¦ããå ´å
+    if (params[:intatr].val & $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE) == $TA_POSEDGE|$TA_NEGEDGE|$TA_BOTHEDGE
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+  else
+    # IRQå²è¾¼ã¿ä»¥å¤ã®å²è¾¼ã¿ã«å¯¾ãã¦å²è¾¼ã¿å±æ§ãæå®ããã¦ããå ´å
+    if (params[:intatr].val & (~($TA_ENAINT|$TA_EDGE))) != 0
+      error_illegal_sym("E_RSATR", params, :intatr, :intno)
+    end
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_offset.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_offset.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_offset.trb	(revision 313)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+#
+#		ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼
+#
+#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
+#
+
+#
+#  ã¿ã¼ã²ããéä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("kernel/genoffset.trb")
+
+#
+#  ãã£ã¼ã«ãã®ãªãã»ããã®å®ç¾©ã®çæ
+#
+GenerateDefine("TCB_p_tinib", $offsetof_TCB_p_tinib)
+GenerateDefine("TCB_texptn", $offsetof_TCB_texptn)
+GenerateDefine("TCB_sp", $offsetof_TCB_sp)
+GenerateDefine("TCB_pc", $offsetof_TCB_pc)
+GenerateDefine("TINIB_exinf", $offsetof_TINIB_exinf)
+GenerateDefine("TINIB_task", $offsetof_TINIB_task)
+GenerateDefine("TINIB_stksz", $offsetof_TINIB_stksz)
+GenerateDefine("TINIB_stk", $offsetof_TINIB_stk)
+GenerateDefineBit("TCB_enatex", $sizeof_TCB, "B")
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.def	(revision 313)
@@ -0,0 +1,27 @@
+# prc_config.c
+intnest
+lock_flag
+saved_ipl
+prc_initialize
+prc_terminate
+x_config_int
+default_int_handler
+default_exc_handler
+
+# prc_support.src
+dispatch
+start_dispatch
+exit_and_dispatch
+call_exit_kernel
+start_r
+interrupt
+exception
+
+# rx610_config.c
+ipr_reg_addr
+ier_reg_addr
+ir_reg_addr
+irqcr_reg_addr
+
+# kernel_cfg.c
+cfg_int_table
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_rename.h	(revision 313)
@@ -0,0 +1,84 @@
+/* This file is generated from prc_rename.def by genrename. */
+
+#ifndef TOPPERS_PRC_RENAME_H
+#define TOPPERS_PRC_RENAME_H
+
+/*
+ *  prc_config.c
+ */
+#define intnest						_kernel_intnest
+#define lock_flag					_kernel_lock_flag
+#define saved_ipl					_kernel_saved_ipl
+#define prc_initialize				_kernel_prc_initialize
+#define prc_terminate				_kernel_prc_terminate
+#define x_config_int				_kernel_x_config_int
+#define default_int_handler			_kernel_default_int_handler
+#define default_exc_handler			_kernel_default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#define dispatch					_kernel_dispatch
+#define start_dispatch				_kernel_start_dispatch
+#define exit_and_dispatch			_kernel_exit_and_dispatch
+#define call_exit_kernel			_kernel_call_exit_kernel
+#define start_r						_kernel_start_r
+#define interrupt					_kernel_interrupt
+#define exception					_kernel_exception
+
+/*
+ *  rx630_config.c
+ */
+#define ipr_reg_addr				_kernel_ipr_reg_addr
+#define ier_reg_addr				_kernel_ier_reg_addr
+#define ir_reg_addr					_kernel_ir_reg_addr
+#define irqcr_reg_addr				_kernel_irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#define cfg_int_table				_kernel_cfg_int_table
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  prc_config.c
+ */
+#define _intnest					__kernel_intnest
+#define _lock_flag					__kernel_lock_flag
+#define _saved_ipl					__kernel_saved_ipl
+#define _prc_initialize				__kernel_prc_initialize
+#define _prc_terminate				__kernel_prc_terminate
+#define _x_config_int				__kernel_x_config_int
+#define _default_int_handler		__kernel_default_int_handler
+#define _default_exc_handler		__kernel_default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#define _dispatch					__kernel_dispatch
+#define _start_dispatch				__kernel_start_dispatch
+#define _exit_and_dispatch			__kernel_exit_and_dispatch
+#define _call_exit_kernel			__kernel_call_exit_kernel
+#define _start_r					__kernel_start_r
+#define _interrupt					__kernel_interrupt
+#define _exception					__kernel_exception
+
+
+/*
+ *  rx630_config.c
+ */
+#define _ipr_reg_addr				__kernel_ipr_reg_addr
+#define _ier_reg_addr				__kernel_ier_reg_addr
+#define _ir_reg_addr				__kernel_ir_reg_addr
+#define _irqcr_reg_addr				__kernel_irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#define _cfg_int_table				__kernel_cfg_int_table
+
+#endif /* TOPPERS_LABEL_ASM */
+
+
+#endif /* TOPPERS_PRC_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sil.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sil.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sil.h	(revision 313)
@@ -0,0 +1,314 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		sil.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_SIL_H
+#define TOPPERS_PRC_SIL_H
+
+
+#ifndef TOPPERS_MACRO_ONLY
+#include "prc_insn.h"
+
+
+/*
+ *  å
+¨å²è¾¼ã¿ç¦æ­¢
+ */
+Inline uint32_t
+TOPPERS_disint( void )
+{
+	volatile uint32_t	TOPPERS_psw;
+
+	TOPPERS_psw = current_psw();
+	disint();
+
+	return( TOPPERS_psw );
+}
+
+
+/*
+ *  å
+¨å²è¾¼ã¿è¨±å¯
+ */
+Inline void
+TOPPERS_enaint( uint32_t TOPPERS_psw )
+{
+	if( TOPPERS_psw & PSW_I_MASK ){
+		enaint();
+	}
+}
+
+
+/*
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®å¶å¾¡
+ */
+#define SIL_PRE_LOC		uint32_t TOPPERS_i_psw;
+#define SIL_LOC_INT()	( ( void )( TOPPERS_i_psw = TOPPERS_disint() ) )
+#define SIL_UNL_INT()	( TOPPERS_enaint( TOPPERS_i_psw ) )
+
+
+/*
+ *  ã¨ã³ãã£ã¢ã³ã®åè»¢
+ *
+ *  æ¬éçºç°å¢ã§ã¯ã¨ã³ãã£ã¢ã³å¤æå½ä»¤ãå­å¨ãããã,
+ *  ã¢ã¼ã­ãã¯ãã£ä¾å­é¨ã«ã¦ãã¯ã­ãä¸æ¸ããã.
+ */
+#define TOPPERS_SIL_REV_ENDIAN_UINT16( data )	\
+ 								rev_endian_uint16( data )
+#define TOPPERS_SIL_REV_ENDIAN_UINT32( data )	\
+ 								rev_endian_uint32( data )
+
+
+/*
+ *  å¾®å°æéå¾
+ã¡
+ */
+extern void sil_dly_nse( ulong_t dlytim ) throw();
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³
+ */
+#define SIL_ENDIAN_LITTLE			/* ãªãã«ã¨ã³ãã£ã¢ã³ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+ */
+#define TOPPERS_OMIT_SIL_ACCESS
+
+/*
+ *  8ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+#ifdef UINT8_MAX
+
+Inline uint8_t
+sil_reb_mem(const volatile uint8_t *mem)
+{
+	uint8_t	data;
+
+	data = *((const volatile uint8_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrb_mem(volatile uint8_t *mem, uint8_t data)
+{
+	*((volatile uint8_t *) mem) = data;
+}
+
+#endif /* UINT8_MAX */
+
+/*
+ *  16ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint16_t
+sil_reh_mem(const volatile uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrh_mem(volatile uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_bem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_bem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_LEM
+
+Inline uint16_t
+sil_reh_lem(const volatile uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_LEM
+
+Inline void
+sil_wrh_lem(volatile uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
+#else /* SIL_ENDIAN_BIG */
+#ifdef SIL_ENDIAN_LITTLE		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_lem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_lem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_BEM
+
+Inline uint16_t
+sil_reh_bem(const volatile uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_BEM
+
+Inline void
+sil_wrh_bem(volatile uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_BEM */
+#else /* SIL_ENDIAN_LITTLE */
+
+#error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined.
+
+#endif /* SIL_ENDIAN_LITTLE */
+#endif /* SIL_ENDIAN_BIG */
+
+/*
+ *  32ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint32_t
+sil_rew_mem(const volatile uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrw_mem(volatile uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_bem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_bem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_LEM
+
+Inline uint32_t
+sil_rew_lem(const volatile uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_LEM
+
+Inline void
+sil_wrw_lem(volatile uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
+#else /* SIL_ENDIAN_BIG */		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_lem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_lem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_BEM
+
+Inline uint32_t
+sil_rew_bem(const volatile uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_BEM
+
+Inline void
+sil_wrw_bem(volatile uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_BEM */
+#endif /* SIL_ENDIAN_BIG */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_PRC_SIL_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_stddef.h	(revision 313)
@@ -0,0 +1,70 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		t_stddef.hã®ãã­ã»ããµä¾å­é¨ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_stddef.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_PRC_STDDEF_H
+#define TOPPERS_PRC_STDDEF_H
+
+/*
+ *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ */
+#define TOPPERS_RX630				/* ãã­ã»ããµç¥ç§° */
+
+#endif /* TOPPERS_PRC_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_support.S
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_support.S	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_support.S	(revision 313)
@@ -0,0 +1,992 @@
+; 
+;   TOPPERS/ASP Kernel
+;       Toyohashi Open Platform for Embedded Real-Time Systems/
+;       Advanced Standard Profile Kernel
+;  
+;   Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+;                               Toyohashi Univ. of Technology, JAPAN
+;   Copyright (C) 2007      by Embedded and Real-Time Systems Laboratory
+;               Graduate School of Information Science, Nagoya Univ., JAPAN
+;   Copyright (C) 2010 by Witz Corporation, JAPAN
+;   Copyright (C) 2013      by Mitsuhiro Matsuura
+;  
+;   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+;   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+;   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+;       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+;       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+;       ã¨ï¼
+;     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+;         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+;         å ±åãããã¨ï¼
+;   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+;       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+;       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+;       å
+è²¬ãããã¨ï¼
+;  
+;   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+;   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+;   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+;   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+;   ã®è²¬ä»»ãè² ããªãï¼
+;  
+;  @(#) $Id$
+;
+
+;
+;  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã« ã¢ã»ã³ããªè¨èªé¨ï¼RX630ç¨ï¼
+;
+#define TOPPERS_MACRO_ONLY
+#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#include "kernel_impl.h"
+
+;
+;  ãã£ã¹ãããã£ããã³å²è¾¼ã¿(CPUä¾å¤)åºå
+¥ãå£ã®ã«ã¼ã«:
+;	åä½ã¢ã¼ããä»¥ä¸ã®ããã«å®ç¾©ãã.
+;		ãã£ã¹ãããã£ã¢ã¼ã:
+;			CPUã­ãã¯ç¶æ
+, å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+,
+;			ã¿ã¹ã¯ã³ã³ãã­ã¹ã(intnest = 0), ã¿ã¹ã¯ã¹ã¿ãã¯
+;		å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ã
+;			å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0),
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+(IPL != 0)
+;			å²è¾¼ã¿ã³ã³ãã­ã¹ã(intnest != 0), å²è¾¼ã¿ã¹ã¿ãã¯
+;
+;	ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ã®ãµãã¼ãæç¡ã¨, CPUã­ãã¯ç¶æ
+, å²è¾¼ã¿åªå
+åº¦
+;	ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã®é¢ä¿ã¯ä»¥ä¸ã®éãã§ãã.
+;		ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿æªãµãã¼ãæ:
+;			CPUã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0)
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+(IPL = 0)
+;		ã«ã¼ãã«ç®¡çå¤å²è¾¼ã¿ãµãã¼ãæ:
+;			CPUã­ãã¯ç¶æ
+
+;				(PSWã¬ã¸ã¹ã¿Iããã = 0, IPL = IPL_LOCK, lock_flag = true)
+;			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+(saved_ipl = 0)
+;
+;	åæ§é ä½ãã¤ã³ã¿ãä»¥ä¸ã®ããã«åã¬ã¸ã¹ã¿ã«ã¢ãµã¤ã³ãã.
+;		r15 = p_runtsk	ãã ããã£ã¹ãããã£ã®ååºå£ã§ã¯ç¡å¹
+;		r14 = *p_runtsk	dispatcher ã®ä¸­ã§ã¯ p_runtsk ç¢ºå®æã«ååå¾ãã
+;	åå
+¥ãå£ããæåã«å¤æ°ã¢ã¯ã»ã¹ããã¨ãã«ä¸è¨ã¬ã¸ã¹ã¿ã«ä¿å­ãã.
+;
+;	æ§é ä½ã¢ã©ã¤ã¡ã³ãã¸ã®å¯¾å¿
+;		æ§é ä½ã¢ã©ã¤ã¡ã³ãã4Byte(ã¢ã³ããã¯)ã®å ´å:
+;			ä¸è¬çãªã¬ã¸ã¹ã¿ç¸å¯¾ã¢ãã¬ãã·ã³ã°ãå¯è½
+;				ä¾:	mov.l	#__kernel_p_runtsk, r15
+;					mov.l  	r0, TCB_sp[r15]
+;		æ§é ä½ã¢ã©ã¤ã¡ã³ãã4Byteã§ã¯ãªã(ããã¯)ã®å ´å:
+;			mov.lã®ããã«ã­ã³ã°ãµã¤ãºæå®ã®å ´åãç¸å¯¾å¤ã¯4ã®åæ°ã®ã¿æå¹
+;			ãã®ãã, ä¸åº¦å¯¾è±¡ã¢ãã¬ã¹ãæ±ãã¦ããã¢ã¯ã»ã¹ããå¿
+è¦ããã
+;				ä¾:	mov.l	#__kernel_p_runtsk, r15
+;					add		#TCB_sp, r15, r5
+;					mov.l  	r0, [r5]
+;		åãªãã»ããå¤ãå¤æ­ã, æ¡ä»¶ã¢ã»ã³ãã«ã«ããã³ã¼ããåãæ¿ãã
+;
+
+;
+;  æ§é ä½ã¢ã¯ã»ã¹ã®ãªãã»ããå®ç¾©
+;
+#include "offset.h"
+
+;
+;  åç¨®EQUå®ç¾©(Hãã¡ã¤ã«ã®#defineå®ç¾©)
+;
+#include "target_config.h"
+#include "prc_config.h"
+
+	.global	__kernel_istkpt
+	
+	.global	__kernel_p_runtsk
+	.global	__kernel_p_schedtsk
+	.global	__kernel_reqflg
+	.global	__kernel_dspflg
+
+	.global	__kernel_dispatch
+	.global	__exit_and_dispatch
+	.global	__kernel_start_r
+	.global	__kernel_call_texrtn
+	.global	_kernel_interrupt
+	.global	_kernel_exception
+	.global	__kernel_intnest
+	.global	__kernel_call_exit_kernel
+	.global	__kernel_start_dispatch
+
+	.global	_ext_tsk
+	.global	__kernel_exit_kernel
+
+#if	TIPM_LOCK != -15
+	.global	__kernel_lock_flag
+	.global	__kernel_saved_ipl
+#endif
+
+	.global	__kernel_break_wait
+	.global	_sil_dly_nse
+
+#if LOG_INH_ENTER_ENABLE == 1
+	.global	_kernel_log_inh_enter
+#endif	/* LOG_INH_ENTER_ENABLE == 1 */
+#if LOG_INH_LEAVE_ENABLE == 1
+	.global	_kernel_log_inh_leave
+#endif	/* LOG_INH_LEAVE_ENABLE == 1 */
+#if LOG_EXC_ENTER_ENABLE == 1
+	.global	_kernel_log_exc_enter
+#endif	/* LOG_EXC_ENTER_ENABLE == 1 */
+#if LOG_EXC_LEAVE_ENABLE == 1
+	.global	_kernel_log_exc_leave
+#endif	/* LOG_EXC_LEAVE_ENABLE == 1 */
+#if LOG_DSP_ENTER_ENABLE == 1
+	.global	_kernel_log_dsp_enter
+#endif	/* LOG_DSP_ENTER_ENABLE == 1 */
+#if LOG_DSP_LEAVE_ENABLE == 1
+	.global	_kernel_log_dsp_leave
+#endif	/* LOG_DSP_LEAVE_ENABLE == 1 */
+
+;
+;  TCB_sp ã¸ã®æ¸è¾¼ã¿ãã¯ã­
+;
+.macro	st_TCB_sp	src, tcb, tmp
+#if (TCB_sp % 4) == 0
+	mov.l	\src, TCB_sp[\tcb]
+#else
+	add		#TCB_sp, \tcb, \tmp
+	mov.l	\src, [\tmp]
+#endif
+.endm
+
+;
+;  TCB_sp ããã®èª­åºããã¯ã­
+;
+.macro	ld_TCB_sp	dst, tcb, tmp
+#if (TCB_sp % 4) == 0
+	mov.l	TCB_sp[\tcb], \dst
+#else
+	add		#TCB_sp, \tcb, \tmp
+	mov.l	[tmp], \dst
+#endif
+.endm
+
+;
+;  TCB_pc ã¸ã®æ¸è¾¼ã¿ãã¯ã­
+;
+.macro	st_TCB_pc	src, tcb, tmp
+#if (TCB_pc % 4) == 0
+	mov.l	\src, TCB_pc[\tcb]
+#else
+	add		#TCB_pc, \tcb, \tmp
+	mov.l	\src, [\tmp]
+#endif
+.endm
+
+;
+;  TCB_pc ããã®èª­åºããã¯ã­
+;
+.macro	ld_TCB_pc	dst, tcb, tmp
+#if (TCB_pc % 4) == 0
+	mov.l	TCB_pc[\tcb], \dst
+#else
+	add		#TCB_pc, \tcb, \tmp
+	mov.l	[\tmp], \dst
+#endif
+.endm
+
+;
+;  TCB_texptn ããã®èª­åºããã¯ã­
+;
+.macro	ld_TCB_texptn	dst, tcb, tmp
+#if (TCB_texptn % 4) == 0
+	mov.l	TCB_texptn[\tcb], \dst
+#else
+	add		#TCB_texptn, \tcb, \tmp
+	mov.l	[\tmp], \dst
+#endif
+.endm
+
+;
+;  TCB_p_tinib ããã®èª­åºããã¯ã­
+;
+.macro	ld_TCB_p_tinib	dst, tcb, tmp
+#if (TCB_p_tinib % 4) == 0
+	mov.l	TCB_p_tinib[\tcb], \dst
+#else
+	add		#TCB_p_tinib, \tcb, \tmp
+	mov.l	[\tmp], \dst
+#endif
+.endm
+
+;
+;  TINIB_exinf ããã®èª­åºããã¯ã­
+;
+.macro	ld_TINIB_exinf	dst, tinib, tmp
+#if (TINIB_exinf % 4) == 0
+	mov.l	TINIB_exinf[\tinib], \dst
+#else
+	add		#TINIB_exinf, \tinib, \tmp
+	mov.l	[\tmp], \dst
+#endif
+.endm
+
+;
+;  TINIB_task ããã®èª­åºããã¯ã­
+;
+.macro	ld_TINIB_task	dst, tinib, tmp
+#if (TINIB_task % 4) == 0
+	mov.l	TINIB_task[\tinib], \dst
+#else
+	add		#TINIB_task, \tinib, \tmp
+	mov.l	[\tmp], \dst
+#endif
+.endm
+
+
+	.section	P, CODE
+
+;
+;  APIããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã³ã³ãã­ã¹ãã®éé¿ã¨, å®è¡åéçªå°ã®è¨­å®ããã.
+;
+__kernel_dispatch:
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	mov.l	#__kernel_p_runtsk, r15
+	mov.l	[r15], r14
+	st_TCB_sp	r0, r14, r5				; ã¹ã¿ãã¯ãã¤ã³ã¿ãTCBã«ä¿å­
+	st_TCB_pc	#dispatch_r, r14, r5	; å®è¡åéçªå°ãTCBã«ä¿å­
+	bra		dispatcher
+
+;
+;  APIã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, ã³ã³ãã­ã¹ãã®å¾©å¸°ããã.
+;
+dispatch_r:
+	btst 	#TCB_enatex_bit, TCB_enatex[r14].b	; ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯?
+	bz   	dispatch_r_rts
+	ld_TCB_texptn	r5, r14, r4			; ä¿çä¾å¤è¦å ããããï¼
+	cmp		#0, r5
+	bz   	dispatch_r_rts
+	bsr		__kernel_call_texrtn		; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡
+dispatch_r_rts:
+	popm 	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°
+	rts  	                        	; dispatch å¼ã³åºãå
+ã¸æ»ã.
+
+;
+;  ã¿ã¹ã¯èµ·åå¦ç(ã¿ã¹ã¯å
+é ­ã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£)
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, CPUã­ãã¯è§£é¤ç¶æ
+ã«ã, ã¿ã¹ã¯ãèµ·åãã.
+;
+__kernel_start_r:
+	mov.l 	#_ext_tsk, r5
+	push.l	r5							; æ»ãçªå°ãã¹ã¿ãã¯ã«ç©ã
+	ld_TCB_p_tinib	r5, r14, r4
+	ld_TINIB_exinf	r1, r5, r4			; æ¡å¼µæ
+å ±ãç¬¬ä¸å¼æ°ã«è¨­å®
+	ld_TINIB_task	r5, r5, r4			; ã¿ã¹ã¯ã®èµ·åçªå°ãåå¾
+.if	TIPM_LOCK == -15
+	setpsw	i							; å²è¾¼ã¿è¨±å¯(CPUã­ãã¯è§£é¤ç¶æ
+)
+.else
+	mov.l	#__kernel_lock_flag, r4		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r4]					; ããã«æ¥ãã¨ãã¯å¿
+ã saved_ipl ã®
+	mvtc	#00010000H, psw				; å¤ã¯ 0 ã®ãã, ç´å¤ãè¨­å®ãã.
+								; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+( I = 1 )
+								; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+( IPL = 0 )
+.endif
+	jmp		r5
+
+;
+;  ã«ã¼ãã«èµ·åããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  ãã®ã«ã¼ãã³ã¯ï¼ã«ã¼ãã«èµ·åæã«ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+
+; ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ï¼ã§å¼ã³åºãããï¼ã¾ãï¼å²è¾¼ã¿ã¢ã¼ãï¼é
+;  ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨åç­ï¼ã§å¼ã³åºããããã¨ãæ³å®ãã¦ããï¼
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ãã£ã¹ãããã£ã¢ã¼ãã«å¤æ´ãã.
+;
+__kernel_start_dispatch:
+	mov.l	#__kernel_intnest, r5
+	mov.w	#0, [r5]					; ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+#if	TIPM_LOCK != -15
+	mvtc	#(IPL_LOCK | 00010000H), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+#endif
+
+;
+; ã¿ã¹ã¯çµäº(ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã)ããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ä½ããããã¨ã¯ãªã.
+;  ãªã, p_runtsk ã®ã¢ãã¬ã¹åå¾ã ãã¯è¡ãªã.
+;
+__exit_and_dispatch:
+	mov.l	#__kernel_p_runtsk, r15     
+
+;
+; ãã£ã¹ãããã£æ¬ä½
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã¹ã¦ã®ã¿ã¹ã¯ã®ã³ã³ãã­ã¹ãã¯ä¿å­ããã¦ãã.
+;
+;  dispatcher å¼åºæã®ã¹ã¿ãã¯:
+;	ã»__kernel_dispatch ããããå ´å			: ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»exit_and_dispatch ããããå ´å: 
+;		exit_task ããããå ´å					: ã¿ã¹ã¯ã¹ã¿ãã¯
+;		ã«ã¼ãã«èµ·åæ(__kernel_start_dispatch)	: å²è¾¼ã¿ã¹ã¿ãã¯
+;	ã»ret_int ããããå ´å						: ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»dispatcher_idle_loop ããããå ´å			: å²è¾¼ã¿ã¹ã¿ãã¯
+;
+dispatcher:
+.if	LOG_DSP_ENTER == 1
+	push.l	r15
+	mov.l	r14, r1						; å¼æ°(ãã£ã¹ãããå
+TCB)ãè¨­å®
+	bsr		_kernel_log_dsp_enter
+	pop.l	r15
+.endif
+	mov.l	#__kernel_p_schedtsk, r5     
+	mov.l	[r5], [r15]					; p_schedtsk ã p_runtsk ã«
+	mov.l	[r15], r14
+	cmp		#0, r14
+	bz		dispatcher_pre_idle			; schedtsk ããªããã°ã¢ã¤ãã«ã«ã¼ãã¸
+	ld_TCB_sp	r0, r14, r5				; ã¿ã¹ã¯ã¹ã¿ãã¯ãã¤ã³ã¿ãå¾©å¸°
+.if	LOG_DSP_LEAVE == 1
+	push.l	r14
+	mov.l	r14, r1						; å¼æ°(ãã£ã¹ãããå
+TCB)ãè¨­å®
+	bsr		_kernel_log_dsp_leave
+	pop.l	r14
+.endif
+	ld_TCB_pc	r5, r14, r4
+	jmp		r5					; å®è¡åéçªå°ã¸ã¸ã£ã³ã
+
+;
+;  schdedtskãNULLã®å ´åã¯ã¢ã¤ãã«ã«ã¼ãã«å
+¥ã
+;  ã¢ã¤ãã«ã«ã¼ãã¯å²è¾¼ã¿å¦çã¢ã¼ãã§åä½ããã
+;
+;  ããã§å²è¾¼ã¿ã¢ã¼ãã«åãæããã®ã¯ï¼ããã§çºçããå²è¾¼ã¿å¦çã«
+;  ã©ã®ã¹ã¿ãã¯ãä½¿ããã¨ããåé¡ã®è§£æ±ºã¨ï¼å²è¾¼ã¿ãã³ãã©å
+ã§ã®ã¿
+;  ã¹ã¯ãã£ã¹ãããã®é²æ­¢ã¨ãã2ã¤ã®æå³ãããï¼
+;
+dispatcher_pre_idle:
+	mov.l	#__kernel_istkpt,r5
+	mov.l	[r5], r0					; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#1, [r5]					; éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+#if	TIPM_LOCK != -15
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+	mvtc	#0, psw						; åªå
+åº¦0ã®å²è¾¼ã¿å¦çä¸­ãå½è£
+
+#endif
+
+dispatcher_idle_loop:
+	setpsw	i							; å
+¨å²è¾¼ã¿è¨±å¯
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+
+	mov.l	#__kernel_reqflg, r5		; reqflg ã FALSE ãªã
+	mov.l	[r5], r4
+	cmp		#0, r4
+	bz   	dispatcher_idle_loop		; ã¢ã¤ãã«ã«ã¼ããç¹°ãè¿ã
+	mov.l	#0, [r5]					; reqflgãtrueãªãfalseã«ãã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#0, [r5]					; ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+#if	TIPM_LOCK != -15
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯ç¶æ
+ã¸
+	mov.l	#1, [r5]
+	mov.l	#__kernel_saved_ipl, r5
+	mov.l	#0, [r5]
+	mvtc	#(IPL_LOCK | PSW_I_MASK), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+#endif
+	bra		dispatcher					; dispatcher ã¸æ»ã
+
+
+;
+; ã«ã¼ãã«ã®çµäºå¦çã®å¼åºã
+;
+; ã¢ã¼ãã¨ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã«åãæ¿ãï¼
+;
+	.global	__kernel_call_exit_kernel
+__kernel_call_exit_kernel:
+#if	TIPM_LOCK != -15
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+#endif
+	mov.l	#__kernel_istkpt, r5
+	mov.l	[r5], r0					; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ã
+	mov.l	#__kernel_intnest, r5
+	mov.w	#1, [r5]					; éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åæã
+	bsr		__kernel_exit_kernel
+	bra		__kernel_call_exit_kernel
+
+
+;
+;  å²è¾¼ã¿(CPUä¾å¤)ããã®ã¿ã¹ã¯ãã£ã¹ãããã£å
+¥å£
+;
+;	å¼åºãæ¡ä»¶:
+;	ã»å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+(PSWã¬ã¸ã¹ã¿Iããã = 0)
+;	ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+(IPL != 0)
+;	ã»ã¿ã¹ã¯ã³ã³ãã­ã¹ã(intnest=0)
+;	ã»ä½¿ç¨ã¹ã¿ãã¯ã¯ã¿ã¹ã¯ã¹ã¿ãã¯
+;	ã»reqflg = true
+;
+;  ããã§ã¯, ãã£ã¹ãããã£ã¢ã¼ãã«å¤æ´ã, reqflgãOFFã«ãã¦ãã, 
+;  é
+å»¶ãã£ã¹ãããã®æç¡ãå¤æ­ãã.
+;
+
+;
+;  ret_intå
+é ­ã§ã¹ã¿ãã¯ã«ç©ã¾ãã¦ããPSWã¬ã¸ã¹ã¿ã¸ã®ãªãã»ãã
+;  ACC + FPSW + R14--R15 + R1--R5 + PC
+;
+	.equ	RET_INT_GET_PSW_OFFSET,	(8+4+28+4)
+
+ret_int:
+.if	TIPM_LOCK == -15
+	mov.l	RET_INT_GET_PSW_OFFSET[r0], r5	; å²è¾¼ã¿/CPUä¾å¤çºçåã®IPLå¤åå¾
+	and		#PSW_IPL_MASK, r5
+	mvtc	r5, psw						; å
+¨å²è¾¼ã¿ã­ãã¯(CPUã­ãã¯)ç¶æ
+
+										; å²è¾¼ã¿/CPUä¾å¤çºçåã®å²è¾¼ã¿åªå
+åº¦
+.else
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯ç¶æ
+ã¸
+	mov.l	#1, [r5]
+	mov.l	RET_INT_GET_PSW_OFFSET[r0], r5	; å²è¾¼ã¿/CPUä¾å¤çºçåã®IPLå¤åå¾
+	and		#PSW_IPL_MASK, r5
+	mov.l	#__kernel_saved_ipl, r4
+	mov.l	r5, [r4]
+	mvtc	#(IPL_LOCK | PSW_I_MASK), psw	; å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+										; å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+
+.endif
+	mov.l	#__kernel_reqflg, r5
+	mov.l	#0, [r5]					; reqflg <--- FALSE
+	mov.l	#__kernel_p_runtsk, r15     
+	mov.l	[r15], r14
+	mov.l	#__kernel_dspflg, r5		; dspflg ã FALSE ãªã ret_int_r ã¸
+	mov.l	[r5], r5
+	cmp		#0, r5
+	bz   	ret_int_r_call_tex
+	mov.l	#__kernel_p_schedtsk, r5
+	mov.l	[r5], r5
+	cmp		r5, r14						; p_schedtsk ã¨ p_runtsk ãåããªã
+	beq  	ret_int_r_call_tex			; ret_int_r_call_tex ã¸
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	st_TCB_sp	r0, r14, r5				; ã¹ã¿ãã¯ãã¤ã³ã¿ãTCBã«ä¿å­
+	st_TCB_pc	#ret_int_r, r14, r5		; å®è¡åéçªå°ãTCBã«ä¿å­
+	bra		dispatcher
+
+;
+;  å²è¾¼ã¿(CPUä¾å¤)ã¸ã®ã¿ã¹ã¯ãã£ã¹ãããã£åºå£
+;
+;  å¼ã³åºãæ¡ä»¶:
+;	ã»ãã£ã¹ãããã£ã¢ã¼ã(ãã¡ã¤ã«ãããåç
+§)
+;
+;  ããã§ã¯, ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãã¨, å²è¾¼ã¿(CPUä¾å¤)å¦çã¢ã¼ãã¸ã®
+;  å¤æ´ã¨, ã³ã³ãã­ã¹ãã®å¾©å¸°ãè¡ã, å²è¾¼ã¿(CUPä¾å¤)çºçå
+ã¸æ»ã.
+;
+__kernel_break_wait:					;ã¿ã¹ã¯ã¢ãã¿ç¨ã©ãã«
+ret_int_r:
+	popm 	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿å¾©å¸°
+ret_int_r_call_tex:
+	btst 	#TCB_enatex_bit, TCB_enatex[r14].b	; ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯?
+	bz   	ret_int_r_rte
+	ld_TCB_texptn	r5, r14, r4			; ä¿çä¾å¤è¦å ããããï¼
+	cmp		#0, r5
+	bz   	ret_int_r_rte
+	bsr		__kernel_call_texrtn		; ã¿ã¹ã¯ä¾å¤ãã³ãã©å¼åºãå¦çå®è¡
+ret_int_r_rte:
+#if	TIPM_LOCK != -15
+	clrpsw	i							; å
+¨å²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_lock_flag, r5		; CPUã­ãã¯è§£é¤ç¶æ
+ã¸
+	mov.l	#0, [r5]
+#endif
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  å²è¾¼ã¿ã®åºå
+¥å£å¦ç(ã¢ã»ã³ããªè¨èªè¨è¿°é¨å)
+;
+;  å¼åºãæ¡ä»¶:
+;  ã»å²è¾¼ã¿çºçæã®H/Wå¦çã«ãã, PSWã¬ã¸ã¹ã¿ã®Iããã=0, IPLã¯åä»ã
+;    ãå²è¾¼ã¿ã®IPL.
+;  ã»ã¹ã¿ãã¯ã¯å¤éå²ãè¾¼ã¿ãªãå²è¾¼ã¿ã¹ã¿ãã¯, ããã§ãªããã°
+;    ã¿ã¹ã¯ã¹ã¿ãã¯
+;  ã»å²è¾¼ã¿çºçæã®H/Wå¦çã«ãã,ã¹ã¿ãã¯ã«å²è¾¼ã¿ããã®å¾©å¸°PCã¨PSWã
+;    ä¿å­ããã¦ãã.
+;  ã»ãã¯ã¿ãã¼ãã«ã«ç»é²ãããåå¥ã®å
+¥ãå£å¦çã«ãã, ã¹ã¿ãã¯ã«
+;    ã¹ã¯ã©ããã¬ã¸ã¹ã¿(R1-R5)ãä¿å­ããã¦ãã.
+;
+;  å¼æ°:
+;  ã»r1:å²è¾¼ã¿è¦å çªå·
+;  ã»r2:å²è¾¼ã¿ãã³ãã©ã®ã¢ãã¬ã¹
+;
+;  ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ä¸ã«ã©ã®ããã«ä¿å­ããã¦ããããä»¥ä¸ã«ç¤ºã.
+;  ãã®å³ã§ã¯ä¸ãä½ä½, ä¸ãé«ä½ã®ã¢ãã¬ã¹ã§, ã¹ã¿ãã¯ã¯ä¸ãã
+;  ä¸æ¹åã«åãã£ã¦ç©ã¿ä¸ãããããã®ã¨ãã.
+;
+;	-------------------------
+;	|       ACC-HI(4byte)   |
+;	-------------------------(SP + 0)
+;	|       ACC-LO(4byte)   |
+;	-------------------------(SP + 4)
+;	|       FPSW(4byte)     |
+;	-------------------------(SP + 8)
+;	|       R14(4byte)      |
+;	-------------------------(SP + 12)
+;	|       R15(4byte)      |
+;	-------------------------(SP + 16)
+;	|       R1(4byte)       |
+;	-------------------------(SP + 20)
+;	|       R2(4byte)       |
+;	-------------------------(SP + 24)
+;	|       R3(4byte)       |
+;	-------------------------(SP + 28)
+;	|       R4(4byte)       |
+;	-------------------------(SP + 32)
+;	|       R5(4byte)       |
+;	-------------------------(SP + 36)
+;	|       PC(4byte)       |
+;	-------------------------(SP + 40)
+;	|       PSW(4byte)      |
+;	-------------------------(SP + 44)
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;
+;  ãã³ãã©ãããªã¿ã¼ã³ããå¾ã¯, å¤éå²è¾¼ã¿ã§ãªã, ãã¤ reqflg ã
+;  TRUE ã«ãªã£ãæã«ï¼ret_int ã¸åå²(é
+å»¶ãã£ã¹ããã)ããï¼
+;
+;  å¤éå²è¾¼ã¿ãã©ããã¯å²è¾¼ã¿ãã¹ãã«ã¦ã³ã¿ã®å¤ã§å¤å®ãã.
+;  intnest != 0 ãªãã°å¤éå²è¾¼ã¿ã§ããã¨å¤å®ãã.
+;
+;  reqflg ã¯CPUã­ãã¯ç¶æ
+ã§ãã§ãã¯ãã. ããã§ãªãã¨ï¼
+;  reqflg ãã§ãã¯å¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
+ã§
+;  ãã£ã¹ããããè¦æ±ãããå ´åã«ï¼ãã£ã¹ããããããªã.
+;
+_kernel_interrupt:
+	pushm	r14-r15						; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿
+	pushc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿éé¿
+	mvfacmi	r5
+	shll	#16, r5						; ACCæä¸ä½16bitã¯0ã¨ãã
+	mvfachi	r4
+	pushm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿éé¿
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		interrupt_from_int			; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	r0, r3						; ã¹ã¿ãã¯ãã¤ã³ã¿ãåãåºã
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+interrupt_from_int:		; å¤éå²è¾¼ã¿
+	setpsw	i							; å²è¾¼ã¿è¨±å¯(CPUã­ãã¯è§£é¤ç¶æ
+)
+
+.if	LOG_INH_LEAVE == 1
+	push.l	r1							; ã­ã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ
+.endif
+
+.if	LOG_INH_ENTER == 1
+	push.l	r2
+	bsr		_kernel_log_inh_enter		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+							; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å
+¥ã£ã¦ãã
+	pop		r2
+.endif
+
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+.if	LOG_INH_LEAVE == 1
+	pop		r1							; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨­å®
+	bsr		_kernel_log_inh_leave		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+.endif
+
+	clrpsw	i							; å²è¾¼ã¿ç¦æ­¢(CPUã­ãã¯ç¶æ
+)
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		interrupt_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+	mov.l	#__kernel_reqflg, r5		; ãã£ã¹ãããè¦æ±ããªãã?
+	mov.l	[r5], r5
+	cmp		#1, r5
+	bz		ret_int						; ããã° ret_int ã¸ã¸ã£ã³ã
+interrupt_return:
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  CPUä¾å¤ã®åºå
+¥å£å¦ç(ã¢ã»ã³ããªè¨èªè¨è¿°é¨å)
+;
+;  å¼åºãæ¡ä»¶:
+;  ã»CPUä¾å¤çºçæã®H/Wå¦çã«ãã, PSWã¬ã¸ã¹ã¿ã®Iããã=0, IPL=0.
+;  ã»ã¹ã¿ãã¯ã¯å¤éå²ãè¾¼ã¿ãªãå²è¾¼ã¿ã¹ã¿ãã¯, ããã§ãªããã°
+;    ã¿ã¹ã¯ã¹ã¿ãã¯
+;  ã»CPUä¾å¤çºçæã®H/Wå¦çã«ãã,ã¹ã¿ãã¯ã«CPUä¾å¤ããã®å¾©å¸°PCã¨
+;    PSWãä¿å­ããã¦ãã.
+;  ã»ãã¯ã¿ãã¼ãã«ã«ç»é²ãããåå¥ã®å
+¥ãå£å¦çã«ãã, ã¹ã¿ãã¯ã«
+;    ã¹ã¯ã©ããã¬ã¸ã¹ã¿(R1-R5)ãä¿å­ããã¦ãã.
+;
+;  å¼æ°:
+;  ã»r1:CPUä¾å¤è¦å çªå·
+;  ã»r2:CPUä¾å¤ãã³ãã©ã®ã¢ãã¬ã¹
+;
+;  ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ä¸ã«ã©ã®ããã«ä¿å­ããã¦ããããä»¥ä¸ã«ç¤ºã.
+;  ãã®å³ã§ã¯ä¸ãä½ä½, ä¸ãé«ä½ã®ã¢ãã¬ã¹ã§, ã¹ã¿ãã¯ã¯ä¸ãã
+;  ä¸æ¹åã«åãã£ã¦ç©ã¿ä¸ãããããã®ã¨ãã.
+;  ãªã, CPUä¾å¤è¦å çªå·ã¨R6-R13ã¯CPUä¾å¤ãã³ãã©å
+ã§æ
+å ±ãåå¾
+;  ããç®çã§éé¿ãã¦ãã, åºå£å¦çã§ã¯ä¿å­å
+å®¹ãç ´æ£ããã°ãã.
+;
+;	-------------------------
+;	|    CPUä¾å¤è¦å çªå·    | <----- p_excinf
+;	------------------------- (intptr_t)(p_excinf + 0)
+;	|       R6(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 4)
+;	|       R7(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 8)
+;	|       R8(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 12)
+;	|       R9(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 16)
+;	|       R10(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 20)
+;	|       R11(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 24)
+;	|       R12(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 28)
+;	|       R13(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 32)
+;	|       ACC-HI(4byte)   |
+;	------------------------- (intptr_t)(p_excinf + 36)
+;	|       ACC-LO(4byte)   |
+;	------------------------- (intptr_t)(p_excinf + 40)
+;	|       FPSW(4byte)     |
+;	------------------------- (intptr_t)(p_excinf + 44)
+;	|       R14(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 48)
+;	|       R15(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 52)
+;	|       R1(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 56)
+;	|       R2(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 60)
+;	|       R3(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 64)
+;	|       R4(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 68)
+;	|       R5(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 72)
+;	|       PC(4byte)       |
+;	------------------------- (intptr_t)(p_excinf + 76)
+;	|       PSW(4byte)      |
+;	------------------------- (intptr_t)(p_excinf + 80)
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;  CPUä¾å¤ãã³ãã©ã«æ¸¡ãVPåã®å¤æ° p_excinf ã¨ãã¦ISPã®å¤æ¸¡ãï¼
+;
+;  ãã³ãã©ãããªã¿ã¼ã³ããå¾ã¯, å¤éå²è¾¼ã¿ã§ãªã, ãã¤ reqflg ã
+;  TRUE ã«ãªã£ãæã«ï¼ret_int ã¸åå²(é
+å»¶ãã£ã¹ããã)ããï¼
+;
+;  å¤éå²è¾¼ã¿ãã©ããã¯å²è¾¼ã¿ãã¹ãã«ã¦ã³ã¿ã®å¤ã§å¤å®ãã.
+;  intnest != 0 ãªãã°å¤éå²è¾¼ã¿ã§ããã¨å¤å®ãã.
+;
+;  reqflg ã¯CPUã­ãã¯ç¶æ
+ã§ãã§ãã¯ãã. ããã§ãªãã¨ï¼
+;  reqflg ãã§ãã¯å¾ã«èµ·åãããå²è¾¼ã¿ãã³ãã©å
+ã§
+;  ãã£ã¹ããããè¦æ±ãããå ´åã«ï¼ãã£ã¹ããããããªã.
+;
+;
+;  CPUä¾å¤å
+¥å£å¦ç
+;
+;  ããã§ã¯, å²è¾¼ã¿å¦çã¢ã¼ãã«å¤æ´ãã¦ãã³ãã©ãå®è¡ãã.
+;
+
+;
+;  CPUä¾å¤ãã³ãã©å¼åºãå¾ã«ä¸è¦ã¨ãªãã¹ã¿ãã¯æ
+å ±ã®ãµã¤ãº
+;  EXCNO + R6--R13
+;
+	.equ	EXCINF_REG_SIZE,	(4+32)
+
+_kernel_exception:
+	pushm	r14-r15						; ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãéé¿
+	pushc	fpsw
+	mvfacmi	r5
+	shll	#16, r5						; ACCæä¸ä½16bitã¯0ã¨ãã
+	mvfachi	r4
+	pushm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿éé¿
+	pushm	r6-r13						; éã¹ã¯ã©ããã¬ã¸ã¹ã¿ä¿å­
+	push.l	r1							; CPUä¾å¤è¦å çªå·ãä¿æ
+	mov.l	r0, r3						; ã¹ã¿ãã¯ãã¤ã³ã¿ãåãåºã
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	and		#PSW_I_MASK, r5
+	bz		exception_nonkernel			; å
+¨å²è¾¼ã¿ç¦æ­¢(CPUã­ãã¯)ç¶æ
+ãªãç®¡çå¤
+#if	TIPM_LOCK != -15
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	and		#PSW_IPL_MASK, r5
+	cmp		#IPL_LOCK, r5
+	bgt	exception_nonkernel			; IPLãCPUã­ãã¯ã¬ãã«ä»¥ä¸ãªãç®¡çå¤
+#endif
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_from_int			; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+exception_from_int:		; å¤éå²è¾¼ã¿
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	mvtc	r5, psw						; CPUä¾å¤çºçåã®ç¶æ
+ã«æ»ã
+#if	LOG_EXC_LEAVE == 1
+	push.l	r1							; ã­ã°ãã¬ã¼ã¹ã®å¼æ°ãä¿æ
+#endif
+
+#if	LOG_EXC_ENTER == 1
+	pushm	r2-r3
+	bsr		_kernel_log_exc_enter		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+							; å¼æ°ã®å²è¾¼ã¿è¦å çªå·ã¯æ¢ã«r1ã«å
+¥ã£ã¦ãã
+	popm	r2-r3
+#endif
+
+	mov.l	r3, r1						; å¼æ°ã®p_excinfãè¨­å®
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+.if	LOG_EXC_LEAVE == 1
+	pop		r1							; å¼æ°ã«å²è¾¼ã¿è¦å çªå·ãè¨­å®
+	bsr		_kernel_log_exc_leave		; ã­ã°ãã¬ã¼ã¹é¢æ°ã®å¼åºã
+.endif
+
+	clrpsw	i							; ããããã¯å¿
+ãå²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+	mov.l	#__kernel_reqflg, r5		; ãã£ã¹ãããè¦æ±ããªãã?
+	mov.l	[r5], r5
+	cmp		#1, r5
+	bnz		exception_return			; ãªããã°ãªã¿ã¼ã³
+	add		#EXCINF_REG_SIZE, r0		; CPUä¾å¤æ
+å ±ã®ç ´æ£
+	bra		ret_int						; ããã° ret_int ã¸ã¸ã£ã³ã
+
+exception_nonkernel:
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	add		#1, r4						; ãã¹ãåæ°ãã¤ã³ã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#1, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_from_nonkernelint	; å ç®åã0ã§ãªããã°å¤éå²è¾¼ã¿
+						; åæ®µã®å²è¾¼ã¿
+	mov.l	#__kernel_istkpt, r5		; å²è¾¼ã¿ç¨ã®ã¹ã¿ãã¯ã¸åæ¿ãã
+	mov.l	[r5], r0
+	push.l	r3							; ã¿ã¹ã¯ã¹ã¿ãã¯ãä¿æ
+exception_from_nonkernelint:	; å¤éå²è¾¼ã¿
+	mov.l	EXC_GET_PSW_OFFSET[r3], r5
+	mvtc	r5, psw						; CPUä¾å¤çºçåã®ç¶æ
+ã«æ»ã
+
+	mov.l	r3, r1						; å¼æ°ã®p_excinfãè¨­å®
+	jsr  	r2							; Cã«ã¼ãã³å¼ã³åºã
+
+	clrpsw	i							; ããããã¯å¿
+ãå²è¾¼ã¿ç¦æ­¢
+	mov.l	#__kernel_intnest, r5
+	mov.w	[r5], r4
+	sub		#1, r4						; ãã¹ãåæ°ããã¯ãªã¡ã³ã
+	mov.w	r4, [r5]
+	cmp		#0, r4						; å¤éå²ãè¾¼ã¿ãã©ãã
+	bnz		exception_return			; å¤éå²ãè¾¼ã¿ãªããªã¿ã¼ã³
+	; åæ®µã®å²è¾¼ã¿
+	pop		r0							; ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã«æ»ã
+
+exception_return:
+	add		#EXCINF_REG_SIZE, r0		; CPUä¾å¤æ
+å ±ã®ç ´æ£
+	popm	r4-r5						; ã¢ã­ã¥ã ã¬ã¼ã¿å¾©å¸°
+	mvtaclo	r5							; ACCæä¸ä½16bitã¯0ã§å¾©å¸°
+	mvtachi	r4
+	popc	fpsw						; FPUã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r14-r15						; ã¬ã¸ã¹ã¿å¾©å¸°
+	popm	r1-r5
+	rte									; å²è¾¼ã¿åã®å¦çã«æ»ã
+
+
+;
+;  å¾®å°æéå¾
+ã¡
+;
+_sil_dly_nse:
+	mov.l	#SIL_DLY_TIM1, r5
+	sub		r5, r1
+	ble		sil_dly_nse_ret
+sil_dly_nse_loop:
+	mov.l	#SIL_DLY_TIM2, r5
+	sub		r5, r1
+	bgt		sil_dly_nse_loop
+sil_dly_nse_ret:
+	rts
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_sym.def	(revision 313)
@@ -0,0 +1,14 @@
+TA_EDGE
+TA_LOWLEVEL
+TA_BOTHEDGE
+TA_NEGEDGE
+TIPM_LOCK,,signed
+IPL_LOCK
+PSW_I_MASK
+PSW_IPL_MASK
+EXC_GET_PSW_OFFSET
+sizeof_TCB,sizeof(TCB)
+offsetof_TCB_p_tinib,"offsetof(TCB,p_tinib)"
+offsetof_TCB_texptn,"offsetof(TCB,texptn)"
+offsetof_TCB_sp,"offsetof(TCB,tskctxb.sp)"
+offsetof_TCB_pc,"offsetof(TCB,tskctxb.pc)"
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_syssvc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_syssvc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_syssvc.h	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_SYSSVC_H
+#define TOPPERS_PRC_SYSSVC_H
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºã
+ *  è¿½å ããããã®ãã¯ã­ï¼
+ */
+#define PRC_COPYRIGHT										\
+	"Copyright (C) 2010 by Witz Corporation, JAPAN\n"		\
+	"Copyright (C) 2011 by Meika Sugimoto\n"				\
+	"Copyright (C) 2013 by Mitsuhiro Matsuura\n"
+
+#endif	/* TOPPERS_PRC_SYSSVC_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.S
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.S	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.S	(revision 313)
@@ -0,0 +1,73 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2010 by Witz Corporation, JAPAN
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+;*  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+;*  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+;*      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+;*      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+;*      ã¨ï¼
+;*    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+;*        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+;*        å ±åãããã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+;*      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+;*      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+;*      å
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+;*  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+;*  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+;*  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+;*  ã®è²¬ä»»ãè² ããªãï¼
+;* 
+;*  @(#) $Id$
+;* 
+
+	.section	P, CODE
+
+	.global	_trigger_cpu_exception
+
+_trigger_cpu_exception:
+	;
+	;  CPUä¾å¤ã®çºç
+	;
+	;  ã¼ã­å²ãç®ãè¡ããã¨ã§, æµ®åå°æ°ç¹ä¾å¤ã
+	;  çºçããã.
+	;
+	mvtc	#00001000H, fpsw
+	mov.l	#1, r5
+	fdiv	#0, r5
+	mvtc	#00000000H, fpsw
+	rts
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_test.h	(revision 313)
@@ -0,0 +1,67 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼RX630ç¨ï¼
+ */
+
+#ifndef TOPPERS_PRC_TEST_H
+#define TOPPERS_PRC_TEST_H
+
+#define CPUEXC1					25		/* æµ®åå°æ°ç¹ä¾å¤ */
+#define RAISE_CPU_EXCEPTION		trigger_cpu_exception()
+
+extern void trigger_cpu_exception( void );
+
+#endif /* TOPPERS_PRC_TEST_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_unrename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_unrename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/prc_unrename.h	(revision 313)
@@ -0,0 +1,83 @@
+/* This file is generated from prc_rename.def by genrename. */
+
+#ifndef TOPPERS_PRC_RENAME_H
+#define TOPPERS_PRC_RENAME_H
+
+/*
+ *  prc_config.c
+ */
+#undef intnest
+#undef lock_flag
+#undef saved_ipl
+#undef prc_initialize
+#undef prc_terminate
+#undef x_config_int
+#undef default_int_handler
+#undef default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#undef dispatch
+#undef start_dispatch
+#undef exit_and_dispatch
+#undef call_exit_kernel
+#undef start_r
+#undef interrupt
+#undef exception
+
+/*
+ *  rx630_config.c
+ */
+#undef ipr_reg_addr
+#undef ier_reg_addr
+#undef ir_reg_addr
+#undef irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#undef cfg_int_table
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  prc_config.c
+ */
+#undef _intnest
+#undef _lock_flag
+#undef _saved_ipl
+#undef _prc_initialize
+#undef _prc_terminate
+#undef _x_config_int
+#undef _default_int_handler
+#undef _default_exc_handler
+
+/*
+ *  prc_support.src
+ */
+#undef _dispatch
+#undef _start_dispatch
+#undef _exit_and_dispatch
+#undef _call_exit_kernel
+#undef _start_r
+#undef _interrupt
+#undef _exception
+
+/*
+ *  rx630_config.c
+ */
+#undef _ipr_reg_addr
+#undef _ier_reg_addr
+#undef _ir_reg_addr
+#undef _irqcr_reg_addr
+
+/*
+ *  kernel_cfg.c
+ */
+#undef _cfg_int_table
+
+#endif /* TOPPERS_LABEL_ASM */
+
+
+#endif /* TOPPERS_PRC_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630.h	(revision 313)
@@ -0,0 +1,1929 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  RX630ã«ä¾å­ããå®ç¾©
+ */
+#ifndef TOPPERS_RX630_H
+#define TOPPERS_RX630_H
+
+#define __evenaccess
+
+/*
+ *  CPUä¾å¤ãã³ãã©çªå·ã®å®ç¾©(åºå®ãã¯ã¿ãã¼ãã«)
+ *
+ *  çªå·ã®ç¯å²ã¯0 - 31
+ */
+#define INT_PRIVILEGED_INSTRUNCTION		20		/* ç¹æ¨©å½ä»¤ä¾å¤ */
+#define INT_UNDEF_INSTRUNCTION			23		/* æªå®ç¾©å½ä»¤ä¾å¤ */
+#define INT_FLOATINGPOINT_INSTRUCTION	25		/* æµ®åå°æ°ç¹ä¾å¤ */
+#define INT_NMI							30		/* ãã³ãã¹ã«ãã«å²ãè¾¼ã¿ */
+#define INT_RESET						31		/* ãªã»ãã */
+
+/*
+ *  å²è¾¼ã¿çªå·ã®å®ç¾©(å¯å¤ãã¯ã¿ãã¼ãã«)
+ */
+#define INT_BUSERR			16
+#define INT_FCU_FCUERR		21
+#define INT_FCU_FRDYI		23
+#define INT_ICU_SWINT		27
+#define INT_CMT0_CMI		28
+#define INT_CMT1_CMI		29
+#define INT_CMT2_CMI		30
+#define INT_CMT3_CMI		31
+#define INT_ETH_EINT		32
+#define INT_USB0_D0FIFO0	33
+#define INT_USB0_D1FIFO0	34
+#define INT_USB0_USBI0		35
+#define INT_USB1_D0FIFO1	36
+#define INT_USB1_D1FIFO1	37
+#define INT_USB1_USBI1		38
+#define INT_RSPI0_SPRI0		39
+#define INT_RSPI0_SPTI0		40
+#define INT_RSPI0_SPII0		41
+#define INT_RSPI1_SPRI1		42
+#define INT_RSPI1_SPTI1		43
+#define INT_RSPI1_SPII1		44
+#define INT_RSPI2_SPRI2		45
+#define INT_RSPI2_SPTI2		46
+#define INT_RSPI2_SPII2		47
+#define INT_CAN0_RXF0		48
+#define INT_CAN0_TXF0		49
+#define INT_CAN0_RXM0		50
+#define INT_CAN0_TXM0		51
+#define INT_CAN1_RXF1		52
+#define INT_CAN1_TXF1		53
+#define INT_CAN1_RXM1		54
+#define INT_CAN1_TXM1		55
+#define INT_CAN2_RXF2		56
+#define INT_CAN2_TXF2		57
+#define INT_CAN2_RXM2		58
+#define INT_CAN2_TXM2		59
+#define INT_RTC_CUP			62
+#define INT_IRQ0			64
+#define INT_IRQ1			65
+#define INT_IRQ2			66
+#define INT_IRQ3			67
+#define INT_IRQ4			68
+#define INT_IRQ5			69
+#define INT_IRQ6			70
+#define INT_IRQ7			71
+#define INT_IRQ8			72
+#define INT_IRQ9			73
+#define INT_IRQ10			74
+#define INT_IRQ11			75
+#define INT_IRQ12			76
+#define INT_IRQ13			77
+#define INT_IRQ14			78
+#define INT_IRQ15			79
+#define INT_USB_USBR0		90
+#define INT_USB_USBR1		91
+#define INT_RTC_ALM			92
+#define INT_RTC_PRD			93
+#define INT_AD0_ADI0		98
+#define INT_S12AD_S12ADI0	102
+#define INT_ICU_GROUP0		106
+#define INT_ICU_GROUP1		107
+#define INT_ICU_GROUP2		108
+#define INT_ICU_GROUP3		109
+#define INT_ICU_GROUP4		110
+#define INT_ICU_GROUP5		111
+#define INT_ICU_GROUP6		112
+#define INT_ICU_GROUP12		114
+#define INT_SCI12_SCIX0		122
+#define INT_SCI12_SCIX1		123
+#define INT_SCI12_SCIX2		124
+#define INT_SCI12_SCIX3		125
+#define INT_TPU0_TGI0A		126
+#define INT_TPU0_TGI0B		127
+#define INT_TPU0_TGI0C		128
+#define INT_TPU0_TGI0D		129
+#define INT_TPU1_TGI0A		130
+#define INT_TPU1_TGI0B		131
+#define INT_TPU2_TGI0A		132
+#define INT_TPU2_TGI0B		133
+#define INT_TPU3_TGI0A		134
+#define INT_TPU3_TGI0B		135
+#define INT_TPU3_TGI0C		136
+#define INT_TPU3_TGI0D		137
+#define INT_TPU4_TGI0A		138
+#define INT_TPU4_TGI0B		139
+#define INT_TPU5_TGI0A		140
+#define INT_TPU5_TGI0B		141
+#define INT_MTU0_TGIA0		142
+#define INT_MTU0_TGIB0		143
+#define INT_MTU0_TGIC0		144
+#define INT_MTU0_TGID0		145
+#define INT_MTU0_TCIE0		146
+#define INT_MTU0_TCIF0		147
+#define INT_MTU1_TGIA1		148
+#define INT_MTU1_TGIB1		149
+#define INT_MTU2_TGIA2		150
+#define INT_MTU2_TGIB2		151
+#define INT_MTU3_TGIA3		152
+#define INT_MTU3_TGIB3		153
+#define INT_MTU3_TGIC3		154
+#define INT_MTU3_TGID3		155
+#define INT_MTU4_TGIA4		156
+#define INT_MTU4_TGIB4		157
+#define INT_MTU4_TGIC4		158
+#define INT_MTU4_TGID4		159
+#define INT_MTU4_TCIV4		160
+#define INT_MTU5_TGIU5		161
+#define INT_MTU5_TGIV5		162
+#define INT_MTU5_TGIW5		163
+#define INT_MTU5_TGI11A		164
+#define INT_MTU5_TGI11B		165
+#define INT_POE_OEI1		166
+#define INT_POE_OEI2		167
+#define INT_TMR0_CMI0A		170
+#define INT_TMR0_CMI0B		171
+#define INT_TMR0_OV0I		172
+#define INT_TMR1_CMI1A		173
+#define INT_TMR1_CMI1B		174
+#define INT_TMR1_OV1I		175
+#define INT_TMR2_CMI2A		176
+#define INT_TMR2_CMI2B		177
+#define INT_TMR2_OV2I		178
+#define INT_TMR3_CMI3A		179
+#define INT_TMR3_CMI3B		180
+#define INT_TMR3_OV3I		181
+#define INT_RIIC0_EEI		182
+#define INT_RIIC0_RXI		183
+#define INT_RIIC0_TXI		184
+#define INT_RIIC0_TEI		185
+#define INT_RIIC1_EEI		186
+#define INT_RIIC1_RXI		187
+#define INT_RIIC1_TXI		188
+#define INT_RIIC1_TEI		189
+#define INT_RIIC2_EEI		190
+#define INT_RIIC2_RXI		191
+#define INT_RIIC2_TXI		192
+#define INT_RIIC2_TEI		193
+#define INT_RIIC3_EEI		194
+#define INT_RIIC3_RXI		195
+#define INT_RIIC3_TXI		196
+#define INT_RIIC3_TEI		197
+#define INT_DMAC_DMAC0I		198
+#define INT_DMAC_DMAC1I		199
+#define INT_DMAC_DMAC2I		200
+#define INT_DMAC_DMAC3I		201
+#define INT_SCI0_RXI		214
+#define INT_SCI0_TXI		215
+#define INT_SCI0_TEI		216
+#define INT_SCI1_RXI		217
+#define INT_SCI1_TXI		218
+#define INT_SCI1_TEI		219
+#define INT_SCI2_RXI		220
+#define INT_SCI2_TXI		221
+#define INT_SCI2_TEI		222
+#define INT_SCI3_RXI		223
+#define INT_SCI3_TXI		224
+#define INT_SCI3_TEI		225
+#define INT_SCI4_RXI		226
+#define INT_SCI4_TXI		227
+#define INT_SCI4_TEI		228
+#define INT_SCI5_RXI		229
+#define INT_SCI5_TXI		230
+#define INT_SCI5_TEI		231
+#define INT_SCI6_RXI		232
+#define INT_SCI6_TXI		233
+#define INT_SCI6_TEI		234
+#define INT_SCI7_RXI		235
+#define INT_SCI7_TXI		236
+#define INT_SCI7_TEI		237
+#define INT_SCI8_RXI		238
+#define INT_SCI8_TXI		239
+#define INT_SCI8_TEI		240
+#define INT_SCI9_RXI		241
+#define INT_SCI9_TXI		242
+#define INT_SCI9_TEI		243
+#define INT_SCI10_RXI		244
+#define INT_SCI10_TXI		245
+#define INT_SCI10_TEI		246
+#define INT_SCI11_RXI		247
+#define INT_SCI11_TXI		248
+#define INT_SCI11_TEI		249
+#define INT_SCI12_RXI		250
+#define INT_SCI12_TXI		251
+#define INT_SCI12_TEI		252
+#define INT_IEB_IEBINT		253
+
+/*
+ *  åã¢ã¸ã¥ã¼ã«ã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+
+#define SYSTEM_SYSCR0_ADDR		( ( volatile uint16_t __evenaccess * )0x00080006 )
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Aï¼MSTPCRAï¼
+ */
+#define SYSTEM_MSTPCRA_ADDR			( ( volatile uint32_t __evenaccess * )0x00080010 )
+#define SYSTEM_MSTPCRA_MSTPA0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRA_MSTPA1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRA_MSTPA2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRA_MSTPA3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRA_MSTPA4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRA_MSTPA5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRA_MSTPA6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRA_MSTPA7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRA_MSTPA8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRA_MSTPA9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRA_MSTPA10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRA_MSTPA11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRA_MSTPA12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRA_MSTPA13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRA_MSTPA14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRA_MSTPA15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRA_MSTPA16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRA_MSTPA17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRA_MSTPA18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRA_MSTPA19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRA_MSTPA20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRA_MSTPA21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRA_MSTPA22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRA_MSTPA23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRA_MSTPA24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRA_MSTPA25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRA_MSTPA26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRA_MSTPA27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRA_MSTPA28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRA_MSTPA29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRA_MSTPA30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRA_MSTPA31_BIT	( 1UL << 31U )
+#define SYSTEM_MSTPCRA_ACSE_BIT		( 1UL << 31U)
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Bï¼MSTPCRBï¼
+ */
+#define SYSTEM_MSTPCRB_ADDR			( ( volatile uint32_t __evenaccess * )0x00080014 )
+#define SYSTEM_MSTPCRB_MSTPB0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRB_MSTPB1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRB_MSTPB2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRB_MSTPB3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRB_MSTPB4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRB_MSTPB5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRB_MSTPB6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRB_MSTPB7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRB_MSTPB8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRB_MSTPB9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRB_MSTPB10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRB_MSTPB11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRB_MSTPB12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRB_MSTPB13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRB_MSTPB14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRB_MSTPB15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRB_MSTPB16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRB_MSTPB17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRB_MSTPB18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRB_MSTPB19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRB_MSTPB20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRB_MSTPB21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRB_MSTPB22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRB_MSTPB23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRB_MSTPB24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRB_MSTPB25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRB_MSTPB26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRB_MSTPB27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRB_MSTPB28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRB_MSTPB29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRB_MSTPB30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRB_MSTPB31_BIT	( 1UL << 31U )
+
+/*
+ * ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿Cï¼MSTPCRCï¼
+ */
+#define SYSTEM_MSTPCRC_ADDR			( ( volatile uint32_t __evenaccess * )0x00080018 )
+#define SYSTEM_MSTPCRC_MSTPC0_BIT	( 1UL << 0U )
+#define SYSTEM_MSTPCRC_MSTPC1_BIT	( 1UL << 1U )
+#define SYSTEM_MSTPCRC_MSTPC2_BIT	( 1UL << 2U )
+#define SYSTEM_MSTPCRC_MSTPC3_BIT	( 1UL << 3U )
+#define SYSTEM_MSTPCRC_MSTPC4_BIT	( 1UL << 4U )
+#define SYSTEM_MSTPCRC_MSTPC5_BIT	( 1UL << 5U )
+#define SYSTEM_MSTPCRC_MSTPC6_BIT	( 1UL << 6U )
+#define SYSTEM_MSTPCRC_MSTPC7_BIT	( 1UL << 7U )
+#define SYSTEM_MSTPCRC_MSTPC8_BIT	( 1UL << 8U )
+#define SYSTEM_MSTPCRC_MSTPC9_BIT	( 1UL << 9U )
+#define SYSTEM_MSTPCRC_MSTPC10_BIT	( 1UL << 10U )
+#define SYSTEM_MSTPCRC_MSTPC11_BIT	( 1UL << 11U )
+#define SYSTEM_MSTPCRC_MSTPC12_BIT	( 1UL << 12U )
+#define SYSTEM_MSTPCRC_MSTPC13_BIT	( 1UL << 13U )
+#define SYSTEM_MSTPCRC_MSTPC14_BIT	( 1UL << 14U )
+#define SYSTEM_MSTPCRC_MSTPC15_BIT	( 1UL << 15U )
+#define SYSTEM_MSTPCRC_MSTPC16_BIT	( 1UL << 16U )
+#define SYSTEM_MSTPCRC_MSTPC17_BIT	( 1UL << 17U )
+#define SYSTEM_MSTPCRC_MSTPC18_BIT	( 1UL << 18U )
+#define SYSTEM_MSTPCRC_MSTPC19_BIT	( 1UL << 19U )
+#define SYSTEM_MSTPCRC_MSTPC20_BIT	( 1UL << 20U )
+#define SYSTEM_MSTPCRC_MSTPC21_BIT	( 1UL << 21U )
+#define SYSTEM_MSTPCRC_MSTPC22_BIT	( 1UL << 22U )
+#define SYSTEM_MSTPCRC_MSTPC23_BIT	( 1UL << 23U )
+#define SYSTEM_MSTPCRC_MSTPC24_BIT	( 1UL << 24U )
+#define SYSTEM_MSTPCRC_MSTPC25_BIT	( 1UL << 25U )
+#define SYSTEM_MSTPCRC_MSTPC26_BIT	( 1UL << 26U )
+#define SYSTEM_MSTPCRC_MSTPC27_BIT	( 1UL << 27U )
+#define SYSTEM_MSTPCRC_MSTPC28_BIT	( 1UL << 28U )
+#define SYSTEM_MSTPCRC_MSTPC29_BIT	( 1UL << 29U )
+#define SYSTEM_MSTPCRC_MSTPC30_BIT	( 1UL << 30U )
+#define SYSTEM_MSTPCRC_MSTPC31_BIT	( 1UL << 31U )
+
+/*
+ * ã¯ã­ãã¯çºçåè·¯
+ */
+#define SYSTEM_SCKCR_ADDR			( ( volatile uint32_t __evenaccess * )0x00080020 )
+#define SYSTEM_SCKCR2_ADDR		( ( volatile uint16_t __evenaccess * )0x00080024 )
+#define SYSTEM_SCKCR2_UCK_OFFSET	( 4U )
+#define SYSTEM_SCKCR2_UCK_MASK		( 0xFU << SYSTEM_SCKCR2_UCK_OFFSET )
+#define SYSTEM_SCKCR3_ADDR		( ( volatile uint16_t __evenaccess * )0x00080026 )
+#define SYSTEM_SCKCR3_CKSEL_OFFSET	( 8U )
+#define SYSTEM_SCKCR3_CKSEL_MASK	( 0x7U << SYSTEM_SCKCR3_CKSEL_OFFSET )
+#define SYSTEM_PLLCR_ADDR		( ( volatile uint16_t __evenaccess * )0x00080028 )
+#define SYSTEM_PLLCR_STC_OFFSET		( 8U )
+#define SYSTEM_PLLCR_STC_MASK		( 0x3FU << SYSTEM_PLLCR_STC_OFFSET )
+#define SYSTEM_PLLCR2_ADDR			( ( volatile uint8_t __evenaccess * )0x0008002A )
+#define SYSTEM_PLLCR2_PLLEN			( 1UL << 0U )
+#define SYSTEM_MOFCR_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C293 )
+#define SYSTEM_MOFCR_MOFXIN		( 1UL << 0U )
+#define SYSTEM_MOSCCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00080032 )
+#define SYSTEM_MOSCCR_MOSTP			( 1UL << 0U )
+
+/*
+ * ãã­ãã¯ãã¬ã¸ã¹ã¿
+ */
+#define SYSTEM_PRCR_ADDR		( ( volatile uint16_t __evenaccess * )0x000803FE )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿
+ */
+#define ICU_IR000_ADDR			( ( volatile uint8_t __evenaccess * )0x00087000 )
+#define ICU_IR001_ADDR			( ( volatile uint8_t __evenaccess * )0x00087001 )
+#define ICU_IR002_ADDR			( ( volatile uint8_t __evenaccess * )0x00087002 )
+#define ICU_IR003_ADDR			( ( volatile uint8_t __evenaccess * )0x00087003 )
+#define ICU_IR004_ADDR			( ( volatile uint8_t __evenaccess * )0x00087004 )
+#define ICU_IR005_ADDR			( ( volatile uint8_t __evenaccess * )0x00087005 )
+#define ICU_IR006_ADDR			( ( volatile uint8_t __evenaccess * )0x00087006 )
+#define ICU_IR007_ADDR			( ( volatile uint8_t __evenaccess * )0x00087007 )
+#define ICU_IR008_ADDR			( ( volatile uint8_t __evenaccess * )0x00087008 )
+#define ICU_IR009_ADDR			( ( volatile uint8_t __evenaccess * )0x00087009 )
+#define ICU_IR010_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700A )
+#define ICU_IR011_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700B )
+#define ICU_IR012_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700C )
+#define ICU_IR013_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700D )
+#define ICU_IR014_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700E )
+#define ICU_IR015_ADDR			( ( volatile uint8_t __evenaccess * )0x0008700F )
+#define ICU_IR016_ADDR			( ( volatile uint8_t __evenaccess * )0x00087010 )
+#define ICU_IR017_ADDR			( ( volatile uint8_t __evenaccess * )0x00087011 )
+#define ICU_IR018_ADDR			( ( volatile uint8_t __evenaccess * )0x00087012 )
+#define ICU_IR019_ADDR			( ( volatile uint8_t __evenaccess * )0x00087013 )
+#define ICU_IR020_ADDR			( ( volatile uint8_t __evenaccess * )0x00087014 )
+#define ICU_IR021_ADDR			( ( volatile uint8_t __evenaccess * )0x00087015 )
+#define ICU_IR022_ADDR			( ( volatile uint8_t __evenaccess * )0x00087016 )
+#define ICU_IR023_ADDR			( ( volatile uint8_t __evenaccess * )0x00087017 )
+#define ICU_IR024_ADDR			( ( volatile uint8_t __evenaccess * )0x00087018 )
+#define ICU_IR025_ADDR			( ( volatile uint8_t __evenaccess * )0x00087019 )
+#define ICU_IR026_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701A )
+#define ICU_IR027_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701B )
+#define ICU_IR028_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701C )
+#define ICU_IR029_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701D )
+#define ICU_IR030_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701E )
+#define ICU_IR031_ADDR			( ( volatile uint8_t __evenaccess * )0x0008701F )
+#define ICU_IR032_ADDR			( ( volatile uint8_t __evenaccess * )0x00087020 )
+#define ICU_IR033_ADDR			( ( volatile uint8_t __evenaccess * )0x00087021 )
+#define ICU_IR034_ADDR			( ( volatile uint8_t __evenaccess * )0x00087022 )
+#define ICU_IR035_ADDR			( ( volatile uint8_t __evenaccess * )0x00087023 )
+#define ICU_IR036_ADDR			( ( volatile uint8_t __evenaccess * )0x00087024 )
+#define ICU_IR037_ADDR			( ( volatile uint8_t __evenaccess * )0x00087025 )
+#define ICU_IR038_ADDR			( ( volatile uint8_t __evenaccess * )0x00087026 )
+#define ICU_IR039_ADDR			( ( volatile uint8_t __evenaccess * )0x00087027 )
+#define ICU_IR040_ADDR			( ( volatile uint8_t __evenaccess * )0x00087028 )
+#define ICU_IR041_ADDR			( ( volatile uint8_t __evenaccess * )0x00087029 )
+#define ICU_IR042_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702A )
+#define ICU_IR043_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702B )
+#define ICU_IR044_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702C )
+#define ICU_IR045_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702D )
+#define ICU_IR046_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702E )
+#define ICU_IR047_ADDR			( ( volatile uint8_t __evenaccess * )0x0008702F )
+#define ICU_IR048_ADDR			( ( volatile uint8_t __evenaccess * )0x00087030 )
+#define ICU_IR049_ADDR			( ( volatile uint8_t __evenaccess * )0x00087031 )
+#define ICU_IR050_ADDR			( ( volatile uint8_t __evenaccess * )0x00087032 )
+#define ICU_IR051_ADDR			( ( volatile uint8_t __evenaccess * )0x00087033 )
+#define ICU_IR052_ADDR			( ( volatile uint8_t __evenaccess * )0x00087034 )
+#define ICU_IR053_ADDR			( ( volatile uint8_t __evenaccess * )0x00087035 )
+#define ICU_IR054_ADDR			( ( volatile uint8_t __evenaccess * )0x00087036 )
+#define ICU_IR055_ADDR			( ( volatile uint8_t __evenaccess * )0x00087037 )
+#define ICU_IR056_ADDR			( ( volatile uint8_t __evenaccess * )0x00087038 )
+#define ICU_IR057_ADDR			( ( volatile uint8_t __evenaccess * )0x00087039 )
+#define ICU_IR058_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703A )
+#define ICU_IR059_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703B )
+#define ICU_IR060_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703C )
+#define ICU_IR061_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703D )
+#define ICU_IR062_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703E )
+#define ICU_IR063_ADDR			( ( volatile uint8_t __evenaccess * )0x0008703F )
+#define ICU_IR064_ADDR			( ( volatile uint8_t __evenaccess * )0x00087040 )
+#define ICU_IR065_ADDR			( ( volatile uint8_t __evenaccess * )0x00087041 )
+#define ICU_IR066_ADDR			( ( volatile uint8_t __evenaccess * )0x00087042 )
+#define ICU_IR067_ADDR			( ( volatile uint8_t __evenaccess * )0x00087043 )
+#define ICU_IR068_ADDR			( ( volatile uint8_t __evenaccess * )0x00087044 )
+#define ICU_IR069_ADDR			( ( volatile uint8_t __evenaccess * )0x00087045 )
+#define ICU_IR070_ADDR			( ( volatile uint8_t __evenaccess * )0x00087046 )
+#define ICU_IR071_ADDR			( ( volatile uint8_t __evenaccess * )0x00087047 )
+#define ICU_IR072_ADDR			( ( volatile uint8_t __evenaccess * )0x00087048 )
+#define ICU_IR073_ADDR			( ( volatile uint8_t __evenaccess * )0x00087049 )
+#define ICU_IR074_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704A )
+#define ICU_IR075_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704B )
+#define ICU_IR076_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704C )
+#define ICU_IR077_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704D )
+#define ICU_IR078_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704E )
+#define ICU_IR079_ADDR			( ( volatile uint8_t __evenaccess * )0x0008704F )
+#define ICU_IR080_ADDR			( ( volatile uint8_t __evenaccess * )0x00087050 )
+#define ICU_IR081_ADDR			( ( volatile uint8_t __evenaccess * )0x00087051 )
+#define ICU_IR082_ADDR			( ( volatile uint8_t __evenaccess * )0x00087052 )
+#define ICU_IR083_ADDR			( ( volatile uint8_t __evenaccess * )0x00087053 )
+#define ICU_IR084_ADDR			( ( volatile uint8_t __evenaccess * )0x00087054 )
+#define ICU_IR085_ADDR			( ( volatile uint8_t __evenaccess * )0x00087055 )
+#define ICU_IR086_ADDR			( ( volatile uint8_t __evenaccess * )0x00087056 )
+#define ICU_IR087_ADDR			( ( volatile uint8_t __evenaccess * )0x00087057 )
+#define ICU_IR088_ADDR			( ( volatile uint8_t __evenaccess * )0x00087058 )
+#define ICU_IR089_ADDR			( ( volatile uint8_t __evenaccess * )0x00087059 )
+#define ICU_IR090_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705A )
+#define ICU_IR091_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705B )
+#define ICU_IR092_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705C )
+#define ICU_IR093_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705D )
+#define ICU_IR094_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705E )
+#define ICU_IR095_ADDR			( ( volatile uint8_t __evenaccess * )0x0008705F )
+#define ICU_IR096_ADDR			( ( volatile uint8_t __evenaccess * )0x00087060 )
+#define ICU_IR097_ADDR			( ( volatile uint8_t __evenaccess * )0x00087061 )
+#define ICU_IR098_ADDR			( ( volatile uint8_t __evenaccess * )0x00087062 )
+#define ICU_IR099_ADDR			( ( volatile uint8_t __evenaccess * )0x00087063 )
+#define ICU_IR100_ADDR			( ( volatile uint8_t __evenaccess * )0x00087064 )
+#define ICU_IR101_ADDR			( ( volatile uint8_t __evenaccess * )0x00087065 )
+#define ICU_IR102_ADDR			( ( volatile uint8_t __evenaccess * )0x00087066 )
+#define ICU_IR103_ADDR			( ( volatile uint8_t __evenaccess * )0x00087067 )
+#define ICU_IR104_ADDR			( ( volatile uint8_t __evenaccess * )0x00087068 )
+#define ICU_IR105_ADDR			( ( volatile uint8_t __evenaccess * )0x00087069 )
+#define ICU_IR106_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706A )
+#define ICU_IR107_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706B )
+#define ICU_IR108_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706C )
+#define ICU_IR109_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706D )
+#define ICU_IR110_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706E )
+#define ICU_IR111_ADDR			( ( volatile uint8_t __evenaccess * )0x0008706F )
+#define ICU_IR112_ADDR			( ( volatile uint8_t __evenaccess * )0x00087070 )
+#define ICU_IR113_ADDR			( ( volatile uint8_t __evenaccess * )0x00087071 )
+#define ICU_IR114_ADDR			( ( volatile uint8_t __evenaccess * )0x00087072 )
+#define ICU_IR115_ADDR			( ( volatile uint8_t __evenaccess * )0x00087073 )
+#define ICU_IR116_ADDR			( ( volatile uint8_t __evenaccess * )0x00087074 )
+#define ICU_IR117_ADDR			( ( volatile uint8_t __evenaccess * )0x00087075 )
+#define ICU_IR118_ADDR			( ( volatile uint8_t __evenaccess * )0x00087076 )
+#define ICU_IR119_ADDR			( ( volatile uint8_t __evenaccess * )0x00087077 )
+#define ICU_IR120_ADDR			( ( volatile uint8_t __evenaccess * )0x00087078 )
+#define ICU_IR121_ADDR			( ( volatile uint8_t __evenaccess * )0x00087079 )
+#define ICU_IR122_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707A )
+#define ICU_IR123_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707B )
+#define ICU_IR124_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707C )
+#define ICU_IR125_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707D )
+#define ICU_IR126_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707E )
+#define ICU_IR127_ADDR			( ( volatile uint8_t __evenaccess * )0x0008707F )
+#define ICU_IR128_ADDR			( ( volatile uint8_t __evenaccess * )0x00087080 )
+#define ICU_IR129_ADDR			( ( volatile uint8_t __evenaccess * )0x00087081 )
+#define ICU_IR130_ADDR			( ( volatile uint8_t __evenaccess * )0x00087082 )
+#define ICU_IR131_ADDR			( ( volatile uint8_t __evenaccess * )0x00087083 )
+#define ICU_IR132_ADDR			( ( volatile uint8_t __evenaccess * )0x00087084 )
+#define ICU_IR133_ADDR			( ( volatile uint8_t __evenaccess * )0x00087085 )
+#define ICU_IR134_ADDR			( ( volatile uint8_t __evenaccess * )0x00087086 )
+#define ICU_IR135_ADDR			( ( volatile uint8_t __evenaccess * )0x00087087 )
+#define ICU_IR136_ADDR			( ( volatile uint8_t __evenaccess * )0x00087088 )
+#define ICU_IR137_ADDR			( ( volatile uint8_t __evenaccess * )0x00087089 )
+#define ICU_IR138_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708A )
+#define ICU_IR139_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708B )
+#define ICU_IR140_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708C )
+#define ICU_IR141_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708D )
+#define ICU_IR142_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708E )
+#define ICU_IR143_ADDR			( ( volatile uint8_t __evenaccess * )0x0008708F )
+#define ICU_IR144_ADDR			( ( volatile uint8_t __evenaccess * )0x00087090 )
+#define ICU_IR145_ADDR			( ( volatile uint8_t __evenaccess * )0x00087091 )
+#define ICU_IR146_ADDR			( ( volatile uint8_t __evenaccess * )0x00087092 )
+#define ICU_IR147_ADDR			( ( volatile uint8_t __evenaccess * )0x00087093 )
+#define ICU_IR148_ADDR			( ( volatile uint8_t __evenaccess * )0x00087094 )
+#define ICU_IR149_ADDR			( ( volatile uint8_t __evenaccess * )0x00087095 )
+#define ICU_IR150_ADDR			( ( volatile uint8_t __evenaccess * )0x00087096 )
+#define ICU_IR151_ADDR			( ( volatile uint8_t __evenaccess * )0x00087097 )
+#define ICU_IR152_ADDR			( ( volatile uint8_t __evenaccess * )0x00087098 )
+#define ICU_IR153_ADDR			( ( volatile uint8_t __evenaccess * )0x00087099 )
+#define ICU_IR154_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709A )
+#define ICU_IR155_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709B )
+#define ICU_IR156_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709C )
+#define ICU_IR157_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709D )
+#define ICU_IR158_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709E )
+#define ICU_IR159_ADDR			( ( volatile uint8_t __evenaccess * )0x0008709F )
+#define ICU_IR160_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A0 )
+#define ICU_IR161_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A1 )
+#define ICU_IR162_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A2 )
+#define ICU_IR163_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A3 )
+#define ICU_IR164_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A4 )
+#define ICU_IR165_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A5 )
+#define ICU_IR166_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A6 )
+#define ICU_IR167_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A7 )
+#define ICU_IR168_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A8 )
+#define ICU_IR169_ADDR			( ( volatile uint8_t __evenaccess * )0x000870A9 )
+#define ICU_IR170_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AA )
+#define ICU_IR171_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AB )
+#define ICU_IR172_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AC )
+#define ICU_IR173_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AD )
+#define ICU_IR174_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AE )
+#define ICU_IR175_ADDR			( ( volatile uint8_t __evenaccess * )0x000870AF )
+#define ICU_IR176_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B0 )
+#define ICU_IR177_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B1 )
+#define ICU_IR178_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B2 )
+#define ICU_IR179_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B3 )
+#define ICU_IR180_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B4 )
+#define ICU_IR181_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B5 )
+#define ICU_IR182_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B6 )
+#define ICU_IR183_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B7 )
+#define ICU_IR184_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B8 )
+#define ICU_IR185_ADDR			( ( volatile uint8_t __evenaccess * )0x000870B9 )
+#define ICU_IR186_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BA )
+#define ICU_IR187_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BB )
+#define ICU_IR188_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BC )
+#define ICU_IR189_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BD )
+#define ICU_IR190_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BE )
+#define ICU_IR191_ADDR			( ( volatile uint8_t __evenaccess * )0x000870BF )
+#define ICU_IR192_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C0 )
+#define ICU_IR193_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C1 )
+#define ICU_IR194_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C2 )
+#define ICU_IR195_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C3 )
+#define ICU_IR196_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C4 )
+#define ICU_IR197_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C5 )
+#define ICU_IR198_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C6 )
+#define ICU_IR199_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C7 )
+#define ICU_IR200_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C8 )
+#define ICU_IR201_ADDR			( ( volatile uint8_t __evenaccess * )0x000870C9 )
+#define ICU_IR202_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CA )
+#define ICU_IR203_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CB )
+#define ICU_IR204_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CC )
+#define ICU_IR205_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CD )
+#define ICU_IR206_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CE )
+#define ICU_IR207_ADDR			( ( volatile uint8_t __evenaccess * )0x000870CF )
+#define ICU_IR208_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D0 )
+#define ICU_IR209_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D1 )
+#define ICU_IR210_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D2 )
+#define ICU_IR211_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D3 )
+#define ICU_IR212_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D4 )
+#define ICU_IR213_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D5 )
+#define ICU_IR214_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D6 )
+#define ICU_IR215_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D7 )
+#define ICU_IR216_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D8 )
+#define ICU_IR217_ADDR			( ( volatile uint8_t __evenaccess * )0x000870D9 )
+#define ICU_IR218_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DA )
+#define ICU_IR219_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DB )
+#define ICU_IR220_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DC )
+#define ICU_IR221_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DD )
+#define ICU_IR222_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DE )
+#define ICU_IR223_ADDR			( ( volatile uint8_t __evenaccess * )0x000870DF )
+#define ICU_IR224_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E0 )
+#define ICU_IR225_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E1 )
+#define ICU_IR226_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E2 )
+#define ICU_IR227_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E3 )
+#define ICU_IR228_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E4 )
+#define ICU_IR229_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E5 )
+#define ICU_IR230_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E6 )
+#define ICU_IR231_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E7 )
+#define ICU_IR232_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E8 )
+#define ICU_IR233_ADDR			( ( volatile uint8_t __evenaccess * )0x000870E9 )
+#define ICU_IR234_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EA )
+#define ICU_IR235_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EB )
+#define ICU_IR236_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EC )
+#define ICU_IR237_ADDR			( ( volatile uint8_t __evenaccess * )0x000870ED )
+#define ICU_IR238_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EE )
+#define ICU_IR239_ADDR			( ( volatile uint8_t __evenaccess * )0x000870EF )
+#define ICU_IR240_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F0 )
+#define ICU_IR241_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F1 )
+#define ICU_IR242_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F2 )
+#define ICU_IR243_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F3 )
+#define ICU_IR244_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F4 )
+#define ICU_IR245_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F5 )
+#define ICU_IR246_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F6 )
+#define ICU_IR247_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F7 )
+#define ICU_IR248_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F8 )
+#define ICU_IR249_ADDR			( ( volatile uint8_t __evenaccess * )0x000870F9 )
+#define ICU_IR250_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FA )
+#define ICU_IR251_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FB )
+#define ICU_IR252_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FC )
+#define ICU_IR253_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FD )
+#define ICU_IR254_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FE )
+#define ICU_IR255_ADDR			( ( volatile uint8_t __evenaccess * )0x000870FF )
+#define ICU_IR_BIT				( 1U << 0U )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿
+ */
+#define ICU_ISELR000_ADDR		( ( volatile uint8_t __evenaccess * )0x00087100 )
+#define ICU_ISELR001_ADDR		( ( volatile uint8_t __evenaccess * )0x00087101 )
+#define ICU_ISELR002_ADDR		( ( volatile uint8_t __evenaccess * )0x00087102 )
+#define ICU_ISELR003_ADDR		( ( volatile uint8_t __evenaccess * )0x00087103 )
+#define ICU_ISELR004_ADDR		( ( volatile uint8_t __evenaccess * )0x00087104 )
+#define ICU_ISELR005_ADDR		( ( volatile uint8_t __evenaccess * )0x00087105 )
+#define ICU_ISELR006_ADDR		( ( volatile uint8_t __evenaccess * )0x00087106 )
+#define ICU_ISELR007_ADDR		( ( volatile uint8_t __evenaccess * )0x00087107 )
+#define ICU_ISELR008_ADDR		( ( volatile uint8_t __evenaccess * )0x00087108 )
+#define ICU_ISELR009_ADDR		( ( volatile uint8_t __evenaccess * )0x00087109 )
+#define ICU_ISELR010_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710A )
+#define ICU_ISELR011_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710B )
+#define ICU_ISELR012_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710C )
+#define ICU_ISELR013_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710D )
+#define ICU_ISELR014_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710E )
+#define ICU_ISELR015_ADDR		( ( volatile uint8_t __evenaccess * )0x0008710F )
+#define ICU_ISELR016_ADDR		( ( volatile uint8_t __evenaccess * )0x00087110 )
+#define ICU_ISELR017_ADDR		( ( volatile uint8_t __evenaccess * )0x00087111 )
+#define ICU_ISELR018_ADDR		( ( volatile uint8_t __evenaccess * )0x00087112 )
+#define ICU_ISELR019_ADDR		( ( volatile uint8_t __evenaccess * )0x00087113 )
+#define ICU_ISELR020_ADDR		( ( volatile uint8_t __evenaccess * )0x00087114 )
+#define ICU_ISELR021_ADDR		( ( volatile uint8_t __evenaccess * )0x00087115 )
+#define ICU_ISELR022_ADDR		( ( volatile uint8_t __evenaccess * )0x00087116 )
+#define ICU_ISELR023_ADDR		( ( volatile uint8_t __evenaccess * )0x00087117 )
+#define ICU_ISELR024_ADDR		( ( volatile uint8_t __evenaccess * )0x00087118 )
+#define ICU_ISELR025_ADDR		( ( volatile uint8_t __evenaccess * )0x00087119 )
+#define ICU_ISELR026_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711A )
+#define ICU_ISELR027_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711B )
+#define ICU_ISELR028_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711C )
+#define ICU_ISELR029_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711D )
+#define ICU_ISELR030_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711E )
+#define ICU_ISELR031_ADDR		( ( volatile uint8_t __evenaccess * )0x0008711F )
+#define ICU_ISELR032_ADDR		( ( volatile uint8_t __evenaccess * )0x00087120 )
+#define ICU_ISELR033_ADDR		( ( volatile uint8_t __evenaccess * )0x00087121 )
+#define ICU_ISELR034_ADDR		( ( volatile uint8_t __evenaccess * )0x00087122 )
+#define ICU_ISELR035_ADDR		( ( volatile uint8_t __evenaccess * )0x00087123 )
+#define ICU_ISELR036_ADDR		( ( volatile uint8_t __evenaccess * )0x00087124 )
+#define ICU_ISELR037_ADDR		( ( volatile uint8_t __evenaccess * )0x00087125 )
+#define ICU_ISELR038_ADDR		( ( volatile uint8_t __evenaccess * )0x00087126 )
+#define ICU_ISELR039_ADDR		( ( volatile uint8_t __evenaccess * )0x00087127 )
+#define ICU_ISELR040_ADDR		( ( volatile uint8_t __evenaccess * )0x00087128 )
+#define ICU_ISELR041_ADDR		( ( volatile uint8_t __evenaccess * )0x00087129 )
+#define ICU_ISELR042_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712A )
+#define ICU_ISELR043_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712B )
+#define ICU_ISELR044_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712C )
+#define ICU_ISELR045_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712D )
+#define ICU_ISELR046_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712E )
+#define ICU_ISELR047_ADDR		( ( volatile uint8_t __evenaccess * )0x0008712F )
+#define ICU_ISELR048_ADDR		( ( volatile uint8_t __evenaccess * )0x00087130 )
+#define ICU_ISELR049_ADDR		( ( volatile uint8_t __evenaccess * )0x00087131 )
+#define ICU_ISELR050_ADDR		( ( volatile uint8_t __evenaccess * )0x00087132 )
+#define ICU_ISELR051_ADDR		( ( volatile uint8_t __evenaccess * )0x00087133 )
+#define ICU_ISELR052_ADDR		( ( volatile uint8_t __evenaccess * )0x00087134 )
+#define ICU_ISELR053_ADDR		( ( volatile uint8_t __evenaccess * )0x00087135 )
+#define ICU_ISELR054_ADDR		( ( volatile uint8_t __evenaccess * )0x00087136 )
+#define ICU_ISELR055_ADDR		( ( volatile uint8_t __evenaccess * )0x00087137 )
+#define ICU_ISELR056_ADDR		( ( volatile uint8_t __evenaccess * )0x00087138 )
+#define ICU_ISELR057_ADDR		( ( volatile uint8_t __evenaccess * )0x00087139 )
+#define ICU_ISELR058_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713A )
+#define ICU_ISELR059_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713B )
+#define ICU_ISELR060_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713C )
+#define ICU_ISELR061_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713D )
+#define ICU_ISELR062_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713E )
+#define ICU_ISELR063_ADDR		( ( volatile uint8_t __evenaccess * )0x0008713F )
+#define ICU_ISELR064_ADDR		( ( volatile uint8_t __evenaccess * )0x00087140 )
+#define ICU_ISELR065_ADDR		( ( volatile uint8_t __evenaccess * )0x00087141 )
+#define ICU_ISELR066_ADDR		( ( volatile uint8_t __evenaccess * )0x00087142 )
+#define ICU_ISELR067_ADDR		( ( volatile uint8_t __evenaccess * )0x00087143 )
+#define ICU_ISELR068_ADDR		( ( volatile uint8_t __evenaccess * )0x00087144 )
+#define ICU_ISELR069_ADDR		( ( volatile uint8_t __evenaccess * )0x00087145 )
+#define ICU_ISELR070_ADDR		( ( volatile uint8_t __evenaccess * )0x00087146 )
+#define ICU_ISELR071_ADDR		( ( volatile uint8_t __evenaccess * )0x00087147 )
+#define ICU_ISELR072_ADDR		( ( volatile uint8_t __evenaccess * )0x00087148 )
+#define ICU_ISELR073_ADDR		( ( volatile uint8_t __evenaccess * )0x00087149 )
+#define ICU_ISELR074_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714A )
+#define ICU_ISELR075_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714B )
+#define ICU_ISELR076_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714C )
+#define ICU_ISELR077_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714D )
+#define ICU_ISELR078_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714E )
+#define ICU_ISELR079_ADDR		( ( volatile uint8_t __evenaccess * )0x0008714F )
+#define ICU_ISELR080_ADDR		( ( volatile uint8_t __evenaccess * )0x00087150 )
+#define ICU_ISELR081_ADDR		( ( volatile uint8_t __evenaccess * )0x00087151 )
+#define ICU_ISELR082_ADDR		( ( volatile uint8_t __evenaccess * )0x00087152 )
+#define ICU_ISELR083_ADDR		( ( volatile uint8_t __evenaccess * )0x00087153 )
+#define ICU_ISELR084_ADDR		( ( volatile uint8_t __evenaccess * )0x00087154 )
+#define ICU_ISELR085_ADDR		( ( volatile uint8_t __evenaccess * )0x00087155 )
+#define ICU_ISELR086_ADDR		( ( volatile uint8_t __evenaccess * )0x00087156 )
+#define ICU_ISELR087_ADDR		( ( volatile uint8_t __evenaccess * )0x00087157 )
+#define ICU_ISELR088_ADDR		( ( volatile uint8_t __evenaccess * )0x00087158 )
+#define ICU_ISELR089_ADDR		( ( volatile uint8_t __evenaccess * )0x00087159 )
+#define ICU_ISELR090_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715A )
+#define ICU_ISELR091_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715B )
+#define ICU_ISELR092_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715C )
+#define ICU_ISELR093_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715D )
+#define ICU_ISELR094_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715E )
+#define ICU_ISELR095_ADDR		( ( volatile uint8_t __evenaccess * )0x0008715F )
+#define ICU_ISELR096_ADDR		( ( volatile uint8_t __evenaccess * )0x00087160 )
+#define ICU_ISELR097_ADDR		( ( volatile uint8_t __evenaccess * )0x00087161 )
+#define ICU_ISELR098_ADDR		( ( volatile uint8_t __evenaccess * )0x00087162 )
+#define ICU_ISELR099_ADDR		( ( volatile uint8_t __evenaccess * )0x00087163 )
+#define ICU_ISELR100_ADDR		( ( volatile uint8_t __evenaccess * )0x00087164 )
+#define ICU_ISELR101_ADDR		( ( volatile uint8_t __evenaccess * )0x00087165 )
+#define ICU_ISELR102_ADDR		( ( volatile uint8_t __evenaccess * )0x00087166 )
+#define ICU_ISELR103_ADDR		( ( volatile uint8_t __evenaccess * )0x00087167 )
+#define ICU_ISELR104_ADDR		( ( volatile uint8_t __evenaccess * )0x00087168 )
+#define ICU_ISELR105_ADDR		( ( volatile uint8_t __evenaccess * )0x00087169 )
+#define ICU_ISELR106_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716A )
+#define ICU_ISELR107_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716B )
+#define ICU_ISELR108_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716C )
+#define ICU_ISELR109_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716D )
+#define ICU_ISELR110_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716E )
+#define ICU_ISELR111_ADDR		( ( volatile uint8_t __evenaccess * )0x0008716F )
+#define ICU_ISELR112_ADDR		( ( volatile uint8_t __evenaccess * )0x00087170 )
+#define ICU_ISELR113_ADDR		( ( volatile uint8_t __evenaccess * )0x00087171 )
+#define ICU_ISELR114_ADDR		( ( volatile uint8_t __evenaccess * )0x00087172 )
+#define ICU_ISELR115_ADDR		( ( volatile uint8_t __evenaccess * )0x00087173 )
+#define ICU_ISELR116_ADDR		( ( volatile uint8_t __evenaccess * )0x00087174 )
+#define ICU_ISELR117_ADDR		( ( volatile uint8_t __evenaccess * )0x00087175 )
+#define ICU_ISELR118_ADDR		( ( volatile uint8_t __evenaccess * )0x00087176 )
+#define ICU_ISELR119_ADDR		( ( volatile uint8_t __evenaccess * )0x00087177 )
+#define ICU_ISELR120_ADDR		( ( volatile uint8_t __evenaccess * )0x00087178 )
+#define ICU_ISELR121_ADDR		( ( volatile uint8_t __evenaccess * )0x00087179 )
+#define ICU_ISELR122_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717A )
+#define ICU_ISELR123_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717B )
+#define ICU_ISELR124_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717C )
+#define ICU_ISELR125_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717D )
+#define ICU_ISELR126_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717E )
+#define ICU_ISELR127_ADDR		( ( volatile uint8_t __evenaccess * )0x0008717F )
+#define ICU_ISELR128_ADDR		( ( volatile uint8_t __evenaccess * )0x00087180 )
+#define ICU_ISELR129_ADDR		( ( volatile uint8_t __evenaccess * )0x00087181 )
+#define ICU_ISELR130_ADDR		( ( volatile uint8_t __evenaccess * )0x00087182 )
+#define ICU_ISELR131_ADDR		( ( volatile uint8_t __evenaccess * )0x00087183 )
+#define ICU_ISELR132_ADDR		( ( volatile uint8_t __evenaccess * )0x00087184 )
+#define ICU_ISELR133_ADDR		( ( volatile uint8_t __evenaccess * )0x00087185 )
+#define ICU_ISELR134_ADDR		( ( volatile uint8_t __evenaccess * )0x00087186 )
+#define ICU_ISELR135_ADDR		( ( volatile uint8_t __evenaccess * )0x00087187 )
+#define ICU_ISELR136_ADDR		( ( volatile uint8_t __evenaccess * )0x00087188 )
+#define ICU_ISELR137_ADDR		( ( volatile uint8_t __evenaccess * )0x00087189 )
+#define ICU_ISELR138_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718A )
+#define ICU_ISELR139_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718B )
+#define ICU_ISELR140_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718C )
+#define ICU_ISELR141_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718D )
+#define ICU_ISELR142_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718E )
+#define ICU_ISELR143_ADDR		( ( volatile uint8_t __evenaccess * )0x0008718F )
+#define ICU_ISELR144_ADDR		( ( volatile uint8_t __evenaccess * )0x00087190 )
+#define ICU_ISELR145_ADDR		( ( volatile uint8_t __evenaccess * )0x00087191 )
+#define ICU_ISELR146_ADDR		( ( volatile uint8_t __evenaccess * )0x00087192 )
+#define ICU_ISELR147_ADDR		( ( volatile uint8_t __evenaccess * )0x00087193 )
+#define ICU_ISELR148_ADDR		( ( volatile uint8_t __evenaccess * )0x00087194 )
+#define ICU_ISELR149_ADDR		( ( volatile uint8_t __evenaccess * )0x00087195 )
+#define ICU_ISELR150_ADDR		( ( volatile uint8_t __evenaccess * )0x00087196 )
+#define ICU_ISELR151_ADDR		( ( volatile uint8_t __evenaccess * )0x00087197 )
+#define ICU_ISELR152_ADDR		( ( volatile uint8_t __evenaccess * )0x00087198 )
+#define ICU_ISELR153_ADDR		( ( volatile uint8_t __evenaccess * )0x00087199 )
+#define ICU_ISELR154_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719A )
+#define ICU_ISELR155_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719B )
+#define ICU_ISELR156_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719C )
+#define ICU_ISELR157_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719D )
+#define ICU_ISELR158_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719E )
+#define ICU_ISELR159_ADDR		( ( volatile uint8_t __evenaccess * )0x0008719F )
+#define ICU_ISELR160_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A0 )
+#define ICU_ISELR161_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A1 )
+#define ICU_ISELR162_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A2 )
+#define ICU_ISELR163_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A3 )
+#define ICU_ISELR164_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A4 )
+#define ICU_ISELR165_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A5 )
+#define ICU_ISELR166_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A6 )
+#define ICU_ISELR167_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A7 )
+#define ICU_ISELR168_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A8 )
+#define ICU_ISELR169_ADDR		( ( volatile uint8_t __evenaccess * )0x000871A9 )
+#define ICU_ISELR170_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AA )
+#define ICU_ISELR171_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AB )
+#define ICU_ISELR172_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AC )
+#define ICU_ISELR173_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AD )
+#define ICU_ISELR174_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AE )
+#define ICU_ISELR175_ADDR		( ( volatile uint8_t __evenaccess * )0x000871AF )
+#define ICU_ISELR176_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B0 )
+#define ICU_ISELR177_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B1 )
+#define ICU_ISELR178_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B2 )
+#define ICU_ISELR179_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B3 )
+#define ICU_ISELR180_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B4 )
+#define ICU_ISELR181_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B5 )
+#define ICU_ISELR182_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B6 )
+#define ICU_ISELR183_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B7 )
+#define ICU_ISELR184_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B8 )
+#define ICU_ISELR185_ADDR		( ( volatile uint8_t __evenaccess * )0x000871B9 )
+#define ICU_ISELR186_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BA )
+#define ICU_ISELR187_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BB )
+#define ICU_ISELR188_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BC )
+#define ICU_ISELR189_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BD )
+#define ICU_ISELR190_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BE )
+#define ICU_ISELR191_ADDR		( ( volatile uint8_t __evenaccess * )0x000871BF )
+#define ICU_ISELR192_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C0 )
+#define ICU_ISELR193_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C1 )
+#define ICU_ISELR194_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C2 )
+#define ICU_ISELR195_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C3 )
+#define ICU_ISELR196_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C4 )
+#define ICU_ISELR197_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C5 )
+#define ICU_ISELR198_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C6 )
+#define ICU_ISELR199_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C7 )
+#define ICU_ISELR200_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C8 )
+#define ICU_ISELR201_ADDR		( ( volatile uint8_t __evenaccess * )0x000871C9 )
+#define ICU_ISELR202_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CA )
+#define ICU_ISELR203_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CB )
+#define ICU_ISELR204_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CC )
+#define ICU_ISELR205_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CD )
+#define ICU_ISELR206_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CE )
+#define ICU_ISELR207_ADDR		( ( volatile uint8_t __evenaccess * )0x000871CF )
+#define ICU_ISELR208_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D0 )
+#define ICU_ISELR209_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D1 )
+#define ICU_ISELR210_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D2 )
+#define ICU_ISELR211_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D3 )
+#define ICU_ISELR212_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D4 )
+#define ICU_ISELR213_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D5 )
+#define ICU_ISELR214_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D6 )
+#define ICU_ISELR215_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D7 )
+#define ICU_ISELR216_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D8 )
+#define ICU_ISELR217_ADDR		( ( volatile uint8_t __evenaccess * )0x000871D9 )
+#define ICU_ISELR218_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DA )
+#define ICU_ISELR219_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DB )
+#define ICU_ISELR220_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DC )
+#define ICU_ISELR221_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DD )
+#define ICU_ISELR222_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DE )
+#define ICU_ISELR223_ADDR		( ( volatile uint8_t __evenaccess * )0x000871DF )
+#define ICU_ISELR224_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E0 )
+#define ICU_ISELR225_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E1 )
+#define ICU_ISELR226_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E2 )
+#define ICU_ISELR227_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E3 )
+#define ICU_ISELR228_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E4 )
+#define ICU_ISELR229_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E5 )
+#define ICU_ISELR230_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E6 )
+#define ICU_ISELR231_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E7 )
+#define ICU_ISELR232_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E8 )
+#define ICU_ISELR233_ADDR		( ( volatile uint8_t __evenaccess * )0x000871E9 )
+#define ICU_ISELR234_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EA )
+#define ICU_ISELR235_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EB )
+#define ICU_ISELR236_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EC )
+#define ICU_ISELR237_ADDR		( ( volatile uint8_t __evenaccess * )0x000871ED )
+#define ICU_ISELR238_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EE )
+#define ICU_ISELR239_ADDR		( ( volatile uint8_t __evenaccess * )0x000871EF )
+#define ICU_ISELR240_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F0 )
+#define ICU_ISELR241_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F1 )
+#define ICU_ISELR242_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F2 )
+#define ICU_ISELR243_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F3 )
+#define ICU_ISELR244_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F4 )
+#define ICU_ISELR245_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F5 )
+#define ICU_ISELR246_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F6 )
+#define ICU_ISELR247_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F7 )
+#define ICU_ISELR248_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F8 )
+#define ICU_ISELR249_ADDR		( ( volatile uint8_t __evenaccess * )0x000871F9 )
+#define ICU_ISELR250_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FA )
+#define ICU_ISELR251_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FB )
+#define ICU_ISELR252_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FC )
+#define ICU_ISELR253_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FD )
+#define ICU_ISELR254_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FE )
+#define ICU_ISELR255_ADDR		( ( volatile uint8_t __evenaccess * )0x000871FF )
+#define ICU_ISEL_BIT			( 3U << 0U )
+
+/*
+ * å²ãè¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿
+ */
+#define ICU_IER02_ADDR			( ( volatile uint8_t __evenaccess * )0x00087202 )
+#define ICU_IER03_ADDR			( ( volatile uint8_t __evenaccess * )0x00087203 )
+#define ICU_IER04_ADDR			( ( volatile uint8_t __evenaccess * )0x00087204 )
+#define ICU_IER05_ADDR			( ( volatile uint8_t __evenaccess * )0x00087205 )
+#define ICU_IER06_ADDR			( ( volatile uint8_t __evenaccess * )0x00087206 )
+#define ICU_IER07_ADDR			( ( volatile uint8_t __evenaccess * )0x00087207 )
+#define ICU_IER08_ADDR			( ( volatile uint8_t __evenaccess * )0x00087208 )
+#define ICU_IER09_ADDR			( ( volatile uint8_t __evenaccess * )0x00087209 )
+#define ICU_IER0B_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720B )
+#define ICU_IER0C_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720C )
+#define ICU_IER0D_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720D )
+#define ICU_IER0E_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720E )
+#define ICU_IER0F_ADDR			( ( volatile uint8_t __evenaccess * )0x0008720F )
+#define ICU_IER10_ADDR			( ( volatile uint8_t __evenaccess * )0x00087210 )
+#define ICU_IER11_ADDR			( ( volatile uint8_t __evenaccess * )0x00087211 )
+#define ICU_IER12_ADDR			( ( volatile uint8_t __evenaccess * )0x00087212 )
+#define ICU_IER13_ADDR			( ( volatile uint8_t __evenaccess * )0x00087213 )
+#define ICU_IER14_ADDR			( ( volatile uint8_t __evenaccess * )0x00087214 )
+#define ICU_IER15_ADDR			( ( volatile uint8_t __evenaccess * )0x00087215 )
+#define ICU_IER16_ADDR			( ( volatile uint8_t __evenaccess * )0x00087216 )
+#define ICU_IER17_ADDR			( ( volatile uint8_t __evenaccess * )0x00087217 )
+#define ICU_IER18_ADDR			( ( volatile uint8_t __evenaccess * )0x00087218 )
+#define ICU_IER19_ADDR			( ( volatile uint8_t __evenaccess * )0x00087219 )
+#define ICU_IER1A_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721A )
+#define ICU_IER1B_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721B )
+#define ICU_IER1C_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721C )
+#define ICU_IER1D_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721D )
+#define ICU_IER1E_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721E )
+#define ICU_IER1F_ADDR			( ( volatile uint8_t __evenaccess * )0x0008721F )
+#define ICU_IEN0_BIT			( 1U << 0U )
+#define ICU_IEN1_BIT			( 1U << 1U )
+#define ICU_IEN2_BIT			( 1U << 2U )
+#define ICU_IEN3_BIT			( 1U << 3U )
+#define ICU_IEN4_BIT			( 1U << 4U )
+#define ICU_IEN5_BIT			( 1U << 5U )
+#define ICU_IEN6_BIT			( 1U << 6U )
+#define ICU_IEN7_BIT			( 1U << 7U )
+
+/* 
+ * å²ãè¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿i(i=0ï½253)ã®è¨­å®
+ */
+#define ICU_IPR000_ADDR			( ( volatile uint8_t __evenaccess * )0x00087300 )
+#define ICU_IPR001_ADDR			( ( volatile uint8_t __evenaccess * )0x00087301 )
+#define ICU_IPR002_ADDR			( ( volatile uint8_t __evenaccess * )0x00087302 )
+#define ICU_IPR003_ADDR			( ( volatile uint8_t __evenaccess * )0x00087303 )
+#define ICU_IPR004_ADDR			( ( volatile uint8_t __evenaccess * )0x00087304 )
+#define ICU_IPR005_ADDR			( ( volatile uint8_t __evenaccess * )0x00087305 )
+#define ICU_IPR006_ADDR			( ( volatile uint8_t __evenaccess * )0x00087306 )
+#define ICU_IPR007_ADDR			( ( volatile uint8_t __evenaccess * )0x00087307 )
+#define ICU_IPR008_ADDR			( ( volatile uint8_t __evenaccess * )0x00087308 )
+#define ICU_IPR009_ADDR			( ( volatile uint8_t __evenaccess * )0x00087309 )
+#define ICU_IPR010_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730A )
+#define ICU_IPR011_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730B )
+#define ICU_IPR012_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730C )
+#define ICU_IPR013_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730D )
+#define ICU_IPR014_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730E )
+#define ICU_IPR015_ADDR			( ( volatile uint8_t __evenaccess * )0x0008730F )
+#define ICU_IPR016_ADDR			( ( volatile uint8_t __evenaccess * )0x00087310 )
+#define ICU_IPR017_ADDR			( ( volatile uint8_t __evenaccess * )0x00087311 )
+#define ICU_IPR018_ADDR			( ( volatile uint8_t __evenaccess * )0x00087312 )
+#define ICU_IPR019_ADDR			( ( volatile uint8_t __evenaccess * )0x00087313 )
+#define ICU_IPR020_ADDR			( ( volatile uint8_t __evenaccess * )0x00087314 )
+#define ICU_IPR021_ADDR			( ( volatile uint8_t __evenaccess * )0x00087315 )
+#define ICU_IPR022_ADDR			( ( volatile uint8_t __evenaccess * )0x00087316 )
+#define ICU_IPR023_ADDR			( ( volatile uint8_t __evenaccess * )0x00087317 )
+#define ICU_IPR024_ADDR			( ( volatile uint8_t __evenaccess * )0x00087318 )
+#define ICU_IPR025_ADDR			( ( volatile uint8_t __evenaccess * )0x00087319 )
+#define ICU_IPR026_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731A )
+#define ICU_IPR027_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731B )
+#define ICU_IPR028_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731C )
+#define ICU_IPR029_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731D )
+#define ICU_IPR030_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731E )
+#define ICU_IPR031_ADDR			( ( volatile uint8_t __evenaccess * )0x0008731F )
+#define ICU_IPR032_ADDR			( ( volatile uint8_t __evenaccess * )0x00087320 )
+#define ICU_IPR033_ADDR			( ( volatile uint8_t __evenaccess * )0x00087321 )
+#define ICU_IPR034_ADDR			( ( volatile uint8_t __evenaccess * )0x00087322 )
+#define ICU_IPR035_ADDR			( ( volatile uint8_t __evenaccess * )0x00087323 )
+#define ICU_IPR036_ADDR			( ( volatile uint8_t __evenaccess * )0x00087324 )
+#define ICU_IPR037_ADDR			( ( volatile uint8_t __evenaccess * )0x00087325 )
+#define ICU_IPR038_ADDR			( ( volatile uint8_t __evenaccess * )0x00087326 )
+#define ICU_IPR039_ADDR			( ( volatile uint8_t __evenaccess * )0x00087327 )
+#define ICU_IPR040_ADDR			( ( volatile uint8_t __evenaccess * )0x00087328 )
+#define ICU_IPR041_ADDR			( ( volatile uint8_t __evenaccess * )0x00087329 )
+#define ICU_IPR042_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732A )
+#define ICU_IPR043_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732B )
+#define ICU_IPR044_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732C )
+#define ICU_IPR045_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732D )
+#define ICU_IPR046_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732E )
+#define ICU_IPR047_ADDR			( ( volatile uint8_t __evenaccess * )0x0008732F )
+#define ICU_IPR048_ADDR			( ( volatile uint8_t __evenaccess * )0x00087330 )
+#define ICU_IPR049_ADDR			( ( volatile uint8_t __evenaccess * )0x00087331 )
+#define ICU_IPR050_ADDR			( ( volatile uint8_t __evenaccess * )0x00087332 )
+#define ICU_IPR051_ADDR			( ( volatile uint8_t __evenaccess * )0x00087333 )
+#define ICU_IPR052_ADDR			( ( volatile uint8_t __evenaccess * )0x00087334 )
+#define ICU_IPR053_ADDR			( ( volatile uint8_t __evenaccess * )0x00087335 )
+#define ICU_IPR054_ADDR			( ( volatile uint8_t __evenaccess * )0x00087336 )
+#define ICU_IPR055_ADDR			( ( volatile uint8_t __evenaccess * )0x00087337 )
+#define ICU_IPR056_ADDR			( ( volatile uint8_t __evenaccess * )0x00087338 )
+#define ICU_IPR057_ADDR			( ( volatile uint8_t __evenaccess * )0x00087339 )
+#define ICU_IPR058_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733A )
+#define ICU_IPR059_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733B )
+#define ICU_IPR060_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733C )
+#define ICU_IPR061_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733D )
+#define ICU_IPR062_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733E )
+#define ICU_IPR063_ADDR			( ( volatile uint8_t __evenaccess * )0x0008733F )
+#define ICU_IPR064_ADDR			( ( volatile uint8_t __evenaccess * )0x00087340 )
+#define ICU_IPR065_ADDR			( ( volatile uint8_t __evenaccess * )0x00087341 )
+#define ICU_IPR066_ADDR			( ( volatile uint8_t __evenaccess * )0x00087342 )
+#define ICU_IPR067_ADDR			( ( volatile uint8_t __evenaccess * )0x00087343 )
+#define ICU_IPR068_ADDR			( ( volatile uint8_t __evenaccess * )0x00087344 )
+#define ICU_IPR069_ADDR			( ( volatile uint8_t __evenaccess * )0x00087345 )
+#define ICU_IPR070_ADDR			( ( volatile uint8_t __evenaccess * )0x00087346 )
+#define ICU_IPR071_ADDR			( ( volatile uint8_t __evenaccess * )0x00087347 )
+#define ICU_IPR072_ADDR			( ( volatile uint8_t __evenaccess * )0x00087348 )
+#define ICU_IPR073_ADDR			( ( volatile uint8_t __evenaccess * )0x00087349 )
+#define ICU_IPR074_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734A )
+#define ICU_IPR075_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734B )
+#define ICU_IPR076_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734C )
+#define ICU_IPR077_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734D )
+#define ICU_IPR078_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734E )
+#define ICU_IPR079_ADDR			( ( volatile uint8_t __evenaccess * )0x0008734F )
+#define ICU_IPR080_ADDR			( ( volatile uint8_t __evenaccess * )0x00087350 )
+#define ICU_IPR081_ADDR			( ( volatile uint8_t __evenaccess * )0x00087351 )
+#define ICU_IPR082_ADDR			( ( volatile uint8_t __evenaccess * )0x00087352 )
+#define ICU_IPR083_ADDR			( ( volatile uint8_t __evenaccess * )0x00087353 )
+#define ICU_IPR084_ADDR			( ( volatile uint8_t __evenaccess * )0x00087354 )
+#define ICU_IPR085_ADDR			( ( volatile uint8_t __evenaccess * )0x00087355 )
+#define ICU_IPR086_ADDR			( ( volatile uint8_t __evenaccess * )0x00087356 )
+#define ICU_IPR087_ADDR			( ( volatile uint8_t __evenaccess * )0x00087357 )
+#define ICU_IPR088_ADDR			( ( volatile uint8_t __evenaccess * )0x00087358 )
+#define ICU_IPR089_ADDR			( ( volatile uint8_t __evenaccess * )0x00087359 )
+#define ICU_IPR090_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735A )
+#define ICU_IPR091_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735B )
+#define ICU_IPR092_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735C )
+#define ICU_IPR093_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735D )
+#define ICU_IPR094_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735E )
+#define ICU_IPR095_ADDR			( ( volatile uint8_t __evenaccess * )0x0008735F )
+#define ICU_IPR096_ADDR			( ( volatile uint8_t __evenaccess * )0x00087360 )
+#define ICU_IPR097_ADDR			( ( volatile uint8_t __evenaccess * )0x00087361 )
+#define ICU_IPR098_ADDR			( ( volatile uint8_t __evenaccess * )0x00087362 )
+#define ICU_IPR099_ADDR			( ( volatile uint8_t __evenaccess * )0x00087363 )
+#define ICU_IPR100_ADDR			( ( volatile uint8_t __evenaccess * )0x00087364 )
+#define ICU_IPR101_ADDR			( ( volatile uint8_t __evenaccess * )0x00087365 )
+#define ICU_IPR102_ADDR			( ( volatile uint8_t __evenaccess * )0x00087366 )
+#define ICU_IPR103_ADDR			( ( volatile uint8_t __evenaccess * )0x00087367 )
+#define ICU_IPR104_ADDR			( ( volatile uint8_t __evenaccess * )0x00087368 )
+#define ICU_IPR105_ADDR			( ( volatile uint8_t __evenaccess * )0x00087369 )
+#define ICU_IPR106_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736A )
+#define ICU_IPR107_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736B )
+#define ICU_IPR108_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736C )
+#define ICU_IPR109_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736D )
+#define ICU_IPR110_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736E )
+#define ICU_IPR111_ADDR			( ( volatile uint8_t __evenaccess * )0x0008736F )
+#define ICU_IPR112_ADDR			( ( volatile uint8_t __evenaccess * )0x00087370 )
+#define ICU_IPR113_ADDR			( ( volatile uint8_t __evenaccess * )0x00087371 )
+#define ICU_IPR114_ADDR			( ( volatile uint8_t __evenaccess * )0x00087372 )
+#define ICU_IPR115_ADDR			( ( volatile uint8_t __evenaccess * )0x00087373 )
+#define ICU_IPR116_ADDR			( ( volatile uint8_t __evenaccess * )0x00087374 )
+#define ICU_IPR117_ADDR			( ( volatile uint8_t __evenaccess * )0x00087375 )
+#define ICU_IPR118_ADDR			( ( volatile uint8_t __evenaccess * )0x00087376 )
+#define ICU_IPR119_ADDR			( ( volatile uint8_t __evenaccess * )0x00087377 )
+#define ICU_IPR120_ADDR			( ( volatile uint8_t __evenaccess * )0x00087378 )
+#define ICU_IPR121_ADDR			( ( volatile uint8_t __evenaccess * )0x00087379 )
+#define ICU_IPR122_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737A )
+#define ICU_IPR123_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737B )
+#define ICU_IPR124_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737C )
+#define ICU_IPR125_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737D )
+#define ICU_IPR126_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737E )
+#define ICU_IPR127_ADDR			( ( volatile uint8_t __evenaccess * )0x0008737F )
+#define ICU_IPR128_ADDR			( ( volatile uint8_t __evenaccess * )0x00087380 )
+#define ICU_IPR129_ADDR			( ( volatile uint8_t __evenaccess * )0x00087381 )
+#define ICU_IPR130_ADDR			( ( volatile uint8_t __evenaccess * )0x00087382 )
+#define ICU_IPR131_ADDR			( ( volatile uint8_t __evenaccess * )0x00087383 )
+#define ICU_IPR132_ADDR			( ( volatile uint8_t __evenaccess * )0x00087384 )
+#define ICU_IPR133_ADDR			( ( volatile uint8_t __evenaccess * )0x00087385 )
+#define ICU_IPR134_ADDR			( ( volatile uint8_t __evenaccess * )0x00087386 )
+#define ICU_IPR135_ADDR			( ( volatile uint8_t __evenaccess * )0x00087387 )
+#define ICU_IPR136_ADDR			( ( volatile uint8_t __evenaccess * )0x00087388 )
+#define ICU_IPR137_ADDR			( ( volatile uint8_t __evenaccess * )0x00087389 )
+#define ICU_IPR138_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738A )
+#define ICU_IPR139_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738B )
+#define ICU_IPR140_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738C )
+#define ICU_IPR141_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738D )
+#define ICU_IPR142_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738E )
+#define ICU_IPR143_ADDR			( ( volatile uint8_t __evenaccess * )0x0008738F )
+#define ICU_IPR144_ADDR			( ( volatile uint8_t __evenaccess * )0x00087390 )
+#define ICU_IPR145_ADDR			( ( volatile uint8_t __evenaccess * )0x00087391 )
+#define ICU_IPR146_ADDR			( ( volatile uint8_t __evenaccess * )0x00087392 )
+#define ICU_IPR147_ADDR			( ( volatile uint8_t __evenaccess * )0x00087393 )
+#define ICU_IPR148_ADDR			( ( volatile uint8_t __evenaccess * )0x00087394 )
+#define ICU_IPR149_ADDR			( ( volatile uint8_t __evenaccess * )0x00087395 )
+#define ICU_IPR150_ADDR			( ( volatile uint8_t __evenaccess * )0x00087396 )
+#define ICU_IPR151_ADDR			( ( volatile uint8_t __evenaccess * )0x00087397 )
+#define ICU_IPR152_ADDR			( ( volatile uint8_t __evenaccess * )0x00087398 )
+#define ICU_IPR153_ADDR			( ( volatile uint8_t __evenaccess * )0x00087399 )
+#define ICU_IPR154_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739A )
+#define ICU_IPR155_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739B )
+#define ICU_IPR156_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739C )
+#define ICU_IPR157_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739D )
+#define ICU_IPR158_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739E )
+#define ICU_IPR159_ADDR			( ( volatile uint8_t __evenaccess * )0x0008739F )
+#define ICU_IPR160_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A0 )
+#define ICU_IPR161_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A1 )
+#define ICU_IPR162_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A2 )
+#define ICU_IPR163_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A3 )
+#define ICU_IPR164_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A4 )
+#define ICU_IPR165_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A5 )
+#define ICU_IPR166_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A6 )
+#define ICU_IPR167_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A7 )
+#define ICU_IPR168_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A8 )
+#define ICU_IPR169_ADDR			( ( volatile uint8_t __evenaccess * )0x000873A9 )
+#define ICU_IPR170_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AA )
+#define ICU_IPR171_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AB )
+#define ICU_IPR172_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AC )
+#define ICU_IPR173_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AD )
+#define ICU_IPR174_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AE )
+#define ICU_IPR175_ADDR			( ( volatile uint8_t __evenaccess * )0x000873AF )
+#define ICU_IPR176_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B0 )
+#define ICU_IPR177_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B1 )
+#define ICU_IPR178_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B2 )
+#define ICU_IPR179_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B3 )
+#define ICU_IPR180_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B4 )
+#define ICU_IPR181_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B5 )
+#define ICU_IPR182_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B6 )
+#define ICU_IPR183_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B7 )
+#define ICU_IPR184_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B8 )
+#define ICU_IPR185_ADDR			( ( volatile uint8_t __evenaccess * )0x000873B9 )
+#define ICU_IPR186_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BA )
+#define ICU_IPR187_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BB )
+#define ICU_IPR188_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BC )
+#define ICU_IPR189_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BD )
+#define ICU_IPR190_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BE )
+#define ICU_IPR191_ADDR			( ( volatile uint8_t __evenaccess * )0x000873BF )
+#define ICU_IPR192_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C0 )
+#define ICU_IPR193_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C1 )
+#define ICU_IPR194_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C2 )
+#define ICU_IPR195_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C3 )
+#define ICU_IPR196_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C4 )
+#define ICU_IPR197_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C5 )
+#define ICU_IPR198_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C6 )
+#define ICU_IPR199_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C7 )
+#define ICU_IPR200_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C8 )
+#define ICU_IPR201_ADDR			( ( volatile uint8_t __evenaccess * )0x000873C9 )
+#define ICU_IPR202_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CA )
+#define ICU_IPR203_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CB )
+#define ICU_IPR204_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CC )
+#define ICU_IPR205_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CD )
+#define ICU_IPR206_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CE )
+#define ICU_IPR207_ADDR			( ( volatile uint8_t __evenaccess * )0x000873CF )
+#define ICU_IPR208_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D0 )
+#define ICU_IPR209_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D1 )
+#define ICU_IPR210_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D2 )
+#define ICU_IPR211_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D3 )
+#define ICU_IPR212_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D4 )
+#define ICU_IPR213_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D5 )
+#define ICU_IPR214_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D6 )
+#define ICU_IPR215_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D7 )
+#define ICU_IPR216_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D8 )
+#define ICU_IPR217_ADDR			( ( volatile uint8_t __evenaccess * )0x000873D9 )
+#define ICU_IPR218_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DA )
+#define ICU_IPR219_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DB )
+#define ICU_IPR220_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DC )
+#define ICU_IPR221_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DD )
+#define ICU_IPR222_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DE )
+#define ICU_IPR223_ADDR			( ( volatile uint8_t __evenaccess * )0x000873DF )
+#define ICU_IPR224_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E0 )
+#define ICU_IPR225_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E1 )
+#define ICU_IPR226_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E2 )
+#define ICU_IPR227_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E3 )
+#define ICU_IPR228_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E4 )
+#define ICU_IPR229_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E5 )
+#define ICU_IPR230_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E6 )
+#define ICU_IPR231_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E7 )
+#define ICU_IPR232_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E8 )
+#define ICU_IPR233_ADDR			( ( volatile uint8_t __evenaccess * )0x000873E9 )
+#define ICU_IPR234_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EA )
+#define ICU_IPR235_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EB )
+#define ICU_IPR236_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EC )
+#define ICU_IPR237_ADDR			( ( volatile uint8_t __evenaccess * )0x000873ED )
+#define ICU_IPR238_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EE )
+#define ICU_IPR239_ADDR			( ( volatile uint8_t __evenaccess * )0x000873EF )
+#define ICU_IPR240_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F0 )
+#define ICU_IPR241_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F1 )
+#define ICU_IPR242_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F2 )
+#define ICU_IPR243_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F3 )
+#define ICU_IPR244_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F4 )
+#define ICU_IPR245_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F5 )
+#define ICU_IPR246_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F6 )
+#define ICU_IPR247_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F7 )
+#define ICU_IPR248_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F8 )
+#define ICU_IPR249_ADDR			( ( volatile uint8_t __evenaccess * )0x000873F9 )
+#define ICU_IPR250_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FA )
+#define ICU_IPR251_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FB )
+#define ICU_IPR252_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FC )
+#define ICU_IPR253_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FD )
+#define ICU_IPR254_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FE )
+#define ICU_IPR255_ADDR			( ( volatile uint8_t __evenaccess * )0x000873FF )
+#define ICU_IPR_BIT				( 7U << 0U )
+
+
+/*
+ *  IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿
+ */
+#define ICU_IRQ0_ADDR			( ( volatile uint8_t __evenaccess * )0x00087500 )
+#define ICU_IRQ1_ADDR			( ( volatile uint8_t __evenaccess * )0x00087501 )
+#define ICU_IRQ2_ADDR			( ( volatile uint8_t __evenaccess * )0x00087502 )
+#define ICU_IRQ3_ADDR			( ( volatile uint8_t __evenaccess * )0x00087503 )
+#define ICU_IRQ4_ADDR			( ( volatile uint8_t __evenaccess * )0x00087504 )
+#define ICU_IRQ5_ADDR			( ( volatile uint8_t __evenaccess * )0x00087505 )
+#define ICU_IRQ6_ADDR			( ( volatile uint8_t __evenaccess * )0x00087506 )
+#define ICU_IRQ7_ADDR			( ( volatile uint8_t __evenaccess * )0x00087507 )
+#define ICU_IRQ8_ADDR			( ( volatile uint8_t __evenaccess * )0x00087508 )
+#define ICU_IRQ9_ADDR			( ( volatile uint8_t __evenaccess * )0x00087509 )
+#define ICU_IRQ10_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750A )
+#define ICU_IRQ11_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750B )
+#define ICU_IRQ12_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750C )
+#define ICU_IRQ13_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750D )
+#define ICU_IRQ14_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750E )
+#define ICU_IRQ15_ADDR			( ( volatile uint8_t __evenaccess * )0x0008750F )
+#define ICU_IRQMD_BIT			( 3U << 2U )
+
+
+/*
+ *  åãã£ã³ãã«ã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+#define CMT_CMSTR0_ADDR			( ( volatile uint16_t __evenaccess * )0x00088000 )
+#define CMT_CMSTR0_STR0_BIT		( 1U << 0U )
+#define CMT_CMSTR0_STR1_BIT		( 1U << 1U )
+#define CMT_CMSTR1_ADDR			( ( volatile uint16_t __evenaccess * )0x00088010 )
+#define CMT_CMSTR1_STR2_BIT		( 1U << 0U )
+#define CMT_CMSTR1_STR3_BIT		( 1U << 1U )
+#define CMT0_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088002 )
+#define CMT0_CMCR_CKS_BIT		( 3U )
+#define CMT0_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT1_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088008 )
+#define CMT1_CMCR_CKS_BIT		( 3U )
+#define CMT1_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT2_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088012 )
+#define CMT2_CMCR_CKS_BIT		( 3U)
+#define CMT2_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT3_CMCR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088018 )
+#define CMT3_CMCR_CKS_BIT		( 3U )
+#define CMT3_CMCR_CMIE_BIT		( 1U << 6U )
+#define CMT0_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x00088004 )
+#define CMT1_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x0008800A )
+#define CMT2_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x00088014 )
+#define CMT3_CMCNT_ADDR			( ( volatile uint16_t __evenaccess * )0x0008801A )
+#define CMT0_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088006 )
+#define CMT1_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x0008800C )
+#define CMT2_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x00088016 )
+#define CMT3_CMCOR_ADDR			( ( volatile uint16_t __evenaccess * )0x0008801C )
+
+#define SCI0_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A000 )
+#define SCI0_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A001 )
+#define SCI0_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A002 )
+#define SCI0_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A003 )
+#define SCI0_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A004 )
+#define SCI0_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A005 )
+#define SCI0_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A006 )
+#define SCI0_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A007 )
+#define SCI1_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A020 )
+#define SCI1_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A021 )
+#define SCI1_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A022 )
+#define SCI1_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A023 )
+#define SCI1_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A024 )
+#define SCI1_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A025 )
+#define SCI1_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A026 )
+#define SCI1_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A027 )
+#define SCI2_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A040 )
+#define SCI2_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A041 )
+#define SCI2_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A042 )
+#define SCI2_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A043 )
+#define SCI2_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A044 )
+#define SCI2_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A045 )
+#define SCI2_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A046 )
+#define SCI2_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A047 )
+#define SCI3_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A060 )
+#define SCI3_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A061 )
+#define SCI3_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A062 )
+#define SCI3_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A063 )
+#define SCI3_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A064 )
+#define SCI3_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A065 )
+#define SCI3_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A066 )
+#define SCI3_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A067 )
+#define SCI4_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A080 )
+#define SCI4_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A081 )
+#define SCI4_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A082 )
+#define SCI4_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A083 )
+#define SCI4_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A084 )
+#define SCI4_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A085 )
+#define SCI4_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A086 )
+#define SCI4_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A087 )
+#define SCI5_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A0 )
+#define SCI5_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A1 )
+#define SCI5_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A2 )
+#define SCI5_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A3 )
+#define SCI5_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A4 )
+#define SCI5_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A5 )
+#define SCI5_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A6 )
+#define SCI5_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0A7 )
+#define SCI6_SMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C0 )
+#define SCI6_BRR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C1 )
+#define SCI6_SCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C2 )
+#define SCI6_TDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C3 )
+#define SCI6_SSR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C4 )
+#define SCI6_RDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C5 )
+#define SCI6_SCMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C6 )
+#define SCI6_SEMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008A0C7 )
+#define SCI_SMR_CKS_BIT			( 3U << 0U )
+#define SCI_SMR_STOP_BIT		( 1U << 3U )
+#define SCI_SMR_PM_BIT			( 1U << 4U )
+#define SCI_SMR_PE_BIT			( 1U << 5U )
+#define SCI_SMR_CHR_BIT			( 1U << 6U )
+#define SCI_SMR_CM_BIT			( 1U << 7U )
+#define SCI_SCR_CKE_BIT			( 3U << 0U )
+#define SCI_SCR_TEIE_BIT		( 1U << 2U )
+#define SCI_SCR_RE_BIT			( 1U << 4U )
+#define SCI_SCR_TE_BIT			( 1U << 5U )
+#define SCI_SCR_RIE_BIT			( 1U << 6U )
+#define SCI_SCR_TIE_BIT			( 1U << 7U )
+#define SCI_SSR_TEND_BIT		( 1U << 2U )
+#define SCI_SSR_PER_BIT			( 1U << 3U )
+#define SCI_SSR_FER_BIT			( 1U << 4U )
+#define SCI_SSR_ORER_BIT		( 1U << 5U )
+#define SCI_SCMR_SMIF_BIT		( 1U << 0U )
+#define SCI_SCMR_SINV_BIT		( 1U << 2U )
+#define SCI_SCMR_SDIR_BIT		( 1U << 3U )
+#define SCI_SCMR_BCP2_BIT		( 1U << 7U )
+#define SCI_SEMR_ACS0_BIT		( 1U << 0U )
+#define SCI_SEMR_ABCS_BIT		( 1U << 4U )
+
+/*
+ *  I/Oãã¼ãã®ã¬ã¸ã¹ã¿åã³è¨­å®ãããæ
+å ±
+ */
+#define PORT0_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C000 )
+#define PORT1_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C001 )
+#define PORT2_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C002 )
+#define PORT3_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C003 )
+#define PORT4_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C004 )
+#define PORT5_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C005 )
+#define PORT6_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C006 )
+#define PORT7_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C007 )
+#define PORT8_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C008 )
+#define PORT9_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C009 )
+#define PORTA_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00A )
+#define PORTB_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00B )
+#define PORTC_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00C )
+#define PORTD_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00D )
+#define PORTE_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00E )
+#define PORTF_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C00F )
+#define PORTG_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C010 )
+#define PORTJ_PDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C012 )
+#define PORT_PDR_B0_BIT			( 0x01U << 0U )
+#define PORT_PDR_B1_BIT			( 0x01U << 1U )
+#define PORT_PDR_B2_BIT			( 0x01U << 2U )
+#define PORT_PDR_B3_BIT			( 0x01U << 3U )
+#define PORT_PDR_B4_BIT			( 0x01U << 4U )
+#define PORT_PDR_B5_BIT			( 0x01U << 5U )
+#define PORT_PDR_B6_BIT			( 0x01U << 6U )
+#define PORT_PDR_B7_BIT			( 0x01U << 7U )
+#define PORT0_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C020 )
+#define PORT1_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C021 )
+#define PORT2_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C022 )
+#define PORT3_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C023 )
+#define PORT4_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C024 )
+#define PORT5_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C025 )
+#define PORT6_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C026 )
+#define PORT7_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C027 )
+#define PORT8_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C028 )
+#define PORT9_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C029 )
+#define PORTA_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02A )
+#define PORTB_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02B )
+#define PORTC_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02C )
+#define PORTD_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02D )
+#define PORTE_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02E )
+#define PORTF_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C02F )
+#define PORTG_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C030 )
+#define PORTJ_PODR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C032 )
+#define PORT_PODR_B0_BIT		( 0x01U << 0U )
+#define PORT_PODR_B1_BIT		( 0x01U << 1U )
+#define PORT_PODR_B2_BIT		( 0x01U << 2U )
+#define PORT_PODR_B3_BIT		( 0x01U << 3U )
+#define PORT_PODR_B4_BIT		( 0x01U << 4U )
+#define PORT_PODR_B5_BIT		( 0x01U << 5U )
+#define PORT_PODR_B6_BIT		( 0x01U << 6U )
+#define PORT_PODR_B7_BIT		( 0x01U << 7U )
+#define PORT0_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C040 )
+#define PORT1_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C041 )
+#define PORT2_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C042 )
+#define PORT3_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C043 )
+#define PORT4_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C044 )
+#define PORT5_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C045 )
+#define PORT6_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C046 )
+#define PORT7_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C047 )
+#define PORT8_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C048 )
+#define PORT9_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C049 )
+#define PORTA_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04A )
+#define PORTB_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04B )
+#define PORTC_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04C )
+#define PORTD_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04D )
+#define PORTE_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04E )
+#define PORTF_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C04F )
+#define PORTG_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C050 )
+#define PORTJ_PIDR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C052 )
+#define PORT_PIDR_B0_BIT		( 0x01U << 0U )
+#define PORT_PIDR_B1_BIT		( 0x01U << 1U )
+#define PORT_PIDR_B2_BIT		( 0x01U << 2U )
+#define PORT_PIDR_B3_BIT		( 0x01U << 3U )
+#define PORT_PIDR_B4_BIT		( 0x01U << 4U )
+#define PORT_PIDR_B5_BIT		( 0x01U << 5U )
+#define PORT_PIDR_B6_BIT		( 0x01U << 6U )
+#define PORT_PIDR_B7_BIT		( 0x01U << 7U )
+#define PORT0_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C060 )
+#define PORT1_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C061 )
+#define PORT2_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C062 )
+#define PORT3_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C063 )
+#define PORT4_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C064 )
+#define PORT5_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C065 )
+#define PORT6_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C066 )
+#define PORT7_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C067 )
+#define PORT8_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C068 )
+#define PORT9_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C069 )
+#define PORTA_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06A )
+#define PORTB_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06B )
+#define PORTC_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06C )
+#define PORTD_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06D )
+#define PORTE_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06E )
+#define PORTF_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C06F )
+#define PORTG_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C070 )
+#define PORTJ_PMR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C072 )
+#define PORT_PMR_B0_BIT			( 0x01U << 0U )
+#define PORT_PMR_B1_BIT			( 0x01U << 1U )
+#define PORT_PMR_B2_BIT			( 0x01U << 2U )
+#define PORT_PMR_B3_BIT			( 0x01U << 3U )
+#define PORT_PMR_B4_BIT			( 0x01U << 4U )
+#define PORT_PMR_B5_BIT			( 0x01U << 5U )
+#define PORT_PMR_B6_BIT			( 0x01U << 6U )
+#define PORT_PMR_B7_BIT			( 0x01U << 7U )
+#define PORT0_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C0 )
+#define PORT1_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C1 )
+#define PORT2_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C2 )
+#define PORT3_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C3 )
+#define PORT4_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C4 )
+#define PORT5_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C5 )
+#define PORT6_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C6 )
+#define PORT7_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C7 )
+#define PORT8_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C8 )
+#define PORT9_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0C9 )
+#define PORTA_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CA )
+#define PORTB_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CB )
+#define PORTC_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CC )
+#define PORTD_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CD )
+#define PORTE_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CE )
+#define PORTF_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0CF )
+#define PORTG_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0D0 )
+#define PORTJ_PCR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0D2 )
+#define PORT_PCR_B0_BIT			( 0x01U << 0U )
+#define PORT_PCR_B1_BIT			( 0x01U << 1U )
+#define PORT_PCR_B2_BIT			( 0x01U << 2U )
+#define PORT_PCR_B3_BIT			( 0x01U << 3U )
+#define PORT_PCR_B4_BIT			( 0x01U << 4U )
+#define PORT_PCR_B5_BIT			( 0x01U << 5U )
+#define PORT_PCR_B6_BIT			( 0x01U << 6U )
+#define PORT_PCR_B7_BIT			( 0x01U << 7U )
+#define PORT0_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C080 )
+#define PORT1_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C082 )
+#define PORT2_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C084 )
+#define PORT3_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C086 )
+#define PORT4_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C088 )
+#define PORT5_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08A )
+#define PORT6_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08C )
+#define PORT7_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08E )
+#define PORT8_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C090 )
+#define PORT9_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C092 )
+#define PORTA_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C094 )
+#define PORTB_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C096 )
+#define PORTC_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C098 )
+#define PORTD_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09A )
+#define PORTE_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09C )
+#define PORTF_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09E )
+#define PORTG_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A0 )
+#define PORTJ_ODR0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A4 )
+#define PORT0_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C081 )
+#define PORT1_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C083 )
+#define PORT2_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C085 )
+#define PORT3_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C087 )
+#define PORT4_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C089 )
+#define PORT5_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08B )
+#define PORT6_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08D )
+#define PORT7_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C08F )
+#define PORT8_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C091 )
+#define PORT9_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C093 )
+#define PORTA_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C095 )
+#define PORTB_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C097 )
+#define PORTC_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C099 )
+#define PORTD_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09B )
+#define PORTE_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09D )
+#define PORTF_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C09F )
+#define PORTG_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A1 )
+#define PORTJ_ODR1_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C0A5 )
+
+/*
+ *  ãã«ããã¡ã³ã¯ã·ã§ã³ãã³ã³ã³ãã­ã¼ã©ã®ã¬ã¸ã¹ã¿æ
+å ±
+ */
+#define MPC_PFUSB0_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C114 )
+#define MPC_PFUSB0_PDHZS_BIT	( 0x01U << 2U )
+#define MPC_PFUSB0_PUPHZS_BIT	( 0x01U << 3U )
+#define MPC_PWPR_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C11F )
+#define MPC_PWPR_PFSWE			( 0x01U << 6U )
+#define MPC_PWPR_B0WI			( 0x01U << 7U )
+#define MPC_P00PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C140 )
+#define MPC_P01PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C141 )
+#define MPC_P02PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C142 )
+#define MPC_P03PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C143 )
+#define MPC_P04PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C144 )
+#define MPC_P05PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C145 )
+#define MPC_P06PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C146 )
+#define MPC_P07PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C147 )
+#define MPC_P10PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C148 )
+#define MPC_P11PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C149 )
+#define MPC_P12PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14A )
+#define MPC_P13PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14B )
+#define MPC_P14PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14C )
+#define MPC_P15PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14D )
+#define MPC_P16PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14E )
+#define MPC_P17PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C14F )
+#define MPC_P20PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C150 )
+#define MPC_P21PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C151 )
+#define MPC_P22PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C152 )
+#define MPC_P23PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C153 )
+#define MPC_P24PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C154 )
+#define MPC_P25PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C155 )
+#define MPC_P26PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C156 )
+#define MPC_P27PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C157 )
+#define MPC_P30PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C158 )
+#define MPC_P31PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C159 )
+#define MPC_P32PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15A )
+#define MPC_P33PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15B )
+#define MPC_P34PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15C )
+#define MPC_P35PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15D )
+#define MPC_P36PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15E )
+#define MPC_P37PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C15F )
+#define MPC_P40PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C160 )
+#define MPC_P41PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C161 )
+#define MPC_P42PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C162 )
+#define MPC_P43PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C163 )
+#define MPC_P44PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C164 )
+#define MPC_P45PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C165 )
+#define MPC_P46PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C166 )
+#define MPC_P47PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C167 )
+#define MPC_P50PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C168 )
+#define MPC_P51PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C169 )
+#define MPC_P52PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16A )
+#define MPC_P53PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16B )
+#define MPC_P54PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16C )
+#define MPC_P55PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16D )
+#define MPC_P56PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16E )
+#define MPC_P57PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C16F )
+#define MPC_P60PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C170 )
+#define MPC_P61PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C171 )
+#define MPC_P62PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C172 )
+#define MPC_P63PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C173 )
+#define MPC_P64PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C174 )
+#define MPC_P65PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C175 )
+#define MPC_P66PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C176 )
+#define MPC_P67PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C177 )
+#define MPC_P70PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C178 )
+#define MPC_P71PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C179 )
+#define MPC_P72PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17A )
+#define MPC_P73PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17B )
+#define MPC_P74PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17C )
+#define MPC_P75PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17D )
+#define MPC_P76PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17E )
+#define MPC_P77PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C17F )
+#define MPC_P80PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C180 )
+#define MPC_P81PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C181 )
+#define MPC_P82PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C182 )
+#define MPC_P83PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C183 )
+#define MPC_P84PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C184 )
+#define MPC_P85PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C185 )
+#define MPC_P86PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C186 )
+#define MPC_P87PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C187 )
+#define MPC_P90PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C188 )
+#define MPC_P91PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C189 )
+#define MPC_P92PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18A )
+#define MPC_P93PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18B )
+#define MPC_P94PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18C )
+#define MPC_P95PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18D )
+#define MPC_P96PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18E )
+#define MPC_P97PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C18F )
+#define MPC_PA0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C190 )
+#define MPC_PA1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C191 )
+#define MPC_PA2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C192 )
+#define MPC_PA3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C193 )
+#define MPC_PA4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C194 )
+#define MPC_PA5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C195 )
+#define MPC_PA6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C196 )
+#define MPC_PA7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C197 )
+#define MPC_PB0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C198 )
+#define MPC_PB1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C199 )
+#define MPC_PB2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19A )
+#define MPC_PB3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19B )
+#define MPC_PB4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19C )
+#define MPC_PB5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19D )
+#define MPC_PB6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19E )
+#define MPC_PB7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C19F )
+#define MPC_PC0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A0 )
+#define MPC_PC1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A1 )
+#define MPC_PC2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A2 )
+#define MPC_PC3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A3 )
+#define MPC_PC4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A4 )
+#define MPC_PC5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A5 )
+#define MPC_PC6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A6 )
+#define MPC_PC7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A7 )
+#define MPC_PD0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A8 )
+#define MPC_PD1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1A9 )
+#define MPC_PD2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AA )
+#define MPC_PD3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AB )
+#define MPC_PD4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AC )
+#define MPC_PD5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AD )
+#define MPC_PD6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AE )
+#define MPC_PD7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1AF )
+#define MPC_PE0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B0 )
+#define MPC_PE1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B1 )
+#define MPC_PE2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B2 )
+#define MPC_PE3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B3 )
+#define MPC_PE4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B4 )
+#define MPC_PE5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B5 )
+#define MPC_PE6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B6 )
+#define MPC_PE7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B7 )
+#define MPC_PF0PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B8 )
+#define MPC_PF1PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1B9 )
+#define MPC_PF2PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BA )
+#define MPC_PF3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BB )
+#define MPC_PF4PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BC )
+#define MPC_PF5PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BD )
+#define MPC_PF6PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BE )
+#define MPC_PF7PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1BF )
+#define MPC_PJ3PFS_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C1D3 )
+
+/*
+ * ãªã¢ã«ã¿ã¤ã ã¯ã­ãã¯
+ */
+#define RTC_R64CNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C400 )
+#define RTC_RSECCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C402 )
+#define RTC_RMINCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C404 )
+#define RTC_RHRCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C406 )
+#define RTC_RWKCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C408 )
+#define RTC_RDAYCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C40A )
+#define RTC_RMONCNT_ADDR		( ( volatile uint8_t __evenaccess * )0x0008C40C )
+#define RTC_RYRCNT_ADDR			( ( volatile uint8_t __evenaccess * )0x0008C40E )
+
+/*
+ * 12 ãããA/D ã³ã³ãã¼ã¿
+ */
+#define S12AD_ADCSR_ADDR		( ( volatile uint8_t __evenaccess * )0x00089000 )
+#define S12AD_ADCSR_ADST_BIT	0x80
+#define S12AD_ADANS0_ADDR		( ( volatile uint16_t __evenaccess * )0x00089004 )
+#define S12AD_ADANS1_ADDR		( ( volatile uint16_t __evenaccess * )0x00089006 )
+#define S12AD_ADEXICR_ADDR		( ( volatile uint16_t __evenaccess * )0x00089012 )
+#define S12AD_ADDR0_ADDR		( ( volatile uint16_t __evenaccess * )0x00089020 )
+#define S12AD_ADDR1_ADDR		( ( volatile uint16_t __evenaccess * )0x00089022 )
+#define S12AD_ADDR2_ADDR		( ( volatile uint16_t __evenaccess * )0x00089024 )
+#define S12AD_ADDR3_ADDR		( ( volatile uint16_t __evenaccess * )0x00089026 )
+#define S12AD_ADDR4_ADDR		( ( volatile uint16_t __evenaccess * )0x00089028 )
+#define S12AD_ADDR5_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902A )
+#define S12AD_ADDR6_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902C )
+#define S12AD_ADDR7_ADDR		( ( volatile uint16_t __evenaccess * )0x0008902E )
+#define S12AD_ADDR8_ADDR		( ( volatile uint16_t __evenaccess * )0x00089030 )
+#define S12AD_ADDR9_ADDR		( ( volatile uint16_t __evenaccess * )0x00089032 )
+#define S12AD_ADDR10_ADDR		( ( volatile uint16_t __evenaccess * )0x00089034 )
+#define S12AD_ADDR11_ADDR		( ( volatile uint16_t __evenaccess * )0x00089036 )
+#define S12AD_ADDR12_ADDR		( ( volatile uint16_t __evenaccess * )0x00089038 )
+#define S12AD_ADDR13_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903A )
+#define S12AD_ADDR14_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903C )
+#define S12AD_ADDR15_ADDR		( ( volatile uint16_t __evenaccess * )0x0008903E )
+#define S12AD_ADDR16_ADDR		( ( volatile uint16_t __evenaccess * )0x00089040 )
+#define S12AD_ADDR17_ADDR		( ( volatile uint16_t __evenaccess * )0x00089042 )
+#define S12AD_ADDR18_ADDR		( ( volatile uint16_t __evenaccess * )0x00089044 )
+#define S12AD_ADDR19_ADDR		( ( volatile uint16_t __evenaccess * )0x00089046 )
+#define S12AD_ADDR20_ADDR		( ( volatile uint16_t __evenaccess * )0x00089048 )
+
+#define TPU0_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088110 )
+#define TPU1_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088120 )
+#define TPU2_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088130 )
+#define TPU3_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088140 )
+#define TPU4_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088150 )
+#define TPU5_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088160 )
+#define TPU6_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088180 )
+#define TPU7_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088190 )
+#define TPU8_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A0 )
+#define TPU9_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B0 )
+#define TPU10_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C0 )
+#define TPU11_TCR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D0 )
+#define TPU_TCR_TPSC_OFFSET		( 0U )
+#define TPU_TCR_TPSC_MASK		( 0x7U << TPU_TCR_TPSC_OFFSET )
+#define TPU_TCR_CKEG_OFFSET		( 3U )
+#define TPU_TCR_CKEG_MASK		( 0x3U << TPU_TCR_CKEG_OFFSET )
+#define TPU_TCR_CCLR_OFFSET		( 5U )
+#define TPU_TCR_CCLR_MASK		( 0x7U << TPU_TCR_CCLR_OFFSET )
+
+#define TPU0_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088111 )
+#define TPU1_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088121 )
+#define TPU2_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088131 )
+#define TPU3_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088141 )
+#define TPU4_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088151 )
+#define TPU5_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088161 )
+#define TPU6_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088181 )
+#define TPU7_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088191 )
+#define TPU8_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A1 )
+#define TPU9_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B1 )
+#define TPU10_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C1 )
+#define TPU11_TMDR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D1 )
+
+#define TPU0_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C0 )
+#define TPU0_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088112 )
+#define TPU0_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088113 )
+#define TPU1_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088122 )
+#define TPU2_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088132 )
+#define TPU3_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088142 )
+#define TPU3_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088143 )
+#define TPU4_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088152 )
+#define TPU5_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088162 )
+#define TPU6_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x00088182 )
+#define TPU6_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x00088183 )
+#define TPU7_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088192 )
+#define TPU8_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881A2 )
+#define TPU9_TIORH_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B2 )
+#define TPU9_TIORL_ADDR			( ( volatile uint8_t __evenaccess * )0x000881B3 )
+#define TPU10_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881C2 )
+#define TPU11_TIOR_ADDR			( ( volatile uint8_t __evenaccess * )0x000881D2 )
+#define TPU_TIORL_IOA_OFFSET	( 0U )
+#define TPU_TIORL_IOA_MASK		( 0xFU << TPU_TIORL_IOA_OFFSET )
+#define TPU_TIORL_IOB_OFFSET	( 4U )
+#define TPU_TIORL_IOB_MASK		( 0xFU << TPU_TIORL_IOB_OFFSET )
+#define TPU_TIORL_IOC_OFFSET	( 0U )
+#define TPU_TIORL_IOC_MASK		( 0xFU << TPU_TIORL_IOC_OFFSET )
+#define TPU_TIORL_IOD_OFFSET	( 4U )
+#define TPU_TIORL_IOD_MASK		( 0xFU << TPU_TIORL_IOD_OFFSET )
+
+#define TPU0_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088118 )
+#define TPU0_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811A )
+#define TPU0_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811C )
+#define TPU0_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008811E )
+#define TPU1_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088128 )
+#define TPU1_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008812A )
+#define TPU2_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088138 )
+#define TPU2_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008813A )
+#define TPU3_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088148 )
+#define TPU3_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814A )
+#define TPU3_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814C )
+#define TPU3_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008814E )
+#define TPU4_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088158 )
+#define TPU4_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008815A )
+#define TPU5_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088168 )
+#define TPU5_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008816A )
+#define TPU6_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088188 )
+#define TPU6_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818A )
+#define TPU6_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818C )
+#define TPU6_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x0008818E )
+#define TPU7_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x00088198 )
+#define TPU7_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x0008819A )
+#define TPU8_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881A8 )
+#define TPU8_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881AA )
+#define TPU9_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881B8 )
+#define TPU9_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BA )
+#define TPU9_TGRC_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BC )
+#define TPU9_TGRD_ADDR			( ( volatile uint16_t __evenaccess * )0x000881BE )
+#define TPU10_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881C8 )
+#define TPU10_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881CA )
+#define TPU11_TGRA_ADDR			( ( volatile uint16_t __evenaccess * )0x000881D8 )
+#define TPU11_TGRB_ADDR			( ( volatile uint16_t __evenaccess * )0x000881DA )
+
+#define TPUA_TSTR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088100 )
+#define TPUB_TSTR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088170 )
+#define TPU_TSTR_CST0_BIT		( 0x01U << 0U )
+#define TPU_TSTR_CST1_BIT		( 0x01U << 1U )
+#define TPU_TSTR_CST2_BIT		( 0x01U << 2U )
+#define TPU_TSTR_CST3_BIT		( 0x01U << 3U )
+#define TPU_TSTR_CST4_BIT		( 0x01U << 4U )
+#define TPU_TSTR_CST5_BIT		( 0x01U << 5U )
+
+#define TPUA_TSYR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088101 )
+#define TPUB_TSYR_ADDR			( ( volatile uint8_t __evenaccess * )0x00088171 )
+#define TPU_TSYR_SYNC0_BIT		( 0x01U << 0U )
+#define TPU_TSYR_SYNC1_BIT		( 0x01U << 1U )
+#define TPU_TSYR_SYNC2_BIT		( 0x01U << 2U )
+#define TPU_TSYR_SYNC3_BIT		( 0x01U << 3U )
+#define TPU_TSYR_SYNC4_BIT		( 0x01U << 4U )
+#define TPU_TSYR_SYNC5_BIT		( 0x01U << 5U )
+
+/*
+ * RSPI
+ */
+#define RSPI0_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x00088380 )
+#define RSPI1_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A0 )
+#define RSPI2_SPCR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C0 )
+#define RSPI_SPCR_SPMS_BIT	( 0x01U << 0U )
+#define RSPI_SPCR_TXMD_BIT	( 0x01U << 1U )
+#define RSPI_SPCR_MODFEN_BIT	( 0x01U << 2U )
+#define RSPI_SPCR_MSTR_BIT	( 0x01U << 3U )
+#define RSPI_SPCR_SPEIE_BIT	( 0x01U << 4U )
+#define RSPI_SPCR_SPTIE_BIT	( 0x01U << 5U )
+#define RSPI_SPCR_SPE_BIT	( 0x01U << 6U )
+#define RSPI_SPCR_SPRIE_BIT	( 0x01U << 7U )
+
+#define RSPI0_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x00088381 )
+#define RSPI1_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A1 )
+#define RSPI2_SSLP_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C1 )
+
+#define RSPI0_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088382 )
+#define RSPI1_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A2 )
+#define RSPI2_SPPCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C2 )
+
+#define RSPI0_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x00088383 )
+#define RSPI1_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883A3 )
+#define RSPI2_SPSR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883C3 )
+
+#define RSPI0_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x00088384 )
+#define RSPI1_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x000883A4 )
+#define RSPI2_SPDR_ADDR		( ( volatile uint32_t __evenaccess * )0x000883C4 )
+
+#define RSPI0_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088388 )
+#define RSPI1_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A8 )
+#define RSPI2_SPSCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C8 )
+
+#define RSPI0_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x00088389 )
+#define RSPI1_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883A9 )
+#define RSPI2_SPSSR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883C9 )
+
+#define RSPI0_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x0008838A )
+#define RSPI1_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883AA )
+#define RSPI2_SPBR_ADDR		( ( volatile uint8_t __evenaccess * )0x000883CA )
+
+#define RSPI0_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838B )
+#define RSPI1_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AB )
+#define RSPI2_SPDCR_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CB )
+
+#define RSPI0_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838C )
+#define RSPI1_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AC )
+#define RSPI2_SPCKD_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CC )
+
+#define RSPI0_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838D )
+#define RSPI1_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AD )
+#define RSPI2_SSLND_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CD )
+
+#define RSPI0_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x0008838E )
+#define RSPI1_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x000883AE )
+#define RSPI2_SPND_ADDR		( ( volatile uint8_t __evenaccess * )0x000883CE )
+
+#define RSPI0_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x0008838F )
+#define RSPI1_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x000883AF )
+#define RSPI2_SPCR2_ADDR	( ( volatile uint8_t __evenaccess * )0x000883CF )
+
+#define RSPI0_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x00088390 )
+#define RSPI0_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x00088392 )
+#define RSPI0_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x00088394 )
+#define RSPI0_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x00088396 )
+#define RSPI0_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x00088398 )
+#define RSPI0_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839A )
+#define RSPI0_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839C )
+#define RSPI0_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x0008839E )
+#define RSPI1_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B0 )
+#define RSPI1_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B2 )
+#define RSPI1_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B4 )
+#define RSPI1_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B6 )
+#define RSPI1_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x000883B8 )
+#define RSPI1_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BA )
+#define RSPI1_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BC )
+#define RSPI1_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x000883BE )
+#define RSPI2_SPCMD0_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D0 )
+#define RSPI2_SPCMD1_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D2 )
+#define RSPI2_SPCMD2_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D4 )
+#define RSPI2_SPCMD3_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D6 )
+#define RSPI2_SPCMD4_ADDR	( ( volatile uint16_t __evenaccess * )0x000883D8 )
+#define RSPI2_SPCMD5_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DA )
+#define RSPI2_SPCMD6_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DC )
+#define RSPI2_SPCMD7_ADDR	( ( volatile uint16_t __evenaccess * )0x000883DE )
+#define RSPI_SPCMD_SPB_OFFSET	(8)
+#define RSPI_SPCMD_SPB_MASK (0xF << RSPI_SPCMD_SPB_OFFSET)
+
+/*
+ *  UARTé¢é£ã®å®ç¾©
+ *
+ *  pdicã®rx600/rx630_uart.cã§ä½¿ç¨ããï¼
+ */
+/*
+ *  ã·ãªã¢ã«I/Oã®åæ°
+ */
+#define TNUM_SIOP	( 2 )
+
+#endif	/* TOPPERS_RX630_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.c	(revision 313)
@@ -0,0 +1,610 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ */
+
+#include "kernel_impl.h"
+
+
+/*
+ *  å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+volatile uint8_t __evenaccess * const ipr_reg_addr[ INHNO_MAX ] = {
+	NULL,							/* No.0  äºç´ */
+	NULL,							/* No.1  äºç´ */
+	NULL,							/* No.2  äºç´ */
+	NULL,							/* No.3  äºç´ */
+	NULL,							/* No.4  äºç´ */
+	NULL,							/* No.5  äºç´ */
+	NULL,							/* No.6  äºç´ */
+	NULL,							/* No.7  äºç´ */
+	NULL,							/* No.8  äºç´ */
+	NULL,							/* No.9  äºç´ */
+	NULL,							/* No.10  äºç´ */
+	NULL,							/* No.11  äºç´ */
+	NULL,							/* No.12  äºç´ */
+	NULL,							/* No.13  äºç´ */
+	NULL,							/* No.14  äºç´ */
+	NULL,							/* No.15  äºç´ */
+	ICU_IPR000_ADDR,				/* No.16  ãã¹ã¨ã©ã¼ BUSERR */
+	NULL,							/* No.17  äºç´ */
+	NULL,							/* No.18  äºç´ */
+	NULL,							/* No.19  äºç´ */
+	NULL,							/* No.20  äºç´ */
+	ICU_IPR001_ADDR,				/* No.21  FCU FIFERR */
+	NULL,							/* No.22  äºç´ */
+	ICU_IPR002_ADDR,				/* No.23  FCU FRDYI */
+	NULL,							/* No.24  äºç´ */
+	NULL,							/* No.25  äºç´ */
+	NULL,							/* No.26  äºç´ */
+	ICU_IPR003_ADDR,				/* No.27  SWINT */
+	ICU_IPR004_ADDR,				/* No.28  CMTã¦ããã0 CMT0 */
+	ICU_IPR005_ADDR,				/* No.29  CMTã¦ããã0 CMT1 */
+	ICU_IPR006_ADDR,				/* No.30  CMTã¦ããã1 CMT2 */
+	ICU_IPR007_ADDR,				/* No.31  CMTã¦ããã1 CMT3 */
+	ICU_IPR032_ADDR,				/* No.32  ETHER */
+	ICU_IPR033_ADDR,				/* No.33  USB0 D0FIFO0 */
+	ICU_IPR034_ADDR,				/* No.34  USB0 D1FIFO0 */
+	ICU_IPR035_ADDR,				/* No.35  USB0 USBI0 */
+	ICU_IPR036_ADDR,				/* No.36  USB1 D0FIFO1 */
+	ICU_IPR037_ADDR,				/* No.37  USB1 D1FIFO1 */
+	ICU_IPR038_ADDR,				/* No.38  USB1 USBI1 */
+	ICU_IPR039_ADDR,				/* No.39  SPRI0 */
+	ICU_IPR039_ADDR,				/* No.40  SPTI0 */
+	ICU_IPR039_ADDR,				/* No.41  SPII0 */
+	ICU_IPR042_ADDR,				/* No.42  SPRI1 */
+	ICU_IPR042_ADDR,				/* No.43  SPTI1 */
+	ICU_IPR042_ADDR,				/* No.44  SPII1 */
+	ICU_IPR045_ADDR,				/* No.45  SPRI2 */
+	ICU_IPR045_ADDR,				/* No.46  SPTI2 */
+	ICU_IPR045_ADDR,				/* No.47  SPII2 */
+	ICU_IPR048_ADDR, 				/* No.48  CAN RXF0 */
+	ICU_IPR048_ADDR, 				/* No.49  CAN TXF0 */
+	ICU_IPR048_ADDR, 				/* No.50  CAN RXM0 */
+	ICU_IPR048_ADDR, 				/* No.51  CAN TXM0 */
+	ICU_IPR052_ADDR, 				/* No.52  CAN RXF1 */
+	ICU_IPR052_ADDR, 				/* No.53  CAN TXF1 */
+	ICU_IPR052_ADDR, 				/* No.54  CAN RXM1 */
+	ICU_IPR052_ADDR, 				/* No.55  CAN TXM1 */
+	ICU_IPR056_ADDR, 				/* No.56  CAN RXF2 */
+	ICU_IPR056_ADDR, 				/* No.57  CAN TXF2 */
+	ICU_IPR056_ADDR, 				/* No.58  CAN RXM2 */
+	ICU_IPR056_ADDR, 				/* No.59  CAN TXM2 */
+	NULL,							/* No.60  äºç´ */
+	NULL,							/* No.61  äºç´ */
+	ICU_IPR062_ADDR,			 	/* No.62  RTC PRD */
+	NULL,							/* No.63  äºç´ */
+	ICU_IPR064_ADDR,				/* No.64  å¤é¨ç«¯å­ IRQ0 */
+	ICU_IPR065_ADDR,				/* No.65  å¤é¨ç«¯å­ IRQ1 */
+	ICU_IPR066_ADDR,				/* No.66  å¤é¨ç«¯å­ IRQ2 */
+	ICU_IPR067_ADDR,				/* No.67  å¤é¨ç«¯å­ IRQ3 */
+	ICU_IPR068_ADDR,				/* No.68  å¤é¨ç«¯å­ IRQ4 */
+	ICU_IPR069_ADDR,				/* No.69  å¤é¨ç«¯å­ IRQ5 */
+	ICU_IPR070_ADDR,				/* No.70  å¤é¨ç«¯å­ IRQ6 */
+	ICU_IPR071_ADDR,				/* No.71  å¤é¨ç«¯å­ IRQ7 */
+	ICU_IPR072_ADDR,				/* No.72  å¤é¨ç«¯å­ IRQ8 */
+	ICU_IPR073_ADDR,				/* No.73  å¤é¨ç«¯å­ IRQ9 */
+	ICU_IPR074_ADDR,				/* No.74  å¤é¨ç«¯å­ IRQ10 */
+	ICU_IPR075_ADDR,				/* No.75  å¤é¨ç«¯å­ IRQ11 */
+	ICU_IPR076_ADDR,				/* No.76  å¤é¨ç«¯å­ IRQ12 */
+	ICU_IPR077_ADDR,				/* No.77  å¤é¨ç«¯å­ IRQ13 */
+	ICU_IPR078_ADDR,				/* No.78  å¤é¨ç«¯å­ IRQ14 */
+	ICU_IPR079_ADDR,				/* No.79  å¤é¨ç«¯å­ IRQ15 */
+	NULL,							/* No.80  äºç´ */
+	NULL,							/* No.81  äºç´ */
+	NULL,							/* No.82  äºç´ */
+	NULL,							/* No.83  äºç´ */
+	NULL,							/* No.84  äºç´ */
+	NULL,							/* No.85  äºç´ */
+	NULL,							/* No.86  äºç´ */
+	NULL,							/* No.87  äºç´ */
+	NULL,							/* No.88  äºç´ */
+	NULL,							/* No.89  äºç´ */
+	ICU_IPR090_ADDR, 				/* No.90  USBR0 */
+	ICU_IPR091_ADDR, 				/* No.91  USBR1 */
+	ICU_IPR092_ADDR,				/* No.92  RTC ALM */
+	ICU_IPR093_ADDR,				/* No.93  RTC PRD */
+	NULL,							/* No.94  äºç´ */
+	NULL,							/* No.95  äºç´ */
+	NULL,							/* No.96  äºç´ */
+	NULL,							/* No.97  äºç´ */
+	ICU_IPR098_ADDR,				/* No.98  AD ADI0 */
+	NULL,							/* No.99  äºç´ */
+	NULL,							/* No.100  äºç´ */
+	NULL,							/* No.101  äºç´ */
+	ICU_IPR102_ADDR,				/* No.102 S12AD S12ADIO */
+	NULL,							/* No.103  äºç´ */
+	NULL,							/* No.104  äºç´ */
+	NULL,							/* No.105  äºç´ */
+	ICU_IPR106_ADDR,				/* No.106 ICU GROUP0 */
+	ICU_IPR107_ADDR,				/* No.107 ICU GROUP1 */
+	ICU_IPR108_ADDR,				/* No.108 ICU GROUP2 */
+	ICU_IPR109_ADDR,				/* No.109 ICU GROUP3 */
+	ICU_IPR110_ADDR,				/* No.110 ICU GROUP4 */
+	ICU_IPR111_ADDR,				/* No.111 ICU GROUP5 */
+	ICU_IPR112_ADDR,				/* No.112 ICU GROUP6 */
+	NULL,							/* No.113  äºç´ */
+	ICU_IPR114_ADDR,				/* No.114 ICU GROUP12 */
+	NULL,							/* No.115  äºç´ */
+	NULL,							/* No.116  äºç´ */
+	NULL,							/* No.117  äºç´ */
+	NULL,							/* No.118  äºç´ */
+	NULL,							/* No.119  äºç´ */
+	NULL,							/* No.120  äºç´ */
+	NULL,							/* No.121  äºç´ */
+	ICU_IPR122_ADDR,				/* No.122 SCI12 SCIX0 */
+	ICU_IPR123_ADDR,				/* No.123 SCI12 SCIX1 */
+	ICU_IPR124_ADDR,				/* No.124 SCI12 SCIX2 */
+	ICU_IPR125_ADDR,				/* No.125 SCI12 SCIX3 */
+	ICU_IPR126_ADDR,				/* No.126 TPU0 TGI0A */
+	ICU_IPR126_ADDR,				/* No.127 TPU0 TGI0B */
+	ICU_IPR126_ADDR,				/* No.128 TPU0 TGI0C */
+	ICU_IPR126_ADDR,				/* No.129 TPU0 TGI0D */
+	ICU_IPR130_ADDR,				/* No.130 TPU1 TGI1A */
+	ICU_IPR130_ADDR,				/* No.131 TPU1 TGI1B */
+	ICU_IPR132_ADDR,				/* No.132 TPU2 TGI2A */
+	ICU_IPR132_ADDR,				/* No.133 TPU2 TGI2B */
+	ICU_IPR134_ADDR,				/* No.134 TPU3 TGI3A */
+	ICU_IPR134_ADDR,				/* No.135 TPU3 TGI3B */
+	ICU_IPR134_ADDR,				/* No.136 TPU3 TGI3C */
+	ICU_IPR134_ADDR,				/* No.137 TPU3 TGI3D */
+	ICU_IPR138_ADDR,				/* No.138 TPU4 TGI4A */
+	ICU_IPR138_ADDR,				/* No.139 TPU4 TGI4B */
+	ICU_IPR140_ADDR,				/* No.140 TPU5 TGI5A */
+	ICU_IPR140_ADDR,				/* No.141 TPU5 TGI5B */
+	ICU_IPR142_ADDR,				/* No.142 TPU6 TGI6A */
+	ICU_IPR142_ADDR,				/* No.143 TPU6 TGI6B */
+	ICU_IPR142_ADDR,				/* No.144 TPU6 TGI6C */
+	ICU_IPR142_ADDR,				/* No.145 TPU6 TGI6D */
+	ICU_IPR146_ADDR,				/* No.146 TGIE0 */
+	ICU_IPR146_ADDR,				/* No.147 TGIF0 */
+	ICU_IPR148_ADDR,				/* No.148 TPU7 TGI7A */
+	ICU_IPR148_ADDR,				/* No.149 TPU7 TGI7B */
+	ICU_IPR150_ADDR,				/* No.150 TPU8 TGI8A */
+	ICU_IPR150_ADDR,				/* No.151 TPU8 TGI8B */
+	ICU_IPR152_ADDR,				/* No.152 TPU9 TGI9A */
+	ICU_IPR152_ADDR,				/* No.153 TPU9 TGI9B */
+	ICU_IPR152_ADDR,				/* No.154 TPU9 TGI9C */
+	ICU_IPR152_ADDR,				/* No.155 TPU9 TGI9D */
+	ICU_IPR156_ADDR,				/* No.156 TPU10 TGI10A */
+	ICU_IPR156_ADDR,				/* No.157 TPU10 TGI10B */
+	ICU_IPR156_ADDR,				/* No.158 TGIC4 */
+	ICU_IPR156_ADDR,				/* No.159 TGID4 */
+	ICU_IPR160_ADDR,				/* No.160 TGIV4 */
+	ICU_IPR161_ADDR,				/* No.161 TGIU5 */
+	ICU_IPR162_ADDR,				/* No.162 TGIV5 */
+	ICU_IPR163_ADDR,				/* No.163 TGIW5 */
+	ICU_IPR164_ADDR,				/* No.164 TCI11A */
+	ICU_IPR165_ADDR,				/* No.165 TCI11B */
+	ICU_IPR167_ADDR,				/* No.166 POE OEI1 */
+	ICU_IPR167_ADDR,				/* No.167 POE OEI2 */
+	NULL,							/* No.168  äºç´ */
+	NULL,							/* No.169  äºç´ */
+	ICU_IPR170_ADDR,				/* No.170 TMR0 CMIA0 */
+	ICU_IPR170_ADDR,				/* No.171 TMR0 CMIB0 */
+	ICU_IPR170_ADDR,				/* No.172 TMR0 OVI0 */
+	ICU_IPR173_ADDR,				/* No.173 TMR1 CMIA1 */
+	ICU_IPR173_ADDR,				/* No.174 TMR1 CMIB1 */
+	ICU_IPR173_ADDR,				/* No.175 TMR1 OVI1 */
+	ICU_IPR176_ADDR,				/* No.176 TMR2 CMIA2 */
+	ICU_IPR176_ADDR,				/* No.177 TMR2 CMIB2 */
+	ICU_IPR176_ADDR,				/* No.178 TMR2 OVI2 */
+	ICU_IPR179_ADDR,				/* No.179 TMR3 CMIA3 */
+	ICU_IPR179_ADDR,				/* No.180 TMR3 CMIB3 */
+	ICU_IPR179_ADDR,				/* No.181 TMR3 OVI3 */
+	ICU_IPR182_ADDR,				/* No.182 RIIC0 EEI0 */
+	ICU_IPR183_ADDR,				/* No.183 RIIC0 RXI0 */
+	ICU_IPR184_ADDR,				/* No.184 RIIC0 TXI0 */
+	ICU_IPR185_ADDR,				/* No.185 RIIC0 TEI0 */
+	ICU_IPR186_ADDR,				/* No.186 RIIC0 EEI1 */
+	ICU_IPR187_ADDR,				/* No.187 RIIC0 RXI1 */
+	ICU_IPR188_ADDR,				/* No.188 RIIC0 TXI1 */
+	ICU_IPR189_ADDR,				/* No.189 RIIC0 TEI1 */
+	ICU_IPR190_ADDR,				/* No.190 RIIC0 EEI2 */
+	ICU_IPR191_ADDR,				/* No.191 RIIC0 RXI2 */
+	ICU_IPR192_ADDR,				/* No.192 RIIC0 TXI2 */
+	ICU_IPR193_ADDR,				/* No.193 RIIC0 TEI2 */
+	ICU_IPR194_ADDR,				/* No.194 RIIC0 EEI3 */
+	ICU_IPR195_ADDR,				/* No.195 RIIC0 RXI3 */
+	ICU_IPR196_ADDR,				/* No.196 RIIC0 TXI3 */
+	ICU_IPR197_ADDR,				/* No.197 RIIC0 TEI3 */
+	ICU_IPR198_ADDR,				/* No.198 DMAC DMTEND0 */
+	ICU_IPR199_ADDR,				/* No.199 DMAC DMTEND1 */
+	ICU_IPR200_ADDR,				/* No.200 DMAC DMTEND2 */
+	ICU_IPR201_ADDR,				/* No.201 DMAC DMTEND3 */
+	ICU_IPR202_ADDR,				/* No.202 EXDMAC EXDMACI0 */
+	ICU_IPR203_ADDR,				/* No.203 EXDMAC EXDMACI1 */
+	NULL,							/* No.204  äºç´ */
+	NULL,							/* No.205  äºç´ */
+	NULL,							/* No.206  äºç´ */
+	NULL,							/* No.207  äºç´ */
+	NULL,							/* No.208  äºç´ */
+	NULL,							/* No.209  äºç´ */
+	NULL,							/* No.210  äºç´ */
+	NULL,							/* No.211  äºç´ */
+	NULL,							/* No.212  äºç´ */
+	NULL,							/* No.213  äºç´ */
+	ICU_IPR214_ADDR,				/* No.214 SCI0 RXI0 */
+	ICU_IPR214_ADDR,				/* No.215 SCI0 TXI0 */
+	ICU_IPR214_ADDR,				/* No.216 SCI0 TEI0 */
+	ICU_IPR217_ADDR,				/* No.217 SCI1 RXI1 */
+	ICU_IPR217_ADDR,				/* No.218 SCI1 TXI1 */
+	ICU_IPR217_ADDR,				/* No.219 SCI1 TEI1 */
+	ICU_IPR220_ADDR,				/* No.220 SCI2 RXI2 */
+	ICU_IPR220_ADDR,				/* No.221 SCI2 TXI2 */
+	ICU_IPR220_ADDR,				/* No.222 SCI2 TEI2 */
+	ICU_IPR223_ADDR,				/* No.223 SCI3 RXI3 */
+	ICU_IPR223_ADDR,				/* No.224 SCI3 TXI3 */
+	ICU_IPR223_ADDR,				/* No.225 SCI3 TEI3 */
+	ICU_IPR226_ADDR,				/* No.226 SCI4 RXI4 */
+	ICU_IPR226_ADDR,				/* No.227 SCI4 TXI4 */
+	ICU_IPR226_ADDR,				/* No.228 SCI4 TEI4 */
+	ICU_IPR229_ADDR,				/* No.229 SCI5 RXI5 */
+	ICU_IPR229_ADDR,				/* No.230 SCI5 TXI5 */
+	ICU_IPR229_ADDR,				/* No.231 SCI5 TEI5 */
+	ICU_IPR232_ADDR,				/* No.232 SCI6 RXI6 */
+	ICU_IPR232_ADDR,				/* No.233 SCI6 TXI6 */
+	ICU_IPR232_ADDR,				/* No.234 SCI6 TEI6 */
+	ICU_IPR235_ADDR,				/* No.235 SCI7 RXI7 */
+	ICU_IPR235_ADDR,				/* No.236 SCI7 TXI7 */
+	ICU_IPR235_ADDR,				/* No.237 SCI7 TEI7 */
+	ICU_IPR238_ADDR,				/* No.238 SCI8 RXI8 */
+	ICU_IPR238_ADDR,				/* No.239 SCI8 TXI8 */
+	ICU_IPR238_ADDR,				/* No.240 SCI8 TEI8 */
+	ICU_IPR241_ADDR,				/* No.241 SCI9 RXI9 */
+	ICU_IPR241_ADDR,				/* No.242 SCI9 TXI9 */
+	ICU_IPR241_ADDR,				/* No.243 SCI9 TEI9 */
+	ICU_IPR244_ADDR,				/* No.244 SCI10 RXI10 */
+	ICU_IPR244_ADDR,				/* No.245 SCI10 TXI10 */
+	ICU_IPR244_ADDR,				/* No.246 SCI10 TEI10 */
+	ICU_IPR247_ADDR,				/* No.247 SCI11 RXI11 */
+	ICU_IPR247_ADDR,				/* No.248 SCI11 TXI11 */
+	ICU_IPR247_ADDR,				/* No.249 SCI11 TEI11 */
+	ICU_IPR250_ADDR,				/* No.250 SCI12 RXI12 */
+	ICU_IPR250_ADDR,				/* No.251 SCI12 TXI12 */
+	ICU_IPR250_ADDR,				/* No.252 SCI12 TEI12 */
+	ICU_IPR253_ADDR,				/* No.253 IEB IEBINT */
+	NULL,							/* No.254  äºç´ */
+	NULL,							/* No.255  äºç´ */
+};
+
+
+/*
+ *  å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+const IER_INFO ier_reg_addr[ INHNO_MAX ] = {
+	{ NULL, INVALID_OFFSET },			/* No.0   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.1   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.2   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.3   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.4   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.5   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.6   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.7   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.8   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.9   äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.10  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.11  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.12  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.13  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.14  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.15  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN0_BIT },	/* No.16  ãã¹ã¨ã©ã¼ BUSERR */
+	{ NULL, INVALID_OFFSET },			/* No.17  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.18  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.19  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.20  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN5_BIT },	/* No.21  FCU FIFERR */
+	{ NULL, INVALID_OFFSET },			/* No.22  äºç´ */
+	{ ICU_IER02_ADDR, ICU_IEN7_BIT },	/* No.23  FCU FRDYI */
+	{ NULL, INVALID_OFFSET },			/* No.24  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.25  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.26  äºç´ */
+	{ ICU_IER03_ADDR, ICU_IEN3_BIT },	/* No.27  SWINT */
+	{ ICU_IER03_ADDR, ICU_IEN4_BIT },	/* No.28  CMTã¦ããã0 CMT0 */
+	{ ICU_IER03_ADDR, ICU_IEN5_BIT },	/* No.29  CMTã¦ããã0 CMT1 */
+	{ ICU_IER03_ADDR, ICU_IEN6_BIT },	/* No.30  CMTã¦ããã1 CMT2 */
+	{ ICU_IER03_ADDR, ICU_IEN7_BIT },	/* No.31  CMTã¦ããã1 CMT3 */
+	{ ICU_IER04_ADDR, ICU_IEN0_BIT },	/* No.32  ETHER */
+	{ ICU_IER04_ADDR, ICU_IEN1_BIT },	/* No.33  USB0 D0FIFO0 */
+	{ ICU_IER04_ADDR, ICU_IEN2_BIT },	/* No.34  USB0 D1FIFO0 */
+	{ ICU_IER04_ADDR, ICU_IEN3_BIT },	/* No.35  USB0 USBI0 */
+	{ ICU_IER04_ADDR, ICU_IEN4_BIT },	/* No.36  USB1 D0FIFO1 */
+	{ ICU_IER04_ADDR, ICU_IEN5_BIT },	/* No.37  USB1 D1FIFO1 */
+	{ ICU_IER04_ADDR, ICU_IEN6_BIT },	/* No.38  USB1 USBI1 */
+	{ ICU_IER04_ADDR, ICU_IEN7_BIT },	/* No.39  RSPI0 SPRI0 */
+	{ ICU_IER05_ADDR, ICU_IEN0_BIT },	/* No.40  RSPI0 SPTI0 */
+	{ ICU_IER05_ADDR, ICU_IEN1_BIT },	/* No.41  RSPI0 SPII0 */
+	{ ICU_IER05_ADDR, ICU_IEN2_BIT },	/* No.42  RSPI1 SPRI1 */
+	{ ICU_IER05_ADDR, ICU_IEN3_BIT },	/* No.43  RSPI1 SPTI1 */
+	{ ICU_IER05_ADDR, ICU_IEN4_BIT },	/* No.44  RSPI1 SPII1 */
+	{ ICU_IER05_ADDR, ICU_IEN5_BIT },	/* No.45  RSPI2 SPRI2 */
+	{ ICU_IER05_ADDR, ICU_IEN6_BIT },	/* No.46  RSPI2 SPTI2 */
+	{ ICU_IER05_ADDR, ICU_IEN7_BIT },	/* No.47  RSPI2 SPII2 */
+	{ ICU_IER06_ADDR, ICU_IEN0_BIT },	/* No.48  CAN0 RXF0 */
+	{ ICU_IER06_ADDR, ICU_IEN1_BIT },	/* No.49  CAN0 TXF0 */
+	{ ICU_IER06_ADDR, ICU_IEN2_BIT },	/* No.50  CAN0 RXM0 */
+	{ ICU_IER06_ADDR, ICU_IEN3_BIT },	/* No.51  CAN0 TXM0 */
+	{ ICU_IER06_ADDR, ICU_IEN4_BIT },	/* No.52  CAN1 RXF1 */
+	{ ICU_IER06_ADDR, ICU_IEN5_BIT },	/* No.53  CAN1 TXF1 */
+	{ ICU_IER06_ADDR, ICU_IEN6_BIT },	/* No.54  CAN1 RXM1 */
+	{ ICU_IER06_ADDR, ICU_IEN7_BIT },	/* No.55  CAN1 TXM1 */
+	{ ICU_IER07_ADDR, ICU_IEN0_BIT },	/* No.56  CAN2 RXF2 */
+	{ ICU_IER07_ADDR, ICU_IEN1_BIT },	/* No.57  CAN2 TXF2 */
+	{ ICU_IER07_ADDR, ICU_IEN2_BIT },	/* No.58  CAN2 RXM2 */
+	{ ICU_IER07_ADDR, ICU_IEN3_BIT },	/* No.59  CAN2 TXM2 */
+	{ NULL, INVALID_OFFSET },			/* No.60  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.61  äºç´ */
+	{ ICU_IER07_ADDR, ICU_IEN6_BIT },	/* No.62  RTC PRD */
+	{ NULL, INVALID_OFFSET },			/* No.63  äºç´ */
+	{ ICU_IER08_ADDR, ICU_IEN0_BIT },	/* No.64  å¤é¨ç«¯å­ IRQ0 */
+	{ ICU_IER08_ADDR, ICU_IEN1_BIT },	/* No.65  å¤é¨ç«¯å­ IRQ1 */
+	{ ICU_IER08_ADDR, ICU_IEN2_BIT },	/* No.66  å¤é¨ç«¯å­ IRQ2 */
+	{ ICU_IER08_ADDR, ICU_IEN3_BIT },	/* No.67  å¤é¨ç«¯å­ IRQ3 */
+	{ ICU_IER08_ADDR, ICU_IEN4_BIT },	/* No.68  å¤é¨ç«¯å­ IRQ4 */
+	{ ICU_IER08_ADDR, ICU_IEN5_BIT },	/* No.69  å¤é¨ç«¯å­ IRQ5 */
+	{ ICU_IER08_ADDR, ICU_IEN6_BIT },	/* No.70  å¤é¨ç«¯å­ IRQ6 */
+	{ ICU_IER08_ADDR, ICU_IEN7_BIT },	/* No.71  å¤é¨ç«¯å­ IRQ7 */
+	{ ICU_IER09_ADDR, ICU_IEN0_BIT },	/* No.72  å¤é¨ç«¯å­ IRQ8 */
+	{ ICU_IER09_ADDR, ICU_IEN1_BIT },	/* No.73  å¤é¨ç«¯å­ IRQ9 */
+	{ ICU_IER09_ADDR, ICU_IEN2_BIT },	/* No.74  å¤é¨ç«¯å­ IRQ10 */
+	{ ICU_IER09_ADDR, ICU_IEN3_BIT },	/* No.75  å¤é¨ç«¯å­ IRQ11 */
+	{ ICU_IER09_ADDR, ICU_IEN4_BIT },	/* No.76  å¤é¨ç«¯å­ IRQ12 */
+	{ ICU_IER09_ADDR, ICU_IEN5_BIT },	/* No.77  å¤é¨ç«¯å­ IRQ13 */
+	{ ICU_IER09_ADDR, ICU_IEN6_BIT },	/* No.78  å¤é¨ç«¯å­ IRQ14 */
+	{ ICU_IER09_ADDR, ICU_IEN7_BIT },	/* No.79  å¤é¨ç«¯å­ IRQ15 */
+	{ NULL, INVALID_OFFSET },			/* No.80  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.81  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.82  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.83  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.84  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.85  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.86  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.87  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.88  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.89  äºç´ */
+	{ ICU_IER0B_ADDR, ICU_IEN2_BIT },	/* No.90  USBR0 */
+	{ ICU_IER0B_ADDR, ICU_IEN3_BIT },	/* No.91  USBR1 */
+	{ ICU_IER0B_ADDR, ICU_IEN4_BIT },	/* No.92  RTC ALM */
+	{ ICU_IER0B_ADDR, ICU_IEN5_BIT },	/* No.92  RTC PRD */
+	{ NULL, INVALID_OFFSET },			/* No.94  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.95  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.96  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.97  äºç´ */
+	{ ICU_IER0C_ADDR, ICU_IEN2_BIT },	/* No.98  AD0 ADI0 */
+	{ NULL, INVALID_OFFSET },			/* No.99  äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.100 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.101 äºç´ */
+	{ ICU_IER0C_ADDR, ICU_IEN6_BIT },	/* No.102 S12AD S12ADI00 */
+	{ NULL, INVALID_OFFSET },			/* No.103 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.104 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.105 äºç´ */
+	{ ICU_IER0D_ADDR, ICU_IEN2_BIT },	/* No.106 ICU GROUP0 */
+	{ ICU_IER0D_ADDR, ICU_IEN3_BIT },	/* No.107 ICU GROUP1 */
+	{ ICU_IER0D_ADDR, ICU_IEN4_BIT },	/* No.108 ICU GROUP2 */
+	{ ICU_IER0D_ADDR, ICU_IEN5_BIT },	/* No.109 ICU GROUP3 */
+	{ ICU_IER0D_ADDR, ICU_IEN6_BIT },	/* No.110 ICU GROUP4 */
+	{ ICU_IER0D_ADDR, ICU_IEN7_BIT },	/* No.111 ICU GROUP5 */
+	{ ICU_IER0E_ADDR, ICU_IEN0_BIT },	/* No.112 ICU GROUP6 */
+	{ NULL, INVALID_OFFSET },			/* No.113 äºç´ */
+	{ ICU_IER0E_ADDR, ICU_IEN1_BIT },	/* No.114 ICU GROUP12 */
+	{ NULL, INVALID_OFFSET },			/* No.115 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.116 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.117 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.118 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.119 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.120 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.121 äºç´ */
+	{ ICU_IER0F_ADDR, ICU_IEN2_BIT },	/* No.122 SCI12 SCIX0 */
+	{ ICU_IER0F_ADDR, ICU_IEN3_BIT },	/* No.123 SCI12 SCIX1 */
+	{ ICU_IER0F_ADDR, ICU_IEN4_BIT },	/* No.124 SCI12 SCIX2 */
+	{ ICU_IER0F_ADDR, ICU_IEN5_BIT },	/* No.125 SCI12 SCIX3 */
+	{ ICU_IER0F_ADDR, ICU_IEN6_BIT },	/* No.126 TPU0 TGI0A */
+	{ ICU_IER0F_ADDR, ICU_IEN7_BIT },	/* No.127 TPU0 TGI0B */
+	{ ICU_IER10_ADDR, ICU_IEN0_BIT },	/* No.128 TPU0 TGI0C */
+	{ ICU_IER10_ADDR, ICU_IEN1_BIT },	/* No.129 TPU0 TGI0D */
+	{ ICU_IER10_ADDR, ICU_IEN2_BIT },	/* No.130 TPU1 TGI1A */
+	{ ICU_IER10_ADDR, ICU_IEN3_BIT },	/* No.131 TPU1 TGI1B */
+	{ ICU_IER10_ADDR, ICU_IEN4_BIT },	/* No.132 TPU2 TGI2A */
+	{ ICU_IER10_ADDR, ICU_IEN5_BIT },	/* No.133 TPU2 TGI2B */
+	{ ICU_IER10_ADDR, ICU_IEN6_BIT },	/* No.134 TPU3 TGI3A */
+	{ ICU_IER10_ADDR, ICU_IEN7_BIT },	/* No.135 TPU3 TGI3B */
+	{ ICU_IER11_ADDR, ICU_IEN0_BIT },	/* No.136 TPU3 TGI3C */
+	{ ICU_IER11_ADDR, ICU_IEN1_BIT },	/* No.137 TPU3 TGI3D */
+	{ ICU_IER11_ADDR, ICU_IEN2_BIT },	/* No.138 TPU4 TGI4A */
+	{ ICU_IER11_ADDR, ICU_IEN3_BIT },	/* No.139 TPU4 TGI4B */
+	{ ICU_IER11_ADDR, ICU_IEN4_BIT },	/* No.140 TPU5 TGI5A */
+	{ ICU_IER11_ADDR, ICU_IEN5_BIT },	/* No.141 TPU5 TGI5B */
+	{ ICU_IER11_ADDR, ICU_IEN6_BIT },	/* No.142 TPU6 TGI6A */
+	{ ICU_IER11_ADDR, ICU_IEN7_BIT },	/* No.143 TPU6 TGI6B */
+	{ ICU_IER12_ADDR, ICU_IEN0_BIT },	/* No.144 TPU6 TGI6C */
+	{ ICU_IER12_ADDR, ICU_IEN1_BIT },	/* No.145 TPU6 TGI6D */
+	{ ICU_IER12_ADDR, ICU_IEN2_BIT },	/* No.146 TPU6 TGIE0 */
+	{ ICU_IER12_ADDR, ICU_IEN3_BIT },	/* No.147 TPU6 TGIF0 */
+	{ ICU_IER12_ADDR, ICU_IEN4_BIT },	/* No.148 TPU7 TGI7A */
+	{ ICU_IER12_ADDR, ICU_IEN5_BIT },	/* No.149 TPU7 TGI7B */
+	{ ICU_IER12_ADDR, ICU_IEN6_BIT },	/* No.150 TPU8 TGI8A */
+	{ ICU_IER12_ADDR, ICU_IEN7_BIT },	/* No.151 TPU8 TGI8B */
+	{ ICU_IER13_ADDR, ICU_IEN0_BIT },	/* No.152 TPU9 TGI9A */
+	{ ICU_IER13_ADDR, ICU_IEN1_BIT },	/* No.153 TPU9 TGI9B */
+	{ ICU_IER13_ADDR, ICU_IEN2_BIT },	/* No.154 TPU9 TGI9C */
+	{ ICU_IER13_ADDR, ICU_IEN3_BIT },	/* No.155 TPU9 TGI9D */
+	{ ICU_IER13_ADDR, ICU_IEN4_BIT },	/* No.156 TPU10 TGI10A */
+	{ ICU_IER13_ADDR, ICU_IEN5_BIT },	/* No.157 TPU10 TGI10B */
+	{ ICU_IER13_ADDR, ICU_IEN6_BIT },	/* No.158 TPU10 TGIC4 */
+	{ ICU_IER13_ADDR, ICU_IEN7_BIT },	/* No.159 TPU10 TGID4 */
+	{ ICU_IER14_ADDR, ICU_IEN0_BIT },	/* No.160 TPU10 TGIV4 */
+	{ ICU_IER14_ADDR, ICU_IEN1_BIT },	/* No.161 TPU11 TGIU5 */
+	{ ICU_IER14_ADDR, ICU_IEN2_BIT },	/* No.162 TPU11 TGIV5 */
+	{ ICU_IER14_ADDR, ICU_IEN3_BIT },	/* No.163 TPU11 TGIW5 */
+	{ ICU_IER14_ADDR, ICU_IEN4_BIT },	/* No.164 TPU11 TCI11A */
+	{ ICU_IER14_ADDR, ICU_IEN5_BIT },	/* No.165 TPU11 TCI11B */
+	{ ICU_IER14_ADDR, ICU_IEN6_BIT },	/* No.166 POE OEI1 */
+	{ ICU_IER14_ADDR, ICU_IEN7_BIT },	/* No.167 POE OEI2 */
+	{ NULL, INVALID_OFFSET },			/* No.168 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.169 äºç´ */
+	{ ICU_IER15_ADDR, ICU_IEN2_BIT },	/* No.170 TMR0 CMIA0 */
+	{ ICU_IER15_ADDR, ICU_IEN3_BIT },	/* No.171 TMR0 CMIB0 */
+	{ ICU_IER15_ADDR, ICU_IEN4_BIT },	/* No.172 TMR0 OVI0 */
+	{ ICU_IER15_ADDR, ICU_IEN5_BIT },	/* No.173 TMR1 CMIA1 */
+	{ ICU_IER15_ADDR, ICU_IEN6_BIT },	/* No.174 TMR1 CMIB1 */
+	{ ICU_IER15_ADDR, ICU_IEN7_BIT },	/* No.175 TMR1 OVI1 */
+	{ ICU_IER16_ADDR, ICU_IEN0_BIT },	/* No.176 TMR2 CMIA2 */
+	{ ICU_IER16_ADDR, ICU_IEN1_BIT },	/* No.177 TMR2 CMIB2 */
+	{ ICU_IER16_ADDR, ICU_IEN2_BIT },	/* No.178 TMR2 OVI2 */
+	{ ICU_IER16_ADDR, ICU_IEN3_BIT },	/* No.179 TMR3 CMIA3 */
+	{ ICU_IER16_ADDR, ICU_IEN4_BIT },	/* No.180 TMR3 CMIB3 */
+	{ ICU_IER16_ADDR, ICU_IEN5_BIT },	/* No.181 TMR3 OVI3 */
+	{ ICU_IER16_ADDR, ICU_IEN6_BIT },	/* No.182 RIIC0 EEI0 */
+	{ ICU_IER16_ADDR, ICU_IEN7_BIT },	/* No.183 RIIC0 RXI0 */
+	{ ICU_IER17_ADDR, ICU_IEN0_BIT },	/* No.184 RIIC0 TXI0 */
+	{ ICU_IER17_ADDR, ICU_IEN1_BIT },	/* No.185 RIIC0 TEI0 */
+	{ ICU_IER17_ADDR, ICU_IEN2_BIT },	/* No.186 RIIC0 EEI1 */
+	{ ICU_IER17_ADDR, ICU_IEN3_BIT },	/* No.187 RIIC0 RXI1 */
+	{ ICU_IER17_ADDR, ICU_IEN4_BIT },	/* No.188 RIIC0 TXI1 */
+	{ ICU_IER17_ADDR, ICU_IEN5_BIT },	/* No.189 RIIC0 TEI1 */
+	{ ICU_IER17_ADDR, ICU_IEN6_BIT },	/* No.190 RIIC0 EEI2 */
+	{ ICU_IER17_ADDR, ICU_IEN7_BIT },	/* No.191 RIIC0 RXI2 */
+	{ ICU_IER18_ADDR, ICU_IEN0_BIT },	/* No.192 RIIC0 TXI2 */
+	{ ICU_IER18_ADDR, ICU_IEN1_BIT },	/* No.193 RIIC0 TEI2 */
+	{ ICU_IER18_ADDR, ICU_IEN2_BIT },	/* No.194 RIIC0 EEI3 */
+	{ ICU_IER18_ADDR, ICU_IEN3_BIT },	/* No.195 RIIC0 RXI3 */
+	{ ICU_IER18_ADDR, ICU_IEN4_BIT },	/* No.196 RIIC0 TXI3 */
+	{ ICU_IER18_ADDR, ICU_IEN5_BIT },	/* No.197 RIIC0 TEI3 */
+	{ ICU_IER18_ADDR, ICU_IEN6_BIT },	/* No.198 DMAC DMAC0I */
+	{ ICU_IER18_ADDR, ICU_IEN7_BIT },	/* No.199 DMAC DMAC1I */
+	{ ICU_IER19_ADDR, ICU_IEN0_BIT },	/* No.200 DMAC DMAC2I */
+	{ ICU_IER19_ADDR, ICU_IEN1_BIT },	/* No.201 DMAC DMAC3I */
+	{ ICU_IER19_ADDR, ICU_IEN2_BIT },	/* No.202 EXDMAC EXDMAC0I */
+	{ ICU_IER19_ADDR, ICU_IEN3_BIT },	/* No.203 EXDMAC EXDMAC1I */
+	{ NULL, INVALID_OFFSET },			/* No.204 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.205 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.206 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.207 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.208 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.209 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.210 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.211 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.212 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.213 äºç´ */
+	{ ICU_IER1A_ADDR, ICU_IEN6_BIT },	/* No.214 SCI0 RXI0 */
+	{ ICU_IER1A_ADDR, ICU_IEN7_BIT },	/* No.215 SCI0 TXI0 */
+	{ ICU_IER1B_ADDR, ICU_IEN0_BIT },	/* No.216 SCI0 TEI0 */
+	{ ICU_IER1B_ADDR, ICU_IEN1_BIT },	/* No.217 SCI1 RXI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN2_BIT },	/* No.228 SCI1 TXI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN3_BIT },	/* No.229 SCI1 TEI1 */
+	{ ICU_IER1B_ADDR, ICU_IEN4_BIT },	/* No.220 SCI2 RXI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN5_BIT },	/* No.221 SCI2 TXI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN6_BIT },	/* No.222 SCI2 TEI2 */
+	{ ICU_IER1B_ADDR, ICU_IEN7_BIT },	/* No.223 SCI3 RXI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN0_BIT },	/* No.224 SCI3 TXI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN1_BIT },	/* No.225 SCI3 TEI3 */
+	{ ICU_IER1C_ADDR, ICU_IEN2_BIT },	/* No.226 SCI4 RXI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN3_BIT },	/* No.227 SCI4 TXI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN4_BIT },	/* No.228 SCI4 TEI4 */
+	{ ICU_IER1C_ADDR, ICU_IEN5_BIT },	/* No.229 SCI5 RXI5 */
+	{ ICU_IER1C_ADDR, ICU_IEN6_BIT },	/* No.230 SCI5 TXI5 */
+	{ ICU_IER1C_ADDR, ICU_IEN7_BIT },	/* No.231 SCI5 TEI5 */
+	{ ICU_IER1D_ADDR, ICU_IEN0_BIT },	/* No.232 SCI6 RXI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN1_BIT },	/* No.233 SCI6 TXI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN2_BIT },	/* No.234 SCI6 TEI6 */
+	{ ICU_IER1D_ADDR, ICU_IEN3_BIT },	/* No.235 SCI7 RXI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN4_BIT },	/* No.236 SCI7 TXI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN5_BIT },	/* No.237 SCI7 TEI7 */
+	{ ICU_IER1D_ADDR, ICU_IEN6_BIT },	/* No.238 SCI8 RXI8 */
+	{ ICU_IER1D_ADDR, ICU_IEN7_BIT },	/* No.239 SCI8 TXI8 */
+	{ ICU_IER1E_ADDR, ICU_IEN0_BIT },	/* No.240 SCI8 TEI8 */
+	{ ICU_IER1E_ADDR, ICU_IEN1_BIT },	/* No.241 SCI9 RXI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN2_BIT },	/* No.242 SCI9 TXI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN3_BIT },	/* No.243 SCI9 TEI9 */
+	{ ICU_IER1E_ADDR, ICU_IEN4_BIT },	/* No.244 SCI10 RXI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN5_BIT },	/* No.245 SCI10 TXI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN6_BIT },	/* No.246 SCI10 TEI10 */
+	{ ICU_IER1E_ADDR, ICU_IEN7_BIT },	/* No.247 SCI11 RXI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN0_BIT },	/* No.248 SCI11 TXI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN1_BIT },	/* No.249 SCI11 TEI11 */
+	{ ICU_IER1F_ADDR, ICU_IEN2_BIT },	/* No.250 SCI12 RXI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN3_BIT },	/* No.251 SCI12 TXI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN4_BIT },	/* No.252 SCI12 TEI12 */
+	{ ICU_IER1F_ADDR, ICU_IEN5_BIT },	/* No.253 IEB IEBINT */
+	{ NULL, INVALID_OFFSET },			/* No.254 äºç´ */
+	{ NULL, INVALID_OFFSET },			/* No.255 äºç´ */
+};
+
+
+/*
+ *  IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ãã¼ãã«
+ */
+volatile uint8_t __evenaccess * const irqcr_reg_addr[ IRQ_MAX ] = {
+	ICU_IRQ0_ADDR,
+	ICU_IRQ1_ADDR,
+	ICU_IRQ2_ADDR,
+	ICU_IRQ3_ADDR,
+	ICU_IRQ4_ADDR,
+	ICU_IRQ5_ADDR,
+	ICU_IRQ6_ADDR,
+	ICU_IRQ7_ADDR,
+	ICU_IRQ8_ADDR,
+	ICU_IRQ9_ADDR,
+	ICU_IRQ10_ADDR,
+	ICU_IRQ11_ADDR,
+	ICU_IRQ12_ADDR,
+	ICU_IRQ13_ADDR,
+	ICU_IRQ14_ADDR,
+	ICU_IRQ15_ADDR,
+};
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/rx630_config.h	(revision 313)
@@ -0,0 +1,120 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼target_config.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯
+ *  ã«ã¼ãããããã¡ã¤ã«ï¼ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡ã¤ã«ãã
+ *  ç´æ¥ã¤ã³ã¯ã«ã¼ããã¦ã¯ãªããªãï¼
+ */
+
+
+#ifndef TOPPERS_RX630_CONFIG_H
+#define TOPPERS_RX630_CONFIG_H
+
+
+/*
+ *  å²è¾¼ã¿è¦å æ°
+ */
+#define	INHNO_MAX	UINT_C( 256 )
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨åå®ç¾©
+ */
+typedef struct ier_info {
+	volatile uint8_t __evenaccess	*addr;
+			 uint8_t				offset;
+} IER_INFO;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨å®ç¾©
+ */
+#define	INVALID_OFFSET				( 0xFFU )
+#define	INTNO_IRQ( intno )			( ( 64U <= ( intno ) ) && ( ( intno ) <= 79U ) )
+#define	INTNO_IRQ_OFFSET( intno )	( ( intno ) - 64U )
+#define	IRQ_MAX						UINT_C( 16 )
+
+#define IR_TOP						(0x00087010)
+#define IR_REG( intno )				((volatile uint8_t __evenaccess * )(IR_TOP + (intno-16)))
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  å²è¾¼ã¿å¶å¾¡ç¨ãã¼ãã«
+ */
+
+/* å²è¾¼ã¿è¦å ãã©ã¤ãªãªãã£ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern volatile uint8_t __evenaccess * const ipr_reg_addr[];
+/* å²è¾¼ã¿è¦æ±è¨±å¯ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern const IER_INFO ier_reg_addr[];
+/* å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern volatile uint8_t __evenaccess * const ir_reg_addr[];
+/* IRQã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ */
+extern volatile uint8_t __evenaccess * const irqcr_reg_addr[];
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ */
+#include "rx630_gcc/prc_config.h"
+
+#endif	/* TOPPERS_RX630_CONFIG_H */
+
Index: rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/start.S
===================================================================
--- rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/start.S	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/arch/rx630_gcc/start.S	(revision 313)
@@ -0,0 +1,170 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+;*                              Toyohashi Univ. of Technology, JAPAN
+;*  Copyright (C) 2005,2006 by Embedded and Real-Time Systems Laboratory
+;*              Graduate School of Information Science, Nagoya Univ., JAPAN
+;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+;*  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+;*  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+;*      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+;*      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+;*      ã¨ï¼
+;*    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+;*        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+;*        å ±åãããã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+;*      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+;*      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+;*      å
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+;*  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+;*  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+;*  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+;*  ã®è²¬ä»»ãè² ããªãï¼
+;* 
+;*  @(#) $Id$
+;* 
+
+#define TOPPERS_MACRO_ONLY
+#define UINT_C(val)			(val)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#define ULONG_C(val)		(val)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#define CAST(type, val)		(val)		/* åã­ã£ã¹ããè¡ããã¯ã­ */
+#include "kernel_impl.h"
+#include "sectrx.inc"
+
+	;
+	;  ã¡ã¢ãªãããã®å®ç¾©(ã¿ã¼ã²ããä¾å­é¨)
+	;
+
+.equ	DFLRE,				007FC440H		; DFLREã¬ã¸ã¹ã¿
+
+.equ	DB_BLOCK_ENABLE,	02D0FH
+
+;
+;  åæåã«ã¼ãã³
+;
+	.section	P, CODE
+
+	.global	_start
+	.global	_sta_ker
+	.global	_software_init_hook
+	.global	_hardware_init_hook
+	.global	__kernel_istkpt
+	.global	_vvector_table
+
+_start:
+	;
+	;  é»æºæå
+¥å¾ã¯ã¬ãã«0, å
+¨å²è¾¼ã¿ç¦æ­¢ç¶æ
+ã§ãã.
+	;  ã«ã¼ãã«ã§ã¯é«éå²è¾¼ã¿ãä½¿ç¨ããªããããBPC, BPSWåã³FINTV
+	;  ã®åæåã¯è¡ããªã.
+	;
+
+	;
+	;  å
+èµROMï¼ãã¼ã¿ãã©ãã·ã¥ï¼é åã®è¨­å®
+	;
+	;  ãªã»ããå¾, ãã¼ã¿ãã©ãã·ã¥é åã¯èª­ã¿åºãç¦æ­¢ã¨ãªã£ã¦ãã
+	;  ãã, èª­ã¿åºãè¨±å¯ã«è¨­å®ãã.
+	;
+	mov.l	#DFLRE, r5
+	mov.w	#DB_BLOCK_ENABLE, [R5]
+	
+	;
+	;  ã¹ã¿ãã¯ãã¤ã³ã¿ã®è¨­å®
+	;
+	;  ã¦ã¼ã¶ã«ã¦éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã¹ã¿ãã¯é åãç¨æããå ´å,
+	;  ã¦ã¼ã¶é åãè¨­å®ãã.
+	;  kernel_cfg.cã«ã¦"_kernel_istkpt"ã®å¤ãæ±ºå®ãã.
+	;
+	mov.l	#__kernel_istkpt, r5
+	mov.l	[r5], r0			; éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã¹ã¿ãã¯é åãè¨­å®
+
+	;
+	;  å¯å¤ãã¯ã¿ãã¼ãã«ã®è¨­å®
+	;
+	; mvtc	#VVECTOR_TOP, intb	; ãã¯ã¿ãã¼ãã«ã®è¨­å®
+	mvtc	#_vvector_table, intb	; ãã¯ã¿ãã¼ãã«ã®è¨­å®
+
+	;
+	;  ãã¼ãã¦ã§ã¢åºæã®åæåã«ã¼ãã³ã®å¼åºã
+	;
+	mov.l	#_hardware_init_hook, r5
+	cmp		#0, r5
+	beq.b	init_D
+	jsr		r5
+
+	;
+	;  åæå¤ããå¤æ°é åã®åæå
+	;
+init_D:
+	mov.l	#(_edata - _data), r3
+	cmp		#0, r3
+	beq.b	clear_B						; ãµã¤ãº0ãªãåæåå¿
+è¦ãªã
+	mov.l	#(_data), r1
+	mov.l	#(_mdata), r2
+	smovf
+
+	;
+	;  åæå¤ãªãå¤æ°é åã®åæå
+	;
+clear_B:
+	mov.l	#0, r2
+	mov.l	#(_bss), r1
+	mov.l	#(_ebss - _bss) , r3
+	sstr.b
+
+	;
+	;  software_init_hook ãå¼åºãï¼0 ã§ãªãå ´åï¼
+	;
+	;  ã½ããã¦ã§ã¢ç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾å­ãã¦å¿
+è¦ãªåæåå¦ç
+	;  ãããå ´åã¯ï¼software_init_hook ã¨ããé¢æ°ãç¨æããã°ãã.
+	;
+	mov.l	#_software_init_hook, r5
+	cmp		#0, r5
+	beq.b	kernel_link
+	jsr		r5
+
+	;
+	;  ã«ã¼ãã«ã¹ã¿ã¼ã
+	;
+kernel_link:
+	bra.a	_sta_ker					; --> _sta_ker()
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/cfg/GenFile.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/GenFile.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/GenFile.rb	(revision 313)
@@ -0,0 +1,123 @@
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Configurator by Ruby
+#
+#  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2016 by APTJ Co., Ltd., JAPAN
+#
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+#
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+#
+#  $Id: GenFile.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#
+
+#
+#		ãã¡ã¤ã«ä½æã¯ã©ã¹
+#
+
+#
+# ãã¡ã¤ã«ã«æ¸ããã¨ããå
+å®¹ãå¤æ°ã«èç©ãï¼ãã­ã°ã©ã ã®çµäºæï¼output
+# ã¡ã½ãããå¼ã°ããæï¼ã«ãã¡ã¤ã«ã«åºåããï¼æ¢ã«ãã¡ã¤ã«ãå­å¨ãï¼å·®
+# åããªãå ´åã¯åºåããªãï¼ã¿ã¤ã ã¹ã¿ã³ããæ´æ°ããªãï¼ï¼
+#
+class GenFile
+  @@fileDataHash = {}
+
+  def initialize(fileName)
+    @selfFileName = fileName
+    if !@@fileDataHash.has_key?(fileName)
+      @@fileDataHash[@selfFileName] = ""
+    end
+  end
+
+  # ãã¡ã¤ã«ãã¼ã¿ã®æ«å°¾ã«æå­åãè¿½å ãã
+  def append(code = "")
+    @@fileDataHash[@selfFileName] << code
+  end
+
+  # ãã¡ã¤ã«ãã¼ã¿ã«1è¡è¿½å ãã
+  def add(code = "")
+    @@fileDataHash[@selfFileName] << code << "\n"
+  end
+
+  # ãã¡ã¤ã«ãã¼ã¿ã«1è¡è¿½å ãã(æ¹è¡2å)
+  def add2(code = "")
+    add(code + "\n")
+  end
+
+  # ã³ã¡ã³ãããããè¿½å ãã
+  def comment_header(comment)
+    add("/*")
+    comment.split("\n").each do |sLine|
+      add(" *  " + sLine)
+    end
+    add2(" */")
+  end
+
+  # ãã¡ã¤ã«ãã¼ã¿ãè¡¨ç¤ºãã
+  def print()
+    puts(@@fileDataHash[@selfFileName])
+  end
+
+  # å
+¨ãã¡ã¤ã«ãåºåãã
+  def self.output()
+    @@fileDataHash.each do |fileName, fileData|
+      # æ¢ã«ãã¡ã¤ã«ãå­å¨ãï¼å·®åããªãå ´åã¯åºåããªã
+      #ï¼ã¿ã¤ã ã¹ã¿ã³ããæ´æ°ããªãï¼
+      if File.exist?(fileName)
+        if fileData == File.read(fileName)
+          next
+        end
+      end
+      File.open(fileName, "w") do |file|
+        puts("[#{File.basename($0)}] Generated #{fileName}")
+        file.puts(fileData)
+      end
+    end
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/cfg/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/MANIFEST	(revision 313)
@@ -0,0 +1,8 @@
+MANIFEST
+cfg.rb
+pass1.rb
+pass2.rb
+GenFile.rb
+SRecord.rb
+
+doc/cfg_user.txt
Index: rubycfg_asp/trunk/asp_dcre/cfg/SRecord.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/SRecord.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/SRecord.rb	(revision 313)
@@ -0,0 +1,190 @@
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Configurator by Ruby
+#
+#  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+#
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+#
+#  $Id: SRecord.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#
+
+#
+#		Sã¬ã³ã¼ããã¡ã¤ã«å¦çã¯ã©ã¹
+#
+
+#
+# Sã¬ã³ã¼ããã¡ã¤ã«ãå¤æ°ã«èª­ã¿è¾¼ã¿ï¼è¦æ±ãããçªå°ã®ãã¼ã¿ãè¿ãï¼
+#
+# @sRecDataã¯ï¼å
+é ­çªå°ãã­ã¼ã¨ãï¼ããããã®ãã¼ã¿ï¼ãã­ãµãã³ãå½¢å¼ï¼
+# ãå¤ã¨ãã­ãã¯ãæ ¼ç´ãããããã·ã¥ã§ããï¼é£ç¶ãããã­ãã¯ã¯ï¼1ã¤ã®ã
+# ã­ãã¯ã«ã¾ã¨ãã¦æ ¼ç´ãããã®ã¨ããï¼ããããªãã¨ï¼ãã¼ã¿ã®ååºãããµã¼
+# ããé¢åã«ãªãï¼ï¼
+#
+class SRecord
+  def initialize(fileName)
+    @sRecData = {}
+    File.open(fileName) do |file|
+      prevAddress = 0
+      prevData = ""
+      file.each do |line|
+        # ãã¼ã¿ã¬ã³ã¼ãã«ããåå²
+        case line.slice(0, 2)
+        when "S1"
+          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[2byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          length = line.slice(2, 2).hex - 2 - 1
+
+          # ã¢ãã¬ã¹ï¼4æå­=2byteï¼
+          address = line.slice(4, 4).hex
+
+          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          data = line.slice(8, length * 2)
+        when "S2"
+          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[3byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          length = line.slice(2, 2).hex - 3 - 1
+
+          # ã¢ãã¬ã¹ï¼6æå­=3byteï¼
+          address = line.slice(4, 6).hex
+
+          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          data = line.slice(10, length * 2)
+        when "S3"
+          # ãã¼ã¿é·ï¼ã¢ãã¬ã¹å[4byte]+ãã§ãã¯ãµã å1byteãæ¸ç®ï¼
+          length = line.slice(2, 2).hex - 4 - 1
+
+          # ã¢ãã¬ã¹ï¼8æå­=4byteï¼
+          address = line.slice(4, 8).hex
+
+          # ãã¼ã¿ï¼ãã®æç¹ã§ã¯æå­åã§åã£ã¦ããï¼
+          data = line.slice(12, length * 2)
+        else
+          address = nil
+        end
+
+        if !address.nil?
+          # ãã¼ã¿ãæ ¼ç´ãã
+          if address == prevAddress + prevData.size / 2
+            prevData << data
+          else
+            set_data(prevAddress, prevData) if prevData.size > 0
+            prevAddress = address
+            prevData = data
+          end
+        end
+      end
+      set_data(prevAddress, prevData) if prevData.size > 0
+    end
+  end
+
+  # ãã¼ã¿åå¾
+  def get_data(address, size)
+    endAddress = address + size
+    @sRecData.each do |block, blockData|
+      if (block <= address && endAddress <= block + blockData.size / 2)
+        offset = (address - block) * 2
+        return(blockData[offset, size * 2])
+      end
+    end
+    return(nil)
+  end
+
+  # ãã¼ã¿æ¸è¾¼ã¿
+  def set_data(address, data)
+    endAddress = address + data.size / 2
+    @sRecData.each do |block, blockData|
+      nEndBlock = block + blockData.size / 2
+
+      if nEndBlock < address || endAddress < block
+        # éãªãããªã
+      elsif address < block
+        # æ°è¦ãã¼ã¿ã®æ¹ãå
+é ­çªå°ãå°ãã
+        # ããã§ã¯ endAddress >= block ãæç«ãã¦ãã
+        offset = (endAddress - block) * 2
+        data << blockData[offset..-1]
+        @sRecData.delete(block)
+      else
+        # ç»é²æ¸ã¿ãã¼ã¿ã®æ¹ãå
+é ­çªå°ãå°ãããåã
+        offset = (address - block) * 2
+        address = block
+        blockData[offset, data.size] = data
+        data = blockData
+        @sRecData.delete(block)
+      end
+    end
+    @sRecData[address] = data
+  end
+
+  # å¤ã¨ãã¦ã®ãã¼ã¿åå¾
+  def get_value(address, size, signed)
+    targetData = get_data(address, size)
+    if targetData.nil?
+      return(nil)
+    else
+      if $endianLittle
+        # ãªãã«ã¨ã³ãã£ã¢ã³ã®å ´åï¼ãã¤ããªã¼ãã¼ãéã«ãã
+        reverseData = ""
+        # å¾ããã2æå­ãã¤æãåºãï¼ä¸¦ã³æ¿ãã
+        while targetData.size > 0
+          reverseData << targetData[-2, 2]
+          targetData.slice!(-2, 2)
+        end
+        returnData = reverseData.hex
+      else
+        returnData = targetData.hex
+      end
+
+      # è² ã®æ°ã®å¦ç
+      if signed && (returnData & (1 << (size * 8 - 1))) != 0
+        returnData -= (1 << (size * 8))
+      end
+      return(returnData)
+    end
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/cfg/cfg.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/cfg.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/cfg.rb	(revision 313)
@@ -0,0 +1,753 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Configurator by Ruby
+#
+#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+#
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+#
+#  $Id: cfg.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+#
+
+if $0 == __FILE__
+  TOOL_ROOT = File.expand_path(File.dirname(__FILE__)) + "/"
+  $LOAD_PATH.unshift(TOOL_ROOT)
+end
+
+require "pp"
+require "csv"
+require "optparse"
+require "pstore"
+require "GenFile.rb"
+require "SRecord.rb"
+
+#
+#  å®æ°å®ç¾©
+#
+# å
+±é
+VERSION = "1.2.2"
+
+# cfg1_outé¢ä¿
+CFG1_PREFIX        = "TOPPERS_cfg_"
+CFG1_MAGIC_NUM     = "TOPPERS_magic_number"
+CFG1_SIZEOF_SIGNED = "TOPPERS_sizeof_signed_t"
+CFG1_OUT_C         = "cfg1_out.c"
+CFG1_OUT_DB        = "cfg1_out.db"
+CFG1_OUT_SREC      = "cfg1_out.srec"
+CFG1_OUT_SYMS      = "cfg1_out.syms"
+CFG1_OUT_TIMESTAMP = "cfg1_out.timestamp"
+CFG1_OUT_TARGET_H  = "target_cfg1_out.h"
+
+# cfg2_outé¢ä¿
+CFG2_OUT_DB        = "cfg2_out.db"
+
+# cfg3_outé¢ä¿
+CFG3_OUT_DB        = "cfg3_out.db"
+
+#
+#  ã¨ã©ã¼çºçæç¡ãã©ã°
+#
+$errorFlag = false
+
+#
+#  ã¨ã©ã¼ï¼è­¦åè¡¨ç¤ºé¢æ°
+#
+# ä¸è¬çãªã¨ã©ã¼è¡¨ç¤ºï¼å¦çãä¸­æ­ï¼
+def error_exit(message, location = "")
+  location += " " if location != ""
+  abort("#{location}error: #{message}")
+end
+
+# ä¸è¬çãªã¨ã©ã¼è¡¨ç¤ºï¼å¦çãç¶ç¶ï¼
+def error(message, location = "")
+  location += " " if location != ""
+  STDERR.puts("#{location}error: #{message}")
+  $errorFlag = true
+end
+
+# ä¸è¬çãªè­¦åè¡¨ç¤º
+def warning(message, location = "")
+  location += " " if location != ""
+  STDERR.puts("#{location}warning: #{message}")
+end
+
+# ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®æ§æè§£ææã®ã¨ã©ã¼
+$noParseError = 0
+def parse_error(cfgFile, message)
+  error(message, "#{cfgFile.getFileName()}:#{cfgFile.getLineNo}:")
+  if ($noParseError += 1) >= 10
+    abort("too many errors emitted, stopping now")
+  end
+end
+
+# ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®æ§æè§£ææã®è­¦å
+def parse_warning(cfgFile, message)
+  warning(message, "#{cfgFile.getFileName()}:#{cfgFile.getLineNo}:")
+end
+
+#
+#  éçAPIå¦çæã®ã¨ã©ã¼ï¼è­¦åè¡¨ç¤ºé¢æ°
+#
+# éçAPIå¦çæã®ã¨ã©ã¼ï¼è­¦åãç­ãè¨è¿°ã§ããããã«ï¼ã¡ãã»ã¼ã¸ä¸­ã®%ã¾
+# ãã¯%%ã§å§ã¾ãè¨è¿°ãä»¥ä¸ã®ããã«å±éããï¼
+#	%label â #{params[:label]}
+#	%%label â label `#{params[:label]}'
+#
+# ã¨ã©ã¼ï¼è­¦åã¡ãã»ã¼ã¸ã®å±é
+def expand_message(message, params)
+  result = message.dup
+  while /%%(\w+)\b/ =~ result
+    param = $1
+    paramVal = params[param.to_sym].to_s
+    result.sub!(/%%#{param}\b/, "#{param} `#{paramVal}'")
+  end
+  while /%(\w+)\b/ =~ result
+    param = $1
+    paramVal = params[param.to_sym].to_s
+    result.sub!(/%#{param}\b/, paramVal)
+  end
+  return(result)
+end
+
+# éçAPIå¦çæã®ã¨ã©ã¼
+def error_api(params, message)
+  error(expand_message(message, params), \
+			"#{params[:_file_]}:#{params[:_line_]}:")
+end
+
+# éçAPIå¦çæã®è­¦å
+def warning_api(params, message)
+  warning(expand_message(message, params), \
+			"#{params[:_file_]}:#{params[:_line_]}:")
+end
+
+# éçAPIå¦çæã®ã¨ã©ã¼ï¼ã¨ã©ã¼ã³ã¼ãä»ãï¼
+def error_ercd(errorCode, params, message)
+  error_api(params, "#{errorCode}: #{message}")
+end
+
+# éçAPIå¦çæã®è­¦åï¼ã¨ã©ã¼ã³ã¼ãä»ãï¼
+def warning_ercd(errorCode, params, message)
+  warning_api(params, "#{errorCode}: #{message}")
+end
+
+# ãã©ã¡ã¼ã¿ã®ã¨ã©ã¼
+def error_wrong(errorCode, params, symbol, wrong)
+  error_ercd(errorCode, params, "%%#{symbol} is #{wrong} in %apiname")
+end
+
+def error_wrong_id(errorCode, params, symbol, objid, wrong)
+  error_ercd(errorCode, params, "%%#{symbol} is #{wrong} " \
+	             					"in %apiname of %#{objid}")
+end
+
+def error_wrong_sym(errorCode, params, symbol, symbol2, wrong)
+  error_ercd(errorCode, params, "%%#{symbol} is #{wrong} " \
+									"in %apiname of %%#{symbol2}")
+end
+
+# ãã©ã¡ã¼ã¿ä¸æ­£ã®ã¨ã©ã¼
+def error_illegal(errorCode, params, symbol)
+  error_ercd(errorCode, params, "illegal %%#{symbol} in %apiname")
+end
+
+def error_illegal_id(errorCode, params, symbol, objid)
+  error_ercd(errorCode, params, "illegal %%#{symbol} " \
+	             					"in %apiname of %#{objid}")
+end
+
+def error_illegal_sym(errorCode, params, symbol, symbol2)
+  error_ercd(errorCode, params, "illegal %%#{symbol} " \
+									"in %apiname of %%#{symbol2}")
+end
+
+#
+#  Stringã¯ã©ã¹ã®æ¡å¼µï¼äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æï¼å±éï¼
+#
+class String
+  #
+  #  äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æ
+  #
+  def quote
+    result = ""
+    self.chars do |c|
+      case c
+      when "'"
+        result += "\\\'"
+      when "\""
+        result += "\\\""
+      when "\0"
+        result += "\\0"
+      when "\a"
+        result += "\\a"
+      when "\b"
+        result += "\\b"
+      when "\f"
+        result += "\\f"
+      when "\n"
+        result += "\\n"
+      when "\r"
+        result += "\\r"
+      when "\t"
+        result += "\\t"
+      when "\v"
+        result += "\\v"
+      when "\\"
+        result += "\\\\"
+      else
+        result += c
+      end
+    end
+    return("\"" + result + "\"")
+  end
+
+  #
+  #  äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®å±é
+  #
+  def unquote
+    if /^\"(.*)\"$/m =~ self
+      str = $1
+      result = ""
+      while (/^(.*)\\(.*)$/m =~ str)
+        result += $1
+        str = $2
+        case str
+        when /^[aA](.*)$/m
+          result += "\a"
+          str = $1
+        when /^[bB](.*)$/m
+          result += "\b"
+          str = $1
+        when /^[fF](.*)$/m
+          result += "\f"
+          str = $1
+        when /^[nN](.*)$/m
+          result += "\n"
+          str = $1
+        when /^[rR](.*)$/m
+          result += "\r"
+          str = $1
+        when /^[tT](.*)$/m
+          result += "\t"
+          str = $1
+        when /^[vV](.*)$/m
+          result += "\v"
+          str = $1
+        when /^[xX]([0-9a-fA-F][0-9a-fA-F]?)(.*)$/m
+          result += $1.hex
+          str = $2
+        when /^([0-7][0-7]?[0-7]?)(.*)$/m
+          result += $1.oct
+          str = $2
+        when /^\\(.*)$/m
+          result += "\\"
+          str = $1
+        end
+      end
+      return(result + str)
+    else
+      return(self.dup)
+    end
+  end
+end
+
+#
+#  NumStrã¯ã©ã¹ï¼æ°å¤ã«æå­åãä»å ãããã®ï¼ã®å®ç¾©
+#
+class NumStr
+  def initialize(val, str = val.to_s)
+    @val = val
+    @str = str
+  end
+
+  # æ°å¤æ
+å ±ãè¿ã
+  def val
+    return @val
+  end
+  alias_method :to_i, :val
+
+  # æå­åæ
+å ±ãè¿ã
+  def str
+    return @str
+  end
+  alias_method :to_s, :str
+
+  # æ¯è¼ã¯æ°å¤æ
+å ±ã§è¡ã
+  def ==(other)
+    @val == other
+  end
+  def !=(other)
+    @val != other
+  end
+  def <=>(other)
+    @val <=> other
+  end
+
+  # ããã·ã¥ã®ã­ã¼ã¨ãã¦ä½¿ãæã®æ¯è¼ãæ°å¤æ
+å ±ã§è¡ã
+  def eql?(other)
+    @val == other.val
+  end
+
+  # ããã·ã¥å¤ã®å®ç¾©ãä¸æ¸ããã
+  def hash
+    return @val.hash
+  end
+
+  # æ°å¤ã¯ã©ã¹ã¨æ¼ç®ã§ããããã«ãã
+  def coerce(other)
+    if other.kind_of?(Numeric)
+      return other, @val
+    else
+      raise
+    end
+  end
+
+  # äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®ä½æ
+  def quote
+    str.quote
+  end
+
+  # äºéå¼ç¨ç¬¦ã§å²ã¾ããæå­åã®å±é
+  def unquote
+    str.unquote
+  end
+
+  # ppæã®è¡¨ç¤º
+  def pretty_print(q)
+    q.text("[#{@val}(=0x#{@val.to_s(16)}),")
+    @str.pretty_print(q)
+    q.text("]")
+  end
+
+  # æªå®ç¾©ã®ã¡ã½ããã¯@valã«éã
+  def method_missing(*method)
+    @val.send(*method)
+  end
+end
+
+#
+#  ã·ã³ãã«ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#
+#  ä»¥ä¸ã®ã¡ã½ããã¯ï¼GNUã®nmãçæããã·ã³ãã«ãã¡ã¤ã«ã«å¯¾å¿ãã¦ããï¼
+#  å¥ã®ãã¼ã«ã«å¯¾å¿ããå ´åã«ã¯ï¼ãã®ã¡ã½ãããæ¸ãæããã°ããï¼
+#
+def ReadSymbolFile(symbolFileName)
+  begin
+    symbolFile = File.open(symbolFileName)
+  rescue Errno::ENOENT, Errno::EACCES => ex
+    abort(ex.message)
+  end
+
+  symbolAddress = {}
+  symbolFile.each do |line|
+    # ã¹ãã¼ã¹åºåãã§åè§£
+    fields = line.split(/\s+/)
+
+    # 3åã«ãªã£ã¦ããªãè¡ã¯é¤å¤
+    if fields.size == 3
+      symbolAddress[fields[2]] = fields[0].hex
+    end
+  end
+  symbolFile.close
+  return(symbolAddress)
+end
+
+#
+#  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+#
+def DefineSymbolValue
+  $symbolValueTable.each do |symbolName, symbolData|
+    if symbolData.has_key?(:VALUE)
+      eval("$#{symbolName} = #{symbolData[:VALUE]}")
+    end
+  end
+end
+
+#
+#  ã¤ã³ã¯ã«ã¼ããã¹ãããã¡ã¤ã«ãæ¢ã
+#
+def SearchFilePath(fileName)
+  if File.exist?(fileName)
+    # æå®ãããã¡ã¤ã«ãã¹ã«å­å¨ãã
+    return fileName
+  elsif /^\./ =~ fileName
+    # ç¸å¯¾ãã¹ãæå®ãã¦ãã¦è¦ã¤ãããªãã£ãå ´åï¼å­å¨ããªããã®ã¨ãã
+    #ï¼æå³ããªããã¡ã¤ã«ãå¯¾è±¡ã¨ãªããã¨ãé²æ­¢ï¼
+    return nil
+  else
+    # åã¤ã³ã¯ã«ã¼ããã¹ãããã¡ã¤ã«å­å¨ãã§ãã¯
+    $includeDirectories.each do |includeDirectory|
+      path = includeDirectory + "/" + fileName
+      # è¦ã¤ãã£ããç¸å¯¾ãã¹ãè¿ã
+      if File.exist?(path)
+        return path
+      end
+    end
+    return nil
+  end
+end
+
+#
+#  æå®ããçæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãæ¤ç´¢ãã¦loadãã
+#
+def IncludeTrb(fileName)
+  filePath = SearchFilePath(fileName)
+  if filePath.nil?
+    error_exit("`#{fileName}' not found")
+  else
+    load(filePath)
+  end
+end
+
+#
+#  ãã¹3ã®å¦ç
+#
+def Pass3
+  #
+  #  ãã¹2ããå¼ãæ¸¡ãããæ
+å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #
+  db = PStore.new(CFG2_OUT_DB)
+  db.transaction(true) do
+    $apiDefinition = db[:apiDefinition]
+    $symbolValueTable = db[:symbolValueTable]
+    $cfgFileInfo = db[:cfgFileInfo]
+    $includeFiles = db[:includeFiles]
+    $cfgData = db[:cfgData]
+    $asmLabel = db[:asmLabel]
+    $endianLittle = db[:endianLittle]
+    $cfg2Data = db[:cfg2Data]
+  end
+  $cfg3Data = {}
+
+  #
+  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  #
+  DefineSymbolValue()
+
+  #
+  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #
+  $trbFileNames.each do |trbFileName|
+    IncludeTrb(trbFileName)
+  end
+
+  #
+  #  ãã¹4ã«å¼ãæ¸¡ãæ
+å ±ããã¡ã¤ã«ã«çæ
+  #
+  if $omitOutputDb.nil?
+    db = PStore.new(CFG3_OUT_DB)
+    db.transaction do
+      db[:apiDefinition] = $apiDefinition
+      db[:symbolValueTable] = $symbolValueTable
+      db[:cfgFileInfo] = $cfgFileInfo
+      db[:includeFiles] = $includeFiles
+      db[:cfgData] = $cfgData
+      db[:asmLabel] = $asmLabel
+      db[:endianLittle] = $endianLittle
+      db[:cfg3Data] = $cfg3Data
+    end
+  end
+end
+
+#
+#  ãã¹4ã®å¦ç
+#
+def Pass4
+  #
+  #  ãã¹3ããå¼ãæ¸¡ãããæ
+å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #
+  db = PStore.new(CFG3_OUT_DB)
+  db.transaction(true) do
+    $apiDefinition = db[:apiDefinition]
+    $symbolValueTable = db[:symbolValueTable]
+    $cfgFileInfo = db[:cfgFileInfo]
+    $includeFiles = db[:includeFiles]
+    $cfgData = db[:cfgData]
+    $asmLabel = db[:asmLabel]
+    $endianLittle = db[:endianLittle]
+    $cfg3Data = db[:cfg3Data] || db[:cfg2Data]
+  end
+
+  #
+  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  #
+  DefineSymbolValue()
+
+  #
+  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #
+  $trbFileNames.each do |trbFileName|
+    IncludeTrb(trbFileName)
+  end
+end
+
+#
+#  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼åãã®é¢æ°
+#
+def SYMBOL(symbol)
+  if !$romSymbol.nil? && $romSymbol.has_key?($asmLabel + symbol)
+    return $romSymbol[$asmLabel + symbol]
+  else
+    return nil
+  end
+end
+
+def BCOPY(fromAddress, toAddress, size)
+  if !$romImage.nil?
+    copyData = $romImage.get_data(fromAddress, size)
+    if !copyData.nil?
+      $romImage.set_data(toAddress, copyData)
+    end
+  end
+end
+
+def BZERO(address, size)
+  if !$romImage.nil?
+    $romImage.set_data(address, "00" * size)
+  end
+end
+
+def PEEK(address, size, signed=false)
+  if !$romImage.nil?
+    return $romImage.get_value(address, size, signed)
+  else
+    return nil
+  end
+end
+
+#
+#  ã°ã­ã¼ãã«å¤æ°ã®åæå
+#
+$kernel = nil
+$pass = nil
+$includeDirectories = []
+$trbFileNames = []
+$apiTableFileNames = []
+$symvalTableFileNames = []
+$romImageFileName = nil
+$romSymbolFileName = nil
+$dependencyFileName = nil
+$idInputFileName = nil
+$idOutputFileName = nil
+
+#
+#  ãªãã·ã§ã³ã®å¦ç
+#
+OptionParser.new(banner="Usage: cfg.rb [options] CONFIG-FILE", 40) do |opt|
+  opt.version = VERSION
+  opt.on("-k KERNEL", "--kernel KERNEL", "kernel profile name") do |val|
+    $kernel = val
+  end
+  opt.on("-p NUM", "--pass NUM", "processing pass number") do |val|
+    $pass = val
+  end
+  opt.on("-I DIRECTORY", "--include-directory DIRECTORY",
+										 "include directory") do |val|
+    $includeDirectories.push(val)
+  end
+  opt.on("-T TRB-FILE", "--trb-file TRB-FILE",
+         "generation script (trb file)") do |val|
+    $trbFileNames.push(val)
+  end
+  opt.on("--api-table API-TABLE-FILE", "static API table file") do |val|
+    $apiTableFileNames.push(val)
+  end
+  opt.on("--symval-table SYMVAL-TABLE-FILE", "symbol-value table file") do |val|
+    $symvalTableFileNames.push(val)
+  end
+  opt.on("--rom-image SREC-FILE", "rom image file (s-record)") do |val|
+    $romImageFileName = val
+  end
+  opt.on("--rom-symbol SYMS-FILE", "rom symbol table file (nm)") do |val|
+    $romSymbolFileName = val
+  end
+  opt.on("--id-input-file ID-FILE", "ID input file") do |val|
+    $idInputFileName = val
+  end
+  opt.on("--id-output-file ID-FILE", "ID output file") do |val|
+    $idOutputFileName = val
+  end
+  opt.on("-M [DEPEND-FILE]", "--print-dependencies [DEPEND-FILE]",
+         "dependency file") do |val|
+    $dependencyFileName = val.nil? ? "" : val
+  end
+  opt.on("-O", "--omit-output-db", "omit DB file output") do
+    $omitOutputDb = true
+  end
+  opt.on("-v", "--version", "show version number") do
+    abort(opt.ver)
+  end
+  opt.on("-h", "--help", "show help (this)") do
+    abort(opt.help)
+  end
+  opt.parse!(ARGV)
+end
+$configFileNames = ARGV
+
+#
+#  ãªãã·ã§ã³ã®ãã§ãã¯
+#
+if $pass.nil?
+  # ãã¹ã®æå®ã¯å¿
+é 
+  abort("`--pass' option is mandatory")
+elsif /^[1234]$/ !~ $pass
+  abort("pass number `#{$pass}' is not valid")
+end
+
+# ãã¹1ã§ã¯ï¼éçAPIãã¼ãã«ã¯å¿
+é 
+if ($pass == "1" && $apiTableFileNames.empty?)
+  abort("`--api-table' option must be specified in pass 1")
+end
+
+# ãã¹1ä»¥å¤ã§ã¯ï¼çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå¿
+é 
+if ($pass != "1" && $trbFileNames.empty?)
+  abort("`--trb-file' must be specified except in pass 1")
+end
+
+#
+#  ã«ã¼ãã«ãªãã·ã§ã³ã®å¦ç
+#
+case $kernel
+when /^hrp/
+	$supportDomain = true
+when /^fmp/
+	$supportClass = true
+end
+
+#
+#  IDçªå·å
+¥åãã¡ã¤ã«ã®åãè¾¼ã¿
+#
+$inputObjid = {}
+if !$idInputFileName.nil?
+  begin
+    idInputFile = File.open($idInputFileName)
+  rescue Errno::ENOENT, Errno::EACCES => ex
+    abort(ex.message)
+  end
+
+  idInputFile.each do |line|
+    ( objName, objidNumber ) = line.split(/\s+/)
+    $inputObjid[objName] = objidNumber.to_i
+  end
+
+  idInputFile.close
+end
+
+#
+#  æå®ãããã·ã³ãã«ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#
+if !$romSymbolFileName.nil?
+  if File.exist?($romSymbolFileName)
+    $romSymbol = ReadSymbolFile($romSymbolFileName)
+  else
+    error_exit("`#{$romSymbolFileName}' not found")
+  end
+end
+
+#
+#  æå®ãããSã¬ã³ã¼ããã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#
+if !$romImageFileName.nil?
+  if File.exist?($romImageFileName)
+    $romImage = SRecord.new($romImageFileName)
+  else
+    error_exit("`#{$romImageFileName}' not found")
+  end
+end
+
+#
+#  ãã¹ã«å¾ã£ã¦åå¦çãå®è¡
+#
+case $pass
+when "1"
+  load("pass1.rb")
+  Pass1()
+when "2"
+  load("pass2.rb")
+  Pass2()
+when "3"
+  Pass3()
+when "4"
+  Pass4()
+else
+  error_exit("invalid pass: #{$pass}")
+end
+
+# ã¨ã©ã¼çºçæã¯abortãã
+if $errorFlag
+  if ($0 == __FILE__)
+    abort()
+  else
+    # simplecovå¯¾å¿
+    raise()
+  end
+end
+
+#
+#  ä½æãããã¹ã¦ã®ãã¡ã¤ã«ãåºåãã
+#
+GenFile.output
+
+# 
+#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®çæ
+# 
+if !$timeStampFileName.nil?
+  File.open($timeStampFileName, "w").close
+end
Index: rubycfg_asp/trunk/asp_dcre/cfg/pass1.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/pass1.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/pass1.rb	(revision 313)
@@ -0,0 +1,974 @@
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Configurator by Ruby
+#
+#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+#
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+#
+#  $Id: pass1.rb 133 2017-03-26 05:37:50Z ertl-hiro $
+#
+
+#
+#		ãã¹1ã®å¦ç
+#
+
+#
+#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã¸ã®åºå®ç»é²
+#
+$symbolValueTable = {
+  "CHAR_BIT"  => { EXPR: "CHAR_BIT" },
+  "SCHAR_MAX" => { EXPR: "SCHAR_MAX", SIGNED: true },
+  "SCHAR_MIN" => { EXPR: "SCHAR_MIN", SIGNED: true },
+  "UCHAR_MAX" => { EXPR: "UCHAR_MAX" },
+  "CHAR_MAX"  => { EXPR: "CHAR_MAX",  SIGNED: true },
+  "CHAR_MIN"  => { EXPR: "CHAR_MIN",  SIGNED: true },
+  "SHRT_MAX"  => { EXPR: "SHRT_MAX",  SIGNED: true },
+  "SHRT_MIN"  => { EXPR: "SHRT_MIN",  SIGNED: true },
+  "USHRT_MAX" => { EXPR: "USHRT_MAX" },
+  "INT_MAX"   => { EXPR: "INT_MAX",   SIGNED: true },
+  "INT_MIN"   => { EXPR: "INT_MIN",   SIGNED: true },
+  "UINT_MAX"  => { EXPR: "UINT_MAX" },
+  "LONG_MAX"  => { EXPR: "LONG_MAX",  SIGNED: true },
+  "LONG_MIN"  => { EXPR: "LONG_MIN",  SIGNED: true },
+  "ULONG_MAX" => { EXPR: "ULONG_MAX" }
+}
+
+#
+#  éçAPIãã¼ãã«ã¸ã®åºå®ç»é²
+#
+$apiDefinition = { "INCLUDE" =>
+  { :PARAM => [ { :NAME => :file, :STRING => true }]}}
+
+#
+#  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#
+def ReadApiTableFile
+  $apiTableFileNames.each do |apiTableFileName|
+    if /^(.+):(\w+)$/ =~ apiTableFileName
+      apiTableFileName = $1
+      apiPhase = $2.to_sym
+    end
+
+    if !File.exist?(apiTableFileName)
+      error_exit("`#{apiTableFileName}' not found")
+      next
+    end
+
+    apiFile = File.open(apiTableFileName)
+    apiFile.each do |line|
+      next if /^#/ =~ line			# ã³ã¡ã³ããã¹ã­ãã
+
+      fields = line.split(/\s+/)	# ãã£ã¼ã«ãã«åè§£
+
+      apiName = fields.shift		# APIåã®åãåºã
+      if /^(.+)\[(.+)\]$/ =~ apiName
+        apiName = $1
+        apiDef = { APINAME: apiName, API: $2 }
+      else
+        apiDef = { APINAME: apiName, API: apiName }
+      end
+      if !apiPhase.nil?
+        apiDef[:PHASE] = apiPhase
+      end
+
+      apiParams = []
+      fields.each do |param|
+        case param
+        when /^(\W*)(\w+)(\W*)$/
+          prefix = $1
+          name = $2
+          postfix = $3
+          apiParam = { :NAME => name }
+
+          case prefix
+          when "#"					# ãªãã¸ã§ã¯ãè­å¥åï¼å®ç¾©ï¼
+            apiParam[:ID_DEF] = true
+          when "%"					# ãªãã¸ã§ã¯ãè­å¥åï¼åç
+§ï¼
+            apiParam[:ID_REF] = true
+          when "."					# ç¬¦å·ç¡ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+            apiParam[:EXPTYPE] = "unsigned_t"
+          when "+"					# ç¬¦å·ä»ãæ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+            apiParam[:EXPTYPE] = "signed_t"
+            apiParam[:SIGNED] = true
+          when "&"					# ä¸è¬æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+            # do nothing
+          when "$"					# æå­åå®æ°å¼ãã©ã¡ã¼ã¿
+            apiParam[:STRING] = true
+          else
+            error_exit("`#{param}' is invalid")
+          end
+
+          case postfix
+          when "*"					# ã­ã¼ãæ±ºãããã©ã¡ã¼ã¿
+            apiDef[:KEYPAR] = name
+          when "?"					# ãªãã·ã§ã³ãã©ã¡ã¼ã¿
+            apiParam[:OPTIONAL] = true
+          when "\.\.\."				# ãªã¹ããã©ã¡ã¼ã¿
+            apiParam[:LIST] = true
+          end
+        
+        when "{"					# {
+          apiParam = { :BRACE => "{" }
+        when "{?"					# {?
+          apiParam = { :BRACE => "{", :OPTBRACE => true }
+
+        when "}"					# }
+          apiParam = { :BRACE => "}" }
+
+        else
+          error_exit("`#{param}' is invalid")
+        end
+        apiParams.push(apiParam)
+      end
+      apiDef[:PARAM] = apiParams
+      $apiDefinition[apiName] = apiDef
+    end
+    apiFile.close
+  end
+end
+
+#
+#  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+#
+def ReadSymvalTable
+  $symvalTableFileNames.each do |symvalTableFileName|
+    if !File.exist?(symvalTableFileName)
+      error_exit("`#{symvalTableFileName}' not found")
+      next
+    end
+
+    symvalCsv = CSV.open(symvalTableFileName,
+						{ skip_blanks: true, skip_lines: /^#/ })
+    symvalCsv.each do |record|
+      # å¤æ°å
+      if record[0].nil?
+        error_exit("invalid variable name in " \
+						"`#{symvalTableFileName}:#{symvalCsv.to_io.lineno}'")
+      end
+
+      symbol = {}
+      variable = record[0]
+
+      # å¼
+      if record[1].nil? || record[1].empty?
+        symbol[:EXPR] = variable
+      else
+        symbol[:EXPR] = record[1]
+      end
+
+      # å¼ã®å
+      if !record[2].nil? && !record[2].empty?
+        case record[2]
+        when /^[bB]/				# çå½å¤
+          symbol[:BOOL] = true
+        when /^[uU]/				# ç¬¦å·ç¡ãæ´æ°å¤
+          # ä½ãè¨­å®ããªã
+        else						# ç¬¦å·ä»ãæ´æ°å¤
+          symbol[:SIGNED] = true
+        end
+      end
+
+      # ã³ã³ãã¤ã«æ¡ä»¶
+      if !record[3].nil? && !record[3].empty?
+        symbol[:CONDITION] = record[3]
+      end
+
+      # æ¡ä»¶ãæç«ããªãæã®å¼
+      if !record[4].nil? && !record[4].empty?
+        symbol[:ELSE_EXPR] = record[4]
+      end
+
+      $symbolValueTable[variable] = symbol
+    end
+    symvalCsv.close
+  end
+end
+
+#
+#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ããã®èª­ã¿è¾¼ã¿ã¯ã©ã¹
+#
+class ConfigFile
+  def initialize(fileName)
+    @cfgFileName = fileName
+    begin
+      @cfgFile = File.open(@cfgFileName)
+    rescue Errno::ENOENT, Errno::EACCES => ex
+      abort(ex.message)
+    end
+    @lineNo = 0
+    @withinComment = false
+  end
+
+  def close
+    @cfgFile.close
+  end
+
+  def getNextLine(withinApi)
+    line = @cfgFile.gets
+    return(nil) if line.nil?
+
+	line.encode!("UTF-16BE", "UTF-8",	# ä¸æ­£ãªãã¤ãåãé¤å¤ãã
+					:invalid => :replace,
+					:undef => :replace,
+					:replace => '?').encode!("UTF-8")
+    @lineNo += 1
+
+    line.chomp!
+    if @withinComment
+      case line
+      when /\*\//						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãçµäº
+        line.sub!(/^.*?\*\//, "")		# æåã®*/ã«ãããããã */
+        @withinComment = false
+      else
+        line = ""
+      end
+    end
+    if !@withinComment
+      line.gsub!(/\/\*.*?\*\//, "")		# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãã®é¤å»
+										# æåã®*/ã«ãããããã */
+      case line
+      when /^\s*#/						# ããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+        if withinApi
+          parse_error(self, \
+					"preprocessor directive must not be within static API")
+          line = ""
+        end
+      when /\/\*/						# Cè¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ãéå§
+        line.sub!(/\/\*.*$/, "")
+        @withinComment = true
+      when /\/\//						# C++è¨èªã¹ã¿ã¤ã«ã®ã³ã¡ã³ã
+        line.sub!(/\/\/.*$/, "")
+      end
+    end
+    return(line)
+  end
+
+  def getFileName
+    return(@cfgFileName)
+  end
+
+  def getLineNo
+    return(@lineNo)
+  end
+end
+
+#
+#  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ãã¼ãµã¼ã¯ã©ã¹
+#
+class CfgParser
+  @@lastApiIndex = 0
+  @@currentDomain = nil
+  @@currentClass = nil
+  @@nestDC = []
+
+  def initialize
+    @line = ""
+    @skipComma = false						# æ¬¡ã,ã§ããã°èª­ã¿é£ã°ã
+  end
+
+  #
+  #  æå­åæ«ã¾ã§èª­ã
+  #
+  def parseString(cfgFile)
+    string = ""
+    begin
+      case @line
+      when /^([^"]*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+        string += $1
+        @line = $2
+      when /^([^"]*\\\")(.*)$/				# \"ã¾ã§èª­ã
+        string += $1
+        @line = $2
+      when /^([^"]*\")(.*)$/				# "ã¾ã§èª­ã
+        string += $1
+        @line = $2
+        return(string)
+      else									# è¡æ«ã¾ã§èª­ã
+        string += @line + "\n"
+        @line = cfgFile.getNextLine(true)
+      end
+    end while (@line)
+    error_exit("unterminated string meets end-of-file")
+    return(string)
+  end
+
+  #
+  #  æå­æ«ã¾ã§èª­ã
+  #
+  def parseChar(cfgFile)
+    string = ""
+    begin
+      case @line
+      when /^([^']*\\\\)(.*)$/				# \\ã¾ã§èª­ã
+        string += $1
+        @line = $2
+      when /^([^']*\\\')(.*)$/				# \'ã¾ã§èª­ã
+        string += $1
+        @line = $2
+      when /^([^']*\')(.*)$/				# 'ã¾ã§èª­ã
+        string += $1
+        @line = $2
+        return(string)
+      else									# è¡æ«ã¾ã§èª­ã
+        string += @line + "\n"
+        @line = cfgFile.getNextLine(true)
+      end
+    end while (@line)
+    error_exit("unterminated string meets end-of-file")
+    return(string)
+  end
+
+  #
+  #  æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+  #
+  def skipSpace(cfgFile, withinApi)
+    loop do
+      return if @line.nil?						# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+      @line.lstrip!								# å
+é ­ã®ç©ºç½ãåé¤
+      return if @line != ""						# ç©ºè¡ã§ãªããã°ãªã¿ã¼ã³
+      @line = cfgFile.getNextLine(withinApi)	# æ¬¡ã®è¡ãèª­ã
+    end
+  end
+
+  #
+  #  æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+  #
+  def skipToToken(cfgFile, withinApi=true)
+    skipSpace(cfgFile, withinApi)
+    if @line.nil?							# ãã¡ã¤ã«æ«ã§ããã°ã¨ã©ã¼çµäº
+      error_exit("unexpexced end-of-file")
+    end
+  end
+
+  #
+  #  ãã©ã¡ã¼ã¿ã1ã¤èª­ã
+  #
+  # @lineã®å
+é ­ãããã©ã¡ã¼ã¿ã1ã¤èª­ãã§ï¼ãããæå­åã§è¿ãï¼èª­ãã ã
+  # ã©ã¡ã¼ã¿ã¯ï¼@lineããã¯åé¤ããï¼ãã©ã¡ã¼ã¿ã®éä¸­ã§è¡æ«ã«éããæã¯ï¼
+  # cfgFileããæ¬¡ã®è¡ãåãåºãï¼ãã¡ã¤ã«æ«ã«éããæã¯ï¼nilãè¿ãï¼
+  #
+  def parseParam(cfgFile)
+    param = ""								# èª­ãã æå­å
+    parenLevel = 0							# æ¬å¼§ã®ãã¹ãã¬ãã«
+    skipComma = @skipComma
+    @skipComma = false
+
+    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    begin
+      if parenLevel == 0
+        case @line
+        when /^(\s*,)(.*)$/					# ,
+          @line = $2
+          if param == "" && skipComma
+            skipComma = false
+            return(parseParam(cfgFile))		# åå¸°å¼ã³åºã
+          else
+            return(param.strip)
+          end
+        when /^(\s*{)(.*)$/					# {
+          if param != ""
+            return(param.strip)
+          else
+            @line = $2
+            return("{")
+          end
+        when /^(\s*\()(.*)$/				# (
+          param += $1
+          @line = $2
+          parenLevel += 1
+        when /^(\s*([)}]))(.*)$/			# }ã)
+          if param != ""
+            return(param.strip)
+          else
+            @line = $3
+            @skipComma = true if $2 == "}"
+            return($2)
+          end
+        when /^(\s*\")(.*)$/				# "
+          @line = $2
+          param += $1 + parseString(cfgFile)
+        when /^(\s*\')(.*)$/				# '
+          @line = $2
+          param += $1 + parseChar(cfgFile)
+        when /^(\s*[^,{}()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+          param += $1
+          @line = $2
+        else								# è¡æ«
+          param += " "
+          @line = cfgFile.getNextLine(true)
+        end
+      else
+        # æ¬å¼§å
+ã®å¦ç
+        case @line
+        when /^(\s*\()(.*)$/				# "("
+          param += $1
+          @line = $2
+          parenLevel += 1
+        when /^(\s*\))(.*)$/				# ")"
+          param += $1
+          @line = $2
+          parenLevel -= 1
+        when /^(\s*\")(.*)$/				# "
+          @line = $2
+          param += $1 + parseString(cfgFile)
+        when /^(\s*\')(.*)$/				# '
+          @line = $2
+          param += $1 + parseChar(cfgFile)
+        when /^(\s*[^()"'\s]+)(.*)$/		# ãã®ä»ã®æå­å
+          param += $1
+          @line = $2
+        else								# è¡æ«
+          param += " "
+          @line = cfgFile.getNextLine(true)
+        end
+      end
+    end while (@line)
+    return(param.strip)
+  end
+
+  def getParam(apiParam, param, cfgFile)
+    if param == ""
+      if !apiParam.has_key?(:OPTIONAL)
+        parse_error(cfgFile, "unexpected `,'")
+      end
+      return(param)
+    end
+
+    if apiParam.has_key?(:ID_DEF) || apiParam.has_key?(:ID_REF)
+      if (/^[A-Za-z_]\w*$/ !~ param)
+        parse_error(cfgFile, "`#{param}' is illegal object ID")
+      end
+      return(param)
+    end
+
+    if apiParam.has_key?(:STRING)
+      return(param.unquote)
+    else
+      return(param)
+    end
+  end
+
+  def parseApi(cfgFile, apiName)
+    # éçAPIã®èª­ã¿è¾¼ã¿
+    staticApi = {}
+    tooFewParams = false
+    skipUntilBrace = 0
+
+    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    if (/^\((.*)$/ =~ @line)
+      @line = $1
+
+      staticApi[:APINAME] = apiName
+      staticApi[:_FILE_] = cfgFile.getFileName
+      staticApi[:_LINE_] = cfgFile.getLineNo
+      apiDef = $apiDefinition[apiName]
+      param = parseParam(cfgFile)
+
+      apiDef[:PARAM].each do |apiParam|
+        return(staticApi) if param.nil?		# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+
+        if skipUntilBrace > 0
+          # APIå®ç¾©ã}ã¾ã§ã¹ã­ããä¸­
+          if apiParam.has_key?(:BRACE)
+            case apiParam[:BRACE]
+            when "{"
+              skipUntilBrace += 1
+            when "}"
+              skipUntilBrace -= 1
+            end
+          end
+        elsif apiParam.has_key?(:OPTIONAL)
+          if /^([{})])$/ !~ param
+            store_param = getParam(apiParam, param, cfgFile)
+            if store_param != ""
+              staticApi[apiParam[:NAME]] = store_param
+            end
+            param = parseParam(cfgFile)
+          end
+        elsif apiParam.has_key?(:LIST)
+          staticApi[apiParam[:NAME]] = []
+          while /^([{})])$/ !~ param
+            staticApi[apiParam[:NAME]].push(getParam(apiParam, param, cfgFile))
+            param = parseParam(cfgFile)
+            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+          end
+        elsif apiParam.has_key?(:OPTBRACE)
+          if param == apiParam[:BRACE]
+            param = parseParam(cfgFile)
+            break if param.nil?				# ãã¡ã¤ã«æ«ã®å ´å
+          else
+            if param == ""
+              param = parseParam(cfgFile)
+              break if param.nil?			# ãã¡ã¤ã«æ«ã®å ´å
+            elsif /^([})])$/ !~ param
+              parse_error(cfgFile, "`{...}' expected before #{param}")
+            end
+            skipUntilBrace += 1          	# APIå®ç¾©ã}ã¾ã§ã¹ã­ãã
+          end
+        elsif !apiParam.has_key?(:BRACE)
+          if /^([{})])$/ !~ param
+            staticApi[apiParam[:NAME]] = getParam(apiParam, param, cfgFile)
+            param = parseParam(cfgFile)
+          elsif !tooFewParams
+            parse_error(cfgFile, "too few parameters before `#{$1}'")
+            tooFewParams = true
+          end
+        elsif param == apiParam[:BRACE]
+          param = parseParam(cfgFile)
+          tooFewParams = false
+        else
+          parse_error(cfgFile, "`#{apiParam[:BRACE]}' expected before #{param}")
+          # )ããã¡ã¤ã«æ«ã¾ã§èª­ã¿é£ã°ã
+          loop do
+            param = parseParam(cfgFile)
+            break if (param.nil? || param == ")")
+          end
+          break
+        end
+      end
+
+      # æå¾
+ããããã©ã¡ã¼ã¿ããã¹ã¦èª­ãã å¾ã®å¦ç
+      if param != ")"
+        begin
+          param = parseParam(cfgFile)
+          return(staticApi) if param.nil?	# ãã¡ã¤ã«æ«ã§ããã°ãªã¿ã¼ã³
+        end while param != ")"
+        parse_error(cfgFile, "too many parameters before `)'")
+      end
+    else
+      parse_error(cfgFile, "syntax error: #{@line}")
+      @line = ""
+    end
+    return(staticApi)
+  end
+
+  def parseOpenBrace(cfgFile)
+    # {ã®èª­ã¿è¾¼ã¿
+    skipToToken(cfgFile)					# æ¬¡ã®æå­ã¾ã§èª­ã¿é£ã°ã
+    if (/^\{(.*)$/ =~ @line)
+      @line = $1
+    else
+      parse_error(cfgFile, "`{' expected before #{@line}")
+    end
+  end
+
+  def parseFile(cfgFileName)
+    cfgFiles = [ ConfigFile.new(cfgFileName) ]
+    @line = ""
+    loop do
+      cfgFile = cfgFiles.last
+
+      skipSpace(cfgFile, false)				# æ¹è¡ã¨ç©ºç½æå­ãèª­ã¿é£ã°ã
+      if @line.nil?
+        # ãã¡ã¤ã«æ«ã®å¦ç
+        cfgFiles.pop.close
+        if cfgFiles.empty?
+          break								# ãã¼ã¹å¦ççµäº
+        else
+          @line = ""						# å
+ã®ãã¡ã¤ã«ã«æ»ã£ã¦ç¶ãã
+        end
+      elsif /^;(.*)$/ =~ @line
+        # ;ã¯èª­ã¿é£ã°ã
+        @line = $1
+      elsif /^#/ =~ @line
+        # ããªãã­ã»ããµãã£ã¬ã¯ãã£ããèª­ã
+        case @line
+        when /^#include\b(.*)$/
+          $includeFiles.push($1.strip)
+        when /^#(ifdef|ifndef|if|endif|else|elif)\b/
+          directive = { :DIRECTIVE => @line.strip }
+          $cfgFileInfo.push(directive)
+        else
+          parse_error(cfgFile, "unknown preprocessor directive: #{@line}")
+        end
+        @line = ""
+      elsif (/^([A-Z_][A-Z0-9_]*)\b(.*)$/ =~ @line)
+        apiName = $1
+        @line = $2
+
+        case apiName
+        when "KERNEL_DOMAIN"
+          if $supportDomain.nil?
+            parse_warning(cfgFile, "`KERNEL_DOMAIN' is not supported")
+          end
+          if !@@currentDomain.nil?
+            parse_error(cfgFile, "`DOMAIN' must not be nested")
+          end
+          @@currentDomain = "TDOM_KERNEL"
+          parseOpenBrace(cfgFile)
+          @@nestDC.push("domain")
+        when "DOMAIN"
+          if $supportDomain.nil?
+            parse_warning(cfgFile, "`DOMAIN' is not supported")
+          end
+          if !@@currentDomain.nil?
+            parse_error(cfgFile, "`DOMAIN' must not be nested")
+          end
+          domid = parseParam(cfgFile).sub(/^\((.+)\)$/m, "\\1").strip
+          if (/^[A-Za-z_]\w*$/ !~ domid)
+            parse_error(cfgFile, "`#{domid}' is illegal domain ID")
+          else
+            if !$domainId.has_key?(domid)
+              if $inputObjid.has_key?(domid)
+                # IDçªå·å
+¥åãã¡ã¤ã«ã«å®ç¾©ããã¦ããå ´å
+                $domainId[domid] = $inputObjid[domid]
+                if $domainId[domid] > 32
+                  error_exit("domain ID for `#{domid}' is too large")
+                end
+              else
+                $domainId[domid] = nil
+              end
+            end
+            @@currentDomain = domid
+          end
+          parseOpenBrace(cfgFile)
+          @@nestDC.push("domain")
+        when "CLASS"
+          if $supportClass.nil?
+            parse_warning(cfgFile, "`CLASS' is not supported")
+          end
+          if !@@currentClass.nil?
+            parse_error(cfgFile, "`CLASS' must not be nested")
+          end
+          @@currentClass = parseParam(cfgFile).sub(/^\((.+)\)$/m, "\\1").strip
+          @@classFile = cfgFile.getFileName
+          @@classLine = cfgFile.getLineNo
+          parseOpenBrace(cfgFile)
+          @@nestDC.push("class")
+        else
+          if $apiDefinition.has_key?(apiName)
+            # éçAPIã1ã¤èª­ã
+            staticApi = parseApi(cfgFile, apiName)
+            if staticApi.empty?
+              # ãã¡ã¤ã«æ«ãææ³ã¨ã©ã¼
+            elsif (staticApi[:APINAME] == "INCLUDE")
+              # INCLUDEã®å¦ç
+              includeFilePath = SearchFilePath(staticApi[:file])
+              if includeFilePath.nil?
+                parse_error(cfgFile, "`#{staticApi[:file]}' not found")
+              else
+                $dependencyFiles.push(includeFilePath)
+                cfgFiles.push(ConfigFile.new(includeFilePath))
+              end
+            else
+              # éçAPIã®å¦ç
+              if !@@currentDomain.nil?
+                staticApi[:DOMAIN] = @@currentDomain
+              end
+              if !@@currentClass.nil?
+                staticApi[:CLASS] = @@currentClass
+                staticApi[:CLASS_FILE_] = @@classFile
+                staticApi[:CLASS_LINE_] = @@classLine
+              end
+              staticApi[:INDEX] = (@@lastApiIndex += 1)
+              $cfgFileInfo.push(staticApi)
+            end
+          else
+            parse_error(cfgFile, "unknown static API: #{apiName}")
+          end
+        end
+      elsif (/^\}(.*)$/ =~ @line)
+        # }ã®å¦ç
+        if @@nestDC.size > 0
+          case @@nestDC.pop
+          when "domain"
+            @@currentDomain = nil
+          when "class"
+            @@currentClass = nil
+          end
+        else
+          error_exit("unexpected `}'")
+        end
+        @line = $1
+      else
+        parse_error(cfgFile, "syntax error: #{@line}")
+        @line = ""
+      end
+    end
+  end
+end
+
+#
+#  cfg1_out.cã®çæ
+#
+module Cfg1OutC
+  #
+  #  éçAPIã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #
+  def self.OutLineNumber(cfgInfo)
+    @cfg1Out.add("#line #{cfgInfo[:_LINE_]} \"#{cfgInfo[:_FILE_]}\"")
+  end
+
+  #
+  #  ã¯ã©ã¹è¨è¿°ã®ãã¡ã¤ã«åã¨è¡çªå·ã®åºå
+  #
+  def self.OutClassLineNumber(cfgInfo)
+    @cfg1Out.add("#line #{cfgInfo[:CLASS_LINE_]} \"#{cfgInfo[:CLASS_FILE_]}\"")
+  end
+
+  #
+  #  ãã©ã¡ã¼ã¿ã«é¢ããå®ç¾©ã®åºå
+  #
+  def self.OutParamDef(param, index, apiParam, cfgInfo)
+    if apiParam.has_key?(:ID_DEF)
+      @cfg1Out.add("#define #{param}\t(<>)")
+    elsif apiParam.has_key?(:EXPTYPE)
+      OutLineNumber(cfgInfo)
+      @cfg1Out.add("const #{apiParam[:EXPTYPE]} #{CFG1_PREFIX}valueof_" \
+								"#{apiParam[:NAME]}_#{index} = " \
+								"(#{apiParam[:EXPTYPE]})(#{param});")
+    end
+  end
+
+  #
+  #  cfg1_out.cã®çæï¼ã¡ã¤ã³ã®å¦çï¼
+  #
+  def self.Generate
+    @cfg1Out = GenFile.new(CFG1_OUT_C)
+
+    @cfg1Out.append(<<EOS)
+/* #{CFG1_OUT_C} */
+#define TOPPERS_CFG1_OUT
+#include "kernel/kernel_int.h"
+EOS
+
+    # ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«
+    $includeFiles.each do |file|
+      @cfg1Out.add("#include #{file}")
+    end
+
+    @cfg1Out.add(<<EOS)
+
+#ifdef INT64_MAX
+  typedef int64_t signed_t;
+  typedef uint64_t unsigned_t;
+#else
+  typedef int32_t signed_t;
+  typedef uint32_t unsigned_t;
+#endif
+
+#include "#{CFG1_OUT_TARGET_H}"
+
+#if defined(SIL_ENDIAN_BIG) && defined(SIL_ENDIAN_LITTLE)
+#error Both SIL_ENDIAN_BIG and SIL_ENDIAN_LITTLE are defined.
+#endif
+#if !defined(SIL_ENDIAN_BIG) && !defined(SIL_ENDIAN_LITTLE)
+#error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined.
+#endif
+
+const uint32_t #{CFG1_MAGIC_NUM} = 0x12345678;
+const uint32_t #{CFG1_SIZEOF_SIGNED} = sizeof(signed_t);
+EOS
+
+    # å¤åå¾ã·ã³ãã«ã®å¦ç
+    $symbolValueTable.each do |symbolName, symbolData|
+      if symbolData.has_key?(:BOOL) || symbolData.has_key?(:SIGNED)
+        type = "signed_t"
+      else
+        type = "unsigned_t"
+      end
+      if symbolData.has_key?(:CONDITION)
+        @cfg1Out.add("#if #{symbolData[:CONDITION]}")
+      end
+      @cfg1Out.add("const #{type} #{CFG1_PREFIX}#{symbolName} = " \
+								"(#{type})(#{symbolData[:EXPR]});")
+      if symbolData.has_key?(:ELSE_EXPR)
+        @cfg1Out.add("#else")
+        @cfg1Out.add("const #{type} #{CFG1_PREFIX}#{symbolName} = " \
+								"(#{type})(#{symbolData[:ELSE_EXPR]});")
+      end
+      if symbolData.has_key?(:CONDITION)
+        @cfg1Out.add("#endif")
+      end
+    end
+    @cfg1Out.add
+
+    # ãã¡ã¤ã³IDã®å®ç¾©ã®çæ
+    $domainId.each do |domainName, domainVal|
+      if domainVal > 0
+        @cfg1Out.add("#define #{domainName} #{domainVal}")
+      end
+    end
+    @cfg1Out.add
+
+    # éçAPIï¼ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã®å¦ç
+    $cfgFileInfo.each do |cfgInfo|
+      if cfgInfo.has_key?(:DIRECTIVE)
+        @cfg1Out.add2(cfgInfo[:DIRECTIVE])
+      else
+        apiDef = $apiDefinition[cfgInfo[:APINAME]]
+        apiIndex = cfgInfo[:INDEX]
+        OutLineNumber(cfgInfo)
+        @cfg1Out.add("const unsigned_t #{CFG1_PREFIX}static_api_" \
+										"#{apiIndex} = #{apiIndex};")
+        apiDef[:PARAM].each do |apiParam|
+          next unless apiParam.has_key?(:NAME)
+          paramName = apiParam[:NAME]
+          next unless cfgInfo.has_key?(paramName)	# ãã©ã¡ã¼ã¿ããªãå ´å
+          paramData = cfgInfo[paramName]
+
+          if apiParam.has_key?(:LIST)
+            paramData.each.with_index(1) do |param, index|
+              OutParamDef(param, "#{apiIndex}_#{index}", apiParam, cfgInfo)
+            end
+          else
+            OutParamDef(paramData, "#{apiIndex}", apiParam, cfgInfo)
+          end
+        end
+        if cfgInfo.has_key?(:CLASS)
+          # ã¯ã©ã¹IDã®åå¾ã®ããã®å¦ç
+          OutClassLineNumber(cfgInfo)
+          @cfg1Out.add("const signed_t #{CFG1_PREFIX}valueof_CLASS_" \
+                      "#{apiIndex} = (signed_t)(#{cfgInfo[:CLASS]});")
+        end
+        @cfg1Out.add
+      end
+    end
+  end
+end
+
+#
+#  ãã¹1ã®å¦ç
+#
+def Pass1
+  # 
+  #  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+  # 
+  $timeStampFileName = CFG1_OUT_TIMESTAMP
+
+  #
+  #  éçAPIãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #
+  ReadApiTableFile()
+
+  #
+  #  å¤åå¾ã·ã³ãã«ãã¼ãã«ã®èª­ã¿è¾¼ã¿
+  #
+  ReadSymvalTable()
+
+  #
+  #  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+  #
+  $cfgFileInfo = []
+  $dependencyFiles = $configFileNames.dup
+  $includeFiles = []
+  $domainId = { "TDOM_KERNEL" => -1, "TDOM_NONE" => -2 }
+  $configFileNames.each do |configFileName|
+    CfgParser.new.parseFile(configFileName)
+  end
+  abort if $errorFlag					# ã¨ã©ã¼çºçæã¯abortãã
+
+  #
+  #  ãã¡ã¤ã³IDã®å²å½ã¦å¦ç
+  #
+  nextDomainId = 1
+  $domainId.each do |domainName, domainVal|
+    if domainVal.nil?
+      while $domainId.has_value?(nextDomainId)
+        nextDomainId += 1
+      end
+      $domainId[domainName] = nextDomainId
+      if nextDomainId > 32
+        error_exit("too large number of user domains")
+      end
+      nextDomainId += 1
+    end
+  end
+
+  #
+  #  cfg1_out.cã®çæ
+  #
+  Cfg1OutC::Generate()
+
+  #
+  #  ä¾å­é¢ä¿ã®åºå
+  #
+  if !$dependencyFileName.nil?
+    if $dependencyFileName == ""
+      depFile = STDOUT
+    else
+      begin
+        depFile = File.open($dependencyFileName, "w")
+      rescue Errno::ENOENT, Errno::EACCES => ex
+        abort(ex.message)
+      end
+    end
+
+    depFile.print("#{CFG1_OUT_TIMESTAMP}:")
+    $dependencyFiles.each do |fileName|
+      depFile.print(" #{fileName}")
+    end
+    depFile.puts("")
+
+    if $dependencyFileName != ""
+      depFile.close
+    end
+  end
+
+  #
+  #  ãã¹2ã«å¼ãæ¸¡ãæ
+å ±ããã¡ã¤ã«ã«çæ
+  #
+  if $omitOutputDb.nil?
+    db = PStore.new(CFG1_OUT_DB)
+    db.transaction do
+      db[:apiDefinition] = $apiDefinition
+      db[:symbolValueTable] = $symbolValueTable
+      db[:cfgFileInfo] = $cfgFileInfo
+      db[:includeFiles] = $includeFiles
+      db[:domainId] = $domainId
+    end
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/cfg/pass2.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/cfg/pass2.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/cfg/pass2.rb	(revision 313)
@@ -0,0 +1,440 @@
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Configurator by Ruby
+#
+#  Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#  Copyright (C) 2015-2017 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+#
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+#
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+#
+#  $Id: pass2.rb 134 2017-06-23 11:34:26Z ertl-hiro $
+#
+
+#
+#		ãã¹2ã®å¦ç
+#
+
+#
+#  ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿
+#
+module Cfg1Out
+  #
+  #  Sã¬ã³ã¼ããã¡ã¤ã«ããã·ã³ãã«ã®å¤ãåãåºã
+  #
+  def self.GetSymbolValue(symbol, size, signed)
+    if @symbolAddress.has_key?(symbol)
+      return(@cfg1SRec.get_value(@symbolAddress[symbol], size, signed))
+    else
+      return(nil)
+    end
+  end
+
+  #
+  #  ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿ï¼ã¡ã¤ã³ã®å¦çï¼
+  #
+  def self.Read
+    # cfg1_out.symsã®èª­ã¿è¾¼ã¿
+    @symbolAddress = ReadSymbolFile(CFG1_OUT_SYMS)
+
+    # cfg1_out.srecã®èª­ã¿è¾¼ã¿
+    begin
+      @cfg1SRec = SRecord.new(CFG1_OUT_SREC)
+    rescue Errno::ENOENT, Errno::EACCES => ex
+      abort(ex.message)
+    end
+
+    # ãã¸ãã¯ãã³ãã¼ã®åå¾
+    if @symbolAddress.has_key?(CFG1_MAGIC_NUM)
+      $asmLabel = ""
+      $cfg1_prefix = CFG1_PREFIX
+    elsif @symbolAddress.has_key?("_" + CFG1_MAGIC_NUM)
+      $asmLabel = "_"
+      $cfg1_prefix = "_" + CFG1_PREFIX
+    else
+      error_exit("`#{CFG1_MAGIC_NUM}' is not found in `#{CFG1_OUT_SYMS}'")
+    end
+
+    magicNumberData = @cfg1SRec.get_data(@symbolAddress \
+							[$asmLabel + CFG1_MAGIC_NUM], 4)
+    if (magicNumberData == "12345678")
+      $endianLittle = false
+    elsif (magicNumberData == "78563412")
+      $endianLittle = true
+    else
+      error_exit("`#{CFG1_MAGIC_NUM}' is invalid in `#{CFG1_OUT_SREC}'")
+    end
+
+    # åºå®åºåããå¤æ°ã®åå¾
+    $sizeOfSigned = GetSymbolValue($asmLabel + CFG1_SIZEOF_SIGNED, 4, false)
+
+    # å¤åå¾ã·ã³ãã«ã®åå¾
+    $symbolValueTable.each do |symbolName, symbolData|
+      symbol = $cfg1_prefix + symbolName
+      if symbolData.has_key?(:BOOL)
+        value = GetSymbolValue(symbol, $sizeOfSigned, true)
+        if !value.nil?
+          # Cè¨èªã®çå½å¤ãRubyã®çå½å¤ã«å¤æãã¦åãè¾¼ã
+          symbolData[:VALUE] = (value != 0)
+        end
+      else
+        value = GetSymbolValue(symbol, $sizeOfSigned, \
+										symbolData.has_key?(:SIGNED))
+        if !value.nil?
+          symbolData[:VALUE] = value
+        end
+      end
+    end
+
+    #
+    #  ããã·ã¥ã®åæå
+    #
+    $cfgData = {}
+    @objidValues = {}
+    $apiDefinition.each do |apiName, apiDef|
+      if apiDef.has_key?(:API)
+        if !$cfgData.has_key?(apiDef[:API].to_sym)
+          $cfgData[apiDef[:API].to_sym] = {}
+        end
+      end
+      apiDef[:PARAM].each do |apiParam|
+        if apiParam.has_key?(:NAME) && apiParam.has_key?(:ID_DEF)
+          @objidValues[apiParam[:NAME]] = {}
+        end
+      end
+    end
+
+    #
+    #  ãã¡ã¤ã³çæãã¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¼ã¿ï¼$cfgDataï¼ã«æ ¼ç´
+    #
+    $cfgData[:CRE_DOM] = {}
+    $domainId.each do |domainName, domainVal|
+      domid = NumStr.new(domainVal, domainName)
+      $cfgData[:CRE_DOM][domainVal] = { :domid => domid }
+    end
+
+    ReadPhase(nil)
+  end
+
+  #
+  #  ãã©ã¡ã¼ã¿ã®å¤ãåãåºã
+  #
+  def self.GetParamValue(paramName, param, apiIndex, index, apiParam, cfgInfo)
+    if apiParam.has_key?(:ID_DEF)				# ãªãã¸ã§ã¯ãè­å¥åï¼å®ç¾©ï¼
+      value = @objidValues[paramName][param]
+    elsif apiParam.has_key?(:ID_REF)			# ãªãã¸ã§ã¯ãè­å¥åï¼åç
+§ï¼
+      if @objidValues[paramName].has_key?(param)
+        value = @objidValues[paramName][param]
+      else
+        apiDef = $apiDefinition[cfgInfo[:APINAME]]
+        error("#{apiDef.has_key?(:KEYPAR) ? "E_NOEXS" : "E_ID"}: " \
+					"`#{param}' in #{cfgInfo[:APINAME]} is not defined", \
+					"#{cfgInfo[:_FILE_]}:#{cfgInfo[:_LINE_]}:")
+        value = nil
+      end
+    elsif apiParam.has_key?(:EXPTYPE)			# æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿
+      if apiIndex.nil?
+        if param.is_a?(NumStr)
+          return(param)
+        else
+          return(NumStr.new(param))
+        end
+      else
+        symbol = "#{$cfg1_prefix}valueof_#{paramName}_#{apiIndex}#{index}"
+        value = GetSymbolValue(symbol, $sizeOfSigned, \
+									apiParam.has_key?(:SIGNED))
+      end
+    else										# ä¸è¬å®æ°å¼ï¼æå­åãã©ã¡ã¼ã¿
+      return(param)
+    end
+    return(NumStr.new(value, param))
+  end
+
+  #
+  #  æå®ãããã§ã¼ãºã®ããã®ãã¹1ã®çæç©ã®èª­ã¿è¾¼ã¿
+  #
+  def self.ReadPhase(phase)
+    #
+    #  ãªãã¸ã§ã¯ãIDã®å²å½ã¦
+    #
+    # å²ãå½ã¦ããªãã¸ã§ã¯ãIDã¯ï¼@objidValuesã«ä¿æããï¼@objidValuesã¯ï¼
+    # 2éã®ããã·ã¥ï¼ããã·ã¥ã®ããã·ã¥ï¼ã§ããï¼
+    #
+    # å
+·ä½çã«ã¯ï¼@objidValuesã¯ï¼ãªãã¸ã§ã¯ãIDã®ãã©ã¡ã¼ã¿åï¼ä¾ãã°ï¼ã»
+    # ããã©IDã§ããã°"semid"ï¼ãããä¿æããå¤æ°åã¯ï¼objidParamNameã¨ã
+    # ãï¼ãã­ã¼ã¨ãï¼ãã®ãªãã¸ã§ã¯ãIDã®å²å½ã¦è¡¨ï¼ãããä¿æããå¤æ°å
+    # ã¯ï¼objidListã¨ããï¼ãå¤ã¨ããããã·ã¥ã§ããï¼ãªãã¸ã§ã¯ãIDã®å²å½
+    # ã¦è¡¨ã¯ï¼ãªãã¸ã§ã¯ãåï¼ãããä¿æããå¤æ°åã¯ï¼objNameã¨ããï¼ãã­ã¼
+    # ã¨ãï¼ãã®IDçªå·ï¼ãããä¿æããå¤æ°åã¯ï¼objidNumberã¨ããï¼ãå¤ã¨
+    # ããããã·ã¥ã§ããï¼
+    #
+    # ä¾ãã°ï¼ã»ããã©SEM1ã®IDçªå·ã1ã®å ´åã«ã¯ï¼æ¬¡ã®ããã«è¨­å®ãããï¼
+    #   @objidValues["semid"]["SEM1"] == 1
+    #
+
+    # IDçªå·å²ãå½ã¦ã®åå¦ç
+    objidParamNameList = []
+    $cfgFileInfo.each do |cfgInfo|
+      # ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã¯èª­ã¿é£ã°ã
+      next if cfgInfo.has_key?(:DIRECTIVE)
+
+      apiDef = $apiDefinition[cfgInfo[:APINAME]]
+      # ç°ãªããã§ã¼ãºã®éçAPIã¯èª­ã¿é£ã°ã
+      next if apiDef[:PHASE] != phase
+
+      apiIndex = cfgInfo[:INDEX]
+      if !apiIndex.nil?
+        # ã·ã³ãã«ãã¡ã¤ã«ã«éçAPIã®ã¤ã³ããã¯ã¹ãå­å¨ããªããã°èª­ã¿é£
+        # ã°ãï¼ifdefç­ã§æ¶ããéçAPIï¼
+        symbol = "#{$cfg1_prefix}static_api_#{apiIndex}"
+        next unless @symbolAddress.has_key?(symbol)
+      end
+
+      apiDef[:PARAM].each do |apiParam|
+        if apiParam.has_key?(:NAME) && apiParam.has_key?(:ID_DEF)
+          objidParamName = apiParam[:NAME]
+          objName = cfgInfo[objidParamName]
+          if $inputObjid.has_key?(objName)
+            # IDçªå·å
+¥åãã¡ã¤ã«ã«å®ç¾©ããã¦ããå ´å
+            @objidValues[objidParamName][objName] = $inputObjid[objName]
+          else
+            @objidValues[objidParamName][objName] = nil
+          end
+          objidParamNameList.push(objidParamName)
+        end
+      end
+    end
+
+    # IDçªå·ã®å²å½ã¦å¦ç
+    objidParamNameList.each do |objidParamName|
+      objidList = @objidValues[objidParamName]
+
+      # æªä½¿ç¨ã®IDçªå·ã®ãªã¹ãï¼ä½¿ç¨ãããã®ããæ¶ãã¦ããï¼
+      unusedObjidList = (1.upto(objidList.keys.size)).to_a
+
+      # å²ãå½ã¦æ¸ã¿ã®IDçªå·ã®å¦ç
+      objidList.each do |objName, objidNumber|
+        if $inputObjid.has_key?(objName)
+          objidIndex = unusedObjidList.index($inputObjid[objName])
+          if objidIndex.nil?
+            # IDçªå·å
+¥åãã¡ã¤ã«ã§æå®ãããå¤ãä¸æ­£
+            error_exit("value of `#{objName}' in ID input file is illegal")
+          else
+            # æªä½¿ç¨ã®IDçªå·ã®ãªã¹ãããåé¤
+            unusedObjidList.delete_at(objidIndex)
+          end
+        end
+      end
+
+      # IDçªå·ã®å²å½ã¦
+      objidList.each do |objName, objidNumber|
+        if objidList[objName].nil?
+          # ä»¥ä¸ã§ï¼@objidValuesãæ¸ãæãã¦ãã
+          objidList[objName] = unusedObjidList.shift
+        end
+      end
+    end
+
+    #
+    #  éçAPIãã¼ã¿ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¼ã¿ï¼$cfgDataï¼ã«æ ¼ç´
+    #
+    $cfgFileInfo.each do |cfgInfo|
+      # ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã¯èª­ã¿é£ã°ã
+      next if cfgInfo.has_key?(:DIRECTIVE)
+
+      apiDef = $apiDefinition[cfgInfo[:APINAME]]
+      # ç°ãªããã§ã¼ãºã®éçAPIã¯èª­ã¿é£ã°ã
+      next if apiDef[:PHASE] != phase
+
+      apiSym = apiDef[:API].to_sym
+      apiIndex = cfgInfo[:INDEX]
+      if !apiIndex.nil?
+        # ã·ã³ãã«ãã¡ã¤ã«ã«éçAPIã®ã¤ã³ããã¯ã¹ãå­å¨ããªããã°èª­ã¿é£
+        # ã°ãï¼ifdefç­ã§æ¶ããéçAPIï¼
+        symbol = "#{$cfg1_prefix}static_api_#{apiIndex}"
+        next unless @symbolAddress.has_key?(symbol)
+      end
+
+      # ãã©ã¡ã¼ã¿ã®å¤ãããã·ã¥å½¢å¼ã«æ ¼ç´
+      params = {}
+      apiDef[:PARAM].each do |apiParam|
+        next unless apiParam.has_key?(:NAME)
+        paramName = apiParam[:NAME]
+        next unless cfgInfo.has_key?(paramName)		# ãã©ã¡ã¼ã¿ããªãå ´å
+        paramData = cfgInfo[paramName]
+
+        if apiParam.has_key?(:LIST)
+          params[paramName.to_sym] = []
+          paramData.each.with_index(1) do |param, index|
+            params[paramName.to_sym].push(GetParamValue(paramName, param, \
+								apiIndex, "_#{index}", apiParam, cfgInfo))
+          end
+        else
+          params[paramName.to_sym] = GetParamValue(paramName, paramData, \
+										apiIndex, "", apiParam, cfgInfo)
+        end
+      end
+
+      # ãã¡ã¤ã³IDãè¿½å 
+      if cfgInfo.has_key?(:DOMAIN)
+        domainName = cfgInfo[:DOMAIN]
+        params[:domain] = $domainId[domainName]
+      end
+
+      # ã¯ã©ã¹IDãè¿½å 
+      if cfgInfo.has_key?(:CLASS)
+        if apiIndex.nil?
+          params[:class] = cfgInfo[:CLASS]
+        else
+          symbol = "#{$cfg1_prefix}valueof_CLASS_#{apiIndex}"
+          value = GetSymbolValue(symbol, $sizeOfSigned, true)
+          params[:class] = NumStr.new(value, cfgInfo[:CLASS])
+        end
+      end
+
+      # APIåï¼ãã¡ã¤ã«åï¼è¡çªå·ãè¿½å 
+      params[:apiname] = cfgInfo[:APINAME]
+      params[:_file_] = cfgInfo[:_FILE_]
+      params[:_line_] = cfgInfo[:_LINE_]
+
+      # ç»é²ã­ã¼ãæ±ºå®ãã
+      if apiDef.has_key?(:KEYPAR)
+        keyParam = params[apiDef[:KEYPAR].to_sym]
+        key = keyParam.val
+        if $cfgData[apiSym].has_key?(key)
+          # ç»é²ã­ã¼ã®éè¤
+          error("E_OBJ: #{apiDef[:KEYPAR]} `#{keyParam}' " \
+								"is duplicated in #{cfgInfo[:APINAME]}",
+								"#{cfgInfo[:_FILE_]}:#{cfgInfo[:_LINE_]}:")
+        end
+      else
+        key = $cfgData[apiSym].count + 1
+      end
+      $cfgData[apiSym][key] = params
+    end
+  end
+
+  #
+  #  IDçªå·åºåãã¡ã¤ã«ã®çæ
+  #
+  def self.OutputId(fileName)
+    idOutputFile = GenFile.new(fileName)
+    @objidValues.each do |objidParamName, objidList|
+      objidList.each do |objName, objidNumber|
+        idOutputFile.add("#{objName} #{objidNumber}")
+      end
+    end
+  end
+end
+
+#
+#  ãã¹2ã®å¦ç
+#
+def Pass2
+  #
+  #  ãã¹1ããå¼ãæ¸¡ãããæ
+å ±ããã¡ã¤ã«ããèª­ã¿è¾¼ã
+  #
+  db = PStore.new(CFG1_OUT_DB)
+  db.transaction(true) do
+    $apiDefinition = db[:apiDefinition]
+    $symbolValueTable = db[:symbolValueTable]
+    $cfgFileInfo = db[:cfgFileInfo]
+    $includeFiles = db[:includeFiles]
+    $domainId = db[:domainId]
+  end
+  $cfg2Data = {}
+
+  #
+  #  ãã¹1ã®çæç©ãèª­ã¿è¾¼ã
+  #
+  Cfg1Out.Read()
+  abort if $errorFlag					# ã¨ã©ã¼çºçæã¯abortãã
+
+  #
+  #  å¤åå¾ã·ã³ãã«ãã°ã­ã¼ãã«å¤æ°ã¨ãã¦å®ç¾©ãã
+  #
+  DefineSymbolValue()
+
+  #
+  #  çæã¹ã¯ãªããï¼trbãã¡ã¤ã«ï¼ãå®è¡ãã
+  #
+  $trbFileNames.each do |trbFileName|
+    if /^(.+):(\w+)$/ =~ trbFileName
+      trbFileName = $1
+      Cfg1Out.ReadPhase($2.to_sym)
+    end
+    IncludeTrb(trbFileName)
+  end
+
+  #
+  #  IDçªå·åºåãã¡ã¤ã«ã®çæ
+  #
+  if !$idOutputFileName.nil?
+    Cfg1Out.OutputId($idOutputFileName)
+  end
+
+  #
+  #  ãã¹3ã«å¼ãæ¸¡ãæ
+å ±ããã¡ã¤ã«ã«çæ
+  #
+  if $omitOutputDb.nil?
+    db = PStore.new(CFG2_OUT_DB)
+    db.transaction do
+      db[:apiDefinition] = $apiDefinition
+      db[:symbolValueTable] = $symbolValueTable
+      db[:cfgFileInfo] = $cfgFileInfo
+      db[:includeFiles] = $includeFiles
+      db[:cfgData] = $cfgData
+      db[:asmLabel] = $asmLabel
+      db[:endianLittle] = $endianLittle
+      db[:cfg2Data] = $cfg2Data
+    end
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/configure.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/configure.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/configure.rb	(revision 313)
@@ -0,0 +1,386 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2001-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: configure.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+# 
+
+require "optparse"
+require "fileutils"
+require "shell"
+
+#  ãªãã·ã§ã³ã®å®ç¾©
+#
+#  -T <target>			ã¿ã¼ã²ããåï¼å¿
+é ï¼
+#  -a <appldirs>		ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªåï¼è¤æ°æå®å¯ï¼ã
+#						ãã©ã«ãã¯sampleãã£ã¬ã¯ããªï¼
+#  -A <applname>		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã åï¼ããã©ã«ãã¯sample1ï¼
+#  -t					ã¡ã¤ã³ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ããªã³ã¯å¯¾è±¡ã«å«ããªã
+#  -c <cfgfile>			ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼.cfgãã¡ã¤
+#						ã«åï¼å
+#  -C <cdlflle>			ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ï¼.cdlãã¡ã¤ã«ï¼å
+#  -U <applobjs>		ä»ã®ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãã¡ã¤ã«
+#						ï¼.oãã¡ã¤ã«åã§æå®ï¼è¤æ°æå®å¯ï¼
+#  -S <syssvcobjs>		ã·ã¹ãã ãµã¼ãã¹ã®ãã­ã°ã©ã ãã¡ã¤ã«
+#						ï¼.oãã¡ã¤ã«åã§æå®ï¼è¤æ°æå®å¯ï¼
+#  -L <kernel_lib>		ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
+#						ï¼çç¥ããå ´åï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeããï¼
+#  -f					ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®æå®
+#  -D <srcdir>			ã«ã¼ãã«ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+#  -l <srclang>			ãã­ã°ã©ãã³ã°è¨èªï¼ç¾æç¹ã§ã¯cã¨c++ã®ã¿ãµãã¼ãï¼
+#  -m <tempmakefile>	Makefileã®ãã³ãã¬ã¼ãã®ãã¡ã¤ã«åã®æå®ï¼ããã©ã«
+#						ãã¯sampleãã£ã¬ã¯ããªã®Makefileï¼
+#  -d <depdir>			ä¾å­é¢ä¿ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªåï¼ããã©ã«ãã¯depsï¼
+#  -w					TECSãä½¿ç¨ããªã
+#  -r					ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ãããã©ãã
+#						ã®æå®
+#  -V <devtooldir>		éçºãã¼ã«ï¼ã³ã³ãã¤ã©ç­ï¼ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+#  -R <ruby>			rubyã®ãã¹åï¼æç¤ºçã«æå®ããå ´åï¼
+#  -g <cfg>				ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹å
+#  -G <tecsgen>			TECSã¸ã§ãã¬ã¼ã¿ï¼tecsgenï¼ã®ãã¹å
+#  -o <options>			ã³ã³ãã¤ã«ãªãã·ã§ã³ï¼COPTSã«è¿½å ï¼
+#  -O <options>			ã·ã³ãã«å®ç¾©ãªãã·ã§ã³ï¼CDEFSã«è¿½å ï¼
+#  -k <options>			ãªã³ã«ãªãã·ã§ã³ï¼LDFLAGSç­ã«è¿½å ï¼
+#  -e <tinetdir>		TINET ã®ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+#  -i <net_if>			ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼TINETãæå¹ã®å ´åã¯å¿
+é ï¼
+#						etherãpppãloop ã®ä½ãããæå®ããã
+#  -v <net_dev>			ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã
+#  						ï¼ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« ether ãæå®ããå ´åã¯å¿
+é ï¼
+#  -n <net_proto>		ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ï¼TINETãæå¹ã®å ´åã¯å¿
+é ï¼
+#						inet6ãinet4ãinet6/inet4ãinet6mãinet6m/inet4 ã®ä½ãããæå®ããã
+#  -s <trans_proto>		ãã©ã³ã¹ãã¼ãå±¤ãã­ãã³ã«ï¼TINETãæå¹ã®å ´åã¯å¿
+é ï¼
+#						tcpãudpãtcp/udp ã®ä½ãããæå®ããã
+
+#  ä½¿ç¨ä¾(1)
+#
+#  % ../configure.rb -T ct11mpcore_gcc -O "-DTOPPERS_USE_QEMU" \
+#					-A perf1 -a ../test -S "test_svc.o histogram.o"
+#
+#  ä½¿ç¨ä¾(2)
+#
+#  % ../configure.rb -T macosx_gcc -L .
+#	ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã¯ï¼sample1ã«ãªãï¼
+#
+#  ä½¿ç¨ä¾(3)
+#
+#  % ../configure.rb -T ct11mpcore_gcc -O "-DTOPPERS_USE_QEMU" -A tSample2 -t
+#	ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã¯ï¼TECSçã®ãµã³ãã«ãã­ã°ã©ã ã«ãªãï¼
+#
+#  ä½¿ç¨ä¾(4)
+#
+#  % ../configure.rb -T ct11mpcore_gcc PRC_NUM=4
+#	PRC_NUMã4ã«å®ç¾©ããï¼
+#
+#  ä½¿ç¨ä¾(5)
+#
+#  % ../configure.rb -T gr_sakura_gcc -A sample1n \
+#					-e tinet -i ether -v if_rx62n -n inet4 -s tcp -U sample1.o
+#	TINETãæå¹ã«ããï¼
+
+#
+#  å¤æ°ã®åæå
+#
+$target = nil
+$appldirs = []
+$applobjs = []
+$syssvcobjs = []
+$kernel_lib = ""
+$kernel_funcobjs = ""
+$srclang = "c"
+$depdir = "deps"
+$omit_tecs = ""
+$enable_trace = ""
+$devtooldir = ""
+$ruby = "ruby"
+$copts = []
+$cdefs = []
+$ldflags = []
+
+#
+#  ãªãã·ã§ã³ã®å¦ç
+#
+OptionParser.new(nil, 22) do |opt|
+  opt.on("-T target",		"taget name (mandatory)") do |val|
+    $target = val
+  end
+  opt.on("-a appldirs",		"application directories") do |val|
+    $appldirs += val.split("\s+")
+  end
+  opt.on("-A applname",		"application program name") do |val|
+    $applname = val
+  end
+  opt.on("-t",				"TECS is used for application development") do |val|
+    $option_t = true
+  end
+  opt.on("-c cfgfile",		"system configuration file") do |val|
+    $cfgfile = val
+  end
+  opt.on("-C cdlfile",		"component description file") do |val|
+    $cdlfile = val
+  end
+  opt.on("-U applobjs",		"additional application object files") do |val|
+    $applobjs += val.split("\s+")
+  end
+  opt.on("-S syssvcobjs",	"system service object files") do |val|
+    $syssvcobjs += val.split("\s+")
+  end
+  opt.on("-L kernel_lib",	"directory of built kernel library") do |val|
+    $kernel_lib = val
+  end
+  opt.on("-f", "each function is complied separately in kernel") do |val|
+    $kernel_funcobjs = true
+  end
+  opt.on("-D srcdir",		"path of source code directory") do |val|
+    $srcdir = val
+  end
+  opt.on("-l srclang",		"programming language (C or C++)") do |val|
+    $srclang = val
+  end
+  opt.on("-m tempmakefile", "template file of Makefile") do |val|
+    $tempmakefile = val
+  end
+  opt.on("-d depdir",		"dependency relation file directory") do |val|
+    $depdir = val
+  end
+  opt.on("-w",				"TECS is not used at all") do |val|
+    $omit_tecs = true
+  end
+  opt.on("-r",				"use the sample code for trace log") do |val|
+    $enable_trace = true
+  end
+  opt.on("-V devtooldir",	"development tools directory") do |val|
+    $devtooldir = val
+  end
+  opt.on("-R ruby",			"path of ruby command") do |val|
+    $ruby = val
+  end
+  opt.on("-g cfg",			"path of configurator") do |val|
+    $cfg = val
+  end
+  opt.on("-G tecsgen",		"path of TECS generator") do |val|
+    $tecsgen = val
+  end
+  opt.on("-o options",		"compiler options") do |val|
+    $copts += val.split("\s+")
+  end
+  opt.on("-O options",		"symbol definition options") do |val|
+    $cdefs += val.split("\s+")
+  end
+  opt.on("-k options",		"linker options") do |val|
+    $ldflags += val.split("\s+")
+  end
+  opt.on("-e options",		"path of TINET directory") do |val|
+    $tinetdir = val
+  end
+  opt.on("-i options",		"network interface (ether or ppp or loop)") do |val|
+    $net_if = val
+  end
+  opt.on("-v options",		"ethernet device driver") do |val|
+    $net_dev = val
+  end
+  opt.on("-n options",		"network layer protocol (inet6 or inet4 or inet6/inet4 or inet6m or inet6m/inet4)") do |val|
+    $net_proto = val
+  end
+  opt.on("-s options",		"transeport layer protocol (tcp or udp or tcp/udp)") do |val|
+    $trans_proto = val
+  end
+  opt.parse!(ARGV)
+end
+
+#
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ãè¿ã
+#
+def GetObjectExtension
+  if /cygwin/ =~ RUBY_PLATFORM
+    return("exe")
+  else
+    return("")
+  end
+end
+
+#
+#  å¤æ°ã®ããã©ã«ãå¤
+#
+if $appldirs.empty?
+  $appldirs.push("\$(SRCDIR)/sample")
+end
+$applname ||= "sample1"
+if $option_t.nil?
+  $applobjs.unshift($applname + ".o")
+end
+$cfgfile ||= $applname + ".cfg"
+$cdlfile ||= $applname + ".cdl"
+if $srcdir.nil?
+  # ã½ã¼ã¹ãã£ã¬ã¯ããªåãåãåºã
+  if /(.*)\/configure/ =~ $0
+    $srcdir = $1
+  else
+    $srcdir = Shell.new.cwd
+  end
+end
+if /^\// =~ $srcdir
+  $srcabsdir = $srcdir
+else
+  $srcabsdir = Shell.new.cwd + "/" + $srcdir
+end
+$tempmakefile ||= $srcdir + "/sample/Makefile"
+$cfg ||= $ruby + " \$(SRCDIR)/cfg/cfg.rb"
+$tecsgen ||= $ruby + " \$(SRCDIR)/tecsgen/tecsgen.rb"
+
+#
+#  -Tãªãã·ã§ã³ã¨ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®ç¢ºèª
+#
+if $target.nil?
+  puts("configure.rb: -T option is mandatory")
+elsif !File.directory?($srcdir + "/target/" + $target)
+  puts("configure.rb: #{$srcdir}/target/#{$target} not exist.")
+  $target = nil
+end
+
+if $target.nil?
+  puts("Installed targets are:")
+  Dir.glob($srcdir + "/target/[a-zA-Z0-9]*").each do |target|
+    target.sub!($srcdir + "/target/", "")
+    puts("\t" + target)
+  end
+  abort
+end
+
+#
+#  å¤æ°ãã¼ãã«ã®ä½æ
+#
+$vartable = Hash.new("")
+$vartable["TARGET"] = $target
+$vartable["APPLDIRS"] = $appldirs.join(" ")
+$vartable["APPLNAME"] = $applname
+$vartable["CFGFILE"] = $cfgfile
+$vartable["CDLFILE"] = $cdlfile
+$vartable["APPLOBJS"] = $applobjs.join(" ")
+$vartable["SYSSVCOBJS"] = $syssvcobjs.join(" ")
+$vartable["KERNEL_LIB"] = $kernel_lib
+$vartable["KERNEL_FUNCOBJS"] = $kernel_funcobjs
+$vartable["SRCDIR"] = $srcdir
+$vartable["SRCABSDIR"] = $srcabsdir
+$vartable["SRCLANG"] = $srclang
+$vartable["DEPDIR"] = $depdir
+$vartable["OMIT_TECS"] = $omit_tecs
+$vartable["ENABLE_TRACE"] = $enable_trace
+$vartable["DEVTOOLDIR"] = $devtooldir
+$vartable["RUBY"] = $ruby
+$vartable["CFG"] = $cfg
+$vartable["TECSGEN"] = $tecsgen
+$vartable["COPTS"] = $copts.join(" ")
+$vartable["CDEFS"] = $cdefs.join(" ")
+$vartable["LDFLAGS"] = $ldflags.join(" ")
+$vartable["OBJEXT"] = GetObjectExtension()
+$vartable["TINETDIR"] = $tinetdir
+$vartable["NET_IF"] = $net_if
+$vartable["NET_DEV"] = $net_dev
+$vartable["SUPPORT_INET6"] = ($net_proto == "inet6") || ($net_proto == "inet6/inet4") || ($net_proto == "inet6m") || ($net_proto == "inet6m/inet4")
+$vartable["SUPPORT_INET4"] = ($net_proto == "inet4") || ($net_proto == "inet6/inet4") || ($net_proto == "inet6m/inet4")
+$vartable["SUPPORT_TCP"] = ($trans_proto == "tcp") || ($net_proto == "tcp/udp")
+$vartable["SUPPORT_UDP"] = ($trans_proto == "udp") || ($net_proto == "tcp/udp")
+$vartable["API_CFG_IP4MAPPED_ADDR"] = ($net_proto == "inet6m") || ($net_proto == "inet6m/inet4")
+
+ARGV.each do |arg|
+  if /^([A-Za-z0-9_]+)\s*\=\s*(.*)$/ =~ arg
+    $vartable[$1] = $2
+  else
+    $vartable[arg] = true
+  end
+end
+
+#
+#  ãã¡ã¤ã«ãå¤æãã
+#
+def convert(inFileName, outFileName)
+  puts("Generating #{outFileName} from #{inFileName}.\n")
+  if (File.file?(outFileName))
+    puts("#{outFileName} exists.  Save as #{outFileName}.bak.\n")
+    FileUtils.move(outFileName, outFileName + ".bak")
+  end
+
+  begin
+    inFile = File.open(inFileName)
+    outFile = File.open(outFileName, "w")
+  rescue Errno::ENOENT, Errno::EACCES => ex
+    abort(ex.message)
+  end
+
+  inFile.each do |line|
+    line.chomp!
+    while line.sub!(/\@\(([A-Za-z0-9_]+)\)/) {|var| $vartable[$1]} do end
+    outFile.print(line,"\n")
+  end
+
+  inFile.close
+  outFile.close
+end
+
+#
+#  Makefileã®çæ
+#
+convert($tempmakefile, "Makefile")
+
+#
+#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®ä½æ
+#
+if !File.directory?($depdir)
+  Dir.mkdir($depdir)
+end
Index: rubycfg_asp/trunk/asp_dcre/doc/asp_spec.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/asp_spec.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/asp_spec.txt	(revision 313)
@@ -0,0 +1,576 @@
+
+		TOPPERS/ASPã«ã¼ãã«ã®ä»æ§æ¦è¦
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9
+		æçµæ´æ°: 2017å¹´1æ29æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ã®ä»æ§æ¦è¦ã«ã¤ãã¦èª¬æãããã®ã§
+ããï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã«å¯¾ããæ¡å¼µããã³å¤æ´ç®
+æãä¸­å¿ã«èª¬æããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âåæã¨ãªãææ¸
+
+[1] ãã­ã³åä¼: Î¼ITRON4.0ä»æ§, Ver.4.02.00, 2004å¹´.
+
+[2] ãã­ã³åä¼: Î¼ITRON4.0ä»æ§ ä¿è­·æ©è½æ¡å¼µï¼Î¼ITRON4.0/PXä»æ§ï¼,
+	Ver.1.00.00, 2002å¹´.
+
+[3] TOPPERSãã­ã¸ã§ã¯ã: TOPPERS/JSPã«ã¼ãã« ã¦ã¼ã¶ãºããã¥ã¢ã«
+	Release 1.4.3å¯¾å¿, æçµæ´æ°: 2007å¹´4æ23æ¥.
+
+âä»æ§ã®æ¦ç¥
+
+TOPPERS/ASPã«ã¼ãã«ã®ä»æ§ã¯ï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã
+ãã¼ã¹ã«ï¼æ¬¡ã®ãããªæ¡å¼µã»æ¹è¯ãå ãããã®ã§ããï¼
+
+ã»å²è¾¼ã¿å¦çæ©è½ã«ã¤ãã¦ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã«æºæ ãããï¼
+ã»Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«å¤ã®æ©è½ã®ä¸é¨ãå°å
+¥ããï¼
+ã»ä¸é¨ã®ä»æ§ã«ã¤ãã¦ï¼Î¼ITRON4.0ä»æ§ã«å¯¾ãã¦å¤æ´ãå ããï¼
+ã»JSPã«ã¼ãã«ã«ãããç¬èªã®æ¡å¼µæ©è½ãä¸é¨å¤æ´ãã¦å®è£
+ããï¼
+ã»ASPã«ã¼ãã«ã«ãããç¬èªã®æ¡å¼µæ©è½ãæ°ãã«å®è£
+ããï¼
+ã»ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³å¦çãå
+¨é¢çã«è¦ç´ãï¼
+ã»æ¡å¼µæ©è½ãå®è£
+ããããã®æ¡å¼µããã±ã¼ã¸ããµãã¼ãããï¼
+ã»TOPPERSçµè¾¼ã¿ã³ã³ãã¼ãã³ãã·ã¹ãã ï¼TECSï¼ãå°å
+¥ããï¼
+
+ãã®ããASPã«ã¼ãã«ã¯ï¼Î¼ITRON4.0ä»æ§ã«å®å
+¨ã«æºæ ãã¦ããããã§ã¯ãªãï¼
+JSPã«ã¼ãã«ã®ä¸ä½äºæã«ããªã£ã¦ããªãï¼
+
+Î¼ITRON4.0ä»æ§ã§ã¯ï¼å®è£
+ç¬èªã«ç¨æããéçAPIããã³ãµã¼ãã¹ã³ã¼ã«ã®åç§°
+ã«ã¯ï¼å
+é ­ã«ãããã"V"ããã³"v"ã®æå­ãä»å ãããã®ã¨ãã¦ãããï¼ASPã«ã¼
+ãã«ã§ã¯ãã®è¦å®ã¯æ¡ç¨ããªãï¼
+
+ä»¥ä¸ã§ã¯ï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã«å¯¾ããæ¡å¼µããã³å¤
+æ´ç®æã«ã¤ãã¦èª¬æããï¼
+
+âã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«å¤ã®æ©è½ã®ä¸é¨å°å
+¥
+
+Î¼ITRON4.0ä»æ§ã«ã¯è¦å®ããã¦ãããï¼ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã«å«ã¾ããª
+ãï¼ã¾ãã¯ï¼å«ã¾ããã¨ã¯éããªãï¼æ©è½ã¨ãã¦ï¼æ¬¡ã®æ©è½ãå®è£
+ããï¼
+
+(1) ã¤ãã³ããã©ã°ã®è¤æ°ã¿ã¹ã¯å¾
+ã¡
+
+ã¤ãã³ããã©ã°ã«å¯¾ããè¤æ°ã¿ã¹ã¯å¾
+ã¡ã®æ©è½ï¼TA_WMULå±æ§ã®ã¤ãã³ããã©ã°ï¼
+ãå®è£
+ããï¼
+
+ããã«ããï¼ã¤ãã³ããã©ã°ã®ã»ããï¼set_flgï¼iset_flgï¼ã§è¤æ°ã®ã¿ã¹ã¯ã
+èµ·åºãããå¯è½æ§ãçããï¼å¤ãã®ã¿ã¹ã¯ãåæã«å¾
+ã¡è§£é¤ããå ´åï¼ã«ã¼ã
+ã«å
+ã§ã®å²è¾¼ã¿ç¦æ­¢æéãé·ããªãããï¼ä½¿ç¨ã«ããã£ã¦ã¯æ³¨æãå¿
+è¦ã§ããï¼
+
+(2) ã¢ã©ã¼ã ãã³ãã©
+
+ã¢ã©ã¼ã ãã³ãã©ã®æ©è½ãå®è£
+ããï¼ã¢ã©ã¼ã ãã³ãã©æ©è½ã®ããã«å®è£
+ãã
+éçAPIããã³ãµã¼ãã¹ã³ã¼ã«ã¯æ¬¡ã®éãã§ããï¼
+
+	CRE_ALM		ã¢ã©ã¼ã ãã³ãã©ã®çæï¼éçAPIï¼
+	sta_alm		ã¢ã©ã¼ã ãã³ãã©ã®åä½éå§
+	ista_alm	ã¢ã©ã¼ã ãã³ãã©ã®åä½éå§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+	stp_alm		ã¢ã©ã¼ã ãã³ãã©ã®åä½åæ­¢
+	istp_alm	ã¢ã©ã¼ã ãã³ãã©ã®åä½åæ­¢ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+
+(3) å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³
+
+ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã¨å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®
+ããããããµãã¼ãããã°ãããã¨ã«ãªã£ã¦ããï¼JSPã«ã¼ãã«ã§ã¯å²è¾¼ã¿ãã³
+ãã©ã®ã¿ãå®è£
+ãã¦ãããï¼ASPã«ã¼ãã«ã§ã¯ãã®ä¸¡è
+ãå®è£
+ããï¼
+
+å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®ä»æ§ã«ã¤ãã¦ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®è¦
+å®ã«æºæ ããï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãè¿½å ãããµã¼ãã¹ã³ã¼ã«ã¨ãã¦ï¼æ¬¡
+ã®éçAPIãå®è£
+ããï¼ãã®éçAPIã®ä»æ§ã«ã¤ãã¦ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦ç
+ã¢ãã«ã«ããã¦ï¼Î¼ITRON4.0ä»æ§ã«å¯¾ãã¦æ¡å¼µãå ãã¦ããï¼
+
+	ATT_ISR		å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®è¿½å ï¼éçAPIï¼
+
+(4) å²è¾¼ã¿ç®¡çæ©è½
+
+ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã«å«ã¾ããªãå²è¾¼ã¿ç®¡çæ©è½ã¨ãã¦ï¼æ¬¡ã®ãµã¼ãã¹
+ã³ã¼ã«ãå®è£
+ããï¼JSPã«ã¼ãã«ã§ã¯ï¼ãããã®ãµã¼ãã¹ã³ã¼ã«ãå®è£
+ãããã©
+ããã¯ã¿ã¼ã²ããä¾å­ã¨ãªã£ã¦ãããï¼ASPã«ã¼ãã«ã§ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿
+å¦çã¢ãã«ã®è¦å®ã«æºæ ãã¦ï¼ã¿ã¼ã²ããéä¾å­ã«å®è£
+ããï¼
+
+	dis_int		å²è¾¼ã¿ã®ç¦æ­¢
+	ena_int		å²è¾¼ã¿ã®è¨±å¯
+	chg_ipm		å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´
+	get_ipm		å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®åç
+§
+
+(5) ãªãã¸ã§ã¯ãã®ç¶æ
+åç
+§æ©è½
+
+ä¸»ã«ãããã°æåãã®æ©è½ã¨ãã¦ï¼ãªãã¸ã§ã¯ãã®ç¶æ
+åç
+§æ©è½ãå®è£
+ããï¼
+å
+·ä½çã«ã¯ï¼æ¬¡ã®ãµã¼ãã¹ã³ã¼ã«ãå®è£
+ããï¼
+
+	ref_tsk		ã¿ã¹ã¯ã®ç¶æ
+åç
+§
+	ref_tex		ã¿ã¹ã¯ä¾å¤å¦çã®ç¶æ
+åç
+§
+	ref_sem		ã»ããã©ã®ç¶æ
+åç
+§
+	ref_flg		ã¤ãã³ããã©ã°ã®ç¶æ
+åç
+§
+	ref_dtq		ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
+åç
+§
+	ref_mbx		ã¡ã¼ã«ããã¯ã¹ã®ç¶æ
+åç
+§
+	ref_mpf		åºå®é·ã¡ã¢ãªãã¼ã«ã®ç¶æ
+åç
+§
+	ref_cyc		å¨æãã³ãã©ã®ç¶æ
+åç
+§
+	ref_alm		ã¢ã©ã¼ã ãã³ãã©ã®ç¶æ
+åç
+§
+
+âÎ¼ITRON4.0ä»æ§ã«å¯¾ããå¤æ´
+
+(1) ITRONæ¨æºãã¼ã¿åã®è¦ç´ã
+
+ãµã¤ãºã®æ±ºã¾ã£ãæ´æ°åï¼Bï¼H, Wãªã©ï¼ãªã©ã«ã¤ãã¦ï¼C99ã«æºæ ããåã®å
+ç§°ï¼int8_tï¼int16_tï¼int32_tãªã©ï¼ãããã¨ç¸æ§ãè¯ãåç§°ã«å¤æ´ããï¼
+ITRONæ¨æºãã¼ã¿åï¼Bï¼H, Wãªã©ï¼ãå¿
+è¦ã¨ããã¢ããªã±ã¼ã·ã§ã³ã®ããã«ï¼
+itron.hãç¨æããï¼
+
+(2) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ext_tsk
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãããext_tskãå¼ã°ããå ´åï¼E_CTXã¨ã©ã¼ãè¿ããã®ã¨
+ããï¼ããã«ã¨ããªã£ã¦ï¼ext_tskããªã¿ã¼ã³ããå¯è½æ§ããããã®ã¨ãï¼è¿ã
+å¤ã®åãERã¨ããï¼
+
+(3) CPUä¾å¤ãã³ãã©ã§è¡ããæä½
+
+CPUä¾å¤ãã³ãã©ã§è¡ããæä½ã«ã¤ãã¦ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã«æº
+æ ãããã¨ã¨ãï¼JSPã«ã¼ãã«ã®ä»æ§ãè¸è¥²ããï¼Î¼ITRON4.0ä»æ§ã«ãå¾ããªãï¼
+ãã®ããã®ãµã¼ãã¹ã³ã¼ã«ã¨ãã¦ï¼æ¬¡ã®ãµã¼ãã¹ã³ã¼ã«ãå®è£
+ããï¼
+
+	xsns_dpn	CPUä¾å¤çºçæã®ãã£ã¹ãããä¿çç¶æ
+ã®åç
+§
+	xsns_xpn	CPUä¾å¤çºçæã®ã¿ã¹ã¯ä¾å¤å¦çä¿çç¶æ
+ã®åç
+§
+
+(4) ã«ã¼ãã«ã®ç¨ããç®¡çé åã®åé¢
+
+Î¼ITRON4.0/PXä»æ§ã«ããã¦å°å
+¥ãããÎ¼ITRON4.0ä»æ§ã«å¯¾ããå¤æ´ã¨ãã¦ï¼ã«ã¼
+ãã«ã®ç¨ããç®¡çé åã®åé¢ã«é¢ããä»æ§ãä¸é¨æ¡ç¨ããï¼
+
+ã¾ãï¼åºå®é·ã¡ã¢ãªãã¼ã«ã®å®è£
+ã«ããã¦ï¼ã«ã¼ãã«ã®ç¨ããç®¡çé åãåé¢
+ãããã¨ã«ä¼´ãï¼åºå®é·ã¡ã¢ãªãã¼ã«ãçæããéçAPIï¼CRE_MPFï¼ã®ãã©ã¡ã¼
+ã¿ã«ï¼åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å
+é ­çªå°ï¼mpfmbï¼ãè¿½å ããï¼
+
+ã¾ãï¼ããã«ãããã¦ï¼ãã¼ã¿ã­ã¥ã¼ãçæããéçAPIï¼CRE_DTQï¼ã®æå¾ã®
+ãã©ã¡ã¼ã¿ã®åç§°ãï¼ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
+é ­çªå°ï¼dtqmbï¼ã«å¤æ´ããï¼
+
+ãªãï¼ã¡ã¼ã«ããã¯ã¹ã¯ï¼Î¼ITRON4.0ä»æ§ã¨ã®äºææ§ã®ããã«æ®ãã¦ããæ©è½
+ã¨ä½ç½®ä»ãï¼ã«ã¼ãã«ã®ç¨ããç®¡çé åã®åé¢ã¯è¡ããªãï¼ãã®ããï¼ã¡ã¼ã«
+ããã¯ã¹ãçæããéçAPIï¼CRE_MBXï¼ã«å¯¾ããå¤æ´ã¯ãªãï¼
+
+(5) å¦çåä½ã¨ã¡ã¢ãªé åã®ãã¼ã¿åã®è¦ç´ã
+
+å¦çåä½ã®ã¨ã³ããªçªå°ã®ãã¼ã¿åãï¼ãã©ã¡ã¼ã¿ãåæ ãããªãFPåã§ã¯ãª
+ãï¼å¦çåä½æ¯ã®å°ç¨ã®ãã¼ã¿åã¨ããï¼ä¾ãã°ï¼ã¿ã¹ã¯ã®ã¨ã³ããªçªå°ã®ãã¼
+ã¿åãTASKåï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®ãã¼ã¿åãTEXRTNåã¨ããï¼
+
+ã¾ãï¼ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã®ãã¼ã¿åãï¼ããããSTK_Tå
+ã¨MPF_Tåã¨ããï¼
+
+(6) å¤ã0ã®å®æ°ï¼ãªãã¸ã§ã¯ãå±æ§ç­ï¼ã®è¦ç´ã
+
+ã³ã¼ãã£ã³ã°ãã¹ãé²ãããã«ï¼å¤ã0ã®å®æ°ã®æ±ããè¦ç´ãï¼ãªãã¸ã§ã¯ãå±
+æ§ï¼TA_TFIFOç­ï¼ã«ã¤ãã¦ã¯ï¼å¤ã0ã®ãã®ã¯ããã©ã«ãæ±ããã¦å»æ­¢ãï¼å®ç¾©
+ãitron.hã«ç§»ãï¼å¤ã0ã®ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ãï¼TWF_ANDWï¼ããªãã¸ã§
+ã¯ãã®ç¶æ
+ï¼TTEX_ENAç­ï¼ã«ã¤ãã¦ã¯ï¼å¤ãå¤æ´ããï¼
+
+(7) å¼·å¶å¾
+ã¡è¦æ±ãã¹ãã®å»æ­¢
+
+å¼·å¶å¾
+ã¡è¦æ±ããã¹ãããæ©è½ãå»æ­¢ããï¼è¨ãæããã¨ï¼å¼·å¶å¾
+ã¡è¦æ±ãã¹
+ãæ°ã®æå¤§å¤ã1ã«åºå®ããï¼ããã«ä¼´ãï¼frsm_tskã¯å»æ­¢ãï¼itron.hã«ãã
+ã¦frsm_tskãrsm_tskã«ãã¯ã­å®ç¾©ããï¼ã¾ãï¼TMAX_SUSCNTã®å®ç¾©ãitron.hã«
+ç§»ãï¼
+
+(8) ã·ã¹ãã æå»ã®è¨­å®æ©è½ã®å»æ­¢
+
+set_timï¼ã·ã¹ãã æå»ã®è¨­å®ï¼ãå»æ­¢ããï¼
+
+(9) å¨æãã³ãã©ã®ä»æ§å¤æ´
+
+sta_cycãå¼ã³åºããå¾ï¼æåã«å¨æãã³ãã©ãèµ·åãããæå»ãå¤æ´ããï¼
+Î¼ITRON4.0ä»æ§ã§ã¯ï¼sta_cycãå¼ã³åºãã¦ããå¨æãã³ãã©ã®èµ·åå¨æã§æå®
+ããç¸å¯¾æéå¾ã¨ãã¦ãããï¼ASPã«ã¼ãã«ã§ã¯ï¼èµ·åä½ç¸ã§æå®ããç¸å¯¾æé
+å¾ã¨ããï¼
+
+(10) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§æ¡ä»¶ã®å¤æ´
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãªãå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®
+è¡ãéå§ãããªãã¨ããä»æ§ã«å¤æ´ããï¼
+
+âJSPã«ã¼ãã«ã«ãããç¬èªã®æ¡å¼µæ©è½
+
+JSPã«ã¼ãã«ã«ãããç¬èªã®æ¡å¼µæ©è½ã®ä¸­ã§ï¼ä»¥ä¸ã®æ©è½ãå®è£
+ããï¼
+
+(1) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½
+
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½ã¨ã¯ï¼ASPã«ã¼ãã«ä¸ã§åä½ããã¿ã¹ã¯ãASP
+ã«ã¼ãã«èªèº«ã®æ§è½ãè¨æ¸¬ããããã®ï¼ã·ã¹ãã æå»ãÎ¼ç§åä½ã§èª­ã¿åºãæ©
+è½ã§ããï¼ãã®æ©è½ã®ããã®ãµã¼ãã¹ã³ã¼ã«ã¯æ¬¡ã®éãã§ããï¼JSPã«ã¼ãã«ã¨
+ã¯åç§°ãå¤æ´ããï¼ï¼
+
+	get_utm		æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§
+
+JSPã«ã¼ãã«ããã®ä»æ§å¤æ´ã¨ãã¦ï¼get_utmã¯ä»»æã®ã³ã³ãã­ã¹ãããå¼ã³åº
+ããã¨ãã§ãããã®ããï¼ã¾ãï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åï¼SYSUTMï¼ãï¼
+ã¿ã¼ã²ããéä¾å­é¨ã§ulong_tã«å®ç¾©ããï¼
+
+(2) çµäºå¦çã«ã¼ãã³æ©è½
+
+ASPã«ã¼ãã«ã§ã¯ï¼ã·ã¹ãã ã®çµäºæã«å¼ã³åºãããçµäºå¦çã«ã¼ãã³ãç»é²ã
+ãããã®æ©è½ããµãã¼ãããï¼ãã®æ©è½ã®ããã®éçAPIã¯æ¬¡ã®éãã§ããï¼
+
+	ATT_TER		çµäºå¦çã«ã¼ãã³ã®è¿½å ï¼éçAPIï¼
+
+(3) ã«ã¼ãã«åä½ç¶æ
+ã®åç
+§
+
+ã«ã¼ãã«ä¸ã§åä½ããã¿ã¹ã¯ããå¼ã³åºãããé¢æ°ãï¼ã«ã¼ãã«ã®åæåå®äº
+åãçµäºå¦çéå§å¾ã«ãå¼ã³åºãããå¯è½æ§ãããå ´åã«ã¯ï¼ãã®ä¸­ã§ã«ã¼ã
+ã«ã®ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããããå¤å¥ãããã¨ãå¿
+è¦ã¨ãªãï¼ãã®æ©è½ã®
+ããã®ãµã¼ãã¹ã³ã¼ã«ã¯æ¬¡ã®éãã§ããï¼JSPã«ã¼ãã«ã¨ã¯åç§°ãå¤æ´ããï¼ï¼
+
+	sns_ker		ã«ã¼ãã«éåä½ç¶æ
+ã®åç
+§
+
+âASPã«ã¼ãã«ã«ãããç¬èªã®æ¡å¼µæ©è½
+
+(1) å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+
+å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ãè¨­å®ããæ©è½ã¨ãã¦ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«
+ã§è¦å®ãããæ¬¡ã®éçAPIãå®è£
+ããï¼
+
+	CFG_INT		å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®ï¼éçAPIï¼
+
+(2) åæã»éä¿¡ãªãã¸ã§ã¯ãã®ååæåæ©è½
+
+åæã»éä¿¡ãªãã¸ã§ã¯ããåæç¶æ
+ã«æ»ãããã®æ©è½ã¨ãã¦ï¼æ¬¡ã®ãµã¼ãã¹ã³ã¼
+ã«ãå®è£
+ããï¼
+
+	ini_sem		ã»ããã©ã®ååæå
+	ini_flg		ã¤ãã³ããã©ã°ã®ååæå
+	ini_dtq		ãã¼ã¿ã­ã¥ã¼ã®ååæå
+	ini_mbx		ã¡ã¼ã«ããã¯ã¹ã®ååæå
+	ini_mpf		åºå®é·ã¡ã¢ãªãã¼ã«ã®ååæå
+
+åæã»éä¿¡ãªãã¸ã§ã¯ãã®ååæåã®éã«ï¼ãã®åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾
+ãã¦å¾
+ã¡ç¶æ
+ã¨ãªã£ã¦ããã¿ã¹ã¯ã¯ãã¹ã¦å¾
+ã¡è§£é¤ãããï¼å¾
+ã¡è§£é¤ãããã¿
+ã¹ã¯ã«å¯¾ãã¦ã¯ï¼E_DLTãè¿ãï¼E_DLTã¯ï¼ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã§ã¯ä½¿ç¨
+ãã¦ããªãã¨ã©ã¼ã³ã¼ãã§ããï¼
+
+ãã®ããï¼ãããã®ãµã¼ãã¹ã³ã¼ã«ã«ããï¼è¤æ°ã®ã¿ã¹ã¯ãèµ·åºãããå¯è½æ§
+ãçããï¼å¤ãã®ã¿ã¹ã¯ãåæã«å¾
+ã¡è§£é¤ããå ´åï¼ã«ã¼ãã«å
+ã§ã®å²è¾¼ã¿ç¦
+æ­¢æéãé·ããªãããï¼ä½¿ç¨ã«ããã£ã¦ã¯æ³¨æãå¿
+è¦ã§ããï¼
+
+åæã»éä¿¡ãªãã¸ã§ã¯ããååæåããéã«ï¼ã¢ããªã±ã¼ã·ã§ã³å´ã¨ã®æ´åæ§
+ãä¿ã¤ã®ã¯ã¢ããªã±ã¼ã·ã§ã³ã®è²¬ä»»ã§ããï¼å
+·ä½çã«ã¯ï¼åºå®é·ã¡ã¢ãªãã¼ã«
+ãååæåããéã«ã¯ï¼ããããç²å¾æ¸ã¿ã®ã¡ã¢ãªãã­ãã¯ãããä»¥éä½¿ããª
+ãããã«ããªããã°ãªããªãï¼ã¾ãï¼ã¡ã¼ã«ããã¯ã¹ãååæåããéã«ã¯ï¼
+ã¡ã¼ã«ããã¯ã¹ã«éä¿¡ãããã¡ãã»ã¼ã¸é åãååããªããã°ãªããªãï¼
+
+(3) åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®æ°è¨­
+
+åªå
+åº¦ä»ãã®ãã¼ã¿ã­ã¥ã¼ã®æ©è½ãæ°è¨­ããï¼åªå
+åº¦ä»ããã¼ã¿ã­ã¥ã¼æ©è½ã®
+ããã«å®è£
+ããéçAPIããã³ãµã¼ãã¹ã³ã¼ã«ã¯æ¬¡ã®éãã§ããï¼
+
+	CRE_PDQ		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®çæ
+	snd_pdq		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+	psnd_pdq	åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+	ipsnd_pdq	åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼
+	tsnd_pdq	åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+	rcv_pdq		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+	prcv_pdq	åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+	trcv_pdq	åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+	ini_pdq		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®ååæå
+	ref_pdq		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
+åç
+§
+
+ããã§ï¼åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«èç©ããããã¼ã¿ã®æ°ãå¤ãå ´åï¼åªå
+åº¦ãã¼
+ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿ã®éä¿¡ãè¡ããµã¼ãã¹ã³ã¼ã«ï¼snd_pdqï¼psnd_pdqï¼
+ipsnd_pdqï¼tsnd_pdqï¼ã®å¦çæéãé·ããªãï¼ã«ã¼ãã«å
+ã§ã®å²è¾¼ã¿ç¦æ­¢æé
+ãé·ããªãããï¼ä½¿ç¨ã«ããã£ã¦ã¯æ³¨æãå¿
+è¦ã§ããï¼
+
+(4) èªã¿ã¹ã¯ã®æ¡å¼µæ
+å ±ã®åç
+§
+
+èªã¿ã¹ã¯ã®æ¡å¼µæ
+å ±ãåç
+§ããããã®ãµã¼ãã¹ã³ã¼ã«ãæ°è¨­ããï¼ã©ã¤ãã©ãª
+ç­ã®ä¸­ã§ç¨ãããã¨ãæ³å®ãã¦ããï¼
+
+	get_inf		èªã¿ã¹ã¯ã®æ¡å¼µæ
+å ±ã®åç
+§
+
+(5) ã«ã¼ãã«ã®çµäº
+
+è´å½çãªã¨ã©ã¼ãèµ·ãã£ãå ´åãªã©ã«ã«ã¼ãã«ãçµäºãããããã®ãµã¼ãã¹ã³ã¼
+ã«ãæ°è¨­ããï¼ãã®æ©è½ã¯ï¼Î¼ITRON4.0ä»æ§ã®æ©è½åé¡ã§ã¯ï¼ã·ã¹ãã æ§æç®¡
+çæ©è½ã«åé¡ããï¼JSPã«ã¼ãã«ã§ã¯ï¼kernel_exitã¨ããåç§°ã§ï¼å®è³ªçã«ã
+ã®æ©è½ãç¨æãã¦ããï¼ï¼
+
+	ext_ker		ã«ã¼ãã«ã®çµäº
+
+ASPã«ã¼ãã«ã§ã¯ï¼ãã®ãµã¼ãã¹ã³ã¼ã«ãããªã¿ã¼ã³ãããã¨ã¯ãªããï¼ä¿è­·æ©
+è½ãæã£ãã«ã¼ãã«ã§ã¯ã¨ã©ã¼ãªã¿ã¼ã³ããå¯è½æ§ãããããï¼è¿ãå¤ã®åã
+ERã¨ããï¼
+
+ããã«ä¼´ã£ã¦ï¼JSPã«ã¼ãã«ã®kernel_startãï¼sta_kerã«åç§°å¤æ´ããï¼ãã 
+ãï¼sta_kerã¯ãµã¼ãã¹ã³ã¼ã«ã¨ã¯è¦ãªããªããã¨ã«ããï¼
+
+(6) éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®è¨­å®
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ã¨ãµã¤ãºãæå®ããããã®
+éçAPIãæ°è¨­ããï¼ã¾ãï¼ãã®éçAPIã«ããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹
+ã¿ãã¯é åã®ãµã¤ãºã®ã¿ãæå®ãããã¨ãã§ããï¼
+
+	DEF_ICS		éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å®ç¾©
+
+âJSPã«ã¼ãã«ã«ãããå®è£
+å®ç¾©ï¼å®è£
+ä¾å­è¦å®ããã®å¤æ´
+
+Î¼ITRON4.0ä»æ§ã§å®è£
+å®ç¾©ã¾ãã¯å®è£
+ä¾å­ã¨ããã¦ããä»æ§ã®ä¸­ã§ï¼ä»¥ä¸ã®ã
+ã®ã«ã¤ãã¦JSPã«ã¼ãã«ããå¤æ´ããï¼
+
+(1) ã¢ããªã±ã¼ã·ã§ã³åãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æ§æã®æ´ç
+
+ã«ã¼ãã«ãå¼ã³åºãã¢ããªã±ã¼ã·ã§ã³ããã¯kernel.hãï¼SILãå¼ã³åºãã¢ããª
+ã±ã¼ã·ã§ã³ããã¯sil.hãã¤ã³ã¯ã«ã¼ãããã°ãããã®ã¨ãï¼t_services.hã¨
+s_services.hã¯å»æ­¢ããï¼
+
+ã¾ãï¼kernel.hã¨sil.hã®å
+±éé¨åã¨ãã¦t_stddef.hãç¨æãï¼ã«ã¼ãã«ã¨SIL
+ã®ããããå¼ã³åºããªãã¢ããªã±ã¼ã·ã§ã³ããã¯ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ã
+ããã°ãããã®ã¨ããï¼itron.hã¯ï¼Î¼ITRON4.0ä»æ§ã¨ã®äºææ§ãå¿
+è¦ãªå ´åã«
+ã¤ã³ã¯ã«ã¼ããããã®ã¨ããï¼
+
+(2) å²è¾¼ã¿å¦çï¼ä¾å¤å¦çé¢é£ã®åã®å®ç¾©ã®å¤æ´
+
+å²è¾¼ã¿ãã³ãã©çªå·ã®åï¼INHNOï¼ï¼å²è¾¼ã¿çªå·ã®åï¼INTNOï¼ï¼CPUä¾å¤ãã³ã
+ã©çªå·ã®åï¼EXCNOï¼ãï¼ã¿ã¼ã²ããéä¾å­é¨ã§ï¼ããããuint_tåã«å®ç¾©ããï¼
+
+(3) å¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
+ã®è¦å®
+
+å¦çåä½ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
+ã«ã¤ãã¦ï¼Î¼ITRON4.0ä»æ§ã«
+ããã¦å®è£
+ä¾å­ã§ãã£ãç¹ãå³å¯ã«è¦å®ãï¼ã¿ã¼ã²ããã«ããéããçããªã
+ããã«ããï¼
+
+(4) isig_timã®æ±ãã®å¤æ´
+
+ã·ã¹ãã æå»ãæ´æ°ããæ©æ§ãã«ã¼ãã«å
+é¨ã«æã¤æ±ãã¨ãï¼ãµã¼ãã¹ã³ã¼ã«
+ã¨ãã¦ã®isig_timã¯å»æ­¢ããï¼
+
+(5) ã«ã¼ãã«ã®ç¨ããé åã®æå®æ¹æ³
+
+JSPã«ã¼ãã«ã§ã¯ï¼ã«ã¼ãã«ã®ç¨ããé åã¯ãã¹ã¦èªåå²ä»ãã§ãã£ããï¼ASP
+ã«ã¼ãã«ã§ã¯ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«ã®åºå®é·ã¡ã¢ãªãã¼
+ã«é åã«ã¤ãã¦ã¯ï¼éçAPIã§å
+é ­çªå°ãæå®ãããã¨ãã§ãããã®ã¨ããï¼èª
+åå²ä»ãããµãã¼ãããï¼ï¼
+
+(6) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®æ±ãã®è¦å®
+
+JSPã«ã¼ãã«ã§ã¯ã¿ã¼ã²ããæ¯ã«å®ãã¦ããã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®æ±ããï¼
+ASPã«ã¼ãã«ã§ã¯ï¼TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ã®è¦å®ã«æºæ ãã¦ï¼å¯è½ãªç¯
+å²ã§æ¨æºåããï¼ãã ãï¼NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãè¨­ããããï¼ã©
+ã®å²è¾¼ã¿åªå
+åº¦ããé«ããã®ãã«ã¼ãã«ç®¡çå¤ã¨ãããã¯ï¼ã¿ã¼ã²ããæ¯ã«å®
+ããï¼
+
+âã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³å¦çã®è¦ç´ã
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³å¦çãå
+¨é¢çã«è¦ç´ãï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥
+ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«ãããCè¨èªã®ããªãã­ã»ããµãã£ã¬ã¯ãã£ãã®æ±ãã¨
+éçAPIã®ãã©ã¡ã¼ã¿ã®åé¡ãå¤æ´ããï¼
+
+âæ¡å¼µããã±ã¼ã¸ã®ãµãã¼ã
+
+ASPã«ã¼ãã«ã§ã¯ï¼ããã¤ãã®æ¡å¼µæ©è½ãå®è£
+ããããã«ï¼æ¬¡ã®æ¡å¼µããã±ã¼ã¸
+ããµãã¼ããã¦ããï¼
+
+ã»ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ï¼åªå
+åº¦ç¶æ¿ãã¥ã¼ããã¯ã¹ãé¤ãï¼
+ã»ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸
+ã»ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
+ã»ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸
+ã»å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
+ã»åççææ©è½æ¡å¼µããã±ã¼ã¸
+
+âTOPPERSçµè¾¼ã¿ã³ã³ãã¼ãã³ãã·ã¹ãã ï¼TECSï¼ã®å°å
+¥
+
+ããã¤ã¹ãã©ã¤ããã·ã¹ãã ã­ã°æ©è½ã¨ã®æ¥ç¶ã«TOPPERSçµè¾¼ã¿ã³ã³ãã¼ãã³ã
+ã·ã¹ãã ï¼TECSï¼ãå°å
+¥ããï¼ã¾ãï¼ã«ã¼ãã«ãªãã¸ã§ã¯ããTECSã®ã³ã³ãã¼
+ãã³ãã¨ãã¦æ±ããããã«ããï¼
+
+ãªãï¼TECSã«å¯¾å¿ããããã®ä¿®æ­£ã¯ï¼TECSã®é
+å¸ããã±ã¼ã¸ã«å«ã¾ãã¦ããï¼
+ASPã«ã¼ãã«ã®é
+å¸ããã±ã¼ã¸ã«ã¯å«ã¾ãã¦ããªãï¼
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/configurator.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/configurator.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/configurator.txt	(revision 313)
@@ -0,0 +1,1323 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ä»æ§
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2013å¹´12æ31æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæ¨æºçã«ç
+æãã¹ããã¡ã¤ã«ã®å
+å®¹ã«ã¤ãã¦è§£èª¬ãããã®ã§ããï¼ã¿ã¼ã²ããä¾å­ã«çæ
+ããå
+å®¹ã«ã¤ãã¦ã¯ï¼ãã®ãã­ã¥ã¡ã³ãã®ç¯å²å¤ã§ããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âç®æ¬¡
+
+ã»çæãããã¡ã¤ã«ã®ç¨®é¡
+ã»éçAPIä¸è¦§
+ã»ã«ã¼ãã«æ§æã»åæåããããã¡ã¤ã«ï¼kernel_cfg.hï¼
+	(1) åºå®çæé¨å
+	(2) ãªãã¸ã§ã¯ãæ°ã®å®ç¾©
+	(3) ãªãã¸ã§ã¯ãã®IDçªå·ã®å®ç¾©
+ã»ã«ã¼ãã«æ§æã»åæåãã¡ã¤ã«ï¼kernel_cfg.cï¼
+	(1) åºå®çæé¨å
+	(2) ã«ã¼ãã«ã®ç¨®é¡ã®ãã§ãã¯
+	(3) ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼ã®å¦ç
+	(4) ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+	(5) ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°ã®å®ç¾©
+	(6) åã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ããå®ç¾©
+	(7) å²è¾¼ã¿ã«é¢ããå®ç¾©
+	(8) CPUä¾å¤ã«é¢ããå®ç¾©
+	(9) éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ããå®ç¾©
+	(10) ã¿ã¤ã ã¤ãã³ãç®¡çã«é¢ããå®ç¾©
+	(11) åã¢ã¸ã¥ã¼ã«ã®åæåé¢æ°ã®å®ç¾©
+	(12) åæåã«ã¼ãã³ã®å®è¡é¢æ°ã®å®ç¾©
+	(13) çµäºå¦çã«ã¼ãã³ã®å®è¡é¢æ°ã®å®ç¾©
+
+
+âçæãããã¡ã¤ã«ã®ç¨®é¡
+
+ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤
+ã«ãå¦çãã¦ï¼ã«ã¼ãã«æ§æã»åæåãã¡ã¤ã«ï¼kernel_cfg.cï¼ã¨æ§æã»åæ
+åããããã¡ã¤ã«ï¼kernel_cfg.hï¼ãçæããï¼ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®
+å¦çã®éä¸­ã«ï¼å¿
+è¦ãªä¸­éãã¡ã¤ã«ãçæããï¼
+
+
+âéçAPIä¸è¦§
+
+ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå¦çããéçAPIã¯æ¬¡ã®éãï¼
+
+(1) ã¿ã¹ã¯ç®¡çæ©è½
+	CRE_TSK(ID tskid, { ATR tskatr, intptr_t exinf, TASK task,
+								PRI itskpri, SIZE stksz, STK_T *stk })
+
+(2) ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+	DEF_TEX(ID tskid, { ATR texatr, TEXRTN texrtn })
+
+(3) åæã»éä¿¡æ©è½
+	CRE_SEM(ID semid, { ATR sematr, uint_t isemcnt, uint_t maxsem })
+	CRE_FLG(ID flgid, { ATR flgatr, FLGPTN iflgptn })
+	CRE_DTQ(ID dtqid, { ATR dtqatr, uint_t dtqcnt, void *dtqmb })
+	CRE_PDQ(ID pdqid, { ATR pdqatr, uint_t pdqcnt, PRI maxdpri, void *pdqmb })
+	CRE_MBX(ID mbxid, { ATR mbxatr, PRI maxmpri, void *mprihd })
+
+â» dtqmbï¼pdqmbï¼mprihdãNULLã§ãªãå ´åã¯ãµãã¼ãããªãï¼
+
+(4) ã¡ã¢ãªãã¼ã«ç®¡çæ©è½
+	CRE_MPF(ID mpfid, { ATR mpfatr, uint_t blkcnt, uint_t blksz,
+										MPF_T *mpf, void *mpfmb })
+
+â» mpfmbãNULLã§ãªãå ´åã¯ãµãã¼ãããªãï¼
+
+(5) æéç®¡çæ©è½
+	CRE_CYC(ID cycid, { ATR cycatr, intptr_t exinf, CYCHDR cychdr,
+								RELTIM cyctim, RELTIM cycphs })
+	CRE_ALM(ID almid, { ATR almatr, intptr_t exinf, ALMHDR almhdr })
+
+(6) å²è¾¼ã¿ç®¡çæ©è½
+	CFG_INT(INTNO intno, { ATR intatr, PRI intpri })
+	ATT_ISR({ ATR isratr, intptr_t exinf, INTNO intno, ISR isr, PRI isrpri })
+	DEF_INH(INHNO inhno, { ATR inhatr, INTHDR inthdr })
+
+(7) CPUä¾å¤ç®¡çæ©è½
+	DEF_EXC(EXCNO excno, { ATR excatr, EXCHDR exchdr })
+
+(8) ã·ã¹ãã æ§æç®¡çæ©è½
+	DEF_ICS({ SIZE istksz, STK_T *istk })
+	ATT_INI({ ATR iniatr, intptr_t exinf, INIRTN inirtn })
+	ATT_TER({ ATR teratr, intptr_t exinf, TERRTN terrtn })
+
+ãããã®éçAPIã®ãã©ã¡ã¼ã¿ã®å
+ï¼IDåã®ãã©ã¡ã¼ã¿ã¯ãªãã¸ã§ã¯ãè­å¥åï¼
+ãã¤ã³ã¿åï¼void *ï¼TASKï¼TEXRTNï¼CYCHDRï¼ALMHDRï¼ISRï¼INTHDRï¼EXCHDRï¼
+INIRTNï¼TERRTNï¼STK_T *ï¼MPF_T *ï¼ããã³intptr_tåã®ãã©ã¡ã¼ã¿ã¯ä¸è¬å®
+æ°å¼ãã©ã¡ã¼ã¿ã¨ããï¼ãã®ä»ã®ãã©ã¡ã¼ã¿ã¯ï¼æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿ã¨ããï¼
+
+
+âã«ã¼ãã«æ§æã»åæåããããã¡ã¤ã«ï¼kernel_cfg.hï¼
+
+ã«ã¼ãã«æ§æã»åæåããããã¡ã¤ã«ï¼kernel_cfg.hï¼ã«ã¯ï¼æ¬¡ã®å®ç¾©ãçæ
+ããï¼
+
+(1) åºå®çæé¨å
+
+kernel_cfg.hãè¤æ°åã¤ã³ã¯ã«ã¼ããããã®ãé²ãããã®è¨è¿°ãçæããï¼å
+·
+ä½çã«ã¯ï¼ãã¡ã¤ã«ã®å
+é ­ã«æ¬¡ã®è¡ãçæããï¼
+
+#ifndef	TOPPERS_KERNEL_CFG_H
+#define	TOPPERS_KERNEL_CFG_H
+
+ã¾ãï¼ãã¡ã¤ã«ã®æ«å°¾ã«æ¬¡ã®è¡ãçæããï¼
+
+#endif	/* TOPPERS_KERNEL_CFG_H */
+
+(2) ãªãã¸ã§ã¯ãæ°ã®å®ç¾©
+
+ã«ã¼ãã«ããµãã¼ããããªãã¸ã§ã¯ãã®æ°ããã¯ã­å®ç¾©ããããªãã­ã»ããµãã£
+ã¬ã¯ãã£ãï¼#defineï¼ãçæããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¨è¿°ãçæããï¼
+
+#define TNUM_TSKID	<ã¿ã¹ã¯ã®æ°>
+#define TNUM_SEMID	<ã»ããã©ã®æ°>
+#define TNUM_FLGID	<ã¤ãã³ããã©ã°ã®æ°>
+#define TNUM_DTQID	<ãã¼ã¿ã­ã¥ã¼ã®æ°>
+#define TNUM_PDQID	<åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®æ°>
+#define TNUM_MBXID	<ã¡ã¼ã«ããã¯ã¹ã®æ°>
+#define TNUM_MPFID	<åºå®é·ã¡ã¢ãªãã¼ã«ã®æ°>
+#define TNUM_CYCID	<å¨æãã³ãã©ã®æ°>
+#define TNUM_ALMID	<ã¢ã©ã¼ã ãã³ãã©ã®æ°>
+
+(3) ãªãã¸ã§ã¯ãã®IDçªå·ã®å®ç¾©
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãIDçªå·ãå²ãä»ãããªãã¸ã§ã¯ãã®ååãï¼å²ãä»ãã
+IDçªå·ã«ãã¯ã­å®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ãï¼#defineï¼ãçæããï¼
+ä¾ãã°ï¼æ¬¡ã®ãããªè¨è¿°ãçæããï¼
+
+#define TASK1	1
+#define TASK2	2
+#define SEM1	1
+
+
+âã«ã¼ãã«æ§æã»åæåãã¡ã¤ã«ï¼kernel_cfg.cï¼
+
+(1) åºå®çæé¨å
+
+kernel_cfg.cç¨ã®ããããã¡ã¤ã«ã¨IDèªåå²ä»ãçµæãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+ããããªãã­ã»ããµãã£ã¬ã¯ãã£ãï¼#includeï¼ãçæããï¼å
+·ä½çã«ã¯ï¼æ¬¡
+ã®è¡ãçæããï¼
+
+#include "kernel/kernel_int.h"
+#include "kernel_cfg.h"
+
+(2) ã«ã¼ãã«ã®ç¨®é¡ã®ãã§ãã¯
+
+kernel_cfg.cã¨ã«ã¼ãã«ã®ç¨®é¡ãä¸è´ãã¦ãããããã§ãã¯ããããã«ï¼æ¬¡ã®
+è¡ãçæããï¼
+
+#if TKERNEL_PRID != 0x07u
+#error The kernel does not match this configuration file.
+#endif
+
+(3) ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼ã®å¦ç
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«å«ã¾ããCè¨èªããªãã­ã»ããµã®ã¤
+ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼ã¨åä¸ã®ãã£ã¬ã¯ãã£ãï¼#includeï¼
+ãçæããï¼ä¾ãã°ï¼
+
+#include "sample1.h"
+
+ã¨ããã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãã«å¯¾ãã¦ï¼
+
+#include "sample1.h"
+
+ã¨ãããã£ã¬ã¯ãã£ããçæããï¼çæãããã£ã¬ã¯ãã£ãã®é åºã¯ï¼ã·ã¹ã
+ã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã§ã®ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãã®é åº
+ã«ä¸è´ãããï¼
+
+(4) ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+
+kernel_cfg.cã®ä¸­ã§ä½¿ç¨ãããã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©ãçæããï¼
+å
+·ä½çã«ã¯ï¼æ¬¡ã®è¡ãçæããï¼
+
+#ifndef LOG_ISR_ENTER
+#define LOG_ISR_ENTER(intno)
+#endif /* LOG_ISR_ENTER */
+
+#ifndef LOG_ISR_LEAVE
+#define LOG_ISR_LEAVE(intno)
+#endif /* LOG_ISR_LEAVE */
+
+(5) ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°ã®å®ç¾©
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³æå®ï¼--external-idï¼ã«ããï¼ã³ã³ãã£
+ã®ã¥ã¬ã¼ã¿ãID çªå·ãå²ãä»ãããªãã¸ã§ã¯ãã®ååã®æ«å°¾ã«"_id"ãä»å ã
+ãååã®å¤æ°ãçæããï¼å¤æ°ã¯ï¼constå±æ§ãä»å ããIDåã®å¤æ°ã¨ãï¼å²ã
+ä»ããIDçªå·ãå¤ã¨ããï¼ä¾ãã°ï¼æ¬¡ã®ãããªè¨è¿°ãçæããï¼
+
+const ID TASK1_id = 1;
+const ID TASK2_id = 2;
+const ID SEM1_id = 1;
+
+(6) åã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ããå®ç¾©
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«ï¼ãªãã¸ã§ã¯ããçæããéç
+APIãCRE_XXXããå«ã¾ããåã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ãã¦ï¼ãªãã¸ã§ã¯ãç
+æã®ããã®å®ç¾©ãçæããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼åãç¨®é¡ã®ãªãã¸ã§ã¯ããçæããéçAPIãéãï¼å
+ãªãã¸ã§ã¯ãã«IDçªå·ãå²ãä»ããï¼IDçªå·ã¯ï¼ä»ã®ãªãã¸ã§ã¯ãã®IDçªå·ã¨
+éè¤ããªãï¼IDçªå·ãé£ç¶ããããã«å²ãä»ããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³æå®ï¼--id-input-fileï¼ã«ããï¼ã³ã³
+ãã£ã®ã¥ã¬ã¼ã¿ããªãã¸ã§ã¯ãã«å²ãä»ããIDçªå·ãæå®ãããã¨ãã§ããï¼
+åãç¨®é¡ã®ç°ãªããªãã¸ã§ã¯ãã«å¯¾ãã¦åãIDçªå·ãæå®ãããï¼ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ãIDçªå·ãã§ããéãé£ç¶ããããã«å²ãä»ããã¨ãã¦ãIDçªå·ãé£ç¶
+ããªãå ´åã«ã¯ï¼ASPã«ã¼ãã«ã¯ï¼ãªãã¸ã§ã¯ãã®IDçªå·ãé£ç¶ãã¦ãããã¨ã
+ä»®å®ãã¦å®è£
+ãã¦ããï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ã¨ã©ã¼ãå ±åããï¼
+
+ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³æå®ï¼--id-output-fileï¼ã«ã
+ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãIDçªå·ãå²ãä»ãããªãã¸ã§ã¯ãã®ååã¨å²ãä»ã
+ãIDçªå·ã®çµãï¼ãªãã·ã§ã³ã§æå®ãããã¡ã¤ã«ã«åºåããï¼
+
+åã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ããå®ç¾©ã®æ¨æºçãªæ§æã¯ï¼æ¬¡ã®éãã§ããï¼ãª
+ãã¸ã§ã¯ãã«ãã£ã¦ä¾å¤ãããå ´åã«ã¯ï¼ãªãã¸ã§ã¯ãæ¯ã®é 
+ã§èª¬æããï¼
+
+(a) æå¤§ã®ãªãã¸ã§ã¯ãIDã®å¤æ°ã®å®ç¾©
+
+æå¤§ã®ãªãã¸ã§ã¯ãIDãæã¤å¤æ°ã®å®ç¾©ãçæããï¼å
+·ä½çã«ã¯ï¼ãªãã¸ã§ã¯
+ãã®çç¥è¨å·ããXXXï¼xxxãã¨ããã¨ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+const ID _kernel_tmax_xxxid = (TMIN_XXXID + TNUM_XXXID - 1);
+
+(b) ãªãã¸ã§ã¯ãã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©
+
+ãªãã¸ã§ã¯ãã«ãã£ã¦ã¯ï¼ãªãã¸ã§ã¯ãã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©ãçæããï¼
+å
+·ä½çã«ã¯ï¼ãªãã¸ã§ã¯ãæ¯ã®é 
+ã§èª¬æããï¼
+
+(c) ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å®ç¾©
+
+ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å®ç¾©ãçæããï¼å
+·ä½çã«ã¯ï¼ãªãã¸ã§ã¯ã
+ã®çç¥è¨å·ããXXXï¼xxxãã¨ããã¨ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+const XXXINIB _kernel_xxxinib_table[TNUM_XXXID] = {
+	<ãªãã¸ã§ã¯ãIDã1ã®ãªãã¸ã§ã¯ãã®åæåæ
+å ±>,
+	<ãªãã¸ã§ã¯ãIDã2ã®ãªãã¸ã§ã¯ãã®åæåæ
+å ±>,
+				â¦â¦
+	<ãªãã¸ã§ã¯ãIDãTNUM_XXXIDã®ãªãã¸ã§ã¯ãã®åæåæ
+å ±>
+};
+
+ãªãã¸ã§ã¯ãã®åæåæ
+å ±ã®å½¢å¼ã¯ï¼ãªãã¸ã§ã¯ãæ¯ã«ç°ãªãï¼å
+·ä½çã«ã¯ï¼
+ãªãã¸ã§ã¯ãæ¯ã®é 
+ã§èª¬æããï¼
+
+(d) ãªãã¸ã§ã¯ãã®ã³ã³ãã­ã¼ã«ãã­ãã¯ã®å®ç¾©
+
+ãªãã¸ã§ã¯ãã®ã³ã³ãã­ã¼ã«ãã­ãã¯ã®å®ç¾©ãçæããï¼å
+·ä½çã«ã¯ï¼ãªãã¸ã§
+ã¯ãã®çç¥è¨å·ããXXXï¼xxxãã¨ããã¨ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+XXXCB _kernel_xxxcb_table[TNUM_XXXID];
+
+(6-1) ã¿ã¹ã¯ã«é¢ããå®ç¾©
+
+ASPã«ã¼ãã«ã¯ï¼ã¿ã¹ã¯ãä¸ã¤ããªãã±ã¼ã¹ã«å¯¾å¿ãã¦ããªãããï¼ã¿ã¹ã¯ã«é¢
+ããå®ç¾©ã¯å¿
+ãçæããªããã°ãªããªãï¼
+
+ã¿ã¹ã¯ã®çç¥è¨å·ã¯ãTSKããtskãã§ããï¼ãã ãï¼ã¿ã¹ã¯åæåãã­ãã¯ã®
+ãã¼ã¿åã¯TINIBï¼ãã®å¤æ°åã¯_kernel_tinib_tableï¼ã¿ã¹ã¯ã³ã³ãã­ã¼ã«ã
+ã­ãã¯ã®ãã¼ã¿åã¯TCBï¼ãã®å¤æ°åã¯_kernel_tcb_table ã§ããï¼ãããã
+ãTSKï¼tskãã«ä»£ãã¦ãTï¼tããç¨ãã¦ããï¼ï¼
+
+ã¿ã¹ã¯åæåãã­ãã¯ã«ã¯ï¼ãCRE_TSKãéçAPIã§æå®ãããæ
+å ±ã«å ãã¦ï¼
+ãDEF_TEXãéçAPIã§æå®ãããæ
+å ±ãå«ããï¼
+
+ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ã
+ã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+CRE_TSK(tskid, { tskatr, exinf, task, itskpri, stksz, stk });
+DEF_TEX(tskid, { texatr, texrtn });
+
+(6-1-1) ã¿ã¹ã¯ã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©
+
+ã¿ã¹ã¯ã«å¿
+è¦ãªã¡ã¢ãªé åã¨ãã¦ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãããï¼stkãNULLã®
+å ´åã«ã¯ï¼çæããã¿ã¹ã¯æ¯ã«ï¼æå®ããããµã¤ãºã®ã¹ã¿ãã¯é åãç¢ºä¿ããï¼
+å
+·ä½çã«ã¯ï¼ä¸è¨ã®éçAPIã«å¯¾ãã¦ï¼æ¬¡ã®å®ç¾©ãçæããï¼
+
+ï¼stkãNULLã®å ´åã®ã¿çæ
+static STK_T _kernel_stack_<ã¿ã¹ã¯å>[COUNT_STK_T(stksz)];
+
+(6-1-2) ã¿ã¹ã¯ã®åæåæ
+å ±
+
+ã¿ã¹ã¯åæåãã­ãã¯ä¸­ã«çæããã¿ã¹ã¯ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (tskatr), (intptr_t)(exinf), (task), INT_PRIORITY(itskpri),
+								(stksz), (stk), (texatr), (texrtn) }
+
+ããã§ï¼stkãNULLã®å ´åã«ã¯ï¼(stksz)ã«ä»£ãã¦ROUND_STK_T(stksz)ãï¼
+(stk)ã«ä»£ãã¦(_kernel_stack_<ã¿ã¹ã¯å>)ãçæããï¼CRE_TSKã«å¯¾å¿ãã
+DEF_TEXããªãå ´åã«ã¯ï¼texatrãTA_NULLï¼texrtnãNULLã¨ããï¼
+
+(6-1-3) ã¿ã¹ã¯çæé åºãã¼ãã«ã®å®ç¾©
+
+ã¿ã¹ã¯ã«å¯¾ãã¦ã¯ï¼çæãããé åºï¼ã¿ã¹ã¯ãçæããéçAPIãè¨è¿°ããã
+é åºï¼ããã¼ãã«ã«åºåããå¿
+è¦ãããï¼ããã¯ï¼ã¿ã¹ã¯ã®çæãããé åºã§ï¼
+ã¿ã¹ã¯ã®åæåï¼ããå
+·ä½çã«ã¯ï¼ã¿ã¹ã¯ã®èµ·åï¼ãè¡ãå¿
+è¦ãããããã§ã
+ãï¼
+
+å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+const ID _kernel_torder_table[TNUM_TSKID] = {
+	<æåã«çæãããã¿ã¹ã¯ã®ã¿ã¹ã¯ID>,
+	<2çªç®ã«çæãããã¿ã¹ã¯ã®ã¿ã¹ã¯ID>,
+				â¦â¦
+	<æå¾ã«çæãããã¿ã¹ã¯ã®ã¿ã¹ã¯ID>
+};
+
+(6-1-4) ã¨ã©ã¼æ¡ä»¶
+
+ã¿ã¹ã¯ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãtskidã«å¯¾ããCRE_TSKãè¤æ°ããå ´åï¼E_OBJï¼
+ã»DEF_TEXã«å¯¾å¿ããCRE_TSKããªãå ´åï¼E_NOEXSï¼
+ã»åãtskidã«å¯¾ããDEF_TEXãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»tskatrãï¼ï¼»TA_ACTï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+	â» ã¿ã¼ã²ããä¾å­é¨ã§ã¿ã¹ã¯å±æ§ãè¿½å å¯ï¼TARGET_TSKATRï¼
+ã»(TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)ã§ãªãå ´åï¼E_PARï¼
+ã»stkszã0ä»¥ä¸ãï¼ã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_STKSZï¼ãããå°ã
+ããå ´åï¼E_PARï¼
+ã»stkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_STKSZ_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	â» ãã®ã¨ã©ã¼ãã§ãã¯ã¯ï¼stkãNULLã§ãªãå ´åã«ã®ã¿è¡ã
+ã»texatrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+
+ï¼ãã¹3ã§æ¤åºãããã®
+ã»taskã¨texrtnããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_FUNC_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_FUNC_NONNULLï¼
+ã»stkãã¹ã¿ãã¯é åã®å
+é ­çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_STACK_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_STACK_NONNULLï¼
+
+(6-2) ã»ããã©ã«é¢ããå®ç¾©
+
+ã»ããã©ã®çç¥è¨å·ã¯ãSEMï¼semãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹
+ãï¼ãªãï¼ã»ããã©ã«å¿
+è¦ãªã¡ã¢ãªé åã¯ãªãï¼
+
+CRE_SEM(semid, { sematr, isemcnt, maxsem });
+
+(6-2-1) ã»ããã©ã®åæåæ
+å ±
+
+ã»ããã©åæåãã­ãã¯ä¸­ã«çæããã»ããã©ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ã
+ãï¼
+
+	{ (sematr), (isemcnt), (maxsem) }
+
+(6-2-2) ã¨ã©ã¼æ¡ä»¶
+
+ã»ããã©ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãsemidã«å¯¾ããCRE_SEMãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»sematrãï¼ï¼»TA_TPRIï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»(0 <= isemcnt && isemcnt <= maxsem)ã§ãªãå ´åï¼E_PARï¼
+ã»(1 <= maxsem && maxsem <= TMAX_MAXSEM)ã§ãªãå ´åï¼E_PARï¼
+
+(6-3) ã¤ãã³ããã©ã°ã«é¢ããå®ç¾©
+
+ã¤ãã³ããã©ã°ã®çç¥è¨å·ã¯ãFLGï¼flgãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤
+ãã¦è¿°ã¹ãï¼ãªãï¼ã¤ãã³ããã©ã°ã«å¿
+è¦ãªã¡ã¢ãªé åã¯ãªãï¼
+
+CRE_FLG(flgid, { flgatr, iflgptn });
+
+(6-3-1) ã¤ãã³ããã©ã°ã®åæåæ
+å ±
+
+ã¤ãã³ããã©ã°åæåãã­ãã¯ä¸­ã«çæããã¤ãã³ããã©ã°ã®åæåæ
+å ±ã¯ï¼
+æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (flgatr), (iflgptn) }
+
+(6-3-2) ã¨ã©ã¼æ¡ä»¶
+
+ã¤ãã³ããã©ã°ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãflgidã«å¯¾ããCRE_FLGãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹1ã§æ¤åºãããã®
+ã»iflgptnãFLGPTNã«æ ¼ç´ã§ããªãå ´åï¼E_PARï¼
+	â iflgptnãuint32_tã«æ ¼ç´ã§ããªãå ´åã¯ï¼cfg1_out.cã®ã³ã³ãã¤ã«æ
+	   ã«ã¨ã©ã¼ã¨ãªãï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»flgatrãï¼ï¼»TA_TPRIï¼½ï½ï¼»TA_WMULï¼½ï½ï¼»TA_CLRï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»iflgptnãFLGPTNã«æ ¼ç´ã§ããªãå ´åï¼E_PARï¼
+	â iflgptnãuint32_tã«ã¯æ ¼ç´ã§ãããï¼FLGPTNã«æ ¼ç´ã§ããªãå ´åã¯ï¼
+	   ãã¹2ã§ã¨ã©ã¼ãæ¤åºããï¼
+
+(6-4) ãã¼ã¿ã­ã¥ã¼ã«é¢ããå®ç¾©
+
+ãã¼ã¿ã­ã¥ã¼ã®çç¥è¨å·ã¯ãDTQï¼dtqãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥
+ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦
+è¿°ã¹ãï¼
+
+CRE_DTQ(dtqid, { dtqatr, dtqcnt, dtqmb });
+
+(6-4-1) ãã¼ã¿ã­ã¥ã¼ã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©
+
+ãã¼ã¿ã­ã¥ã¼ã«å¿
+è¦ãªã¡ã¢ãªé åã¨ãã¦ï¼ãã¼ã¿ã­ã¥ã¼ç®¡çé åãããï¼çæ
+ãããã¼ã¿ã­ã¥ã¼æ¯ã«ï¼å¿
+è¦ãªãµã¤ãºã®ãã¼ã¿ã­ã¥ã¼ç®¡çé åãå®ç¾©ããï¼å
+·
+ä½çã«ã¯ï¼ä¸è¨ã®éçAPIã«å¯¾ãã¦ï¼æ¬¡ã®å®ç¾©ãçæããï¼
+
+ï¼dtqcntã0ã§ãªãå ´åã®ã¿çæ
+static DTQMB _kernel_dtqmb_<ãã¼ã¿ã­ã¥ã¼å>[dtqcnt];
+
+(6-4-2) ãã¼ã¿ã­ã¥ã¼ã®åæåæ
+å ±
+
+ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ä¸­ã«çæãããã¼ã¿ã­ã¥ã¼ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®
+å½¢å¼ã¨ããï¼
+
+	{ (dtqatr), (dtqcnt), (_kernel_dtqmb_<ãã¼ã¿ã­ã¥ã¼å>) }
+
+ããã§ï¼dtqcntã0ã®å ´åã«ã¯ï¼_kernel_dtqmb_<ãã¼ã¿ã­ã¥ã¼å>ã«ä»£ãã¦ï¼
+NULLãç¨ããï¼
+
+(6-4-3) ã¨ã©ã¼æ¡ä»¶
+
+ãã¼ã¿ã­ã¥ã¼ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãdtqidã«å¯¾ããCRE_DTQãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»dtqatrãï¼ï¼»TA_TPRIï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»dtqcntãè² ã®å¤ã®å ´åï¼E_PARï¼
+ã»dtqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼
+
+(6-5) åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«é¢ããå®ç¾©
+
+åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®çç¥è¨å·ã¯ãPDQï¼pdqãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³
+ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+CRE_PDQ(ID pdqid, { pdqatr, pdqcnt, maxdpri, pdqmb });
+
+(6-5-1) åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©
+
+åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«å¿
+è¦ãªã¡ã¢ãªé åã¨ãã¦ï¼åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé å
+ãããï¼çæããåªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ¯ã«ï¼å¿
+è¦ãªãµã¤ãºã®åªå
+åº¦ãã¼ã¿ã­ã¥ã¼
+ç®¡çé åãå®ç¾©ããï¼å
+·ä½çã«ã¯ï¼ä¸è¨ã®éçAPIã«å¯¾ãã¦ï¼æ¬¡ã®å®ç¾©ãçæã
+ãï¼
+
+ï¼pdqcntã0ã§ãªãå ´åã®ã¿çæ
+static PDQMB _kernel_pdqmb_<åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å>[pdqcnt];
+
+(6-5-2) åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®åæåæ
+å ±
+
+åªå
+åº¦ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ä¸­ã«çæããåªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®åæå
+æ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (pdqatr), (pdqcnt), (maxdpri), (_kernel_pdqmb_<åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å>) }
+
+ããã§ï¼pdqcntã0ã®å ´åã«ã¯ï¼_kernel_pdqmb_<åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å>ã«ä»£ã
+ã¦ï¼NULLãç¨ããï¼
+
+(6-5-3) ã¨ã©ã¼æ¡ä»¶
+
+åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãpdqidã«å¯¾ããCRE_PDQãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»pdqatrãï¼ï¼»TA_TPRIï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»pdqcntãè² ã®å¤ã®å ´åï¼E_PARï¼
+ã»(TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)ã§ãªãå ´åï¼E_PARï¼
+ã»pdqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼
+
+(6-6) ã¡ã¼ã«ããã¯ã¹ã«é¢ããå®ç¾©
+
+ã¡ã¼ã«ããã¯ã¹ã®çç¥è¨å·ã¯ãMBXï¼mbxãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤
+ãã¦è¿°ã¹ãï¼ãªãï¼ã¡ã¼ã«ããã¯ã¹ã«å¿
+è¦ãªã¡ã¢ãªé åã¯ãªãï¼
+
+CRE_MBX(mbxid, { mbxatr, maxmpri, mprihd });
+
+(6-6-1) ã¡ã¼ã«ããã¯ã¹ã®åæåæ
+å ±
+
+ã¡ã¼ã«ããã¯ã¹åæåãã­ãã¯ä¸­ã«çæããã¡ã¼ã«ããã¯ã¹ã®åæåæ
+å ±ã¯ï¼
+æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (mbxatr), (maxmpri) }
+
+(6-6-2) ã¨ã©ã¼æ¡ä»¶
+
+ã¡ã¼ã«ããã¯ã¹ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãmbxidã«å¯¾ããCRE_MBXãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»mbxatrãï¼ï¼»TA_TPRIï¼½ï½ï¼»TA_MPRIï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»(TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI)ã§ãªãå ´åï¼E_PARï¼
+ã»mprihdãNULLã§ãªãå ´åï¼E_NOSPTï¼
+
+(6-7) åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ããå®ç¾©
+
+åºå®é·ã¡ã¢ãªãã¼ã«ã®çç¥è¨å·ã¯ãMPFï¼mpfãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³
+ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+CRE_MPF(mpfid, { mpfatr, blkcnt, blksz, mpf, mpfmb });
+
+(6-7-1) åºå®é·ã¡ã¢ãªãã¼ã«ã«å¿
+è¦ãªã¡ã¢ãªé åã®å®ç¾©
+
+åºå®é·ã¡ã¢ãªãã¼ã«ã«å¿
+è¦ãªã¡ã¢ãªé åã¨ãã¦ï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã¨åº
+å®é·ã¡ã¢ãªãã¼ã«ç®¡çé åãããï¼çæããåºå®é·ã¡ã¢ãªãã¼ã«æ¯ã«ï¼å¿
+è¦ãª
+ãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«é åï¼mpfãNULLã®å ´åã®ã¿ï¼ã¨åºå®é·ã¡ã¢ãªãã¼
+ã«ç®¡çé åãç¢ºä¿ããï¼å
+·ä½çã«ã¯ï¼ä¸è¨ã®éçAPIã«å¯¾ãã¦ï¼æ¬¡ã®å®ç¾©ãçæ
+ããï¼
+
+ï¼mpfãNULLã®å ´åã®ã¿çæ
+static MPF_T _kernel_mpf_<åºå®é·ã¡ã¢ãªãã¼ã«å>[(blkcnt) * COUNT_MPF_T(blksz)];
+								
+ï¼å¿
+ãçæ
+static MPFMB _kernel_mpfmb_<åºå®é·ã¡ã¢ãªãã¼ã«å>[blkcnt];
+
+(6-7-2) åºå®é·ã¡ã¢ãªãã¼ã«ã®åæåæ
+å ±
+
+åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯ä¸­ã«çæããåºå®é·ã¡ã¢ãªãã¼ã«ã®åæå
+æ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (mpfatr), (blkcnt), ROUND_MPF_T(blksz), mpf,
+						(_kernel_mpfmb_<åºå®é·ã¡ã¢ãªãã¼ã«å>) }
+
+ããã§ï¼mpfãNULLã®å ´åã«ã¯ï¼mpfã«ä»£ãã¦ï¼_kernel_mpf_<åºå®é·ã¡ã¢ãªãã¼
+ã«å>ãç¨ããï¼
+
+(6-7-3) ã¨ã©ã¼æ¡ä»¶
+
+åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãmpfidã«å¯¾ããCRE_MPFãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»mpfatrãï¼ï¼»TA_TPRIï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»blkcntã0ä»¥ä¸ã®å ´åï¼E_PARï¼
+ã»blkszã0ä»¥ä¸ã®å ´åï¼E_PARï¼
+ã»mpfmbãNULLã§ãªãå ´åï¼E_NOSPTï¼
+
+ï¼ãã¹3ã§æ¤åºãããã®
+ã»mpfãåºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_MPF_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_MPF_NONNULLï¼
+
+(6-8) å¨æãã³ãã©ã«é¢ããå®ç¾©
+
+å¨æãã³ãã©ã®çç¥è¨å·ã¯ãCYCï¼cycãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤
+ãã¦è¿°ã¹ãï¼ãªãï¼å¨æãã³ãã©ã«å¿
+è¦ãªã¡ã¢ãªé åã¯ãªãï¼
+
+CRE_CYC(cycid, { cycatr, exinf, cychdr, cyctim, cycphs });
+
+(6-8-1) å¨æãã³ãã©ã®åæåæ
+å ±
+
+å¨æãã³ãã©åæåãã­ãã¯ä¸­ã«çæããå¨æãã³ãã©ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®
+å½¢å¼ã¨ããï¼
+
+	{ (cycatr), (intptr_t)(exinf), (cychdr), (cyctim), (cycphs) }
+
+(6-8-2) ã¨ã©ã¼æ¡ä»¶
+
+å¨æãã³ãã©ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãcycidã«å¯¾ããCRE_CYCãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»cycatrãï¼ï¼»TA_STAï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+ã»(0 < cyctim && cyctim <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼
+ã»(0 <= cycphs && cycphs <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼
+ã»è­¦åï¼cycatrã«TA_STAãè¨­å®ããã¦ãã¦ï¼(cycphs == 0)ã®å ´å
+
+ï¼ãã¹3ã§æ¤åºãããã®
+ã»cychdrããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_FUNC_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_FUNC_NONNULLï¼
+
+(6-9) ã¢ã©ã¼ã ãã³ãã©ã«é¢ããå®ç¾©
+
+ã¢ã©ã¼ã ãã³ãã©ã®çç¥è¨å·ã¯ãALMï¼almãã§ããï¼ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³
+ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦ããæã«çæãã¹ãæ
+å ±
+ã«ã¤ãã¦è¿°ã¹ãï¼ãªãï¼ã¢ã©ã¼ã ãã³ãã©ã«å¿
+è¦ãªã¡ã¢ãªé åã¯ãªãï¼
+
+CRE_ALM(ID almid, { almatr, (intptr_t)(exinf), almhdr });
+
+(6-9-1) ã¢ã©ã¼ã ãã³ãã©ã®åæåæ
+å ±
+
+ã¢ã©ã¼ã ãã³ãã©åæåãã­ãã¯ä¸­ã«çæããã¢ã©ã¼ã ãã³ãã©ã®åæåæ
+å ±
+ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (almatr), (exinf), (almhdr) }
+
+(6-9-2) ã¨ã©ã¼æ¡ä»¶
+
+ã¢ã©ã¼ã ãã³ãã©ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿æ¬ä½ãæ¤åºãããã®
+ã»åãalmidã«å¯¾ããCRE_ALMãè¤æ°ããå ´åï¼E_OBJï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»almatrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+
+ï¼ãã¹3ã§æ¤åºãããã®
+ã»almhdrããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_FUNC_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_FUNC_NONNULLï¼
+
+(7) å²è¾¼ã¿ã«é¢ããå®ç¾©
+
+å²è¾¼ã¿ã«é¢ãã¦çæããæ
+å ±ã¯ï¼ã¿ã¼ã²ããæ¯ã«å®ãããã¨ãã§ããï¼ã¿ã¼ã²ã
+ãæ¯ã«å®ããªãå ´åã«ã¯ï¼ä»¥ä¸ã§è¿°ã¹ãã¿ã¼ã²ããã«ä¾å­ããªãæ¨æºçãªæ
+å ±
+ãçæããï¼ã¿ã¼ã²ããæ¯ã«å®ããå ´åã«ã¯ï¼(7-1)ã¨(7-3)ã«è¿°ã¹ãæ
+å ±ã¯ç
+æããªãï¼(7-2)ã«è¿°ã¹ãæ
+å ±ã¯çæããï¼ï¼
+
+(7-1) å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«é¢ããå®ç¾©
+
+å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ãè¨­å®ããéçAPIãCFG_INTãã§è¨­å®ããå²è¾¼ã¿è¦æ±
+ã©ã¤ã³ã«é¢ããå®ç¾©ãçæããï¼å
+·ä½çã«ã¯æ¬¡ã®éãï¼
+
+ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ã
+ã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+CFG_INT(INTNO intno, { intatr, intpri });
+
+(7-1-1) è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°
+
+è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°ããã¯ã­å®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£
+ãï¼#defineï¼ãçæããï¼ã¾ãï¼ãã®å¤ãæã¤å¤æ°ã®å®ç¾©ãçæããï¼å
+·ä½ç
+ã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+#define TNUM_INTNO <è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°>
+const uint_t	_kernel_tnum_intno = TNUM_INTNO;
+
+(7-1-2) å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯ã®å®ç¾©
+
+å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯ãçæããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãç
+æããï¼
+
+const INTINIB _kernel_intinib_table[TNUM_INTNO] = {
+	<å²è¾¼ã¿è¦æ±ã©ã¤ã³1ã®åæåæ
+å ±>,
+	<å²è¾¼ã¿è¦æ±ã©ã¤ã³2ã®åæåæ
+å ±>,
+				â¦â¦
+	<å²è¾¼ã¿è¦æ±ã©ã¤ã³TNUM_INTNOã®åæåæ
+å ±>
+};
+
+ãã®ä¸­ã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (intno), (intatr), (intpri) }
+
+(7-1-3) ã¨ã©ã¼æ¡ä»¶
+
+å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»intnoãCFG_INTã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+ã»intnoãCFG_INTã«ãã£ã¦è¨­å®æ¸ã¿ã®å ´åï¼E_OBJï¼
+ã»intatrãï¼ï¼»TA_ENAINTï¼½ï½ï¼»TA_EDGEï¼½ï¼ã§ãªãå ´åï¼E_RSATRï¼
+	â» ã¿ã¼ã²ããä¾å­é¨ã§å²è¾¼ã¿å±æ§ãè¿½å å¯ï¼TARGET_INTATRï¼
+ã»ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIããã
+ãå°ããå¤ãæå®ãããå ´åï¼E_OBJï¼
+ã»ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIãã
+ããå°ããå¤ãæå®ãããªãã£ãå ´åï¼E_OBJï¼
+ã»intpriãCFG_INTã«å¯¾ããå²è¾¼ã¿åªå
+åº¦ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+ï¼å¿
+è¦ã«å¿ãã¦ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»intatrãå²è¾¼ã¿å±æ§ã¨ãã¦è¨­å®ã§ããªãå¤ã®å ´åï¼E_RSATRï¼
+ã»intpriãå²è¾¼ã¿åªå
+åº¦ã¨ãã¦è¨­å®ã§ããªãå¤ã®å ´åï¼E_PARï¼
+ã»åä¸ã®å²è¾¼ã¿åªå
+åº¦ããè¨­å®ã§ããªãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼ç°ãªãå²
+ãè¾¼ã¿åªå
+åº¦ãè¨­å®ããå ´åï¼E_PARï¼
+
+(7-2) å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ããå®ç¾©
+
+(7-2-1) å²è¾¼ã¿ãã³ãã©ã®çæ
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«å«ã¾ããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ã
+ã³ãè¿½å ããéçAPIãATT_ISRãã«å¯¾ãã¦ï¼åä¸ã®å²è¾¼ã¿çªå·ã«å¯¾ãã¦è¿½å ã
+ããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãé ã«å¼ã³åºãé¢æ°ãçæããï¼
+
+å
+·ä½çã«ã¯ï¼åä¸ã®å²è¾¼ã¿çªå·ã«å¯¾ãã¦å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãè¿½å ãã
+
+ATT_ISR({ isratr_1, exinf_1, intno, isr_1, isrpri_1 });
+ATT_ISR({ isratr_2, exinf_2, intno, isr_2, isrpri_2 });
+	â¦â¦
+ATT_ISR({ isratr_n, exinf_n, intno, isr_n, isrpri_n });
+
+ã¨ããéçAPIã«å¯¾ãã¦ï¼æ¬¡ã®ãããªé¢æ°ãçæããï¼ããã§ï¼isrpri_1ï¼
+isrpri_2ï¼â¦â¦ï¼isrpri_nã¯ï¼å¤ã®å°ããé ã«ä¸¦ã¹æ¿ãããã¦ãããã®ã¨ããï¼
+å¤ãåããã®ã®éã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã§ã®éç
+APIã®é åºã®éãã«ä¸¦ãã§ãããã®ã¨ããï¼
+
+static void
+_kernel_inthdr_<intno>(void)
+{
+	PRI		saved_ipm;
+
+	i_begin_int(intno);
+	saved_ipm = i_get_ipm();
+
+	LOG_ISR_ENTER(<intno>);		/* ISR1ã®å¼åºã */
+	isr_1((intptr_t)(exinf_1));
+	LOG_ISR_LEAVE(intno);
+
+	if (i_sense_lock()) {		/* ISRã®å¼åºãåã®ç¶æ
+ã«æ»ã */
+		i_unlock_cpu();
+	}
+	i_set_ipm(saved_ipm);
+
+	LOG_ISR_ENTER(<intno>);		/* ISR2ã®å¼åºã */
+	isr_2((intptr_t)(exinf_2));
+	LOG_ISR_LEAVE(intno);
+
+	if (i_sense_lock()) {		/* ISRã®å¼åºãåã®ç¶æ
+ã«æ»ã */
+		i_unlock_cpu();
+	}
+	i_set_ipm(saved_ipm);
+
+	â¦â¦
+
+	LOG_ISR_ENTER(<intno>);		/* ISRnã®å¼åºã */
+	isr_n((intptr_t)(exinf_n));
+	LOG_ISR_LEAVE(intno);
+
+	i_end_int(intno);
+}
+
+ããã§ï¼ISRnã®å¼åºãã®å¾ã«å¼åºãåã®ç¶æ
+ã«æ»ããªãã®ã¯ï¼å²è¾¼ã¿ãã³ãã©
+ããã®ãªã¿ã¼ã³ã«ããï¼ã«ã¼ãã«ãå
+ã®ç¶æ
+ã«æ»ãããã§ããï¼
+
+åä¸ã®å²è¾¼ã¿çªå·ã«å¯¾ãã¦è¿½å ãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã1ã¤ã®ã¿ã®å ´å
+ã«ã¯ï¼æ¬¡ã®ãããªé¢æ°ãçæããï¼
+
+static void
+_kernel_inthdr_<intno>(void)
+{
+	i_begin_int(intno);
+	LOG_ISR_ENTER(intno);
+	isr_1((intptr_t)(exinf_1));
+	LOG_ISR_LEAVE(intno);
+	i_end_int(intno);
+}
+
+ãèª²é¡ãããã§ï¼LOG_ISR_ENTERï¼LOG_ISR_LEAVEã®å¼æ°ãã©ãããããèª²é¡ã¨
+ãã¦æ®ã£ã¦ããï¼ATT_ISRã§ç»é²ãããISRã«å¯¾ãã¦ã¯ISR IDãä»ä¸ãããªãã
+ãï¼IDã§ISRãåºå¥ãããã¨ãã§ããªãï¼ãããªãå²è¾¼ã¿çªå·ãæ¸¡ãã¦ãããï¼
+æ¡å¼µæ
+å ±ï¼exinfï¼ãæ¸¡ãã¹ããããããªãï¼
+
+(7-2-2) å²è¾¼ã¿ãã³ãã©ã®å®ç¾©ã«ç¸å½ããå¦ç
+
+ä¸ã®ããã«å²è¾¼ã¿ãã³ãã©ãçæããå ´åã«ã¯ï¼æ¬¡ã«èª¬æããå²è¾¼ã¿ãã³ãã©
+ã«é¢ããå®ç¾©ã«ããã¦ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«æ¬¡ã®é
+çAPIãå«ã¾ãã¦ããã®ã¨åæ§ã«å¦çããï¼
+
+DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> });
+
+ããã§inhnoã¯ï¼intnoã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·ã§ããï¼
+
+(7-2-3) ã¨ã©ã¼æ¡ä»¶
+
+å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»isratrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+	â» ã¿ã¼ã²ããä¾å­é¨ã§å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ãè¿½å å¯ï¼TARGET_ISRATRï¼
+ã»intnoãATT_ISRã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	â» intnoã«å¯¾å¿ããinhnoããªãå ´åãå«ã
+ã»(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)ã§ãªãå ´åï¼E_PARï¼
+ã»intnoã«å¯¾å¿ããinhnoã«å¯¾ãã¦DEF_INHãããå ´åï¼E_OBJï¼
+ã»intnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼
+ã»intnoã«å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIãããå°ãã
+ãå ´åï¼E_OBJï¼
+	â» ã«ã¼ãã«ç®¡çå¤ã®ISRã¯ãµãã¼ãããªããã
+
+ï¼å¯è½ã§ããã°ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»isrããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+(7-3) å²è¾¼ã¿ãã³ãã©ã«é¢ããå®ç¾©
+
+å²è¾¼ã¿ãã³ãã©ãå®ç¾©ããéçAPIãDEF_INHãã§å®ç¾©ããå²è¾¼ã¿ãã³ãã©ï¼ä¸
+è¿°ã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®è¿½å ã«ããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæããå²è¾¼
+ã¿ãã³ãã©ãå«ãï¼ã«é¢ããå®ç¾©ãçæããï¼å
+·ä½çã«ã¯æ¬¡ã®éãï¼
+
+ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ã
+ã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+DEF_INH(inhno, { inhatr, inthdr });
+
+(7-3-1) å®ç¾©ããå²è¾¼ã¿ãã³ãã©ã®æ°
+
+å®ç¾©ããå²è¾¼ã¿ãã³ãã©ã®æ°ããã¯ã­å®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+ï¼#defineï¼ãçæããï¼ã¾ãï¼ãã®å¤ãæã¤å¤æ°ã®å®ç¾©ãçæããï¼å
+·ä½ç
+ã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+#define TNUM_INHNO <å®ç¾©ããå²è¾¼ã¿ãã³ãã©ã®æ°>
+const uint_t	_kernel_tnum_inhno = TNUM_INHNO;
+
+(7-3-2) å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦ç
+
+å®ç¾©ããå²è¾¼ã¿ãã³ãã©æ¯ã«ï¼å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çã«ã¼ãã³ãçæã
+ãï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+INTHDR_ENTRY(inhno, inhno_num, inthdr)
+
+ããã§inhno_numã¯ï¼inhnoï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼ãæ°å¤ã§è¡¨ç¾ãããã®ã§ï¼
+ã¢ã»ã³ããªè¨èªè¨è¿°ã«ä½¿ç¨ããããã®ãã®ã§ããï¼
+
+(7-3-3) å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯ã®å®ç¾©
+
+å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯ãçæããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæ
+ããï¼
+
+const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {
+	<å²è¾¼ã¿ãã³ãã©1ã®åæåæ
+å ±>,
+	<å²è¾¼ã¿ãã³ãã©2ã®åæåæ
+å ±>,
+				â¦â¦
+	<å²è¾¼ã¿ãã³ãã©TNUM_INHNOã®åæåæ
+å ±>
+};
+
+ãã®ä¸­ã®å²è¾¼ã¿ãã³ãã©ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (inhno), (inhatr), (FP)(INT_ENTRY(inhno, inthdr)) }
+
+(7-3-4) ã¨ã©ã¼æ¡ä»¶
+
+å²è¾¼ã¿ãã³ãã©ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»inhnoãDEF_INHã«å¯¾ããå²è¾¼ã¿ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+ã»inhnoãDEF_INHã«ãã£ã¦è¨­å®æ¸ã¿ã®å ´åï¼E_OBJï¼
+#ã»inhnoã«å¯¾å¿ããintnoã«å¯¾ãã¦ATT_ISRãããå ´åï¼E_OBJï¼
+#	â» inhnoã«å¯¾å¿ããintnoããªãå ´åã«ã¯ï¼ãã®ãã§ãã¯ãè¡ããªã
+#	â ãã®ãã§ãã¯ã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å´ã§è¡ã
+ã»inhatrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+	â» ã¿ã¼ã²ããä¾å­é¨ã§å²è¾¼ã¿ãã³ãã©å±æ§ãè¿½å å¯ï¼TARGET_INHATRï¼
+	â» TA_NONKERNELãä½¿ãå ´åã«ã¯ï¼TARGET_INHATRã«è¨­å®ãã
+ã»ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELãæå®
+ãããã¦ããå ´åï¼E_RSATRï¼
+ã»ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELãæ
+ãå®ããã¦ããªãå ´åï¼E_RSATRï¼
+ã»inhnoã«å¯¾å¿ããintnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼
+	â» inhnoã«å¯¾å¿ããintnoããªãå ´åã«ã¯ï¼ãã®ãã§ãã¯ãè¡ããªã
+ã»inhatrã«TA_NONKERNELãæå®ããã¦ãããï¼inhnoã«å¯¾å¿ããintnoã«å¯¾ãã¦
+ãCFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIãããå°ããå ´åï¼E_OBJï¼
+	â» inhnoã«å¯¾å¿ããintnoããªãå ´åã«ã¯ï¼ãã®ãã§ãã¯ãè¡ããªã
+ã»inhatrã«TA_NONKERNELãæå®ããã¦ããï¼inhnoã«å¯¾å¿ããintnoã«å¯¾ãã¦
+ãCFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIä»¥ä¸ã§ããå ´åï¼E_OBJï¼
+	â» inhnoã«å¯¾å¿ããintnoããªãå ´åã«ã¯ï¼ãã®ãã§ãã¯ãè¡ããªã
+
+ï¼å¯è½ã§ããã°ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»inthdrããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+(8) CPUä¾å¤ã«é¢ããå®ç¾©
+
+CPUä¾å¤ã«é¢ãã¦çæããæ
+å ±ã¯ï¼ã¿ã¼ã²ããæ¯ã«å®ãããã¨ãã§ããï¼ã¿ã¼ã²ã
+ãæ¯ã«å®ããªãå ´åã«ã¯ï¼ä»¥ä¸ã§è¿°ã¹ãã¿ã¼ã²ããã«ä¾å­ããªãæ¨æºçãªæ
+å ±
+ãçæããï¼ã¿ã¼ã²ããæ¯ã«å®ããå ´åã«ã¯ï¼ãããã®æ
+å ±ã¯çæãããªãï¼
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«ï¼CPUä¾å¤ãã³ãã©ãå®ç¾©ãã
+éçAPIãDEF_EXCããå«ã¾ãã¦ããå ´åã«ï¼CPUä¾å¤ãã³ãã©ã«é¢ããå®ç¾©ã
+çæããï¼
+
+ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ã
+ã¦ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+DEF_EXC(excno, { excatr, exchdr });
+
+(8-1) å®ç¾©ããCPUä¾å¤ãã³ãã©ã®æ°
+
+å®ç¾©ããCPUä¾å¤ãã³ãã©ã®æ°ããã¯ã­å®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£
+ãï¼#defineï¼ãçæããï¼ã¾ãï¼ãã®å¤ãæã¤å¤æ°ã®å®ç¾©ãçæããï¼å
+·ä½
+çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+#define TNUM_EXCNO <å®ç¾©ããCPUä¾å¤ãã³ãã©ã®æ°>
+const uint_t	_kernel_tnum_excno = TNUM_EXCNO;
+
+(8-2) CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦ç
+
+å®ç¾©ããCPUä¾å¤ãã³ãã©æ¯ã«ï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã«ã¼ãã³ãçæ
+ããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæããï¼
+
+EXCHDR_ENTRY(excno, excno_num, exchdr)
+
+ããã§excno_numã¯ï¼excnoï¼CPUä¾å¤ãã³ãã©çªå·ï¼ãæ°å¤ã§è¡¨ç¾ãããã®ã§ï¼
+ã¢ã»ã³ããªè¨èªè¨è¿°ã«ä½¿ç¨ããããã®ãã®ã§ããï¼
+
+(8-3) CPUä¾å¤ãã³ãã©åæåãã­ãã¯ã®å®ç¾©
+
+CPUä¾å¤ãã³ãã©åæåãã­ãã¯ãçæããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ãããªè¡ãçæ
+ããï¼
+
+const EXCINIB _kernel_excinib_table[TNUM_EXCNO] = {
+	<CPUä¾å¤ãã³ãã©1ã®åæåæ
+å ±>,
+	<CPUä¾å¤ãã³ãã©2ã®åæåæ
+å ±>,
+				â¦â¦
+	<CPUä¾å¤ãã³ãã©TNUM_EXCNOã®åæåæ
+å ±>
+};
+
+ãã®ä¸­ã®CPUä¾å¤ãã³ãã©ã®åæåæ
+å ±ã¯ï¼æ¬¡ã®å½¢å¼ã¨ããï¼
+
+	{ (excno), (excatr), (FP)(EXC_ENTRY(excno, exchdr)) }
+
+(8-4) ã¨ã©ã¼æ¡ä»¶
+
+CPUä¾å¤ãã³ãã©ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»excnoãDEF_EXCã«å¯¾ããCPUä¾å¤ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+ã»excnoãDEF_EXCã«ãã£ã¦è¨­å®æ¸ã¿ã®å ´åï¼E_OBJï¼
+ã»excatrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+	â» ã¿ã¼ã²ããä¾å­é¨ã§CPUä¾å¤ãã³ãã©å±æ§ãè¿½å å¯ï¼TARGET_EXCATRï¼
+
+ï¼å¯è½ã§ããã°ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»exchdrããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+(9) éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ããå®ç¾©
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ããå®ç¾©ã¯ï¼å¿
+ãçæããªããã°
+ãªããªãï¼
+
+(9-1) DEF_ICSããªãå ´å
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ï¼éçAPIãDEF_ICSããå«ã¾ãã¦
+ããªãå ´åã«ã¯ï¼æ¬¡ã®è¡ãçæããï¼
+
+#ifdef DEFAULT_ISTK
+
+#define TOPPERS_ISTKSZ		DEFAULT_ISTKSZ
+#define TOPPERS_ISTK		DEFAULT_ISTK
+
+#else /* DEFAULT_ISTK */
+
+static STK_T				_kernel_istack[COUNT_STK_T(DEFAULT_ISTKSZ)];
+#define TOPPERS_ISTKSZ		ROUND_STK_T(DEFAULT_ISTKSZ)
+#define TOPPERS_ISTK		_kernel_istack
+
+#endif /* DEFAULT_ISTK */
+
+(9-2) DEF_ICSãããå ´å
+
+ä»¥ä¸ã§ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®éçAPIãå«ã¾ãã¦
+ããæã«çæãã¹ãæ
+å ±ã«ã¤ãã¦è¿°ã¹ãï¼
+
+DEF_ICS({ istksz, istk });
+
+istkãNULLã®å ´åã«ã¯ï¼æå®ããããµã¤ãºã®éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ã
+ã¯é åãç¢ºä¿ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®åæåæ
+å ±ãçæ
+ããï¼å
+·ä½çã«ã¯ï¼ä¸è¨ã®éçAPIã«å¯¾ãã¦ï¼æ¬¡ã®è¡ãçæããï¼
+
+static STK_T				_kernel_istack[COUNT_STK_T(istksz)];
+#define TOPPERS_ISTKSZ		ROUND_STK_T(istksz)
+#define TOPPERS_ISTK		_kernel_istack
+
+istkãNULLã§ãªãå ´åã«ã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®åæå
+æ
+å ±ãï¼æ¬¡ã®å½¢å¼ã§çæããï¼
+
+#define TOPPERS_ISTKSZ		(istksz)
+#define TOPPERS_ISTK		(istk)
+
+(9-3) å¤æ°ã®çæ
+
+DEF_ICSã®æç¡ã«ãããï¼æ¬¡ã®å®ç¾©ãçæããï¼
+
+const SIZE		_kernel_istksz = TOPPERS_ISTKSZ;
+STK_T *const	_kernel_istk = TOPPERS_ISTK;
+
+#ifdef TOPPERS_ISTKPT
+STK_T *const	_kernel_istkpt = TOPPERS_ISTKPT(TOPPERS_ISTK, TOPPERS_ISTKSZ);
+#endif /* TOPPERS_ISTKPT */
+
+(9-4) ã¨ã©ã¼æ¡ä»¶
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»éçAPIãDEF_ICSããè¤æ°ããï¼E_OBJï¼
+ã»istkszã0ä»¥ä¸ãï¼ã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_ISTKSZï¼ãããå°
+ãããå ´åï¼E_PARï¼
+ã»istkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_STKSZ_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	â» ãã®ã¨ã©ã¼ãã§ãã¯ã¯ï¼istkãNULLã§ãªãå ´åã«ã®ã¿è¡ã
+
+ï¼ãã¹3ã§æ¤åºãããã®
+ã»istkãã¹ã¿ãã¯é åã®å
+é ­çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+	- ã¿ã¼ã²ããä¾å­ã®å¤ï¼CHECK_STACK_ALIGNï¼ã®åæ°ã§ãªãå ´å
+	- NULLã®å ´åï¼ã¿ã¼ã²ããä¾å­ï¼CHECK_STACK_NONNULLï¼
+
+(10) ã¿ã¤ã ã¤ãã³ãç®¡çã«é¢ããå®ç¾©
+
+ã¿ã¤ã ã¤ãã³ãç®¡çã«é¢é£ãã¦ï¼æ¬¡ã®å®ç¾©ãçæããï¼
+
+TMEVTN	_kernel_tmevt_heap[TNUM_TSKID + TNUM_CYCID + TNUM_ALMID];
+
+(11) åã¢ã¸ã¥ã¼ã«ã®åæåé¢æ°ã®å®ç¾©
+
+åã«ã¼ãã«ãªãã¸ã§ã¯ãã®ç®¡çï¼å²è¾¼ã¿ç®¡çï¼CPUä¾å¤ãã³ãã©ç®¡çã®åæ©è½ã
+åæåé¢æ°ãé ã«å¼ã³åºãé¢æ°ï¼_kernel_initialize_objectï¼ãçæããï¼æ¬¡
+ã®3ã¤ã®åæåé¢æ°ãé¤ãã¦ã¯ï¼ä½¿ç¨ããªãæ©è½ã®åæåé¢æ°ã¯å¼ã³åºããªãï¼
+
+	_kernel_initialize_task
+	_kernel_initialize_interrupt
+	_kernel_initialize_exception
+
+ãã¹ã¦ã®æ©è½ãä½¿ã£ãå ´åã«çæãããé¢æ°ã¯æ¬¡ã®éãã§ããï¼
+
+void
+_kernel_initialize_object(void)
+{
+	_kernel_initialize_task();
+	_kernel_initialize_semaphore();
+	_kernel_initialize_eventflag();
+	_kernel_initialize_dataqueue();
+	_kernel_initialize_pridataq();
+	_kernel_initialize_mailbox();
+	_kernel_initialize_mempfix();
+	_kernel_initialize_cyclic();
+	_kernel_initialize_alarm();
+	_kernel_initialize_interrupt();
+	_kernel_initialize_exception();
+}
+
+(12) åæåã«ã¼ãã³ã®å®è¡é¢æ°ã®å®ç¾©
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«å«ã¾ããåæåã«ã¼ãã³ãè¿½å 
+ããéçAPIãATT_INIãã«å¯¾ãã¦ï¼è¿½å ããåæåã«ã¼ãã³ãé ã«å¼ã³åºãé¢
+æ°ãçæããï¼å
+·ä½çã«ã¯ï¼
+
+ATT_INI({ iniatr, exinf, inirtn });
+
+ã¨ããéçAPIã«å¯¾ãã¦ï¼
+
+	(inirtn)((intptr_t)(exinf));
+
+ãå¼ã³åºãé¢æ°ãï¼_kernel_call_inirtnã¨ããååã§çæããï¼åæåã«ã¼ã
+ã³ãå¼ã³åºãé åºã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã§ã®éç
+APIã®é åºã«ä¸è´ãããï¼
+
+ä¾ãã°ï¼
+
+ATT_INI({ TA_NULL, 0, timer_initialize });
+ATT_INI({ TA_NULL, CONSOLE_PORTID, serial_initialize });
+
+ã¨ãã2ã¤ã®éçAPIããã®é åºã§è¨è¿°ãããæã«çæããé¢æ°ã¯æ¬¡ã®éãã§ã
+ãï¼
+
+void
+_kernel_call_inirtn(void)
+{
+	(timer_initialize)((intptr_t)(0));
+	(serial_initialize)((intptr_t)(CONSOLE_PORTID));
+}
+
+(12-1) ã¨ã©ã¼æ¡ä»¶
+
+åæåã«ã¼ãã³ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»iniatrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+
+ï¼å¯è½ã§ããã°ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»inirtnããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+(13) çµäºå¦çã«ã¼ãã³ã®å®è¡é¢æ°ã®å®ç¾©
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã«å«ã¾ããçµäºå¦çã«ã¼ãã³ãè¿½
+å ããéçAPIãATT_TERãã«å¯¾ãã¦ï¼è¿½å ããçµäºå¦çã«ã¼ãã³ãé ã«å¼ã³åº
+ãé¢æ°ãçæããï¼å
+·ä½çã«ã¯ï¼
+
+ATT_TER({ teratr, exinf, terrtn });
+
+ã¨ããéçAPIã«å¯¾ãã¦ï¼
+
+	(terrtn)((intptr_t)(exinf));
+
+ãå¼ã³åºãé¢æ°ãï¼_kernel_call_terrtnã¨ããååã§çæããï¼çµäºå¦çã«ã¼
+ãã³ãå¼ã³åºãé åºã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ä¸­ã§ã®éç
+APIã®éé ã«ä¸è´ãããï¼
+
+ä¾ãã°ï¼
+
+ATT_TER({ TA_NULL, 0, timer_terminate });
+ATT_TER({ TA_NULL, CONSOLE_PORTID, serial_terminate });
+
+ã¨ãã2ã¤ã®éçAPIããã®é åºã§è¨è¿°ãããæã«çæããé¢æ°ã¯æ¬¡ã®éãã§ã
+ãï¼
+
+void
+_kernel_call_terrtn(void)
+{
+	(serial_terminate)((intptr_t)(CONSOLE_PORTID));
+	(timer_terminate)((intptr_t)(0));
+}
+
+(13-1) ã¨ã©ã¼æ¡ä»¶
+
+çµäºå¦çã«ã¼ãã³ã«é¢ããã¨ã©ã¼æ¡ä»¶ã¯æ¬¡ã®éãã§ããï¼
+
+ï¼ãã¹2ã§æ¤åºãããã®
+ã»teratrãï¼TA_NULLï¼ã§ãªãå ´åï¼E_RSATRï¼
+
+ï¼å¯è½ã§ããã°ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºãããã®
+ã»terrtnããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/design.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/design.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/design.txt	(revision 313)
@@ -0,0 +1,2042 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		è¨­è¨ã¡ã¢
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2014å¹´4æ15æ¥ï¼ä½æä¸­ï¼
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ã®è¨­è¨ã¡ã¢ã§ããï¼ä½æéä¸­ã®ãã®
+ã§ããï¼ç¶²ç¾
+çã§ã¯ãªãï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âç®æ¬¡
+
+ã»TOPPERS/ASPã«ã¼ãã«ã®å®è£
+è¨­è¨æ¹é
+ã»ã·ã¹ãã ç¶æ
+ã¨ã³ã³ãã­ã¹ãã®å®è£
+
+	- ã«ã¼ãã«åä½ç¶æ
+ã¨éåä½ç¶æ
+
+	- ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨éã¿ã¹ã¯ã³ã³ãã­ã¹ã
+	- å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+	- CPUã­ãã¯ç¶æ
+ã¨CPUã­ãã¯è§£é¤ç¶æ
+
+	- å²è¾¼ã¿åªå
+åº¦ãã¹ã¯
+	- ãã£ã¹ãããç¦æ­¢ç¶æ
+ã¨ãã£ã¹ãããè¨±å¯ç¶æ
+
+	- ãã£ã¹ãããä¿çç¶æ
+
+ã»ã¿ã¹ã¯ç¶æ
+ã®ç®¡çã¨ã¹ã±ã¸ã¥ã¼ãªã³ã°
+	- ã¿ã¹ã¯ç¶æ
+ã®ç®¡ç
+	- ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©
+ã»ã¿ã¹ã¯ãã£ã¹ãããå¦çã®å®è£
+
+	- ã¿ã¹ã¯ãã£ã¹ãããå¦çã®å¿
+è¦ãªã¿ã¤ãã³ã°
+	- ã¿ã¹ã¯ãã£ã¹ãããã£ã®æ§é 
+	- ã¿ã¹ã¯ã®çµäºæã®ã¿ã¹ã¯ãã£ã¹ããã
+	- reqflgã®å°å
+¥çç±
+ã»ã¿ã¹ã¯ä¾å¤å¦çæ©è½ã®å®è£
+
+	- ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§æ¡ä»¶ã¨ã·ã¹ãã ç¶æ
+ï¼ä»æ§ã®ç¢ºèªï¼
+	- ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãå¦ç
+	- ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦ãªã¿ã¤ãã³ã°
+	- ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§å¦ç
+	- call_texrtnããdispatchãå¼ã³åºãå¦çã«ã¤ãã¦
+ã»ã¨ã©ã¼ã®ãã§ãã¯é åº
+	- ã¨ã©ã¼ã®3åé¡
+	- éçã¨ã©ã¼ã®ãã§ãã¯é åº
+	- æºéçã¨ã©ã¼ã®ãã§ãã¯é åº
+ã»CHECKãã¯ã­ã¨gotoæã®ä½¿ç¨
+	- CHECKãã¯ã­ã®å®ç¾©ã¨ãã®ä½¿ç¨æ³
+	- è¨­è¨æå³
+	- CHECKãã¯ã­ãä½¿ç¨ãã¦ããæ¡ä»¶
+	- åé¡ãçãããã¨ããªãæ ¹æ 
+ã»ext_tskï¼ext_kerã®è¿ãå¤
+ã»ã«ã¼ãã«ã®ãã¼ã¿æ§é ã«å¯¾ããvolatileå®£è¨ã«ã¤ãã¦
+ã»åã­ã£ã¹ãã«ä¼´ãè­¦åã¡ãã»ã¼ã¸
+ã»æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½
+	- å¿
+è¦æ§ã¨ä½¿é
+	- APIä»æ§
+	- å®è£
+
+ã»ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãenatexã§å®è£
+ãã¦ããçç±
+
+
+âTOPPERS/ASPã«ã¼ãã«ã®å®è£
+è¨­è¨æ¹é
+
+TOPPERS/ASPã«ã¼ãã«ï¼ä»¥ä¸ï¼ASPã«ã¼ãã«ï¼ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã®åºçº
+ç¹ã¨ãªããªã¢ã«ã¿ã¤ã ã«ã¼ãã«ã§ããï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ä»æ§ã®è¨­è¨æ¹é
+ã¨ï¼ASPã«ã¼ãã«ã®é©ç¨å¯¾è±¡é åã¨è¨­è¨æ¹éã«ã¤ãã¦ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ã
+ã«çµ±åä»æ§æ¸ã«è¿°ã¹ããã¦ããï¼
+
+ä»¥ä¸ã§ã¯ï¼ASPã«ã¼ãã«ã®å®è£
+è¨­è¨æ¹éã«ã¤ãã¦è¿°ã¹ããï¼ä»æ§è¨­è¨æ¹éã¨ãé¢
+é£ãã¦ããï¼æç¢ºã«åé¢ã§ããªãé¨åãããï¼
+
+TOPPERS/ASPã«ã¼ãã«ã®å®è£
+è¨­è¨ãè¡ãã«ãããï¼æ¬¡ã®æ¹éãè¨­å®ããï¼
+
+(1) ã½ã¼ã¹ã³ã¼ãã®èª­ã¿ãããã»æ¹é ãããããéè¦ãã
+
+ã½ã¼ã¹ã³ã¼ããèª­ã¿ããããã¨ã¯ï¼ãªã¼ãã³ã½ã¼ã¹ã½ããã¦ã§ã¢ã®åè³ªãåä¸
+ãããä¸ã§æãéè¦ãªç¹æ§ã§ããï¼ã½ã¼ã¹ã³ã¼ããçè§£ãã¦ããæè¡è
+ãå¢ã
+ããã¨ã§ï¼åé¡ãæ©æã«çºè¦ãããã¨ãã§ãï¼ãµãã¼ãä½å¶ãå
+
+å®ããããã¨
+ãã§ããï¼ã¾ãï¼ã½ã¼ã¹ã³ã¼ããèª­ã¿ããããã¨ã¯ï¼ã·ã³ãã«ãªè¨­è¨ãããã¦
+ãããã¨ãæå³ãã¦ããï¼ä¿¡é ¼æ§åä¸ã«ãã¤ãªããï¼ããã«ï¼æè¡è
+æè²ã®ã
+ãã®ææã¨ããè¦³ç¹ãããï¼ã½ã¼ã¹ã³ã¼ããèª­ã¿ããããã¨ã¯éè¦ã¨ãªãï¼
+
+æ¹é ãããããã¨ã¯ï¼ã·ã¹ãã æ¯ã®è¦æ±ã«ãããããã¥ã¼ãã³ã°ãè¡ãããã
+ãã¨ãæå³ãã¦ããï¼æ¦ãåããåã®éçºãæ¯æ´ããæ§è³ªã§ããï¼ã¾ãï¼ASPã«ã¼
+ãã«ãåºç¤ã¨ãã¦TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã·ãªã¼ãºãéçºãã¦ããä¸ã§ãï¼æ¹é 
+ãããããã¨ã¯å¿
+é ã®æ¡ä»¶ã§ããï¼
+
+(2) æ°ããã¿ã¼ã²ããã·ã¹ãã ã¸ã®ãã¼ãã£ã³ã°ãå®¹æãªæ§é ã¨ãã
+
+çµè¾¼ã¿ã·ã¹ãã ã«ã¯å¤æ§ãªãã¼ãã¦ã§ã¢ãç¨ããããããï¼ãããã«å®¹æã«ãã¼
+ãã£ã³ã°ã§ãããã¨ã¯éè¦ãªæ§è³ªã§ããï¼ãã®ããã«ï¼å®è¡æ§è½ã«é
+æ
+®ãã¤ã¤
+ãã¼ãã¦ã§ã¢ãæ½è±¡åãï¼ã¿ã¼ã²ããã·ã¹ãã ã«ä¾å­ããé¨åï¼ã¿ã¼ã²ããä¾
+å­é¨ï¼ã¨ä¾å­ããªãé¨åï¼ã¿ã¼ã²ããéä¾å­é¨ï¼ãæç¢ºã«åé¢ããï¼ã¾ãï¼é
+çºç°å¢ï¼ã³ã³ãã¤ã©ãªã©ï¼ã«ä¾å­ããé¨åãæç¢ºã«åé¢ããï¼
+
+(3) æ¤è¨¼ãå®¹æãªæ§é ã¨ãã
+
+ä¿¡é ¼æ§ãç¢ºä¿ããããã«ï¼æ¤è¨¼ãå®¹æãªæ§é ã¨ããï¼
+
+å
+·ä½çã«ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ã®ã»ã¨ãã©å
+¨ä½ãå²è¾¼ã¿ç¦æ­¢ã§å®è¡ãããã¨ã¨ãï¼
+ãµã¼ãã¹ã³ã¼ã«ã®å¦çéä¸­ã§å²è¾¼ã¿ãè¨±å¯ããªãï¼ãã®æ§é ã¯ï¼èª­ã¿ãããæ¹
+é ããããã½ã¼ã¹ã³ã¼ãã«ããããã«ãæå¹ã§ããï¼ããã«ããå²è¾¼ã¿å¿ç­æ§
+ãç ç²ã«ãªããï¼ããã«ãã£ã¦åé¡ãçããã¢ããªã±ã¼ã·ã§ã³ã¯å°æ°ã§ããï¼
+ãããããªããã®ã¨èããï¼
+
+ã¾ãï¼æ¡ä»¶ã³ã³ãã¤ã«ç­ã«ããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã§ããç®æãå¢ããã¨ï¼
+ç´°ããªæé©åãã§ããä¸æ¹ã§ï¼æ¤è¨¼ãã¹ãçµåããå¢ãããã¨ããï¼ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ã§ããç®æã¯å¿
+è¦æä½éã¨ããï¼
+
+(4) å®è¡æ§è½ã¨ã¡ã¢ãªä½¿ç¨éã«é
+æ
+®ãã
+
+ä¸è¨ã®æ¹éãæºãããä¸ã§ï¼é«ãå®è¡æ§è½ã¨å°ããã¡ã¢ãªä½¿ç¨éãéæã§ãã
+ãããªå®è£
+ãè¡ãï¼å®è¡æ§è½ãåä¸ãããéã«ã¯ï¼å¹³åæ§è½ã®åä¸ãããï¼æ
+æªææ§è½ã®åä¸ãéè¦ããï¼
+
+ã½ã¼ã¹ã³ã¼ãã®èª­ã¿ããããéè¦ããã¨è¨ã£ã¦ãï¼å®è¡æ§è½ã®æªãã¢ã«ã´ãªãº
+ã ãå®æã«æ¡ç¨ãããã¨ã¯ããï¼é«ãå®è¡æ§è½ãéæã§ããã¢ã«ã´ãªãºã ãç¨
+ããï¼ãã ãï¼æ°ããã¿ã¼ã²ããã·ã¹ãã ã¸ã®ãã¼ãã£ã³ã°ãå®¹æã«ãããã
+ã«å¤§é¨åãCè¨èªã§å®è£
+ãã¦ããï¼ãã¹ã¦ãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«æ¯
+ã¹ã¦å®è¡æ§è½ãè½ã¡ãã®ã¯ãããããªãï¼
+
+ã¡ã¢ãªä½¿ç¨éã«ã¤ãã¦ã¯ï¼RAMã®ä½¿ç¨éãåæ¸ãããã¨ã«éç¹ãç½®ããè¨­è¨ãè¡
+ããï¼ä¸è¨ã®æ¹éããã³å®è¡æ§è½ã¨ã®ãã¬ã¼ããªããèæ
+®ãï¼ããããã¾ã§ã®
+åæ¸ã¯è¡ããªãï¼
+
+(5) ã¹ã±ã¼ã©ããªãã£ã«é
+æ
+®ãã
+
+æ§ã
+ãªè¦æ¨¡ã®ã·ã¹ãã ã«é©ç¨ã§ããã¹ã±ã¼ã©ããªãã£ããã£ãæ§é ã¨ããï¼ç¹
+ã«ï¼å°è¦æ¨¡ãªã·ã¹ãã ã«é©ç¨ããéã«ï¼ä½¿ç¨ããªãæ©è½ãã«ã¼ãã«ãæã£ã¦ã
+ããã¨ã«ããã¡ã¢ãªä½¿ç¨éã®å¢å ãæå°éã«ãªãããã«é
+æ
+®ããï¼
+
+å
+·ä½çã«ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã1ã¤ã®ã­ã¼ãã¢ã¸ã¥ã¼ã«ã«ãªã³ã¯ã
+ãæ¹æ³ï¼1ãªã³ã¯ã¢ãã«ï¼ãæ³å®ãï¼ã«ã¼ãã«ãé¢æ°åä½ã§ã©ã¤ãã©ãªåãã¦ï¼
+ä½¿ç¨ããé¢æ°ã®ã¿ããªã³ã¯ã§ããæ§é ã¨ããï¼ããã¯ä¸ç¨®ã®ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ã§ãããï¼ãã®æ¹æ³ã¯ï¼æ¡ä»¶ã³ã³ãã¤ã«ã«ããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+ã¨ã¯éãï¼æ¤è¨¼å·¥æ°ã«ä¸ããå½±é¿ãå°ããï¼
+
+ã¾ãï¼åºå®çã«ä½¿ç¨ããRAMé åãæ¸ããï¼ã¹ã¿ãã¯ã«ç½®ããæ
+å ±ã¯ã§ããéã
+ã¹ã¿ãã¯ä¸ã«ç½®ãï¼
+
+
+âã·ã¹ãã ç¶æ
+ã¨ã³ã³ãã­ã¹ãã®å®è£
+
+
+ãã®ç« ã§ã¯ï¼ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ãã®ã2.5 ã·ã¹ãã ç¶æ
+ã¨ã³
+ã³ãã­ã¹ããã®ç¯ã«è¦å®ããã¦ããã·ã¹ãã ç¶æ
+ã¨ã³ã³ãã­ã¹ãã®å®è£
+æ¹æ³ã«
+ã¤ãã¦è¨è¿°ããï¼
+
+âã«ã¼ãã«åä½ç¶æ
+ã¨éåä½ç¶æ
+
+
+ã«ã¼ãã«ã®åä½ç¶æ
+ãç®¡çããããã«ï¼ã«ã¼ãã«åä½ç¶æ
+ãã©ã°ï¼kerflgï¼ã
+ç¨æããï¼kerflgã¯ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§falseï¼ï¼0ï¼ã«åæåããï¼
+ã¾ãï¼ã«ã¼ãã«åä½ã®éå§æã«trueã«ãï¼ã«ã¼ãã«åä½ã®çµäºæã«falseã«ããï¼
+
+----------------------------------------
+bool_t	kerflg = false;
+----------------------------------------
+
+kerflgã¯ï¼sns_kerã§åç
+§ããï¼ã«ã¼ãã«éåä½ç¶æ
+ã§sns_kerä»¥å¤ã®ãµã¼ãã¹
+ã³ã¼ã«ãå¼ã³åºããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãããï¼ä»ã®ãµã¼ãã¹ã³ã¼
+ã«ã§ã¯kerflgãåç
+§ããªãï¼
+
+âã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨éã¿ã¹ã¯ã³ã³ãã­ã¹ã
+
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®åæãã¯ï¼ã¿ã¼ã²ãããã¼ãã¦ã§
+ã¢ããã³ã¿ã¼ã²ããä¾å­é¨ã«å§ã­ãï¼ã¾ãï¼ã©ã¡ãã®ã³ã³ãã­ã¹ãã§å®è¡ä¸­ã§
+ããããå¤å¥ããé¢æ°ï¼sense_contextï¼ãï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æãããã¨
+ã¨ããï¼
+
+âå
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨å
+¨å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+
+å
+¨å²è¾¼ã¿ã­ãã¯ãã©ã°ã®ç®¡çã¯ã¿ã¼ã²ããä¾å­é¨ã«å§ã­ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+
+ã«é·ç§»ããããã¯ã­ï¼SIL_LOC_INTï¼ã¨ï¼å
+ã®ç¶æ
+ã«æ»ããã¯ã­ï¼SIL_UNL_INTï¼
+ã¯ï¼SILã®ã¿ã¼ã²ããä¾å­é¨ã§ç¨æãããã¨ã¨ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ãã
+ãå¦ããå¤å¥ããæ©è½ã¯ï¼å¿
+è¦ããªãããã«ç¨æãã¦ããªãï¼
+
+å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§sns_kerã¨ext_kerä»¥å¤ã®ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããå ´
+åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãããï¼ãµã¼ãã¹ã³ã¼ã«ä¸­ã§å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+
+ã§ãããã¨ãå¤å¥ããå¿
+è¦ã¯ãªãï¼
+
+âCPUã­ãã¯ç¶æ
+ã¨CPUã­ãã¯è§£é¤ç¶æ
+
+
+CPUã­ãã¯ãã©ã°ã®ç®¡çã¯ã¿ã¼ã²ããä¾å­é¨ã«å§ã­ï¼CPUã­ãã¯ç¶æ
+ã«é·ç§»ãã
+ãé¢æ°ï¼t_lock_cpuï¼i_lock_cpuï¼x_lock_cpuï¼ã¨ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã«é·ç§»
+ãããé¢æ°ï¼t_unlock_cpuï¼i_unlock_cpuï¼x_unlock_cpuï¼ã¯ï¼ã¿ã¼ã²ããä¾
+å­é¨ã§ç¨æãããã¨ã¨ããï¼ã¾ãï¼CPUã­ãã¯ç¶æ
+ã§ãããå¦ããå¤å¥ããé¢æ°
+ï¼t_sense_lockï¼i_sense_lockï¼x_sense_lockï¼ãï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æ
+ãããã¨ã¨ããï¼
+
+âå²è¾¼ã¿åªå
+åº¦ãã¹ã¯
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®ç®¡çã¯ã¿ã¼ã²ããä¾å­é¨ã«å§ã­ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã
+è¨­å®ããé¢æ°ï¼t_set_ipmï¼i_set_ipmï¼x_set_ipmï¼ã¨ï¼ãããåç
+§ããé¢æ°
+ï¼t_get_ipmï¼i_get_ipmï¼x_get_ipmï¼ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æãããã¨ã¨
+ããï¼
+
+ãã ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®å®è¡ä¸­ã«ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ã
+ããã¨ãå¹ççã«å¤æ­ããããã«ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã¨
+ãç¤ºããã©ã°ï¼ipmflgï¼ãç¨æããï¼
+
+ipmflgã¯ï¼ã«ã¼ãã«ã®åæåæã«falseã«åæåããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§
+ã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã«ãªããã¨ã¯ãªãããï¼ãã®ãã©ã°ãç¨ã
+ãå¿
+è¦ã¯ãªãï¼ãã©ã°ã®æ´æ°ãè¡ããªãï¼
+
+----------------------------------------
+bool_t	ipmflg;
+----------------------------------------
+
+âãã£ã¹ãããç¦æ­¢ç¶æ
+ã¨ãã£ã¹ãããè¨±å¯ç¶æ
+
+
+ãã£ã¹ãããç¦æ­¢ãã©ã°ãç®¡çããããã«ï¼ãã©ã°ï¼disdspï¼ãç¨æããï¼
+disdspã¯ï¼ã«ã¼ãã«ã®åæåæã«falseã«åæåããï¼
+
+----------------------------------------
+bool_t	disdsp;
+----------------------------------------
+
+â» disdspã§ã¯ãªãï¼ãããè«çåè»¢ããenadspãç¨æããæ¹ãï¼ipmflgã
+dspflgã¨ã®æ´åæ§ã®è¦³ç¹ããã¯è¯ãã£ãï¼
+
+âãã£ã¹ãããä¿çç¶æ
+
+
+ãã£ã¹ãããä¿çç¶æ
+ã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®å®è¡ä¸­ï¼CPUã­ãã¯ç¶æ
+ï¼å²
+è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§ãªãç¶æ
+ï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ã®ããããï¼ã¾
+ãã¯ï¼ããããéãªã£ãç¶æ
+ï¼ã§ããï¼
+
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãã®å®è¡ä¸­ã«ï¼ãã£ã¹ãããä¿çç¶æ
+ã§ãªããã¨ï¼ã¤ã¾ãï¼
+ãã£ã¹ãããã§ããç¶æ
+ã§ãããã¨ï¼ãå¹ççã«å¤å¥ããããã«ï¼å²è¾¼ã¿åªå
+
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããï¼ãã£ã¹ãããç¦æ­¢
+ç¶æ
+ã§ãªãï¼ãã¨ãç¤ºããã©ã°ï¼dspflgï¼ãç¨æããï¼ããªãã¡ï¼å¸¸ã«
+ãdspflg == (ipmflg && !disdsp)ãã«è¨­å®ããï¼
+
+dspflgã¯ï¼ã«ã¼ãã«ã®åæåæã«trueã«åæåããï¼ã¾ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹
+ãã«ããã¦å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤ãå¤æ´ããããï¼å²è¾¼ã¿ç¦æ­¢ãã©ã°ãå¤æ´
+ãããåº¦ã«æ´æ°ããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ã¯ï¼å¸¸ã«ãã£ã¹ãããä¿çç¶æ
+
+ã§ããããï¼ãã®ãã©ã°ãç¨ããå¿
+è¦ã¯ãªãï¼ãã©ã°ã®æ´æ°ãè¡ããªãï¼
+
+----------------------------------------
+bool_t	dspflg;
+----------------------------------------
+
+
+âã¿ã¹ã¯ç¶æ
+ã®ç®¡çã¨ã¹ã±ã¸ã¥ã¼ãªã³ã°
+	
+âã¿ã¹ã¯ç¶æ
+ã®ç®¡ç
+
+ã¿ã¹ã¯ç®¡çãã­ãã¯ï¼TCBï¼ä¸­ã®ã¿ã¹ã¯ç¶æ
+ãç®¡çãããã£ã¼ã«ãï¼tstatï¼ã§
+ã¯ï¼ã¿ã¹ã¯ç¶æ
+ãæ¬¡ã®ãããã§ããããç®¡çããï¼
+
+ãã»å®è¡ã§ããç¶æ
+
+ãã»ä¼æ­¢ç¶æ
+
+ãã»ï¼ç­ç¾©ã®ï¼å¾
+ã¡ç¶æ
+
+ãã»å¼·å¶å¾
+ã¡ç¶æ
+
+ãã»äºéå¾
+ã¡ç¶æ
+
+
+ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã®æã«ï¼å®è¡ç¶æ
+ã§ãããå®è¡å¯è½ç¶æ
+ã§ãããã¯ï¼
+ãã®ãã£ã¼ã«ãã§ã¯ç®¡çããï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ã®TCBãæããã¤ã³ã¿å¤æ°
+ï¼p_runtskï¼ã«ãã£ã¦å¤å¥ããï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ããªãå ´åã¯ï¼p_runtskã¯
+NULLã«ããï¼
+
+----------------------------------------
+TCB	*p_runtsk;
+----------------------------------------
+
+p_runtskã¯ï¼ã«ã¼ãã«ã®åæåæã«NULLã«åæåãï¼ãã£ã¹ãããã£ã«ããã¦
+æ´æ°ããï¼ãµã¼ãã¹ã³ã¼ã«ã®å¦çã®ä¸­ã§èªã¿ã¹ã¯ã«é¢ããæ
+å ±ãåç
+§ããå ´å
+ã¯ï¼p_runtskãç¨ããï¼
+
+âã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©
+
+ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©ã¯ï¼å®è¡ã§ããç¶æ
+ã®ã¿ã¹ã¯ã®ä¸­ããï¼æãåªå
+é ä½ãé«
+ãã¿ã¹ã¯ï¼ãããï¼æé«åªå
+é ä½ã®ã¿ã¹ã¯ã¨å¼ã¶ï¼ãæ±ºå®ãï¼ãã®ã¿ã¹ã¯ã®
+TCBãæããã¤ã³ã¿å¤æ°ï¼p_schedtskï¼ãè¨­å®ããï¼
+
+----------------------------------------
+TCB	*p_schedtsk;
+----------------------------------------
+
+ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©ã«å¯¾ãã¦ã¯ï¼ã©ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã§ããããç¥ã
+ããå¿
+è¦ãããï¼ãã®ããï¼ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã©ã¯ï¼æ¬¡ã®2ã¤ã®é¢æ°ãç¨æããï¼
+
+ãã»ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«é·ç§»ãããã¨ãç¥ãããé¢æ°ï¼make_runnableï¼
+ãã»ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ããä»ã®ç¶æ
+ã¸é·ç§»ãããã¨ãç¥ãããé¢æ°
+	ï¼make_non_runnableï¼
+
+ã¾ãï¼å¦çã®å¹çåã®ããã«ï¼ä¸ã®2ã¤ã®é¢æ°ãç¨ããã«ã¬ãã£ã­ã¥ã¼ãç´æ¥æ
+ä½ãã¦ã¿ã¹ã¯ã¹ã±ã¸ã¥ã¼ã«ãè¡ãé¢æ°ã¨ãã¦ï¼æ¬¡ã®2ã¤ã®é¢æ°ãç¨æããï¼
+
+ãã»ã¿ã¹ã¯ã®åªå
+åº¦ã®å¤æ´ï¼change_priorityï¼
+ãã»ã¬ãã£ã­ã¥ã¼ã®åè»¢ï¼rotate_ready_queueï¼
+
+
+âã¿ã¹ã¯ãã£ã¹ãããå¦çã®å®è£
+
+
+âã¿ã¹ã¯ãã£ã¹ãããå¦çã®å¿
+è¦ãªã¿ã¤ãã³ã°
+
+ã¿ã¹ã¯ãã£ã¹ãããã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ï¼p_runtskï¼ã¨æé«åªå
+é ä½ã®ã¿ã¹
+ã¯ï¼p_schedtskï¼ãä¸è´ãã¦ãããï¼ãã£ã¹ãããä¿çç¶æ
+ã§ãªãå ´åã«è¡ãï¼
+ãã®ãã¨ããï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãè¡ãå¿
+è¦ãããã®ã¯ï¼æ¬¡ã®3ã¤ã®å ´å
+ã§ããï¼
+
+(1) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã§ãªããªã
+
+èªã¿ã¹ã¯ãåºç¾©ã®å¾
+ã¡ç¶æ
+ã«é·ç§»ããããµã¼ãã¹ã³ã¼ã«ãï¼èªã¿ã¹ã¯ãçµäºã
+ãããµã¼ãã¹ã³ã¼ã«ã«ããã¦ï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãè¡ãå¿
+è¦ãããï¼
+
+(2) æé«åªå
+é ä½ã®ã¿ã¹ã¯ãå¤åãã
+
+ã¿ã¹ã¯ã®èµ·åï¼ã¿ã¹ã¯ã®å¾
+ã¡è§£é¤ï¼ã¿ã¹ã¯ã®å¼·å¶å¾
+ã¡ããã®åéï¼ã¿ã¹ã¯ã®åª
+å
+åº¦ã®å¤æ´ï¼ã¿ã¹ã¯ã®åªå
+é ä½ã®åè»¢ãè¡ããµã¼ãã¹ã³ã¼ã«ã«ããã¦ï¼æé«åª
+å
+é ä½ã®ã¿ã¹ã¯ãå¤åãï¼ãã£ã¹ãããä¿çç¶æ
+ã§ãªãå ´åã«ã¯ï¼ã¿ã¹ã¯ãã£
+ã¹ãããå¦çãè¡ãå¿
+è¦ãããï¼
+
+(3) ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ããã
+
+ãã£ã¹ãããä¿çç¶æ
+ã¨ã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®å®è¡ä¸­ï¼CPUã­ãã¯ç¶æ
+ï¼
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§ãªãç¶æ
+ï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ã®ç·ç§°ã§ãã
+ããï¼ãããã®ç¶æ
+ã®ãããããé·ç§»ããã¿ã¤ãã³ã°ã§ï¼ã¿ã¹ã¯ãã£ã¹ããã
+å¦çãè¡ãå¿
+è¦ãããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ã¿ã¤ãã³ã°ãè©²å½ããï¼
+
+(3-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã¿ã¹ã¯ã³ã³ãã­ã¹ãã«é·ç§»ãã
+
+å²è¾¼ã¿ãã³ãã©ã¾ãã¯CPUä¾å¤ãã³ãã©ããã¿ã¹ã¯ã«ãªã¿ã¼ã³ããéã«ï¼ã¿ã¹ã¯
+ãã£ã¹ãããå¦çãè¡ãå¿
+è¦ãããï¼
+
+(3-2) CPUã­ãã¯ç¶æ
+ãè§£é¤ããã
+
+CPUã­ãã¯ç¶æ
+ã«ããã¦ã¯ï¼ä¸è¨ã®(1)ã(2)ã®ç¶æ³ãä½ãåºããµã¼ãã¹ã³ã¼ã«ã
+å¼ã³åºããã¨ãã§ããªãï¼ãã®ããï¼CPUã­ãã¯ç¶æ
+ã®è§£é¤æã«ã¯ï¼ã¿ã¹ã¯ãã£
+ã¹ãããå¦çãè¡ãå¿
+è¦ããªãï¼
+
+(3-3) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ããã
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´ï¼chg_ipmï¼ã«ããå²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ãã
+ãå ´åã«ï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãè¡ãå¿
+è¦ãããï¼
+
+ã¾ãï¼ã¿ã¹ã¯ã®çµäºï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ï¼å²è¾¼ã¿ãã³ã
+ã©ããã®ãªã¿ã¼ã³ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ããã®ãªã¿ã¼ã³ï¼ã¿ã¤ã ã¤ãã³ã
+ãã³ãã©ããã®ãªã¿ã¼ã³ï¼CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³ã«ãã£ã¦ï¼å²è¾¼ã¿åª
+å
+åº¦ãã¹ã¯ãå
+¨è§£é¤ãããå ´åãããï¼ãã®å ´åã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããå¦
+çãè¡ãå¿
+è¦ãããï¼ãã ãï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ããã³ã¿ã¤ã ã¤ãã³ã
+ãã³ãã©ããã®ãªã¿ã¼ã³ã«ã¤ãã¦ã¯ï¼ãªã¿ã¼ã³å¾ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ã
+ãï¼ã¿ã¹ã¯ãã£ã¹ãããä¿çç¶æ
+ãç¶ç¶ãããã¨ããï¼ã¿ã¹ã¯ãã£ã¹ãããå¦
+çãè¡ãå¿
+è¦ããªãï¼
+
+(3-4) ãã£ã¹ãããè¨±å¯ç¶æ
+ã«ãªã
+
+ãã£ã¹ãããã®è¨±å¯ï¼ena_dspï¼ã«ããã¦ï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãè¡ãå¿
+è¦
+ãããï¼
+
+ã¾ãï¼ã¿ã¹ã¯ã®çµäºã¨ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ã«ãã£ã¦ï¼ãã£
+ã¹ãããè¨±å¯ç¶æ
+ã«ãªãå ´åãããï¼ãã®å ´åã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããå¦ç
+ãè¡ãå¿
+è¦ãããï¼
+
+ä»¥ä¸ã«å ãã¦ï¼ã«ã¼ãã«ã®åä½éå§æã«ãï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãå¼ã³åº
+ãï¼
+
+âã¿ã¹ã¯ãã£ã¹ãããã£ã®æ§é 
+
+ã¿ã¹ã¯ãã£ã¹ãããã£ã®ä¸»ãªæ©è½ã¯ï¼åæãåã®ã¿ã¹ã¯ã®ã³ã³ãã­ã¹ãï¼ãã­
+ã»ããµã®æ±ç¨ã¬ã¸ã¹ã¿ç­ï¼ãã¡ã¢ãªä¸ã«ä¿å­ãï¼åæãå¾ã®ã¿ã¹ã¯ã®ã³ã³ãã­
+ã¹ããã¡ã¢ãªä¸ããå¾©å¸°ãããã¨ã§ããï¼ããã§ï¼ä¿å­ï¼å¾©å¸°ããªããã°ãªã
+ãªãã¬ã¸ã¹ã¿ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã£ãå®è¡ãããç¶æ³ã«ãã£ã¦ï¼æ¬¡ã®ãã
+ãªéããããï¼
+
+ã»ã¿ã¹ã¯ãå²è¾¼ã¿ï¼ã¾ãã¯ï¼CPUä¾å¤ï¼ã«ããããªã¨ã³ãããããå ´åã«ã¯ï¼ã
+ãã¹ã¦ã®ã¬ã¸ã¹ã¿ãä¿å­ããªããã°ãªããªãï¼ã¾ãï¼ãã®ç¶æ
+ããå®è¡åéã
+ããå ´åã«ã¯ï¼ãã¹ã¦ã®ã¬ã¸ã¹ã¿ãå¾©å¸°ããªããã°ãªããªãï¼
+
+ã»ã¿ã¹ã¯ãèªçºçã«ã¿ã¹ã¯ãã£ã¹ãããã£ãå¼ã³åºãå ´åã«ã¯ï¼ã¹ã¯ã©ããã¬
+ãã¸ã¹ã¿ï¼caller saved registerï¼ä»¥å¤ã®ã¬ã¸ã¹ã¿ãä¿å­ããã°ããï¼ã¾ãï¼
+ããã®ç¶æ
+ããå®è¡åéããå ´åã«ã¯ï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ä»¥å¤ã®ã¬ã¸ã¹ã¿ã
+ãå¾©å¸°ããã°ããï¼
+
+ã»ã¿ã¹ã¯ãçµäºããå ´åã«ã¯ï¼ã©ã®ã¬ã¸ã¹ã¿ãä¿å­ããå¿
+è¦ããªãï¼
+
+ã»ã¿ã¹ã¯ãå®è¡éå§ããå ´åã«ã¯ï¼ã©ã®ã¬ã¸ã¹ã¿ãå¾©å¸°ããå¿
+è¦ããªãï¼
+
+ããã§ï¼ããããã®ç¶æ³ã§å¿
+è¦æä½éã®ã¬ã¸ã¹ã¿ã®ã¿ãä¿å­ï¼å¾©å¸°ããããã«ï¼
+ã¿ã¹ã¯ãã£ã¹ãããå¦çãï¼(a) ã³ã³ãã­ã¹ãã®ä¿å­å¦çï¼(b) å®è¡ããã¿ã¹
+ã¯ã®é¸æå¦çï¼(c) ã³ã³ãã­ã¹ãã®å¾©å¸°å¦çã®3ã¤ã®ã¹ãããã§æ§æãï¼(a)ã¨
+(c)ã®ã¹ãããã«ã¤ãã¦ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãããã£ãå®è¡ãããç¶æ³æ¯ã«ç¨æã
+ãï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®åå¦çãè¡ãã«ã¼ãã³ãç¨æããï¼
+
+(a) ã³ã³ãã­ã¹ãã®ä¿å­å¦ç
+	(a-1) ã¿ã¹ã¯ãèªçºçã«å¼ã³åºããå ´åã®ä¿å­å¦çï¼dispatchï¼
+	(a-2) å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¼ã³åºãããå ´åã®ä¿å­å¦çï¼ret_intï¼
+	(a-3) CPUä¾å¤ãã³ãã©ã®åºå£ã§å¼ã³åºãããå ´åã®ä¿å­å¦çï¼ret_excï¼
+	(a-4) ã¿ã¹ã¯ã®çµäºæã®å¦çï¼exit_and_dispatchï¼
+	(a-5) ã«ã¼ãã«ã®åä½éå§æã®å¦çï¼start_dispatchï¼
+(b) å®è¡ããã¿ã¹ã¯ã®é¸æï¼ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼
+(c) ã³ã³ãã­ã¹ãã®å¾©å¸°å¦ç
+	(c-1) ã¿ã¹ã¯ãèªçºçã«å¼ã³åºããå ´åã®å¾©å¸°å¦çï¼dispatch_rï¼
+	(c-2) å²è¾¼ã¿ãã³ãã©ã®åºå£ã§å¼ã³åºãããå ´åã®å¾©å¸°å¦çï¼ret_int_rï¼
+	(c-3) CPUä¾å¤ãã³ãã©ã®åºå£ã§å¼ã³åºãããå ´åã®å¾©å¸°å¦çï¼ret_exc_rï¼
+	(c-4) ã¿ã¹ã¯ã®å®è¡éå§æã®å¦çï¼start_rï¼
+
+âã¿ã¹ã¯ã®çµäºæã®ã¿ã¹ã¯ãã£ã¹ããã
+
+ext_tskã«ããã¿ã¹ã¯ã®çµäºæã«ï¼èµ·åè¦æ±ãã­ã¥ã¼ã¤ã³ã°ããã¦ããã¨ï¼åã
+ã¿ã¹ã¯ãããã«èµ·åãããï¼ãã®å ´åï¼ã¿ã¹ã¯ãã£ã¹ãããã£ã«ã¨ã£ã¦ã¯ï¼å
+ãã¿ã¹ã¯ã¸ã®åæãã«è¦ãï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãã¹ã­ããå¯è½ã«æãã
+ãï¼å®éã«ã¯ï¼åãã¿ã¹ã¯ã®ç°ãªãã¤ã³ã¹ã¿ã³ã¹ã¸ã®åæãã§ããããï¼ã¿ã¹
+ã¯ãã£ã¹ãããå¦çãã¹ã­ãããã¦ã¯ãªããªãï¼
+
+ä¸è¿°ã®ã¿ã¹ã¯ãã£ã¹ãããã£ã®æ§é ã«ããï¼ã¿ã¹ã¯ã®çµäºæã«ã¯ï¼ããå°ç¨ã®
+å¦çï¼exit_and_dispatchï¼ãå¼ã³åºãï¼ãã®å¦çã§ã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãå
+ç
+§ããï¼ã³ã³ãã­ã¹ãã®ä¿å­ãè¡ããã«ï¼æ¬¡ã«äºé 
+ããã¿ã¹ã¯ã®é¸æå¦çãè¡
+ãããï¼ã¿ã¹ã¯ãã£ã¹ãããå¦çãã¹ã­ããããããã¨ã¯ãªãï¼
+
+ãªãï¼ter_tskã«ãã£ã¦å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãçµäºããããã¨ã¯ã§ããªãããï¼
+ter_tskã§ã¯ãã®ãããªç¶æ³ã¯èµ·ãããªãï¼
+
+âreqflgã®å°å
+¥çç±
+
+å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ï¼ã¿ã¹ã¯ãã£ã¹ãããã¾ãã¯ã¿
+ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãè¦æ±ãããã¨ãç¤ºããã©ã°ã¨ãã¦ï¼reqflg
+ãç¨æãã¦ããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«ããã¦ï¼ã¿ã¹ã¯ãã£ã¹ããããå¿
+è¦
+ã«ãªã£ãå ´åãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦ã«ãªã£ãå ´åã«ã¯ï¼
+ãã®ãã©ã°ãã»ããããï¼
+
+reqflgãå°å
+¥ããçç±ã¯ï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã®å
+¸å
+çãªã±ã¼ã¹ï¼ã¿ã¹ã¯ãã£ã¹ããããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦
+ãªãå ´åï¼ãé«éåããããã§ããï¼ã¾ãï¼ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼
+ã®ã¢ã¤ãã«å¦çãé«éåã§ããï¼
+
+ãããï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çå
+¨ä½ã®ãªã¼ãããããè
+ããã¨ï¼reqflgã«ããé«éåã®å¹æã¯ããã»ã©å¤§ãããªããã®ã¨æãããï¼
+
+
+âã¿ã¹ã¯ä¾å¤å¦çæ©è½ã®å®è£
+
+
+âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§æ¡ä»¶ã¨ã·ã¹ãã ç¶æ
+ï¼ä»æ§ã®ç¢ºèªï¼
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã¯ï¼æ¬¡ã®6ã¤ã®æ¡ä»¶ãæã£ãå ´åã«å®è¡ãéå§ãããï¼
+
+ãã»ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ãã
+ãã»ä¿çä¾å¤è¦å ã0ã§ãªã
+ãã»ã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ãã
+ãã»ã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãã
+ãã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãã
+ãã»CPUã­ãã¯ç¶æ
+ã§ãªã
+
+ã¾ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
+ã«é¢ã
+ãä»æ§ã¯æ¬¡ã®éãã§ããï¼
+
+				CPUã­ãã¯		å²è¾¼ã¿åªå
+åº¦	ãã£ã¹ããã
+				ãã©ã°			ãã¹ã¯			ç¦æ­¢ãã©ã°
+------------------------------------------------------------
+ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã
+å®è¡éå§æ¡ä»¶	è§£é¤			å
+¨è§£é¤			ä»»æ
+å®è¡éå§æå¦ç	ãã®ã¾ã¾		ãã®ã¾ã¾		ãã®ã¾ã¾
+ãªã¿ã¼ã³å		ååè§£é¤(*1)	ååå
+¨è§£é¤(*1)	å
+ã«æ»ã
+ãªã¿ã¼ã³æå¦ç	è§£é¤ãã		å
+¨è§£é¤ãã		å
+ã«æ»ã(*4)
+------------------------------------------------------------
+
+âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãå¦ç
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãå¦çã¯ï¼æ¬¡ã®æµãã¨ãªãï¼ãã®é¢æ°ã¯ï¼
+CPUã­ãã¯ç¶æ
+ã§å¼ã³åºããã¨ãæ³å®ãã¦ããï¼
+
+----------------------------------------
+void
+call_texrtn(void)
+{
+	TEXPTN	texptn;
+
+	texptn = p_runtsk->texptn;
+	p_runtsk->texptn = 0U;
+
+	ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãã
+	ãã£ã¹ãããç¦æ­¢ãã©ã°ãä¿å­ãã
+
+	CPUã­ãã¯è§£é¤ç¶æ
+ã«ãã
+	ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºã
+	CPUã­ãã¯ç¶æ
+ã«ãã
+
+	å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã«ãã
+	ãã£ã¹ãããç¦æ­¢ãã©ã°ãå
+ã«æ»ã
+	ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãã â¦ (*2)
+
+	å¿
+è¦ãªå ´åã«ã¯ãã£ã¹ããããè¡ã â¦ (*1)
+
+	ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ãã
+}
+----------------------------------------
+
+(*1)ã«ããã¦ï¼å¿
+è¦ãªå ´åã«ã¿ã¹ã¯åæããè¡ãã®ã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã
+å
+¨è§£é¤ã«ãï¼ãã£ã¹ãããç¦æ­¢ãã©ã°ãå
+ã«æ»ããçµæï¼ãã£ã¹ãããä¿çç¶
+æ
+ãè§£é¤ããï¼ãã£ã¹ããããå¿
+è¦ã«ãªãå ´åãããããã§ããï¼
+
+ã¾ãï¼ãã£ã¹ããããè¡ãåã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãã(*2)çç±ã«ã¤ã
+ã¦ã¯ï¼ãcall_texrtnããdispatchãå¼ã³åºãå¦çã«ã¤ãã¦ãã®ç¯ãåç
+§ããã
+ã¨ï¼
+
+âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦ãªã¿ã¤ãã³ã°
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã¯ï¼åè¿°ã®6ã¤ã®æ¡ä»¶ãæã£ãå ´åã«å®è¡éå§ãã¹ãã§
+ããããï¼6ã¤ã®æ¡ä»¶ã®ãããããæ°ãã«æºããããã«ãªãå¯è½æ§ã®ããã¿ã¤ã
+ã³ã°ã§ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦ã«ãªãï¼
+
+ä»¥ä¸ã§ã¯ï¼6ã¤ã®æ¡ä»¶ã®ãããããæ°ãã«æºããããã«ãªãã¿ã¤ãã³ã°ã«ã¤ãã¦
+æ¤è¨ããï¼
+
+(1) ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ãã
+
+ã¿ã¹ã¯ä¾å¤å¦çã®è¨±å¯ï¼ena_texï¼ã«ãã£ã¦ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ãªãï¼
+ã¾ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ã«ãã£ã¦ãï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±
+å¯ç¶æ
+ã«ãªãï¼
+
+(2) ä¿çä¾å¤è¦å ã0ã§ãªã
+
+ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±ï¼ras_texï¼iras_texï¼ã«ãã£ã¦ï¼ã¿ã¹ã¯ã®ä¿çä¾å¤è¦å 
+ã0ã§ãªããªãï¼ãã ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±
+ï¼iras_texï¼ã§ã¯ï¼(4)ã®æ¡ä»¶ãæºããããªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®
+å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+(3) ã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ãã
+
+ã¿ã¹ã¯ãã£ã¹ãããã£ã«ããï¼åæãå¾ã®ã¿ã¹ã¯ãå®è¡ç¶æ
+ã«ãªãï¼
+
+(4) ã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãã
+
+å²è¾¼ã¿ãã³ãã©ããã³CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³ã«ãã£ã¦ï¼ã¿ã¹ã¯ã³ã³ã
+ã­ã¹ãã«æ»ãå ´åãããï¼
+
+(5) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãã
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´ï¼chg_ipmï¼ã«ãã£ã¦ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤
+ã«ãªãï¼
+
+ã¾ãï¼ã¿ã¹ã¯ã®çµäºï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ï¼å²è¾¼ã¿ãã³ã
+ã©ããã®ãªã¿ã¼ã³ï¼CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³ã«ãã£ã¦ãï¼å²è¾¼ã¿åªå
+åº¦
+ãã¹ã¯ãå
+¨è§£é¤ãããå ´åãããï¼
+
+ãã ãï¼ã¿ã¹ã¯ã®çµäºæã«ã¤ãã¦ã¯ï¼ã¿ã¹ã¯ã®çµäºå¾ã¯å¥ã®ã¿ã¹ã¯ã¸åãæã
+ãããï¼åãæãã£ãå¾ã®ã¿ã¹ã¯ã«å¯¾ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§
+ãï¼ã¿ã¹ã¯ãã£ã¹ãããå¾ã®å¦çã§è¡ãã°ããï¼
+
+(6) CPUã­ãã¯ç¶æ
+ã§ãªã
+
+CPUã­ãã¯ç¶æ
+ã®è§£é¤ï¼unl_cpuï¼iunl_cpuï¼ã«ãã£ã¦ï¼CPUã­ãã¯ç¶æ
+ã§ãªããª
+ãï¼ãã ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ã®CPUã­ãã¯ç¶æ
+ã®è§£é¤ï¼iunl_cpuï¼ã§ã¯ï¼
+(4)ã®æ¡ä»¶ãæºããããªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+ã¾ãï¼ã¿ã¹ã¯ã®çµäºï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ï¼å²è¾¼ã¿ãã³ã
+ã©ããã®ãªã¿ã¼ã³ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ããã®ãªã¿ã¼ã³ï¼ã¿ã¤ã ã¤ãã³ã
+ãã³ãã©ããã®ãªã¿ã¼ã³ï¼CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³ã«ãã£ã¦ï¼CPUã­ã
+ã¯ç¶æ
+ã§ãªããªãå ´åãããï¼
+
+ãã ãï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ããã³ã¿ã¤ã ã¤ãã³ããã³ãã©ããã®ãªã¿ã¼
+ã³ã«ã¤ãã¦ã¯ï¼ãªã¿ã¼ã³å¾ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãã®å®è¡ãç¶ãï¼(4)ã®æ¡ä»¶ã
+æºããããªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+ã¿ã¹ã¯ã®çµäºæã«ã¤ãã¦ã¯ï¼ã¿ã¹ã¯ã®çµäºå¾ã¯å¥ã®ã¿ã¹ã¯ã¸åãæããããï¼
+åãæãã£ãå¾ã®ã¿ã¹ã¯ã«å¯¾ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãï¼ã¿ã¹
+ã¯ãã£ã¹ãããå¾ã®å¦çã§è¡ãã°ããï¼
+
+ä»¥ä¸ããï¼éè¤ããã±ã¼ã¹ãèæ
+®ããã¨ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§
+ãå¿
+è¦ã«ãªãå¯è½æ§ãããã®ã¯ï¼ä»¥ä¸ã®å¦çã§ããï¼
+
+(a) ã¿ã¹ã¯ä¾å¤å¦çã®è¨±å¯ï¼ena_texï¼â¦ (1)
+(b) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®åºå£å¦ç â¦ (1)(5)(6)
+(c) ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±ï¼ras_texï¼â¦ (2)
+(d) ã¿ã¹ã¯ãã£ã¹ãããå¾ã®å¦ç â¦ (3)(5)(6)
+	(d-1) dispatch_r
+	(d-2) ret_int_r
+	(d-3) ret_exc_r
+	(d-4) start_r
+(e) å²è¾¼ã¿ãã³ãã©ã®åºå£å¦ç â¦ (4)(5)(6)
+(f) CPUä¾å¤ãã³ãã©ã®åºå£å¦ç â¦ (4)(5)(6)
+(g) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´ï¼chg_ipmï¼â¦ (5)
+(h) CPUã­ãã¯ç¶æ
+ã®è§£é¤ï¼unl_cpuï¼â¦ (6)
+
+ãã®ä¸­ã§(d-4)ã«é¢ãã¦ã¯ï¼ã¿ã¹ã¯ã®å®è¡éå§ç´å¾ã¯ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã§
+ããï¼èªã¿ã¹ã¯ãena_texããã¾ã§ã¯ï¼ã¿ã¹ã¯ä¾å¤ãè¨±å¯ãããªãï¼ï¼(1)ã®æ¡
+ä»¶ãæºããããªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+ã¾ã(h)ã«é¢ãã¦ã¯ï¼æ¬¡ã«è¿°ã¹ãçç±ã«ããï¼CPUã­ãã¯ç¶æ
+ãç¶ç¶ãã¦ããé
+ã«ä»ã®5ã¤ã®æ¡ä»¶ãæ°ãã«æºãããããã¨ã¯ãªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+ã®å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+CPUã­ãã¯ç¶æ
+ã§ã¯ï¼ã¾ãï¼ã¿ã¹ã¯ä¾å¤å¦çã®è¨±å¯ï¼ena_texï¼ï¼ã¿ã¹ã¯ä¾å¤å¦
+çã®è¦æ±ï¼ras_texï¼iras_texï¼ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´ï¼chg_ipmï¼ãè¡
+ããã¨ã¯ã§ããï¼ã¿ã¹ã¯ãã£ã¹ããããèµ·ãããªãï¼CPUã­ãã¯ç¶æ
+ã§ã¿ã¹ã¯ä¾
+å¤å¦çã«ã¼ãã³ãããªã¿ã¼ã³ãããã¨ã¯ã§ãããï¼ãã®å ´åã¯CPUã­ãã¯ç¶æ
+ã
+è§£é¤ããï¼CPUã­ãã¯ç¶æ
+ãç¶ç¶ããªãï¼CPUã­ãã¯ç¶æ
+ã§å²è¾¼ã¿ãã³ãã©ãã
+ãªã¿ã¼ã³ããå ´åãï¼ããã¨åæ§ã§ããï¼
+
+æå¾ã«ï¼CPUã­ãã¯ç¶æ
+ã§CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ããå ´åãåé¡ã«ãªãï¼
+ããã«ã¤ãã¦ã¯ï¼CPUä¾å¤ãçºçããæã«ï¼CPUã­ãã¯ç¶æ
+ã§ãã£ãå ´åã¨ï¼
+CPUã­ãã¯è§£é¤ç¶æ
+ã§ãã£ãå ´åã«åãã¦èããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§ãã£ã
+å ´åã«ã¯ï¼CPUä¾å¤ãã³ãã©ããã®ãªã¿ã¼ã³ã«ããï¼CPUã­ãã¯ç¶æ
+ãè§£é¤ãã
+ãããï¼å²è¾¼ã¿ãã³ãã©ãããªã¿ã¼ã³ããå ´åã¨åæ§ã§ããï¼CPUã­ãã¯ç¶æ
+ã§
+ãã£ãå ´åã«ã¯ï¼èµ·åãããCPUä¾å¤ãã³ãã©ã¯ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³
+ãã©ã§ããããï¼ãã®ä¸­ã§(1)ï½(3)ã¨(5)ã®æ¡ä»¶ãæ°ãã«æºãããããã¨ã¯ãªãï¼
+CPUä¾å¤ãã³ãã©ã®å®è¡åå¾ã§(4)ã®æ¡ä»¶ã¯ä¿å­ããããã¨ããï¼CPUä¾å¤ãã³ã
+ã©ããã®ãªã¿ã¼ã³ã«ãã£ã¦ï¼(1)ï½(5)ã®æ¡ä»¶ã¯CPUä¾å¤ã®çºçåã«æ»ãï¼æ°ãã«
+æºãããããã¨ã¯ãªãï¼
+
+âã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§å¦ç
+
+ããã§ã¯ï¼åã®ç¯ã§æ¤è¨ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§ãå¿
+è¦ãªã¿ã¤
+ãã³ã°ã®ããããã«ã¤ãã¦ï¼å®è¡éå§å¦çã®å®è£
+æ¹æ³ã«ã¤ãã¦è¿°ã¹ãï¼
+
+(a) ã¿ã¹ã¯ä¾å¤å¦çã®è¨±å¯ï¼ena_texï¼
+
+ena_texãã¿ã¹ã¯ããå¼ã³åºãããå ´åã«ã¯ï¼èªã¿ã¹ã¯ã«å¯¾ãã¦ãã¿ã¹ã¯ãå®è¡
+ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãããã®2æ¡ä»¶ã¯æºãããã¦ã
+ãï¼ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ãããã®æ¡ä»¶ã¯ena_texã®å¦çã«ããæºããã
+ãï¼ã¾ãï¼ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ã¯ena_texã®å
+¥å£ã§ãã§ãã¯ãã¦ã
+ãï¼ãã®ããï¼ãä¿çä¾å¤è¦å ã0ã§ãªããã¨ãå²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ã§ãããã®2æ¡ä»¶ãæºãããã¦ããå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åº
+ãï¼
+
+ena_texã®æ¬ä½ã®å¦çï¼ã¨ã©ã¼å¦çãé¤ãï¼ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+		p_runtsk->enatex = true;
+		if (p_runtsk->texptn != 0U && ipmflg) {
+			call_texrtn();
+		}
+----------------------------------------
+
+(b) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®åºå£å¦ç
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®åºå£å¦çï¼call_texrtnã®å¾åï¼ã§ã¯ï¼èªã¿ã¹ã¯ã«å¯¾
+ãã¦ãã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãããã®
+2æ¡ä»¶ã¯æºãããã¦ããï¼ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ããããå²è¾¼ã¿åªå
+åº¦ã
+ã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããããCPUã­ãã¯ç¶æ
+ã§ãªããã®3æ¡ä»¶ãåºå£å¦çã§æºãã
+ããï¼ãã®ããï¼ãä¿çä¾å¤è¦å ã0ã§ãªãããæºãããã¦ããå ´åã«ã¯ï¼ã¿ã¹
+ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãå¿
+è¦ãããï¼
+
+ãã ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®åºå£å¦çã§åç´ã«call_texrtnãå¼ã³åºãã¨ï¼
+call_texrtnã®ä¸­ããcall_texrtnãå¼ã³åºããã¨ã«ãªãï¼ã¿ã¹ã¯ä¾å¤å¦çãç¹°
+ãè¿ãè¦æ±ãããå ´åã«ï¼ã¹ã¿ãã¯ã®ä½¿ç¨éã«ä¸éããªããªãï¼ããã§ï¼ã¿ã¹
+ã¯ä¾å¤å¦çã«ã¼ãã³ã®åºå£å¦çã§ãä¿çä¾å¤è¦å ã0ã§ãªããå ´åã«ã¯ï¼
+call_texrtnã®ä¸­ã§ã«ã¼ããããï¼
+
+ä¿®æ­£ããcall_texrtnã®æµãã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+call_texrtn(void)
+{
+	TEXPTN	texptn;
+
+	ãã£ã¹ãããç¦æ­¢ãã©ã°ãä¿å­ãã â¦ (*3)
+	ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãã â¦ (*6)
+
+	do {
+		texptn = p_runtsk->texptn;
+		p_runtsk->texptn = 0U;
+
+		CPUã­ãã¯è§£é¤ç¶æ
+ã«ãã
+		ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºã
+		CPUã­ãã¯ç¶æ
+ã«ãã
+
+		å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã«ãã
+		ãã£ã¹ãããç¦æ­¢ãã©ã°ãå
+ã«æ»ã â¦ (*4)
+		ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãã â¦ (*2)
+
+		å¿
+è¦ãªå ´åã«ã¯ãã£ã¹ããããè¡ã â¦ (*1)
+	}  while (p_runtsk->texptn != 0U);
+
+	ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ãã â¦ (*5)
+}
+----------------------------------------
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãåã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãä¿å­ããå¦ç
+ã¯ï¼(*4)ã«ããã¦å
+ã®ç¶æ
+ã«æ»ããã¨ããï¼ã«ã¼ãã®å¤(*3)ã§è¡ãã®ãå¹çã
+ããï¼
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãåã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ããå¦çã¯ï¼
+(*2)ã«ããã¦ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãããã¨ããï¼ã«ã¼ãå¤(*6)ã§è¡ãã®
+ãå¹çãããï¼ã¾ãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºãå¾ã«ã¿ã¹ã¯ä¾å¤å¦çè¨±
+å¯ç¶æ
+ã«ããå¦çãï¼ã«ã¼ãã®å¤(*5)ã§è¡ãæ¹ãå¹çãããï¼
+
+(c) ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±ï¼ras_texï¼
+
+ras_texãã¿ã¹ã¯ããå¼ã³åºãããå ´åã§ï¼å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã®å ´åã«ã¯ï¼
+èªã¿ã¹ã¯ã«å¯¾ãã¦ãã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ã
+ãã¦ãããã®2æ¡ä»¶ã¯æºãããã¦ããï¼ãä¿çä¾å¤è¦å ã0ã§ãªããã®æ¡ä»¶ã¯
+ras_texã®å¦çã«ããæºããããï¼ras_texã®ãã©ã¡ã¼ã¿rasptnã0ã®å ´åã¯ã¨ã©ã¼
+ã¨ãªãããï¼ï¼ã¾ãï¼ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ã¯ras_texã®å
+¥å£ã§ãã§ã
+ã¯ãã¦ããï¼ãã®ããï¼å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã§ããï¼ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+ç¶æ
+ã§ãããã¨ãå²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã®2æ¡ä»¶ãæºãããã¦
+ããå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãï¼
+
+ras_texã®æ¬ä½ã®å¦çï¼ã¨ã©ã¼å¦çãé¤ãï¼ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+		p_tcb->texptn |= rasptn;
+		if (p_tcb == p_runtsk && p_runtsk->enatex && ipmflg) {
+			call_texrtn();
+		}
+----------------------------------------
+
+(d-1) dispatch_r
+
+dispatch_rã«ããã¦ã¯ï¼dispatch_rããã®ãªã¿ã¼ã³å
+ã®ã¿ã¹ã¯ã«å¯¾ãã¦ï¼ãã¿
+ã¹ã¯ãå®è¡ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãããã®2æ¡ä»¶ã¯æº
+ãããã¦ããï¼ã¾ãï¼CPUã­ãã¯ç¶æ
+ã§dispatch_rã«æ¥ããã¨ã¯ãªãããï¼
+ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ãæç«ãã¦ããï¼ãã®ããï¼ãã¿ã¹ã¯ä¾å¤å¦ç
+è¨±å¯ç¶æ
+ã§ããããä¿çä¾å¤è¦å ã0ã§ãªãããå²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ã§ãããã®3æ¡ä»¶ãæºãããã¦ããå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åº
+ãå¿
+è¦ãããï¼
+
+ãããå®ç¾ããããã«ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ãã£ã¹ãããå¦çãæ¬¡ã®ã
+ãã«ä¿®æ­£ããï¼
+
+----------------------------------------
+void
+dispatch(void)
+{
+	â¦â¦â¦
+
+  dispatch_r:
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+	calltex();
+}
+----------------------------------------
+
+ããã§calltexã¯ï¼ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ããããä¿çä¾å¤è¦å ã0ã§ãª
+ãããå²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã®3æ¡ä»¶ãæºãããã¦ããå ´åã«
+call_texrtnãå¼ã³åºãé¢æ°ã§ããï¼
+
+----------------------------------------
+void
+calltex(void)
+{
+	if (p_runtsk->enatex && p_runtsk->texptn != 0U && ipmflg) {
+		call_texrtn();
+	}
+}
+----------------------------------------
+
+(d-2) ret_int_r
+
+ret_int_rã¯ï¼å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã§ãã£ã¹ããããè¡ã£ãã¿ã¹ã¯ãï¼å®
+è¡ãåéããéã®å¦çã§ããï¼ãã®ããï¼ret_int_rããã®ãªã¿ã¼ã³å
+ã®ã¿ã¹ã¯
+ã«å¯¾ãã¦ï¼ãã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ã
+ããã®2æ¡ä»¶ã¯æºãããã¦ããï¼ã¾ãï¼CPUã­ãã¯ç¶æ
+ã§ret_int_rã«æ¥ããã¨ã¯
+ãªãããï¼ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ãæç«ãã¦ããï¼ãã®ããï¼ãã¿ã¹
+ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ããããä¿çä¾å¤è¦å ã0ã§ãªãããï¼å²è¾¼ã¿ãã³ãã©ã
+ãã®ãªã¿ã¼ã³å¾ã«ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã®3æ¡ä»¶ãæºããã
+ã¦ããå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãå¿
+è¦ãããï¼
+
+ãããå®ç¾ããããã«ï¼å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çãæ¬¡ã®ããã«ä¿®æ­£ããï¼
+
+----------------------------------------
+void
+<å²è¾¼ã¿ã®åºå
+¥å£å¦ç>(void)
+{
+		â¦â¦â¦
+
+			  ret_int_r:
+				ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+				calltex();
+			}
+		â¦â¦â¦
+}
+----------------------------------------
+
+(d-3) ret_exc_r
+
+ret_exc_rã¯ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã§ãã£ã¹ããããè¡ã£ãã¿ã¹ã¯ãï¼
+å®è¡ãåéããéã®å¦çã§ããï¼
+
+ã«ã¼ãã«ç®¡çã®CPUä¾å¤ãã³ãã©ã®åºå£å¦çï¼ret_excï¼ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®
+åºå£å¦çï¼ret_intï¼ã¨åæ§ã§ããï¼ããã¯ï¼CPUã­ãã¯ç¶æ
+ã§CPUä¾å¤ãçºçã
+ãå ´åã«ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ã¨ãªãï¼CPUä¾å¤ãã³ãã©ã®åº
+å£å¦çã§ãã£ã¹ããããè¡ããã¨ã¯ãªãï¼ret_excã«ãæ¥ãªãããã§ããï¼ãã®
+ããï¼ret_exc_rããã®ãªã¿ã¼ã³å
+ã®ã¿ã¹ã¯ã«å¯¾ãã¦ï¼ãCPUã­ãã¯ç¶æ
+ã§ãªãã
+ã®æ¡ä»¶ãæç«ãã¦ããï¼
+
+ãã®ãã¨ããï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã«ã¤ãã¦ãï¼å²è¾¼ã¿ãã³ãã©ã®åº
+å
+¥å£å¦çã¨åæ§ã«ï¼æ¬¡ã®ããã«ä¿®æ­£ããã°ããï¼
+
+----------------------------------------
+void
+<CPUä¾å¤ã®åºå
+¥å£å¦ç>(void)
+{
+			â¦â¦â¦
+
+				  ret_exc_r:
+					ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ã
+												ã¹ã¿ãã¯ããå¾©å¸°ãã
+					calltex();
+				}
+			â¦â¦â¦
+}
+----------------------------------------
+
+(e) å²è¾¼ã¿ãã³ãã©ã®åºå£å¦ç
+
+å²è¾¼ã¿ãã³ãã©ããã¿ã¹ã¯ã¸ãªã¿ã¼ã³ããå ´åã«ã¯ï¼ãªã¿ã¼ã³å
+ã®ã¿ã¹ã¯ã«å¯¾
+ãã¦ï¼ãã¿ã¹ã¯ãå®è¡ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ããã
+ã®2æ¡ä»¶ã¯æºãããã¦ããï¼ã¾ãï¼CPUã­ãã¯ç¶æ
+ã§å²è¾¼ã¿ãã³ãã©ãå®è¡ãã
+ããã¨ã¯ãªãããï¼ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ãæç«ãã¦ããï¼ãã®ããï¼
+ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ããããä¿çä¾å¤è¦å ã0ã§ãªãããï¼å²è¾¼ã¿ãã³
+ãã©ããã®ãªã¿ã¼ã³å¾ã«ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã®3æ¡ä»¶ãæº
+ãããã¦ããå ´åã«ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãå¿
+è¦ãããï¼
+
+å²è¾¼ã¿ãã³ãã©ã®å¼åºãåã¨å¼åºãå¾ã§ãããã®æ¡ä»¶ãå¤åããã®ã¯ï¼å®è¡ç¶
+æ
+ã®ã¿ã¹ã¯ãå¤åããæã¨ï¼å²è¾¼ã¿ãã³ãã©ä¸­ã§iras_texãå¼ã³åºãããå ´å
+ã§ããï¼å²è¾¼ã¿ãã³ãã©ããã¯ena_texã¨chg_ipmã¯å¼ã³åºããªãããï¼ãã¿ã¹
+ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã§ãããã¨ãï¼å²è¾¼ã¿ãã³ãã©ããã®ãªã¿ã¼ã³å¾ã«ï¼å²è¾¼
+ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã®2æ¡ä»¶ãå¤åãããã¨ã¯ãªãï¼
+
+ãã®2ã¤ã®ç¶æ³ã®å
+ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãå¤åããã±ã¼ã¹ã¯ï¼ret_int_rã§èæ
+®
+æ¸ã¿ã§ããï¼å²è¾¼ã¿ãã³ãã©ä¸­ã§iras_texãå¼ã³åºãããå ´åã«ã¯ï¼reqflgã
+trueã«ãªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§å¦çã¯ï¼reqflgãtrueã®
+æã«ã®ã¿è¡ãã°ããï¼
+
+ãããå®ç¾ããããã«ï¼ä¸ã§ä¿®æ­£ããå²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çãï¼ããã«
+æ¬¡ã®ããã«ä¿®æ­£ããï¼
+
+----------------------------------------
+void
+<å²è¾¼ã¿ã®åºå
+¥å£å¦ç>(void)
+{
+	â¦â¦â¦
+
+	if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å²è¾¼ã¿çºç) {
+		â¦â¦â¦
+		if (reqflg) {
+			â¦â¦â¦
+
+			  ret_int_r:
+				ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+			}
+			calltex();
+		}
+	}
+	â¦â¦â¦
+}
+----------------------------------------
+
+(f) CPUä¾å¤ãã³ãã©ã®åºå£å¦ç
+
+ã«ã¼ãã«ç®¡çã®CPUä¾å¤ãã³ãã©ã®åºå£å¦çã¯ï¼å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã¨å
+æ§ã§ããï¼
+
+ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ã®ä¸­ã§ã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãå¤åãããã¨
+ã¯ãªãï¼iras_texãena_texãå¼ã³åºããã¨ãã§ããªãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼
+ãã³ã®å®è¡éå§æ¡ä»¶ãæ°ãã«æºãããããã¨ã¯ãªãï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+ã®å®è¡éå§ã¯å¿
+è¦ãªãï¼
+
+ãã®ãã¨ããï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã«ã¤ãã¦ãï¼å²è¾¼ã¿ãã³ãã©ã®åº
+å
+¥å£å¦çã¨åæ§ã«ï¼æ¬¡ã®ããã«ä¿®æ­£ããã°ããï¼
+
+----------------------------------------
+void
+<CPUä¾å¤ã®åºå
+¥å£å¦ç>(void)
+{
+		â¦â¦â¦
+		if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUä¾å¤çºç) {
+		â¦â¦â¦
+			if (reqflg) {
+
+				  ret_exc_r:
+					ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ã
+												ã¹ã¿ãã¯ããå¾©å¸°ãã
+				}
+				calltex();
+			}
+		}
+		â¦â¦â¦
+}
+----------------------------------------
+
+(g) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´
+
+chg_ipmãã¿ã¹ã¯ããå¼ã³åºãããå ´åã«ã¯ï¼èªã¿ã¹ã¯ã«å¯¾ãã¦ãã¿ã¹ã¯ãå®è¡
+ç¶æ
+ã§ããããã¿ã¹ã¯ã³ã³ãã­ã¹ããå®è¡ããã¦ãããã®2æ¡ä»¶ã¯æºãããã¦ã
+ãï¼ã¾ãï¼ãCPUã­ãã¯ç¶æ
+ã§ãªããã®æ¡ä»¶ã¯chg_ipmã®å
+¥å£ã§ãã§ãã¯ãã¦ã
+ãï¼ãã®ããï¼ãã©ã¡ã¼ã¿intpriãTIPM_ENAALLã§ããï¼ãã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+ç¶æ
+ã§ããããä¿çä¾å¤è¦å ã0ã§ãªããã®2æ¡ä»¶ãæºãããã¦ããå ´åã«ã¯ï¼
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãï¼
+
+chg_ipmã®é¢é£é¨åã®å¦çã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+	t_set_ipm(intpri);
+	if (intpri == TIPM_ENAALL) {
+		ipmflg = true;
+		ããã«ã¿ã¹ã¯åæãå¦çãå
+¥ã
+		if (p_runtsk->enatex && p_runtsk->texptn != 0U) {
+			call_texrtn();
+		}
+	}
+----------------------------------------
+
+dispatchãå¼ã³åºãã¦ã¿ã¹ã¯åæããè¡ãå ´åã«ã¯ï¼dispatchã®åºå£ã§ã¿ã¹ã¯
+ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãããããã§å¼åºãå¦çãè¡ãå¿
+è¦ã¯ãªããï¼ã³ã¼
+ããè¤éã«ãªãããï¼dispatchãå¼ã³åºããå ´åãããã§ã¿ã¹ã¯ä¾å¤å¦çã«ã¼
+ãã³ã®å¼åºãå¦çãè¡ã£ã¦ããï¼
+
+âcall_texrtnããdispatchãå¼ã³åºãå¦çã«ã¤ãã¦
+
+dispatch_rããï¼ã¿ã¼ã²ããã«ãã£ã¦ã¯calltexãçµç±ãã¦ï¼call_texrtnãå¼
+ã³åºãï¼call_texrtnããdispatchãå¼ã³åºãããï¼ãã®2ã¤ã®é¢æ°ã¯ç¸äºåå¸°
+å¼åºãããã¦ããï¼ããã§ã¯ï¼ãã®å®è£
+ã§æ¯éã®ãªãçç±ãèª¬æããï¼
+
+call_texrtnããdispatchãå¼ã³åºãã®ã¯ï¼ãã£ã¹ããããä¿çããã¦ããªãç¶
+æ
+ã§å¼ã³åºãããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãï¼ãã®å®è¡ä¸­ã«ãã£ã¹ãããä¿ç
+ç¶æ
+ã«é·ç§»ãï¼ããã«ã¿ã¹ã¯ãã£ã¹ããããå¿
+è¦ã¨ããå¦çãè¡ãï¼ãã£ã¹ãã
+ãä¿çç¶æ
+ãè§£é¤ããªãã¾ã¾ãªã¿ã¼ã³ããå ´åã§ããï¼ãã®å ´åï¼call_texrtn
+ã®ä¸­ã§ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ããå¾ã«ï¼dispatchãå¼ã³åºãã¦ã¿ã¹ã¯ãã£
+ã¹ããããè¡ãï¼ã¤ã¾ãï¼call_texrtnããdispatchãå¼ã³åºãå¦çã¯ï¼ã¿ã¹ã¯
+ä¾å¤å¦çã«ã¼ãã³ã®ä¸­ã§ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ãã¹ãã§ãã£ãã®ãï¼è§£
+é¤ããã«ãªã¿ã¼ã³ããå ´åãææ¸ããããã®ãã®ã§ããï¼ä»¥ä¸ï¼ãã®æ¯èãã
+ãææ¸ã±ã¼ã¹ãã¨å¼ã¶ï¼
+
+ããã§ï¼æ¯è¼ã®ããã«ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®æå¾ã§ï¼æ­£ãããã£ã¹ãã
+ãä¿çç¶æ
+ãè§£é¤ãã¦ãããªã¿ã¼ã³ããå ´åã®æ¯èããèããï¼ãã®å ´åã«ã¯ï¼
+ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ãããµã¼ãã¹ã³ã¼ã«ï¼ena_dspï¼chg_ipmï¼ã®ä¸­ã§ï¼
+dispatchãå¼ã³åºããã¦ã¿ã¹ã¯ãã£ã¹ããããèµ·ããï¼ä»¥ä¸ï¼ãã®æ¯èãã
+ãæ­£å¸¸ã±ã¼ã¹ãã¨å¼ã¶ï¼
+
+æ­£å¸¸ã±ã¼ã¹ã¨ææ¸ã±ã¼ã¹ãæ¯è¼ããã¨ï¼call_texrtnâã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+âãµã¼ãã¹ã³ã¼ã«âdispatchã®é ã§dispatchãå¼ã³åºããããï¼call_texrtnã
+ãç´æ¥dispatchãå¼ã³åºããããã®éãã¨ãããã¨ã«ãªãï¼ææ¸ã±ã¼ã¹ã®æ¹ã
+ã¹ã¿ãã¯ã®ä½¿ç¨éã¯å°ãªãï¼ã¤ã¾ãï¼æ­£å¸¸ã±ã¼ã¹ã®åããæ³å®ãã¦ã¹ã¿ãã¯é 
+åãç¨æãã¦ããã°ï¼ææ¸ã±ã¼ã¹ã§ãåé¡ãªãåä½ãããã¨ã«ãªãï¼
+
+ããã§ï¼æ­£å¸¸ã±ã¼ã¹ã¨ææ¸ã±ã¼ã¹ã§ï¼ä¸è¨ä»¥å¤ã«éãããªããã¨ãéè¦ã§ããï¼
+å
+·ä½çã«ã¯ï¼call_texrtnã®ä¸­ã§ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ããï¼p_runtsk
+->enatexãtrueã«ããï¼åã«ï¼dispatchãå¼ã³åºããã¨ãéè¦ã§ããï¼ã¿ã¹ã¯
+ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ããå¾ã«dispatchãå¼ã³åºãã¨ï¼åºå£ã®dispatch_rã§ï¼å
+ã³ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®è¡ãã¦ãã¾ãå¯è½æ§ãããï¼ææ¸ã±ã¼ã¹ã®æ¹ã
+ã¹ã¿ãã¯ã®ä½¿ç¨éãå¢ãã¦ãã¾ãï¼
+
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®ä¸­ã§ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ããã¾ã¾ãªã¿ã¼ã³
+ããå ´åã«ã¯ï¼call_texrtnããå¼ã³åºããdispatchã®åºå£ã®dispatch_rã§åã³
+ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®è¡ãã¦ãã¾ãå¯è½æ§ãããï¼ãã®å ´åãï¼ã¿ã¹ã¯
+ä¾å¤å¦çã«ã¼ãã³ã®æå¾ã§ï¼ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ãã¦ãããªã¿ã¼ã³ã
+ãå ´åããã¯ã¹ã¿ãã¯ã®ä½¿ç¨éãå°ãªããï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ããå¾
+ã«ãã£ã¹ãããä¿çç¶æ
+ãè§£é¤ãã¦ãªã¿ã¼ã³ããå ´åããã¯ï¼ã¹ã¿ãã¯ã®ä½¿ç¨
+éãå¢ããå ´åãããï¼ããã§ï¼ãã®ãããªç¶æ³ãèµ·ãããªãããã«ï¼
+dispatchãå¼ã¶åã«p_runtsk->enatexãfalseã«ããï¼
+
+
+âã¨ã©ã¼ã®ãã§ãã¯é åº
+
+ãµã¼ãã¹ã³ã¼ã«å
+ã«ãããã¨ã©ã¼ãã§ãã¯ã¯ï¼ä»¥ä¸ã®é åºã§è¡ããã¨ãååã¨
+ããï¼ãªãï¼ãã®ç¯ã«ã¯ï¼ä¿è­·æ©è½å¯¾å¿ã«ã¼ãã«ã«é¢ããè¨è¿°ãå«ã¾ãã¦ãã
+ãï¼ãããã®è¨è¿°ã¯å°æ¥çã«ã¯ããé©åãªãã­ã¥ã¡ã³ãã«ç§»åããäºå®ã§ããï¼
+
+âã¨ã©ã¼ã®3åé¡
+
+ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã¯ï¼å¤§ããä»¥ä¸ã®3ã¤ã«åé¡ãããã¨ãã§ããï¼
+
+(a) éçã¨ã©ã¼
+
+å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ããç»é²ããã¦ãããå¦ããï¼ãã®ç¶æ
+ã«ä¾å­ãã
+ã«ï¼ãã§ãã¯ãããã¨ãã§ããã¨ã©ã¼ï¼
+
+(b) æºéçã¨ã©ã¼
+
+å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ããç»é²ããã¦ããã°ï¼ãã®ç¶æ
+ã«ä¾å­ããã«ãã§ã
+ã¯ãããã¨ãã§ããã¨ã©ã¼ï¼
+
+(c) åçã¨ã©ã¼
+
+å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®ç¶æ
+ã«ä¾å­ããã¨ã©ã¼ï¼
+
+ASPã«ã¼ãã«ã«ããã¦ã¯ï¼(a)ã¨(b)ã®ã¨ã©ã¼ã¯ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®å¤å´ã§ï¼
+ãã®é åºã§ãã§ãã¯ãï¼(c)ã®ã¨ã©ã¼ã¯ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®å
+å´ã§ãã§ã
+ã¯ããï¼ãã ãï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼(b)ã®ã¨ã©ã¼ï¼ã®ä¸é¨ï¼ã¯
+ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®å
+å´ã§å®æ½ããå¿
+è¦ãããï¼
+
+âéçã¨ã©ã¼ã®ãã§ãã¯é åº
+
+éçã¨ã©ã¼ã«ã¯ï¼å®è¡ã³ã³ãã­ã¹ãã®ã¨ã©ã¼ï¼ãã£ã¹ãããä¿çç¶æ
+ããã®å¼
+åºãã¨ã©ã¼ãå«ãï¼ï¼ãã©ã¡ã¼ã¿ã®ç¯å²ç­ã®ã¨ã©ã¼ï¼å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§
+ã¯ãã«ä¾å­ããã«ãã§ãã¯ã§ãããã®ï¼ãå«ã¾ããï¼
+
+ãµã¼ãã¹ã³ã¼ã«ä¸­ã§ã¯ï¼æåã«å®è¡ã³ã³ãã­ã¹ãã®ã¨ã©ã¼ããã§ãã¯ãï¼ãã®
+å¾ï¼ãã©ã¡ã¼ã¿ã®ä¸¦ã³é ã«ï¼ç¯å²ç­ã®ã¨ã©ã¼ããã§ãã¯ããï¼
+
+ä¿è­·æ©è½å¯¾å¿ã«ã¼ãã«ã§ã¯ï¼ãã©ã¡ã¼ã¿ããã¤ã³ã¿ã§ããå ´åã«ï¼ãã¤ã³ã¿ã®
+æãã¡ã¢ãªé åãã¢ã¯ã»ã¹å¯è½ã§ãããããã§ãã¯ããå¿
+è¦ããããï¼ã¡ã¢ãª
+é åã®è¨­å®ãéçã§ããå ´åã«ã¯ï¼ãã®ã¨ã©ã¼ãã§ãã¯ãããã§å®æ½ããï¼ã
+ã ãï¼ã¡ã¢ãªé åã®è¨­å®ãéçã§ãªãå ´åã«ã¯ï¼ãã®ã¨ã©ã¼ãã§ãã¯ã¯ã¯ãªãã£
+ã«ã«ã»ã¯ã·ã§ã³ã®å
+å´ã§è¡ãå¿
+è¦ãããï¼
+
+âåéçã¨ã©ã¼ã®ãã§ãã¯é åº
+
+åéçã¨ã©ã¼ã®ãã§ãã¯ã®åã«ï¼å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯
+ã®å
+é ­çªå°ãï¼ã­ã¼ã«ã«å¤æ°ã«ä»£å
+¥ããï¼
+
+ä¿è­·æ©è½å¯¾å¿ã«ã¼ãã«ã§ã¯ï¼ãã®æ¬¡ã«ï¼å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ããã¢ã¯ã»
+ã¹å¯è½ã§ãããããã§ãã¯ããå¦çãè¡ãï¼å½è©²ãµã¼ãã¹ã³ã¼ã«ã®å¼åºããï¼
+ã·ã¹ãã ç¶æ
+ã«å¯¾ããã¢ã¯ã»ã¹è¨±å¯ãã¯ã¿ã§ä¿è­·ããã¦ããå ´åã«ãï¼ãã®æ®µ
+éã§ãã§ãã¯ãå®æ½ããï¼
+
+ãã®å¾ã§ï¼ãã©ã¡ã¼ã¿ã®ç¯å²ç­ã®ã¨ã©ã¼ã®ä¸­ã§ï¼å¯¾è±¡ã®ã«ã¼ãã«ãªãã¸ã§ã¯ã
+ã®ç»é²æ
+å ±ï¼åæåãã­ãã¯ã«å«ã¾ãã¦ããæ
+å ±ï¼ã«ä¾å­ãã¦ãã§ãã¯ãã¹ã
+ãã®ã®ãã§ãã¯ãï¼ãã©ã¡ã¼ã¿ã®ä¸¦ã³é ã§å®æ½ããï¼
+
+
+âCHECKãã¯ã­ã¨gotoæã®ä½¿ç¨
+
+ASPã«ã¼ãã«ã®å®è£
+ã«ããã¦ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ã®éçãªã¨ã©ã¼ããã§ãã¯ãã
+ããã«ï¼åç§°ã"CHECK_"ã§å§ã¾ãä¸é£ã®ãã¯ã­ï¼ããããï¼CHECKãã¯ã­ã¨ç·ç§°
+ããï¼ãç¨ãã¦ããï¼
+
+CHECKãã¯ã­ã®å®ç¾©ä¸­ã«ã¯gotoæãå«ãã§ãããï¼MISRA-Cãªã©ã®ã³ã¼ãã£ã³ã°
+ã«ã¼ã«ã§ã¯gotoæã®ä½¿ç¨ãç¦æ­¢ãã¦ããï¼gotoæãä½¿ãã¹ãã§ã¯ãªãã¨ããæ
+è¦ãå¤ãï¼ã¾ãï¼ãã¯ã­ã®å®ç¾©ä¸­ã«gotoæãä½¿ç¨ãããã¨ãåé¡ã§ããã¨ãã
+æè¦ãããï¼
+
+ããã§ã¯ï¼å®ç¾©ä¸­ã«gotoæãå«ãCHECKãã¯ã­ãç¨ããè¨­è¨æå³ã¨ãããä½¿ç¨ã
+ã¦ããæ¡ä»¶ï¼CHECKãã¯ã­ã®ä½¿ç¨ã«ããã½ããã¦ã§ã¢ã®ä¿¡é ¼æ§ã«åé¡ãçããã
+ã¨ããªããã¨ãè«è¨¼ããï¼
+
+ãªãï¼ASPã«ã¼ãã«ã®ã«ã¼ãã«æ¬ä½ã®å®è£
+ã§ã¯ï¼CHECKãã¯ã­ä»¥å¤ã«gotoæãç¨
+ãã¦ããç®æã¯ãªãï¼ä¸é¨ã®ã·ã¹ãã ãµã¼ãã¹ã§ã¯ï¼ããä»¥å¤ã®æ¹æ³ã§gotoæ
+ãç¨ãã¦ããï¼ï¼
+
+âCHECKãã¯ã­ã®å®ç¾©ã¨ãã®ä½¿ç¨æ³
+
+kernel/check.hã«ã¯ï¼25åã®CHECKãã¯ã­ãå®ç¾©ããã¦ãããï¼ããããæ¬¡ã®ã
+ã¿ã¼ã³ã§å®ç¾©ããã¦ããï¼ããã§XXXXXã«ã¯ï¼ãã§ãã¯ãããã¨ã©ã¼ã®ç¨®é¡ãè¡¨
+ãæå­åãå
+¥ãï¼
+
+----------------------------------------
+#define CHECK_XXXXX(<â¦â¦>) {				\
+	if (<ã¨ã©ã¼æ¡ä»¶>) {						\
+		ercd = <ã¨ã©ã¼ã³ã¼ã>;				\
+		goto error_exit;					\
+	}										\
+}
+----------------------------------------
+
+ãããã®CHECKãã¯ã­ã¯ï¼å¤ãã®ãµã¼ãã¹ã³ã¼ã«ã®å¦çé¢æ°ä¸­ã§ï¼æ¬¡ã®ããã«ä½¿
+ç¨ããã¦ããï¼
+
+----------------------------------------
+ER
+<ãµã¼ãã¹ã³ã¼ã«å>(â¦â¦)
+{
+	<ã­ã¼ã«ã«å¤æ°ã®å®£è¨>
+	ER		ercd;
+
+	LOG_XXX_YYY_ENTER(â¦â¦);
+	CHECK_XXXXX(â¦â¦);
+	CHECK_YYYYY(â¦â¦);
+
+	<ãµã¼ãã¹ã³ã¼ã«å¦çæ¬ä½>
+
+  error_exit:
+	LOG_XXX_YYY_LEAVE(â¦â¦);
+	return(ercd);
+}
+----------------------------------------
+
+ãã®ä¾ã§ã¯ï¼CHECKãã¯ã­ã2ã¤ä½¿ç¨ãã¦ãããï¼1ã¤ã®ã¿ä½¿ç¨ãã¦ããå ´åãã
+ãã°ï¼3ã¤ä»¥ä¸ä½¿ç¨ãã¦ããå ´åãããï¼ã¾ãï¼è¤æ°ã®CHECKãã¯ã­ã®éã«ï¼ã­ã¼
+ã«ã«å¤æ°ã¸ã®ä»£å
+¥æãå
+¥ãå ´åãããï¼ä¾ãã°ï¼ter_tskã®å¦çé¢æ°ï¼ï¼
+
+âè¨­è¨æå³
+
+CHECKãã¯ã­ãä½¿ç¨ããæå³ã¯ï¼ã»ã¨ãã©ã®ãµã¼ãã¹ã³ã¼ã«ã§å¿
+è¦ãªéçã¨ã©ã¼
+ã®ãã§ãã¯ã³ã¼ãããã¿ã¼ã³åãï¼ã½ã¼ã¹ã³ã¼ãã®ç°¡æ½ããä¿ã¤ãã¨ã§èª­ã¿ã
+ãããåä¸ãããã¨ã¨ãã«ï¼è¨è¿°ãã¹ã®å¯è½æ§ãæ¸ãããã¨ã§ããï¼
+
+ã¡ãªã¿ã«ï¼CHECKãã¯ã­ãä½¿ç¨ããªãå ´åï¼ä¸ã«ç¤ºãããµã¼ãã¹ã³ã¼ã«ã®å¦çé¢
+æ°ã¯ï¼æ¬¡ã®ããã«è¨è¿°ãããã¨ã«ãªãï¼
+
+----------------------------------------
+ER
+<ãµã¼ãã¹ã³ã¼ã«å>(â¦â¦)
+{
+	<ã­ã¼ã«ã«å¤æ°ã®å®£è¨>
+	ER		ercd;
+
+	LOG_XXX_YYY_ENTER(â¦â¦);
+	if (<XXXXXã®ã¨ã©ã¼æ¡ä»¶>) {
+		ercd = <XXXXXã®ã¨ã©ã¼ã³ã¼ã>;
+	}
+	else {
+		if (<YYYYYã®ã¨ã©ã¼æ¡ä»¶>) {
+			ercd = <YYYYYã®ã¨ã©ã¼ã³ã¼ã>;
+		}
+		else {
+
+			<ãµã¼ãã¹ã³ã¼ã«å¦çæ¬ä½>
+
+		}
+	}
+	LOG_XXX_YYY_LEAVE(â¦â¦);
+	return(ercd);
+}
+----------------------------------------
+
+CHECKãã¯ã­ã®å
+å®¹ãç¥ã£ã¦ããã¨ããåæã®ä¸ã§ã¯ï¼å
+ã®ã½ã¼ã¹ã³ã¼ãã®æ¹ã
+èª­ã¿ãããã®ã¯æããã§ããï¼
+
+ãªãï¼ãã®ãããªCHECKãã¯ã­ã®å®ç¾©ã«ã¯ï¼gotoæã®ä½¿ç¨ãä¸å¯é¿ã§ããï¼
+
+âCHECKãã¯ã­ãä½¿ç¨ãã¦ããæ¡ä»¶
+
+CHECKãã¯ã­ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºããããã«ä½¿ç¨ããªããã°ãªããªãï¼
+
+(1) CHECKãã¯ã­ã¯ï¼ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã®å
+é ­é¨åã§ï¼ãµã¼ãã¹ã³ã¼ã«å
+¥
+ããå£ã®ã­ã°ãåºããå¾ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã«å
+¥ãåã¾ã§ã«ï¼å¦çé¢æ°
+ããã®ãããã¬ãã«ã§ç¨ããï¼
+
+(2) ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ã®æ«å°¾é¨åã§ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ãæãã
+ããå¾ï¼ãµã¼ãã¹ã³ã¼ã«åºå£ã®ã­ã°ãåºãåã«ï¼å¦çé¢æ°ã®ãããã¬ãã«ã«ï¼
+ããerror_exitã©ãã«ãç½®ãï¼
+
+âåé¡ãçãããã¨ããªãæ ¹æ 
+
+ãã®ãããªæ¹æ³ã§gotoæãä½¿ç¨ãã¦ãï¼ã½ããã¦ã§ã¢ã®ä¿¡é ¼æ§ã«åé¡ãçãã
+ãã¨ããªããã¨ãä¸»å¼µããã«ã¯ï¼ããããï¼MISRA-Cãªã©ã®ã³ã¼ãã£ã³ã°ã«ã¼ã«
+ã§gotoæã®ä½¿ç¨ãç¦æ­¢ãã¦ããæ ¹æ ï¼è¨ãæããã¨ï¼gotoæã®ä½¿ç¨ã«ããã½ã
+ãã¦ã§ã¢ã®ä¿¡é ¼æ§ã«åé¡ãçããå¯è½æ§ã®ããçç±ãæããã«ããå¿
+è¦ãããï¼
+
+MISRA-Cã®ãã­ã¥ã¡ã³ãã§ã¯ï¼gotoæã®ä½¿ç¨ãç¦æ­¢ããæ ¹æ ã«ã¤ãã¦ãã¾ãæç¢º
+ã«ãªã£ã¦ãããï¼ããã§ã¯ãã®æ ¹æ ãæ¬¡ã®ããã«æ¨æ¸¬ããï¼
+
+ã»å¦çã®æµããè¤éã«ãªãï¼ãã­ã°ã©ã ã®æå³ãèª­ã¿ã«ãããªãï¼ããããï¼
+ãã¹ãã²ããã£ãã­ã°ã©ã ã«ãªãï¼ï¼
+
+CHECKãã¯ã­ã®å ´åã«ã¯ï¼gotoæãã¨ã©ã¼çºçæã®å¼·å¶è±åºã«ç¨ãã¦ããï¼ã©ã
+ã«ãerror_exitã¨ãããªã©ï¼ãã­ã°ã©ã ã®æå³ã¯æããã§ããï¼ä¸æ¹ï¼ãã®ã
+ãã«gotoæãã¨ã©ã¼æã®å¼·å¶è±åºã«ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ç¹ãgotoæã®ä½¿ç¨ã
+ç¦æ­¢ããæ ¹æ ã«ãªãããï¼
+
+ã»gotoæã§å¼·å¶è±åºãããã¨ã«ããï¼è±åºæã«è¡ããªããã°ãªããªãå¾å¦çã
+ãé£ã°ãããããããããï¼
+
+ãã ããã®ç¹ã«ã¤ãã¦ãï¼CHECKãã¯ã­ãä¸è¨ã®ä½¿ç¨æ¡ä»¶ãæºããã¦ä½¿ãéãã¯ï¼
+è±åºæã«è¡ããªããã°ãªããªãå¾å¦çã¯ãªãï¼CHECKãã¯ã­ã®ä½¿ç¨ã«ããã½ãã
+ã¦ã§ã¢ã®ä¿¡é ¼æ§ã«åé¡ãçãããã¨ã¯ãªãï¼
+
+åé¡ãçãããã¨ããªããã¨ãè«è¨¼ãããã1ã¤æ¹æ³ã¯ï¼ã³ã¼ãã£ã³ã°ã«ã¼ã«ã«
+åè´ããªããã­ã°ã©ã ãï¼ã³ã¼ãã£ã³ã°ã«ã¼ã«ã«åè´ãããã­ã°ã©ã ã¨ç­ä¾¡ã§
+ãããã¨ãç¤ºãæ¹æ³ã§ããï¼
+
+ãã§ã«ãè¨­è¨æå³ãã®ç¯ã§è¿°ã¹ãããã«ï¼CHECKãã¯ã­ãä½¿ç¨ãããã­ã°ã©ã ã¯ï¼
+gotoæãä½¿ç¨ããªãç­ä¾¡ãªãã­ã°ã©ã ã«æ¸ãæãããã¨ãã§ãããï¼ããä¸è¬
+çã«ã¯ï¼æ¬¡ã®ãã¨ãè¨ããï¼
+
+elseé¨ãæããªãifæã®thené¨ã®æå¾ã«ï¼ifæããä¸ï¼åæ¹ï¼ã«ããï¼ifæã¨
+åããã­ãã¯å
+ã®åãéå±¤ã®ã©ãã«ã¸åå²ããgotoæãããå ´åã«ã¯ï¼ifæã¨
+ã©ãã«ã®éã®æãelseé¨ã«ãããã¨ã«ããï¼gotoæãä½¿ããªãç­ä¾¡ãªãã­ã°ã©
+ã ã«æ¸ãæãããã¨ãã§ããï¼
+
+ä¾ã¨ãã¦ï¼gotoæãä½¿ã£ãæ¬¡ã®ãã­ã°ã©ã ãèããï¼
+
+----------------------------------------
+	{
+		/* ifæã®åã®æ */
+		if (....) {
+			/* thené¨ã®æ */
+			goto <ã©ãã«>;
+		}
+		/* ifæã¨ã©ãã«ã®éã®æ */
+	  <ã©ãã«>:
+		/* ã©ãã«ããå¾ãã®æ */
+	}
+----------------------------------------
+
+ãã®ãã­ã°ã©ã ã¯ï¼gotoæãä½¿ããªãæ¬¡ã®ãã­ã°ã©ã ã¨ç­ä¾¡ã§ããï¼
+
+----------------------------------------
+	{
+		/* ifæã®åã®æ */
+		if (....) {
+			/* thené¨ã®æ */
+		}
+		else {
+			/* ifæã¨ã©ãã«ã®éã®æ */
+		}
+		/* ã©ãã«ããå¾ãã®æ */
+	}
+----------------------------------------
+
+ãã®æ¡ä»¶ã«åè´ããgotoæãè¤æ°ããå ´åã«ã¯ï¼ä¸ã«ããgotoæããé ã«ä¸è¨
+ã®æ¹æ³ã«ãã£ã¦æ¸ãæãããã¨ã§ï¼gotoæãä½¿ããªãç­ä¾¡ãªãã­ã°ã©ã ã«æ¸ã
+æãããã¨ãã§ããï¼
+
+CHECKãã¯ã­ã®ä½¿ç¨æ¹æ³ã¯ï¼ä¸è¨ã®gotoæã®ä½¿ç¨æ¹æ³ã«åè´ããããï¼gotoæã
+ä½¿ç¨ããªãç­ä¾¡ãªãã­ã°ã©ã ã«æ¸ãæãããã¨ãã§ããï¼ãã£ã¦ï¼ãã®CHECKã
+ã¯ã­ã«ããåé¡ãçãããã¨ã¯ãªãï¼
+
+
+âext_tskï¼ext_kerã®è¿ãå¤
+
+Î¼ITRON4.0ä»æ§ã§ã¯ï¼ext_tskã¯ãªã¿ã¼ã³ãããã¨ã®ãªããµã¼ãã¹ã³ã¼ã«ã¨ãªã£
+ã¦ãããï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã«ããã¦ã¯ï¼ãã®ãµã¼ãã¹ã³ã¼ã«ã®è¿ãå¤ã
+ERåã«å¤æ´ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã°ããå ´åã«ã¯ï¼E_CTXã¨ã©ã¼ãè¿
+ãå¤ã¨ãã¦ãªã¿ã¼ã³ãããã¨ã¨ããï¼
+
+ãã®ä»æ§ã«å¯¾ããããã¤ãã®å¯¾æ¡ãæ¤è¨ãããï¼ä»¥ä¸ã®çç±ã§æ¡ç¨ããªãï¼
+
+ã»JSPã«ã¼ãã«ã®ããã«ï¼å±éºã®å¯è½æ§ãæ¤åºããªããå®è¡ãç¶ç¶ããæ¹æ³ã¯ï¼
+ãä¿¡é ¼æ§ã»å®å
+¨æ§ãéè¦ããã·ã¹ãã ã§ã¯æã¾ãããªãï¼ä¿¡é ¼æ§ã»å®å
+¨æ§ãé
+ãè¦ããã·ã¹ãã ã§ã¯ï¼å±éºã®å¯è½æ§ãæ¤åºãããï¼æ©æã«ãªã«ããªããã¹ã
+ãã§ããï¼
+
+ã»ASPã«ã¼ãã«ã®å½åæ¡ã®ã«ã¼ãã«ããã¦ã³ãããæ¹æ³ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³å´
+ãã§åå¾©ããä½å°ããªããã¨ããæå³ã§æã¾ãããªãï¼
+
+ã»éå»ã®äºææ§ãä¿ã¤ããã«ï¼åãvoidã¨ããã¾ã¾ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã
+ããå¼ã°ããå ´åã«ã¯ãªã¿ã¼ã³ããã¨ããæ¹æ³ã¯ï¼ã«ã¼ãã«ã®ä»æ§å¤æ´ã«æ°ã¥
+ããã«ãããªãã¨ããæå³ã§æã¾ãããªãï¼ã¾ãï¼ä»ã®ã¨ã©ã¼ã³ã¼ãï¼ä¾ãã°
+ãE_NOSPTï¼ãè¿ãä½å°ããªããã¦ããï¼
+
+ã»ä¸ç¨®ã®CPUä¾å¤ãå¼ã³åºããã¨ã«ããæ¹æ³ã¯ï¼ã«ã¼ãã«ä»æ§å
+¨ä½ã®æ´åæ§ãè
+ããã¦æ¡ç¨ããªãã£ãï¼ããã§ä¸ç¨®ã®CPUä¾å¤ãå°å
+¥ãããããï¼ãµã¼ãã¹ã³ã¼
+ãã«ãã¨ã©ã¼ãè¿ããå ´åã«å¼ã°ããOSEK/VDX OSä»æ§ã®ã¨ã©ã¼ããã¯ã«ç¸å½ã
+ããæ©è½ãå°å
+¥ããæ¹ãæç¨æ§ãé«ãã¨æãããããã§ããï¼
+
+ãã®å¤æ´ã«ããï¼ããã«ï¼CPUã­ãã¯ç¶æ
+ããã£ã¹ãããç¦æ­¢ç¶æ
+ã§ext_tskã
+å¼ã°ããå ´åã«ãã¨ã©ã¼ãªã¿ã¼ã³ããæ¹æ³ãèãããããï¼ã¿ã¹ã¯ã®ã¡ã¤ã³ã«ã¼
+ãã³ããã®ãªã¿ã¼ã³ã¨ext_tskãç­ä¾¡ã«ãªããªãããï¼æ¡ç¨ããªãï¼ã¾ãï¼ä»ã®
+å¦çåä½ããã®ãªã¿ã¼ã³æ¹æ³ã¨æ´åãããæå³ãããï¼ä¾ãã°ï¼å²è¾¼ã¿ãã³ã
+ã©ããCPUã­ãã¯ç¶æ
+ã®ã¾ã¾ãªã¿ã¼ã³ããå ´åã®æ±ãï¼ï¼
+
+ããã«ãããã¦ï¼ext_kerã«ã¤ãã¦ãï¼è¿ãå¤ãERåã«å¤æ´ããï¼ASPã«ã¼ãã«
+ã§ã¯ï¼ext_kerãã¨ã©ã¼ãè¿ããã¨ã¯ãªããï¼HRPã«ã¼ãã«ã§ã¯ï¼E_OACVã¨ã©ã¼
+ãè¿ãå ´åãããï¼
+
+ãªãï¼Î¼ITRON4.0ä»æ§ã§ã¯ï¼exd_tskããªã¿ã¼ã³ãããã¨ã®ãªããµã¼ãã¹ã³ã¼ã«
+ã¨ãªã£ã¦ãããï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã§ã¯ï¼exd_tskã¯ãµãã¼ããã¦ããªãï¼
+
+
+âã«ã¼ãã«ã®ãã¼ã¿æ§é ã«å¯¾ããvolatileå®£è¨ã«ã¤ãã¦ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§
+ã³ã®åºå
+¥å¦çã®å®ç¾ã«é¢ããå¶ç´ï¼
+
+ã«ã¼ãã«å
+ã®ãã¼ã¿æ§é ã¯ï¼ä¸¦è¡å®è¡ãããä»ã®å¦çåä½ï¼å²è¾¼ã¿ãã³ãã©ã
+ã¿ã¹ã¯ï¼ãããã¢ã¯ã»ã¹ãããå¯è½æ§ãããããï¼volatileå®£è¨ãå¿
+è¦ã§ã¯ãª
+ããã¨èããããï¼å®éï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³å
+ã§ã«ã¼ãã«å¤æ°ãèª­ãã³ã¼
+ããï¼ã³ã³ãã¤ã©ã®æé©åã«ããã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³å¤ã«ç§»åããï¼ãã
+ãåå ã¨ãªã£ãåé¡äºä¾ãå ±åããã¦ããï¼
+
+ã«ã¼ãã«å
+ã®ãã¹ã¦ã®ãã¼ã¿æ§é ã«volatileå®£è¨ãã¤ããæ¹æ³ã¯ï¼å®å
+¨ã§ã¯ã
+ããï¼æé©åãææ­¢ãããããã«ï¼ã«ã¼ãã«ã®ãµã¤ãºãæ§è½ã«ã¯æªå½±é¿ãä¸ã
+ãï¼ããã§ASPã«ã¼ãã«ã§ã¯ï¼æ¬¡ã®æ¹æ³ã§volatileå®£è¨ã®å¿
+è¦æ§ããªãããã¨ã¨
+ããï¼
+
+ASPã«ã¼ãã«ã«ããã¦ã¯ï¼ä¸¦è¡å®è¡ãããä»ã®å¦çåä½ããæ¸ãæããããå¯è½
+æ§ã®ãããã¼ã¿æ§é ã¯ï¼ãã¹ã¦ï¼CPUã­ãã¯ç¶æ
+ã¾ãã¯å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã«ã
+ãã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³å
+ã§ã¢ã¯ã»ã¹ãã¦ããï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³å
+
+ã§ã®ãã¼ã¿æ§é ã®ã¢ã¯ã»ã¹ãï¼ã³ã³ãã¤ã©ã®æé©åã«ããã¯ãªãã£ã«ã«ã»ã¯ã·ã§
+ã³å¤ã«ç§»åãããªãããã«ããã«ã¯ï¼ã³ã³ãã¤ã©ã«å¯¾ãã¦ï¼ã¯ãªãã£ã«ã«ã»ã¯
+ã·ã§ã³ã®åºå
+¥å¦çã«ããï¼ã¡ã¢ãªä¸ã®ãã¼ã¿æ§é ãæ¸ãå¤ããå¯è½æ§ãããã
+ã¨ãç¥ãããã°ããï¼
+
+å
+·ä½çã«ã¯ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çãé¢æ°ã«ãã£ã¦å®ç¾ããã°ï¼
+ãã®ãããªæé©åãææ­¢ãããã¨ãã§ããï¼ãããï¼ASPã«ã¼ãã«ã®å¤ãã®ã¿ã¼
+ã²ããä¾å­é¨ã«ããã¦ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã¯ãã¯ã­ãã¤ã³ã©
+ã¤ã³é¢æ°ã«ããå®è£
+ããã¦ããï¼ä¸ã®ãããªæé©åãææ­¢ã§ããªãï¼
+
+ããã§ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çãå®ç¾ããå ´åã«ã¯ï¼ã¡ã¢ãªä¸ã®
+ãã¼ã¿æ§é ãæ¸ãå¤ããå¯è½æ§ããããã¨ãï¼ä½ããã®æ¹æ³ã§ã³ã³ãã¤ã©ã«ç¥
+ãããªããã°ãªããªãã¨ããå¶ç´ãè¨­ããï¼GNUéçºç°å¢ã§ã¯ï¼æ¬¡ã®ããããã®
+æ¹æ³ã§ãã®å¶ç´ãæºãããã¨ãã§ããï¼
+
+(a) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å
+¨ä½ã¾ãã¯åºå
+¥å¦çã®æ¬è³ªçãªé¨å
+	ï¼å
+·ä½çã«ã¯ï¼å²è¾¼ã¿ç¦æ­¢ï¼è¨±å¯ããå¦çï¼ãï¼ã¤ã³ã©ã¤ã³ã§ãªãï¼éå¸¸
+	ã®é¢æ°ã«ããå®ç¾ããï¼
+
+(b) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®æ¬è³ªçãªé¨åãã¤ã³ã©ã¤ã³ã¢ã»ã³ã
+	ã©ã«ãã£ã¦å®ç¾ãã¦ããå ´åã«ã¯ï¼ãã®ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã®clobberå¤
+	æ°ãªã¹ãã«"memory"ãè¿½å ããï¼
+
+(c) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®æ¬è³ªçãªé¨åãï¼ãã¯ã­ãã¤ã³ã©ã¤
+	ã³é¢æ°å¼åºãã§å®ç¾ãã¦ããå ´åã«ã¯ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã«å
+¥ãå¦
+	çã®æå¾ã¨åºãå¦çã®å
+é ­ã«ï¼Asm("":::"memory")ã¨ããè¨è¿°ãå
+¥ããï¼
+
+ãªãï¼ãã®å¶ç´ãé©ç¨ãããã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã¯ï¼ä»¥ä¸ã®ã
+ã®ã§ããï¼
+
+	SIL_LOC_INT
+	SIL_UNL_INT
+	t_lock_cpu, i_lock_cpu, x_lock_cpu
+	t_unlock_cpu, i_unlock_cpu, x_unlock_cpu
+
+
+âåã­ã£ã¹ãã«ä¼´ãè­¦åã¡ãã»ã¼ã¸
+
+GCCã§-O2ãªãã·ã§ã³ãã¤ãã¦ã³ã³ãã¤ã«ããå ´åã«ï¼ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼ã
+ä¸­ã®æ°ç®æã§ï¼æ¬¡ã®è­¦åã¡ãã»ã¼ã¸ãåºãï¼GCCã®ãã¼ã¸ã§ã³ã«ãããï¼ï¼
+
+warning: dereferencing type-punned pointer will break strict-aliasing rules
+
+ããã¯ï¼GCCã«-O2ãªãã·ã§ã³ãã¤ããã¨ï¼ã³ã³ãã¤ã©ãCè¨èªã®strict
+aliasing ruleãåæã¨ããããã§ããï¼ã³ã³ãã¤ã©ã«strict aliasing ruleã
+é©ç¨ãããªãããã«ã¯ï¼GCCã®ãªãã·ã§ã³ã«-fno-strict-aliasingãæå®ããã°
+ããï¼ããã«ããï¼è­¦åã¡ãã»ã¼ã¸ã¯ææ­¢ããããï¼strict aliasing ruleã
+åæã¨ããæé©åã¯è¡ãããªããªãï¼
+
+ASPã«ã¼ãã«ã«å®è£
+ã«ããã¦ã¯ï¼strict aliasing ruleãåæã¨ããæé©åãè¡ã£
+ã¦ãããï¼ãã®è­¦åã¡ãã»ã¼ã¸ãç¡è¦ãã¦ãå·®ãæ¯ããªãï¼ä»¥ä¸ã§ã¯ï¼ãã®è­¦
+åã¡ãã»ã¼ã¸ãç¡è¦ãã¦ãå·®ãæ¯ããªãçç±ãè¿°ã¹ãï¼
+
+è­¦åã¡ãã»ã¼ã¸ãåºãä¾ã¨ãã¦ï¼semaphore.cä¸­ã®æ¬¡ã®è¡ã«ã¤ãã¦æ¤è¨ããï¼
+
+	wobj_make_wait((WOBJCB *) p_semcb, (WINFO_WOBJ *) &winfo_sem);
+
+ãã®è­¦åã¡ãã»ã¼ã¸ã®åå ã¯ï¼ç´æ¥çã«ã¯ï¼&winfo_semã(WINFO_WOBJ *)ã«ã­ã£
+ã¹ããã¦ãããã¨ã§ãããï¼æ¬è³ªçãªåå ã¯ï¼ãã®ã³ã¼ããCè¨èªã®strict
+aliasing ruleã«å¾ããªãä»£å
+¥æã®åå ã«ãªãå¯è½æ§ãããï¼ãã®ã«ã¼ã«ã«ä¾å­
+ããæé©åãèª¤ã£ãçµæãå¼ãèµ·ããå¯è½æ§ããããã¨ã§ããï¼
+
+Cè¨èªã®strict aliasing ruleã¯ï¼äºææ§ã®ãªãç°ãªãåãéãã¦ï¼ãªã¼ãã©ã
+ãããã¡ã¢ãªé åãã¢ã¯ã»ã¹ããä»£å
+¥æãä½¿ç¨ãã¦ã¯ãªããªãã¨ãããã®ã§ã
+ãï¼ä½¿ç¨ããå ´åã®æ¯èãã¯æªå®ç¾©ã«ãªãï¼ï¼ãã®ã±ã¼ã¹ã§ã¯ï¼(WINFO_SEM
+*)åã®ãã¤ã³ã¿çµç±ã¨(WINFO_WOBJ *)åã®ãã¤ã³ã¿çµç±ã§ï¼ãªã¼ãã©ãããã
+ã¡ã¢ãªé åãã¢ã¯ã»ã¹ããä»£å
+¥æãä½¿ç¨ãã¦ã¯ãªããªããã¨ã«ãªãï¼ã¾ãï¼è­¦
+åã¡ãã»ã¼ã¸ã®åå ã«ãªã£ã¦ã¯ããªããï¼(SEMCB *)åã®ãã¤ã³ã¿çµç±ã¨
+(WOBJCB *)åã®ãã¤ã³ã¿çµç±ã§ï¼ãªã¼ãã©ããããã¡ã¢ãªé åãã¢ã¯ã»ã¹ãã
+ä»£å
+¥æãä½¿ç¨ãã¦ã¯ãªããªãï¼
+
+ASPã«ã¼ãã«ã®å®è£
+ã«ããã¦ã¯ï¼semaphore.cä¸­ã®é¢æ°ã«ããã¦ã¯ï¼(SEMCB *)å
+ããã³(WINFO_SEM *)åã®ãã¤ã³ã¿ãä½¿ç¨ãã¦ããï¼(WOBJCB *)åããã³
+(WINFO_WOBJ *)åã®ãã¤ã³ã¿çµç±ã§ã¡ã¢ãªé åãã¢ã¯ã»ã¹ãããã¨ã¯ãªãï¼ä¸
+æ¹ï¼ããããå¼ã³åºãããwait.cä¸­ã®é¢æ°ã«ããã¦ã¯ï¼(WOBJCB *)åããã³
+(WINFO_WOBJ *)åã®ãã¤ã³ã¿ãä½¿ç¨ãã¦ããï¼(SEMCB *)åããã³(WINFO_SEM
+*)åã®ãã¤ã³ã¿çµç±ã§ã¡ã¢ãªé åãã¢ã¯ã»ã¹ãããã¨ã¯ãªãï¼
+
+strict aliasing ruleã«å¾ããªãä»£å
+¥æã®åé¡ç¹ã¯ï¼ãã®ã«ã¼ã«ã«ä¾å­ããæ
+é©åãèª¤ã£ãçµæãå¼ãèµ·ããå¯è½æ§ããããã¨ã§ãããï¼ç°ãªãã³ã³ãã¤ã«
+åä½ãã¾ããã§æé©åãè¡ããããã¨ã¯ãªãããï¼ããã«ããåé¡ãèµ·ããã
+ã¨ã¯ãªãã¨è¨ããã¨ãã§ããï¼
+
+åãè­°è«ã¯ï¼ä»ã®ã½ã¼ã¹ãã¡ã¤ã«ï¼eventflag.cï¼dataqueue.cï¼pridataq.cï¼
+mailbox.cï¼mempfix.cï¼ä¸­ã®è­¦åã¡ãã»ã¼ã¸ã«ã¤ãã¦ãï¼ãã®ã¾ã¾å½ã¦ã¯ã¾ãï¼
+
+
+âæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½
+
+âå¿
+è¦æ§ã¨ä½¿é
+
+ASPã«ã¼ãã«ã«ã¯ï¼ASPã«ã¼ãã«ä¸ã§åä½ããã¿ã¹ã¯ãASPã«ã¼ãã«èªèº«ã®æ§è½ã
+è¨æ¸¬ããããã«ï¼ã·ã¹ãã æå»ããç²¾åº¦ã®é«ãæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãèª­ã¿
+åºãæ©è½ããµãã¼ãããï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã¯ï¼ãã¤ã¯ã­ç§åä½ã§è¡¨ç¾
+ããããï¼å®éã®ç²¾åº¦ã¯ã¿ã¼ã²ããä¾å­ã§ããï¼
+
+ãã®æ©è½ãç¨ãã¦ãããã­ã°ã©ã ã®å®è¡æéãè¨æ¸¬ããã«ã¯ï¼ãã®å®è¡ç´åã¨
+å®è¡ç´å¾ã«æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãèª­ã¿åºãï¼ãã®å·®ãæ±ããï¼ãã®ããï¼
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã¯å¸¸ã«ç¸å¯¾å¤ãä½¿ç¨ãï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®çµ¶
+å¯¾å¤ãä½¿ç¨ãããã¨ã¯æ³å®ãã¦ããªãï¼
+
+âAPIä»æ§
+
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½ã§ã¯ï¼æ¬¡ã®ãã¼ã¿åãç¨ããï¼
+
+	SYSUTM		æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ï¼ç¬¦å·ç¡ãæ´æ°ï¼åä½ã¯ãã¤ã¯ã­ç§ï¼
+				32ãããä»¥ä¸ï¼
+
+SYSUTMåã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã«ããã¦ulong_tåï¼ããªãã¡ï¼unsigned
+longåï¼ã«å®ç¾©ããã¦ããï¼ãã®ãµã¤ãºã¯ï¼32ãããä»¥ä¸ã§ï¼ã¿ã¼ã²ããå®ç¾©
+ã§ããï¼
+
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãSYSUTMåã§è¡¨ç¾ã§ããç¯å²ãè¶
+ããï¼ã¤ã¾ãï¼ãªã¼
+ããã­ã¼ããï¼å ´åï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã¯0ã«æ»ãï¼è©ä¾¡å¯¾è±¡ãã­ã°ã©ã 
+ã®å®è¡åå¾ã®æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®å·®ãæ±ããå ´åã«ã¯ï¼è¨æ¸¬ããæéã
+SYSUTMåã§è¡¨ç¾ã§ããç¯å²ã§ããéãï¼0ã«æ»ããã¨ãç¹å¥ã«èæ
+®ããå¿
+è¦ã¯ãª
+ãï¼
+
+SYSUTMåã32ãããã®å ´åï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã¯ç´71åã§ãªã¼ããã­ã¼
+ããï¼ãã®ããï¼ãã®æ©è½ã71åãè¶ããæéã®æ¸¬å®ã«ä½¿ã£ãå ´åã®åä½ã¯ä¿
+è¨¼ãããªãï¼
+
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»åç
+§æ©è½ã®ããã®ãµã¼ãã¹ã³ã¼ã«ã®ä»æ§ã«ã¤ãã¦ã¯ï¼
+ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ãã®ã4.6.1 ã·ã¹ãã æå»ç®¡çãã®ç¯ãå
+ç
+§ãããã¨ï¼
+
+âå®è£
+
+
+æå»ããã¤ã¯ã­ç§åä½ã§åå¾ããããã«ï¼å¨æçãªã¿ã¤ã ãã£ãã¯ãä¾çµ¦ãã
+ã¿ã¤ãã®ç¾å¨å¤ï¼ã¿ã¤ãã¯ã«ã¦ã³ãã¢ãããããã®ã¨ä»®å®ããï¼ãèª­ã¿åºãï¼
+ããããã¤ã¯ã­ç§åä½ã«æç®ããå¤ã«ï¼ç¾å¨ã®ã·ã¹ãã æå»ï¼ããªç§åä½ã§è¡¨
+ç¾ãããï¼ã1000åããå¤ãå ãããã®ãæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã¨ããï¼ç¾
+å¨ã®ã·ã¹ãã æå»ã1000åããéã«ï¼ãªã¼ããã­ã¼ãçºçããå¯è½æ§ããããï¼
+ç¡è¦ãã¦ãã¾ããªãï¼
+
+ãã ãï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ã¨ã¿ã¤ãã®ç¾å¨å¤ãä¸è²«ããç¶æ
+ã§èª­ã¿åºãã®
+ã¯å®¹æã§ã¯ãªãï¼ä¸¡æ¹ã®å¤ãé ã«èª­ã¿åºãã¨ï¼èª­åºãã®éã«ã¿ã¤ãããªã¼ãã
+ã­ã¼ãã¦å²è¾¼ã¿è¦æ±ãçºçããå ´åã«ï¼çæ¹ã¯ãªã¼ããã­ã¼åã®å¤ï¼ããçæ¹
+ã¯ãªã¼ããã­ã¼å¾ã®å¤ãèª­ãã§ãã¾ãï¼èª¤ã£ãæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåå¾
+ãã¦ãã¾ãï¼
+
+ãã®åé¡ãè§£æ±ºããæ¹æ³ã¯ããã¤ãèãããããï¼ã©ã®æ¹æ³ãæ¡ç¨ããã®æ±ºå®
+ã«ãããï¼æ¬¡ã®è¦æ±äºé 
+ãè¨­å®ããï¼
+
+(1) å¤ãã®ã¿ã¼ã²ããã·ã¹ãã ã§å®ç¾ã§ãããã¨ï¼
+
+(2) ãµã¼ãã¹ã³ã¼ã«ã®å®è¡æéãå¯è½ãªéãä¸å®ã¨ãªããã¨ï¼è¨ãæããã¨ï¼
+    æ¡ä»¶ã«ãã£ã¦ãµã¼ãã¹ã³ã¼ã«ã®å®è¡æéãå¤§ããå¤åããªããã¨ï¼
+
+(3) ãµã¼ãã¹ã³ã¼ã«ä¸­ã®å¯è½ãªéãåãã¿ã¤ãã³ã°ã®æå»ãè¿ããã¨ï¼è¨ãæ
+    ããã¨ï¼æ¡ä»¶ã«ãã£ã¦æå»ãèª­ã¿åãã¿ã¤ãã³ã°ãå¤åããªããã¨ï¼
+
+(4) èª¿æ´ããå¿
+è¦ã®ãããã©ã¡ã¼ã¿ãæå°éã¨ãããã¨ï¼
+
+ãããã®è¦æ±äºé 
+ãæºããæ¹æ³ã¨ãã¦ï¼æ¬¡ã®æ¹æ³ãç¨ãããã¨ã«ããï¼
+
+ã¾ãï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã§ï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ï¼ã¿
+ã¤ãã®ç¾å¨å¤ï¼1åç®ï¼ï¼ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®æç¡ï¼ã¿ã¤ãã®ç¾å¨å¤ï¼2åç®ï¼
+ãï¼ãã®é ã§èª­ã¿åºãï¼å²è¾¼ã¿ãç¦æ­¢ãã¦ããããï¼ãã®éã«ã·ã¹ãã æå»ã®
+ç¾å¨å¤ãå¤åãããã¨ã¯ãªãï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ãèª­ã¿åºãé çªã¯ã©ãã§
+ãããï¼ã¾ãï¼ã¿ã¤ãã®ç¾å¨å¤ã®2åç®ã®èª­åºãã¯ï¼ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã£ã
+å ´åã«ã®ã¿å¿
+è¦ã¨ãªããï¼(2)ã®è¦æ±ããï¼ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®æç¡ã«ãããèª­
+ã¿åºããã¨ã¨ããï¼
+
+ãããã®å¤ãèª­ã¿åºããå¾ï¼å²è¾¼ã¿ç¦æ­¢ãè§£é¤ãï¼æ¬¡ã®å¦çãè¡ãï¼ã¾ãï¼ã¿
+ã¤ãå²è¾¼ã¿è¦æ±ããªãã£ãå ´åã«ã¯ï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ã¨ï¼1åç®ã«èª­ãã 
+ã¿ã¤ãã®ç¾å¨å¤ã¯ä¸è²«ããå¤ã§ãããã¨ãä¿è¨¼ã§ããããï¼ãããã®å¤ããæ§
+è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®ç¾å¨å¤ãæ±ããï¼
+
+æ¬¡ã«ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã£ãå ´åã«ã¯ï¼1åç®ã«èª­ãã ã¿ã¤ãã®ç¾å¨å¤ãï¼ã¿
+ã¤ãå²è¾¼ã¿è¦æ±çºçåã®å¤ï¼ãªã¼ããã­ã¼åã®å¤ï¼ã§ããå ´åã¨ï¼çºçå¾ã®å¤
+ï¼ãªã¼ããã­ã¼å¾ã®å¤ï¼ã§ããå ´åã®ä¸¡æ¹ã®å¯è½æ§ãèããããï¼ãã®ã©ã¡ã
+ã®å ´åã§ãã£ãããï¼2åç®ã«èª­ãã ã¿ã¤ãã®ç¾å¨å¤ãä½¿ã£ã¦ï¼æ¬¡ã®ããã«æ±ºå®
+ããï¼2åç®ã®å¤ã¯ï¼ã¿ã¤ãå²è¾¼ã¿è¦æ±çºçå¾ã®å¤ï¼ãªã¼ããã­ã¼å¾ã®å¤ï¼ã§ã
+ããã¨ãä¿è¨¼ã§ããããï¼1åç®ã®å¤ã2åç®ã®å¤ãããå¤§ããå ´åã«ã¯ï¼ãã®
+éã«ãªã¼ããã­ã¼ããã£ããã®ã¨æ¨æ¸¬ã§ããï¼ã¤ã¾ãï¼1åç®ã®å¤ã¯ãªã¼ããã­ã¼
+åã®å¤ã¨ãããã¨ã«ãªãï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ã¨ä¸è²«ããå¤ã§ããã¨ãã¦æ§
+è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®ç¾å¨å¤ãæ±ããï¼éã«ï¼1åç®ã®å¤ã2åç®ã®å¤ã¨åã
+ãããããå°ããå ´åã«ã¯ï¼1åç®ã®å¤ã¯ãªã¼ããã­ã¼å¾ã®å¤ã§ããã¨æ¨æ¸¬ã§ã
+ãï¼ãã®å ´åã«ã¯ï¼æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ãæ±ãï¼ãã®å¤ã¨1åç®
+ã®å¤ãä¸è²«ããå¤ã§ããã¨ãã¦æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®ç¾å¨å¤ãæ±ããï¼
+
+ããã§ï¼ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã£ãå ´åã«ã¯ï¼2åç®ã«èª­ãã ã¿ã¤ãã®ç¾å¨å¤ã
+ç¨ããæ¹æ³ãèãããããï¼(3)ã®è¦æ±ãæºãããªããªãããã«æ¡ç¨ããªãã£ãï¼
+ã¾ãï¼JSPã«ã¼ãã«ã¨åæ§ã®æ¹æ³ã¯ï¼(4)ã®è¦æ±ãæºãããªãããã«æ¡ç¨ããªãã£
+ãï¼
+
+ä¸ã§ãæ¨æ¸¬ã§ãããã¨ããã®ã¯ï¼ãã®æ¨æ¸¬ãæãç«ããªããªãã±ã¼ã¹ãããã
+ãã§ããï¼ãã®æ¨æ¸¬ãæãç«ããªããªãã±ã¼ã¹ã¯ï¼æ¬¡ã®2ã¤ã®å ´åã«åãã¦åæ
+ãããã¨ãã§ããï¼
+
+(a) 1åç®ã®å¤ããªã¼ããã­ã¼å¾ã®å¤ã§ããã«ããããããï¼1åç®ã®å¤ã2åç®
+    ã®å¤ãããå¤§ãããªãå ´å
+
+ãã®ãããªã±ã¼ã¹ã¯ï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ããã¦ããã«ãããããããµã¼ãã¹
+ãããªãç¶æ
+ãé·æéç¶ããï¼ã¿ã¤ãã®ç¾å¨å¤ã1åç®ã«èª­ãã§ãã2åç®ã«èª­
+ãã¾ã§ã®éã«é·ãæéãããã£ãçµæï¼ãã®éã«ï¼ååº¦ï¼ãªã¼ããã­ã¼ãçºç
+ããå ´åã«èµ·ããï¼ã¤ã¾ãï¼ã¿ã¤ãå²è¾¼ã¿ããµã¼ãã¹ãããªãæéãï¼ã¿ã¤ã 
+ãã£ãã¯ã®å¨æãããé·ããªã£ãå ´åã§ããï¼ãã®ãããªå ´åã«ã¯ï¼ã·ã¹ãã 
+æå»ã®æ´æ°ãæ­£ããè¡ãããªããªãï¼
+
+(b) 1åç®ã®å¤ããªã¼ããã­ã¼åã®å¤ã§ããã«ããããããï¼1åç®ã®å¤ã2åç®
+    ã®å¤ã¨åãããããããå°ãããªãå ´å
+
+ãã®ãããªã±ã¼ã¹ã¯ï¼ã¿ã¤ãã®ç¾å¨å¤ã1åç®ã«èª­ãã§ãã2åç®ã«èª­ãã¾ã§ã®
+éã«ï¼ã¿ã¤ããã»ã¼1å¨åã«ã¦ã³ãã¢ããããå ´åã«èµ·ããï¼ãã®å ´åãï¼ã¿ã¤
+ãå²è¾¼ã¿ãç¦æ­¢ããã¦ããæéãï¼ã¿ã¤ã ãã£ãã¯ã®å¨æãããé·ãã£ããã¨
+ã«ãªãï¼ã·ã¹ãã æå»ã®æ´æ°ãæ­£ããè¡ããªããªãï¼
+
+ãããã®ã±ã¼ã¹ãï¼ã¿ã¤ãå²è¾¼ã¿ãé·æéç¦æ­¢ããã¦ããï¼ã¿ã¤ãå²è¾¼ã¿ãã
+ãåªå
+åº¦ã®é«ãå²è¾¼ã¿å¦çãé·æéç¶ãã¦å®è¡ãããï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢
+ã«ããã¦ã·ãã¥ã¬ã¼ã¿ã®ãã­ã»ã¹ãé·æéã¹ã±ã¸ã¥ã¼ã«ãããªãã£ããªã©ã®ç
+ç±ã§ï¼ã·ã¹ãã æå»ã®æ´æ°ãæ­£ããè¡ããªãç¶æ³ã«ç¸å½ããï¼ããã§ãã®ç¶æ³
+ãï¼ãµã¼ãã¹ã³ã¼ã«ä½¿ç¨ä¸ã®æ³¨æäºé 
+ã«çãè¾¼ãï¼
+
+å®éã®ã³ã¼ãã«ããã¦ã¯ï¼ã·ã¹ãã æå»ã®ç¾å¨å¤ã¯å¤æ°ã«ä¿æããã¦ããªãã
+ãï¼ä¸ä½æ¡ã¯current_timeã«ä¿æããã¦ãããï¼ä¸ä½æ¡ãä¿æããå¤æ°ããª
+ãï¼ï¼æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ãç¨ãã¦è¨ç®ãã¦ããï¼ãã®ããï¼
+ã¿ã¤ãã®ç¾å¨å¤ããªã¼ããã­ã¼å¾ã®å¤ã§ããã¨å¤æ­ããå ´åãé¤ãã¦ã¯ï¼ã¿ã¤
+ã ãã£ãã¯ã®å¨ææéãï¼æ±ããæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ããæ¸ç®ããï¼ãã®
+å¦çã«ããï¼ãµã¼ãã¹ã³ã¼ã«ã®å®è¡æéãå¤åãããã¨ã«ãªããï¼ifæã®å
+å®¹
+ãï¼ã³ã³ãã¤ã©ã®æé©åãä»®å®ããã¨ï¼å®æ°å¤ã®æ¸ç®1åãªã®ã§ï¼å¤åã¯ããã
+ã§ããï¼
+
+ãã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ä»»æã®ç¶æ
+ããå¼ã³åºããã¨ãã§ããããï¼SILã®å
+¨å²
+è¾¼ã¿ã­ãã¯æ©è½ãç¨ãã¦ï¼ãµã¼ãã¹ã³ã¼ã«å
+é¨ã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ãå®
+ç¾ããï¼
+
+
+âã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãenatexã§å®è£
+ãã¦ããçç±
+
+ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ã¯ï¼TCBä¸­ã®enatexãã£ã¼ã«ãï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+ç¶æ
+ã§ãããã¨ãç¤ºãï¼ã®å½¢ã§ä¿æãã¦ããï¼ãã®ãã£ã¼ã«ããdistexã¨ãã
+enatexã¨ããã®ã¯ï¼JSPã«ã¼ãã«ã«ããã¦ã¿ã¹ã¯ãã£ã¹ãããç¦æ­¢ãã©ã°ã
+enadspã®å½¢ã§ä¿æããã®ã¨æ´åãããããã§ããï¼
+
+ASPã«ã¼ãã«ã§ã¯ï¼enadspã¯disdspã«å¤æ´ã«ãªã£ããã¨ããï¼enatexãdistexã«
+å¤æ´ããæ¹ãè¯ãã£ãã¨æãããï¼
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/extension.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/extension.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/extension.txt	(revision 313)
@@ -0,0 +1,514 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ã
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2014å¹´1æ2æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ãï¼æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ããã
+ãã®æ¹æ³ï¼ã¾ãã¯ãã³ãï¼ãèª¬æãããã®ã§ããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âç®æ¬¡
+
+ã»ã¨ã©ã¼ãã§ãã¯ã®çç¥
+ã»ã¿ã¤ã ãã£ãã¯ã®å¨æã®å¤æ´
+ã»ç¹æ®ç®çã®ã¬ã¸ã¹ã¿ã®æ±ã
+ã»æ¡å¼µããã±ã¼ã¸ã®ä½¿ãæ¹
+	- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸
+	- ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸
+	- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
+	- ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸
+	- å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
+	- åççææ©è½æ¡å¼µããã±ã¼ã¸
+ã»CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºã
+	- TA_DIRECTå±æ§ã®å°å
+¥
+	- ã¿ã¼ã²ããä¾å­é¨ã®ä¿®æ­£ç®æ
+
+
+âã¨ã©ã¼ãã§ãã¯ã®çç¥
+
+ãµã¼ãã¹ã³ã¼ã«ã®ãªã¼ãããããåæ¸ããããã«ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ã
+çç¥ããå ´åãããï¼ASPã«ã¼ãã«ã«ããã¦ã¯ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ã¯ãã¹
+ã¦CHECKãã¯ã­ãç¨ãã¦è¡ã£ã¦ããããï¼kernel/check.hä¸­ã®CHECKãã¯ã­ãç·¨
+éãããã¨ã§ï¼éçãªã¨ã©ã¼ã®ãã§ãã¯ãçç¥ãããã¨ãã§ããï¼
+
+ä¾ãã°ï¼ã¿ã¹ã¯IDã®ãã§ãã¯ãçç¥ãããå ´åã«ã¯ï¼CHECK_TSKIDãã¯ã­ã¨
+CHECK_TSKID_SELFãã¯ã­ãï¼æ¬¡ã®ããã«ä¿®æ­£ããã°ããï¼
+
+#define CHECK_TSKID(tskid)			((void)(tskid))
+#define CHECK_TSKID_SELF(tskid)		((void)(tskid))
+
+ãããã®ãã¯ã­ã®å®ç¾©ãç©ºã«ããæ¹æ³ããããï¼ãã©ã¡ã¼ã¿ã«å¯ä½ç¨ã®ããå¼
+ãæ¸ããã¦ããå¯è½æ§ãèããã¨ï¼å¯ä½ç¨ã®ããå¼ã¯æ¸ãã¹ãã§ã¯ãªããï¼æ¸
+ããã¦ããã³ã¼ããå
+¥ã£ã¦ããå¯è½æ§ãå
+¨ããªãã¨ã¯è¨ããªãï¼ï¼ä¸ã®å®ç¾©ã®
+æ¹ãå®å
+¨ã§ããï¼å¯ä½ç¨ã®ãªãå¼ã§ããã°ï¼æé©åã«ãã£ã¦åé¤ãããã¨ãã§
+ããããï¼å®è¡æå¹çã«ã¯å½±é¿ããªãã¨æå¾
+ã§ããï¼ãã ãï¼æé©åã«ãã£ã¦
+åé¤ãããªãå ´åã«ã¯ï¼å¯ä½ç¨ã®ããå¼ãæ¸ããã¦ããªããã¨ãç¢ºèªããä¸ã§ï¼
+ãã¯ã­ã®å®ç¾©ãç©ºã«ãã¦ãããï¼
+
+
+âã¿ã¤ã ãã£ãã¯ã®å¨æã®å¤æ´
+
+ASPã«ã¼ãã«ã§ã¯ï¼ã«ã¼ãã«ã¸ã¿ã¤ã ãã£ãã¯ãä¾çµ¦ããå¨æã¯1ããªç§ãæ¨æº
+ã¨ãªã£ã¦ãããï¼ä½éãªãã­ã»ããµã§ã¯1ããªç§æ¯ã«å²è¾¼ã¿ãå¦çãããªã¼ããã
+ããåé¡ã«ãªãå ´åãããï¼ããã§ï¼ã¢ããªã±ã¼ã·ã§ã³ãå¿
+è¦ã¨ããæéç²¾åº¦
+ãç²ãå ´åã«ã¯ï¼ã¿ã¤ã ãã£ãã¯ã®å¨æãé·ããããã¨ã§ï¼ãã­ã»ããµã®å¦ç
+è² è·ãä½æ¸ããæ¹æ³ãããï¼
+
+ã¿ã¤ã ãã£ãã¯ã®å¨æã®ä¸ãæ¹ã¯ã¿ã¼ã²ããä¾å­ã§ããããï¼ãããå¤æ´ã§ã
+ããã©ããã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®ã¿ã¤ããã©ã¤ãã®å®è£
+ãèª¿ã¹ãå¿
+è¦ãããï¼
+æ¨æºçã«ã¯ï¼target_kernel.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼
+ä¸­ã«å®ç¾©ããã¦ããTIC_NUMEã¨TIC_DENOãæ¸ãæãããã¨ã§ï¼å¤æ´ã§ãããã
+ã«å®è£
+ããã¦ããï¼
+
+
+âç¹æ®ç®çã®ã¬ã¸ã¹ã¿ã®æ±ã
+
+FPUã¬ã¸ã¹ã¿ãDSPã¬ã¸ã¹ã¿ãªã©ã®ç¹æ®ç®çã®ã¬ã¸ã¹ã¿ï¼ä»¥ä¸ï¼ç¹æ®ã¬ã¸ã¹ã¿ï¼
+ãæã¤ãã­ã»ããµã§ã¯ï¼ã¬ã¸ã¹ã¿ã®æ±ãã«ã¤ãã¦å¤§ããæ¬¡ã®3ã¤ã®æ¹æ³ãèãã
+ããï¼
+
+(1) ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³ã³ãã­ã¹ãã«å«ããªã
+
+1ã¤ã®ã¿ã¹ã¯ã®ã¿ãç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ããå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®
+ã³ã³ãã­ã¹ãã«å«ããå¿
+è¦ããªãï¼ã«ã¼ãã«ã§ç®¡çããå¿
+è¦ããªãï¼
+
+(2) ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³ã³ãã­ã¹ãã«å«ãã
+
+è¤æ°ã®ã¿ã¹ã¯ãç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ããå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã¿ã¹ã¯ã®ã³
+ã³ãã­ã¹ãã«å«ããæ¹æ³ãæãåç´ã§ããï¼ãã®ããã«ã¯ï¼ã¿ã¹ã¯ãã£ã¹ãã
+ãã£ã¨å²è¾¼ã¿ãã³ãã©/CPUä¾å¤ãã³ãã©ã®åºå
+¥å£ã§ï¼ç¹æ®ã¬ã¸ã¹ã¿ãä¿å­/å¾©å¸°
+ããã³ã¼ããè¿½å ããå¿
+è¦ãããï¼å®éã®ä¿å­/å¾©å¸°å ´æã¯ï¼ã¹ã¯ã©ããã¬ã¸ã¹
+ã¿ã¨ããä»¥å¤ã®ã¬ã¸ã¹ã¿ã§ç°ãªãããï¼æ³¨æãå¿
+è¦ã§ããï¼
+
+(3) ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ãã­ã¹ãã«å«ãããã©ãããã¿ã¹ã¯æ¯ã«æå®ãã
+
+ç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ããã¿ã¹ã¯ã¨ä½¿ç¨ããªãã¿ã¹ã¯ãããå ´åã§ï¼ãã¹ã¦ã®ã¿
+ã¹ã¯ã®ã³ã³ãã­ã¹ãã«ç¹æ®ã¬ã¸ã¹ã¿ãå«ããæ¹æ³ã§ã¯ãªã¼ãããããåé¡ã«ãª
+ãå ´åã«ã¯ï¼ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ãã­ã¹ãã«å«ãããã©ãããã¿ã¹ã¯æ¯ã«æå®
+ããæ¹æ³ãæåã§ããï¼ãããå®ç¾ããæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
+
+ã¾ãï¼ç¹æ®ã¬ã¸ã¹ã¿ãã³ã³ãã­ã¹ãã«å«ãããã©ãããæå®ããã¿ã¹ã¯å±æ§ã
+è¨­ããï¼ä¾ãã°ï¼FPUã¬ã¸ã¹ã¿ã§ããã°ï¼ã¿ã¹ã¯å±æ§ã«TA_FPUãè¨­ããï¼ã¿ã¹ã¯
+ãã£ã¹ãããã£ã§ã¯ï¼ã¿ã¹ã¯å±æ§ãè¦ã¦ï¼ãã®å±æ§ãè¨­å®ããã¦ããã°ç¹æ®ã¬
+ã¸ã¹ã¿ãä¿å­/å¾©å¸°ããï¼
+
+ãã¼ãã¦ã§ã¢çã«ç¹æ®ã¬ã¸ã¹ã¿ããã£ã¹ã¨ã¼ãã«ã§ããå ´åã«ã¯ï¼ãã®å±æ§ã
+è¨­å®ããã¦ããªãã¿ã¹ã¯ã«åãæããæã«ç¹æ®ã¬ã¸ã¹ã¿ããã£ã¹ã¨ã¼ãã«ãã
+ã¨ï¼èª¤ã£ã¦ç¹æ®ã¬ã¸ã¹ã¿ãä½¿ã£ãå ´åãæ¤åºã§ããï¼
+
+ããã«ï¼å²è¾¼ã¿ãã³ãã©ï¼ISRï¼å¨æãã³ãã©ï¼ã¢ã©ã¼ã ãã³ãã©ãå«ãï¼ã
+CPUä¾å¤ãã³ãã©ã§ç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ããå ´åã«ã¯ï¼ãããã®å¦çåä½ã«ã
+ç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ãããã©ããã®å±æ§ãè¨­ããæ¹æ³ãèããããï¼
+
+ããã§ï¼ã¿ã¹ã¯ï¼ã¾ãã¯ä»ã®å¦çåä½ï¼ãç¹æ®ã¬ã¸ã¹ã¿ãä½¿ç¨ãããã©ããã¯ï¼
+ã³ã³ãã¤ã©ãã©ã¤ãã©ãªã«ä¾å­ããå ´åãããããï¼æ³¨æãå¿
+è¦ã§ããï¼ä¾ã
+ã°ï¼æµ®åå°æ°ç¹æ¼ç®ãå«ã¾ãªããã­ã°ã©ã ã§ãã£ã¦ãï¼ã³ã³ãã¤ã©ããã®æ¹ã
+æ§è½ãé«ãã¨å¤æ­ããã°ï¼æµ®åå°æ°ç¹å½ä»¤ãçæããå ´åãããï¼
+
+
+âæ¡å¼µããã±ã¼ã¸ã®ä½¿ãæ¹
+
+ASPã«ã¼ãã«ã§ã¯ï¼ããã¤ãã®æ¡å¼µæ©è½ãå®è£
+ããããã«ï¼æ¡å¼µããã±ã¼ã¸ããµ
+ãã¼ããã¦ããï¼æ¡å¼µããã±ã¼ã¸ã¯ï¼extensionãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
+
+æ¡å¼µããã±ã¼ã¸ãä½¿ç¨ããå ´åã«ã¯ï¼UNIXã§ããã°ï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡
+ã¤ã«ã®ããããã£ã¬ã¯ããªã§ï¼
+
+	% cp -r extension/<æ¡å¼µããã±ã¼ã¸ã®ãã£ã¬ã¯ããªå>/* .
+
+ãå®è¡ããï¼ãã®æï¼å
+ã®ï¼æ¡å¼µåã®ï¼ã½ã¼ã¹ãã¡ã¤ã«ã¯ä¸æ¸ãããã¦ãã¾ã
+ããï¼æ¡å¼µããªãã«ã¼ãã«ãä½¿ç¨ãããå ´åã«ã¯ï¼å¥ã®ãã£ã¬ã¯ããªã«ã½ã¼ã¹
+ãã¡ã¤ã«ãå±éãã¦ï¼ä¸ã®ã³ãã³ããå®è¡ãããã¨ï¼
+
+è¤æ°ã®æ¡å¼µããã±ã¼ã¸ãä½¿ããã¨ã¯èæ
+®ãã¦ããªããï¼ä»¥ä¸ã«è¿°ã¹ãã±ã¼ã¹ã
+é¤ãã¦ã¯ï¼æä½æ¥­ã«ããè¤æ°ã®æ¡å¼µããã±ã¼ã¸ããã¼ã¸ãããã¨ã¯å¯è½ã§ããï¼
+ç¾æç¹ã§ã¯ï¼ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ã¨å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
+ããã¼ã¸ãããã¨ã¯ã§ããªãï¼ã¾ãï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ãä»ã®æ¡å¼µ
+ããã±ã¼ã¸ã¨ãã¼ã¸ãããã¨ã¯èæ
+®ãã¦ããªãï¼
+
+âãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸
+
+ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãã¥ã¼ããã¯ã¹æ©è½ãè¿½å ããããã®
+æ¡å¼µããã±ã¼ã¸ã§ããï¼ãã ãï¼åªå
+åº¦éè»¢ãå¶å¾¡ããããã®ä»çµã¿ã¨ãã¦ï¼
+åªå
+åº¦ä¸éãã¥ã¼ããã¯ã¹ï¼TA_CEILINGå±æ§ã®ãã¥ã¼ããã¯ã¹ï¼ã®ã¿ããµãã¼
+ããï¼åªå
+åº¦ç¶æ¿ãã¥ã¼ããã¯ã¹ï¼TA_INHERITå±æ§ã®ãã¥ã¼ããã¯ã¹ï¼ã¯ãµãã¼
+ããã¦ããªãï¼ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/mutexãã£ã¬
+ã¯ããªã«ç½®ãã¦ããï¼
+
+ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_MUTEXãkernel.hä¸­
+ã§å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ãã¥ã¼ããã¯ã¹æ©è½ãä½¿ç¨ã§ãããã©ã
+ããå¤å¥ãããã¨ãã§ããï¼
+
+âã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸
+
+ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¡ãã»ã¼ã¸ãããã¡æ©è½ãè¿½å ã
+ãããã®æ¡å¼µããã±ã¼ã¸ã§ããï¼ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼
+extension/messagebufãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
+
+ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_MESSAGEBUFã
+kernel.hä¸­ã§å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ã¡ãã»ã¼ã¸ãããã¡æ©è½ãä½¿
+ç¨ã§ãããã©ãããå¤å¥ãããã¨ãã§ããï¼
+
+âãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
+
+ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãªã¼ãã©ã³ãã³ãã©æ©è½ãè¿½å ã
+ãããã®æ¡å¼µããã±ã¼ã¸ã§ããï¼ãã ãï¼ãã®æ¡å¼µããã±ã¼ã¸ãä½¿ãããã«ã¯ï¼
+ã¿ã¼ã²ããä¾å­é¨ãå¯¾å¿ãã¦ããå¿
+è¦ãããï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µãã
+ã±ã¼ã¸ã¯ï¼extension/ovrhdrãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
+
+ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã§ï¼ã¿ã¼ã²ããä¾å­é¨ãæ¡å¼µããã±ã¼
+ã¸ã«å¯¾å¿ãã¦ããå ´åã«ã¯ï¼TOPPERS_SUPPORT_OVRHDRãkernel.hä¸­ã§å®ç¾©ãã
+ãã®ã§ï¼ãããç¨ãã¦ãªã¼ãã©ã³ã¿ã¤ãæ©è½ãä½¿ç¨ã§ãããã©ãããå¤å¥ãã
+ãã¨ãã§ããï¼
+
+âã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸
+
+ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¿ã¹ã¯åªå
+åº¦ãæå¤§256æ®µéã«æ¡å¼µããããã®
+æ¡å¼µããã±ã¼ã¸ã§ããï¼ãã®æ¡å¼µããã±ã¼ã¸ã¯ï¼ã¿ã¹ã¯åªå
+åº¦ã«å ãã¦ï¼ãã¼
+ã¿åªå
+åº¦ï¼ã¡ãã»ã¼ã¸åªå
+åº¦ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ã256æ®µéã«æ¡å¼µ
+ããï¼ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/pri_levelãã£ã¬ã¯ããªã«ç½®
+ãã¦ããï¼
+
+ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_PRI_LEVELãkernel.hä¸­ã§
+å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦ã¿ã¹ã¯åªå
+åº¦ã®ç¯å²ãæ¡å¼µããã¦ãããã©
+ãããå¤å¥ãããã¨ãã§ããï¼
+
+âå¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
+
+å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã¯ï¼å¶ç´ã¿ã¹ã¯ã®æ©è½ãè¿½å ããããã®æ¡å¼µããã±ã¼
+ã¸ã§ããï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ã«è¦å®ãããå¶ç´ã¿ã¹ã¯ã®æ©è½ã«
+å ãã¦ï¼èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ãå¤æ´ãããµã¼ãã¹ã³ã¼ã«ras_priãå®è£
+ãã¦
+ããï¼å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/rstr_taskãã£ã¬ã¯ããªã«ç½®ã
+ã¦ããï¼
+
+å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_RSTR_TASKãkernel.hä¸­ã§å®
+ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦å¶ç´ã¿ã¹ã¯ã®æ©è½ãä½¿ç¨ã§ãããã©ãããå¤
+å¥ãããã¨ãã§ããï¼
+
+----------------------------------------------------------------------
+ras_pri		èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ã®å¼ãä¸ããTã
+
+ãCè¨èªAPIã
+	ER ercd = ras_pri(PRI tskpri)
+
+ããã©ã¡ã¼ã¿ã
+	PRI			tskpri		ãã¼ã¹åªå
+åº¦
+
+ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+	ER			ercd		æ­£å¸¸çµäºï¼E_OKï¼ã¾ãã¯ã¨ã©ã¼ã³ã¼ã
+
+ãã¨ã©ã¼ã³ã¼ãã
+	E_CTX		ã³ã³ãã­ã¹ãã¨ã©ã¼
+				ã»éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+				ã»CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+	E_PAR		ãã©ã¡ã¼ã¿ã¨ã©ã¼
+				ã»tskpriãæå¹ç¯å²å¤
+	E_ILUSE		ãµã¼ãã¹ã³ã¼ã«ä¸æ­£ä½¿ç¨
+				ã»æ¡ä»¶ã«ã¤ãã¦ã¯æ©è½ã®é 
+ãåç
+§
+
+ãæ©è½ã
+
+èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ãï¼tskpriã§æå®ããåªå
+åº¦ã«å¤æ´ããï¼å
+·ä½çãªæ¯
+èãã¯ä»¥ä¸ã®éãï¼
+
+èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ãï¼tskpriã§æå®ããåªå
+åº¦ã«å¤æ´ãããï¼ããã«ä¼´ã£
+ã¦ï¼èªã¿ã¹ã¯ã®ç¾å¨åªå
+åº¦ãå¤æ´ãããï¼åãåªå
+åº¦ã®ã¿ã¹ã¯ã®ä¸­ã§ã¯ï¼èªã¿
+ã¹ã¯ãæé«åªå
+é ä½ã¨ãªãï¼
+
+tskpriã«TPRI_INIï¼ï¼0ï¼ãæå®ããã¨ï¼èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ãï¼èµ·åæåª
+å
+åº¦ã«å¤æ´ãããï¼
+
+tskpriã¯ï¼èªã¿ã¹ã¯ã®èµ·åæåªå
+åº¦ã¨åãããããããé«ããªããã°ãªããªãï¼
+ããã§ãªãå ´åã«ã¯ï¼E_ILUSEã¨ã©ã¼ã¨ãªãï¼
+----------------------------------------------------------------------
+
+âåççææ©è½æ¡å¼µããã±ã¼ã¸
+
+åççææ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼ãªãã¸ã§ã¯ãã®åççææ©è½ãè¿½å ãããã
+ã®æ¡å¼µããã±ã¼ã¸ã§ããï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ã«è¦å®ãããä»¥ä¸
+ã®ãªãã¸ã§ã¯ãçæï¼åé¤ã®ããã®ãµã¼ãã¹ã³ã¼ã«ï¼å²ä»ãå¯è½ãªIDçªå·ã®æ°
+ãæå®ããéçAPIã«å ãã¦ï¼ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨­å®ããéç
+API DEF_KMMãå®è£
+ãã¦ããï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã¯ï¼extension/dcre
+ãã£ã¬ã¯ããªã«ç½®ãã¦ããï¼
+
+ãã ãï¼ã«ã¼ãã«å
+ã§ã®åçã¡ã¢ãªç®¡çã«é¢ãã¦ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼
+ã¡ã¢ãªé åãå
+é ­ããé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããªãã¡
+ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ã¿ãå®è£
+ãã¦ããï¼æ¬æ ¼çãªåçã¡ã¢ãªç®¡çãè¡ããã
+å ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã¾ãã¯ã¦ã¼ã¶å´ã§ï¼ãã®ããã®é¢æ°ãç¨æããå¿
+
+è¦ãããï¼ç¨æããé¢æ°ç­ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASPã«ã¼ãã« ã¿ã¼ã²ããä¾
+å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®ã6.15 åçã¡ã¢ãªç®¡çãã®ç¯ãåç
+§ãããã¨ï¼
+
+åçæ©è½æ¡å¼µæ¡å¼µããã±ã¼ã¸ã§ã¯ï¼TOPPERS_SUPPORT_DYNAMIC_CREãkernel.hä¸­
+ã§å®ç¾©ããã¦ããã®ã§ï¼ãããç¨ãã¦åççææ©è½ãä½¿ç¨ã§ãããã©ãããå¤
+å¥ãããã¨ãã§ããï¼
+
+åççææ©è½æ¡å¼µããã±ã¼ã¸ã«ããè¿½å ããããµã¼ãã¹ã³ã¼ã«
+
+	ER_ID tskid = acre_tsk(const T_CTSK *pk_ctsk)
+	ER ercd = del_tsk(ID tskid)
+	ER ercd = def_tex(ID tskid, const T_DTEX *pk_dtex)
+	ER_ID semid = acre_sem(const T_CSEM *pk_csem)
+	ER ercd = del_sem(ID semid)
+	ER_ID flgid = acre_flg(const T_CFLG *pk_cflg)
+	ER ercd = del_flg(ID flgid)
+	ER_ID dtqid = acre_dtq(const T_CDTQ *pk_cdtq)
+	ER ercd = del_dtq(ID dtqid)
+	ER_ID pdqid = acre_pdq(const T_CPDQ *pk_cpdq)
+	ER ercd = del_pdq(ID pdqid)
+	ER_ID mbxid = acre_mbx(const T_CMBX *pk_cmbx)
+	ER ercd = del_mbx(ID mbxid)
+	ER_ID mpfid = acre_mpf(const T_CMPF *pk_cmpf)
+	ER ercd = del_mpf(ID mpfid)
+	ER_ID cycid = acre_cyc(const T_CCYC *pk_ccyc)
+	ER ercd = del_cyc(ID cycid)
+	ER_ID almid = acre_alm(const T_CALM *pk_calm)
+	ER ercd = del_alm(ID almid)
+	ER_ID isrid = acre_isr(const T_CISR *pk_cisr)
+	ER ercd = del_isr(ID isrid)
+
+åççææ©è½æ¡å¼µããã±ã¼ã¸ã«ããè¿½å ãããéçAPI
+
+	AID_TSK(uint_t notsk)
+	AID_SEM(uint_t nosem)
+	AID_FLG(uint_t noflg)
+	AID_DTQ(uint_t nodtq)
+	AID_PDQ(uint_t nopdq)
+	AID_MBX(uint_t nombx)
+	AID_MPF(uint_t nompf)
+	AID_CYC(uint_t nocyc)
+	AID_ALM(uint_t noalm)
+	AID_ISR(uint_t noisr)
+	DEF_KMM({ SIZE kmmsz, STK_T *kmm })
+
+----------------------------------------------------------------------
+DEF_KMM		ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨­å®ãSDã
+
+ãéçAPIã
+	DEF_KMM({ SIZE kmmsz, STK_T *kmm })
+
+ããã©ã¡ã¼ã¿ã
+ãï¼ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨­å®æ
+å ±
+	SIZE		kmmsz		ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãºï¼ãã¤ãæ°ï¼
+	STK_T		kmm			ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
+é ­çªå°
+
+ãã¨ã©ã¼ã³ã¼ãã
+	E_PAR		ãã©ã¡ã¼ã¿ã¨ã©ã¼
+				ã»kmmszã0ä»¥ä¸
+				ã»ãã®ä»ã®æ¡ä»¶ã«ã¤ãã¦ã¯æ©è½ã®é 
+ãåç
+§
+	E_OBJ		ãªãã¸ã§ã¯ãç¶æ
+ã¨ã©ã¼
+				ã»ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨­å®æ¸ã¿
+
+ãæ©è½ã
+
+åãã©ã¡ã¼ã¿ã§æå®ããã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®è¨­å®æ
+å ±ã«å¾ã£ã¦ï¼
+ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨­å®ããï¼
+
+kmmszã¯æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿ï¼kmmã¯ä¸è¬å®æ°å¼ãã©ã¡ã¼ã¿ã§ããï¼
+
+kmmãNULLã¨ããå ´åï¼kmmszã§æå®ãããµã¤ãºã®ã¡ã¢ãªé åãï¼ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ãç¢ºä¿ããï¼kmmszã«ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããªããµã¤ãºãæå®ã
+ãæã«ã¯ï¼ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããããã«ãµã¤ãºãå¤§ããæ¹ã«ä¸¸ãã¦
+ç¢ºä¿ããï¼
+
+ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãã¢ããªã±ã¼ã·ã§ã³ã§ç¢ºä¿ããå ´åã«ã¯ï¼
+kmmszã§æå®ãããµã¤ãºã®ã¡ã¢ãªé åãç¢ºä¿ãï¼kmmã«ãã®å
+é ­çªå°ãæå®ããï¼
+
+DEF_KMMã«ããã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åãè¨­å®ããªãå ´åï¼ã«ã¼ãã«ã
+å²ãä»ããã¡ã¢ãªé åã¯ç¢ºä¿ãããªãï¼
+
+kmmãkmmszã«ã¿ã¼ã²ããå®ç¾©ã®å¶ç´ã«åè´ããªãå
+é ­çªå°ããµã¤ãºãæå®ãã
+æã«ã¯ï¼E_PARã¨ã©ã¼ã¨ãªãï¼
+----------------------------------------------------------------------
+
+
+âCPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºã
+
+CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã¯ï¼CPUä¾å¤ãçºçããªãããã«å®è£
+ããªããã°
+ãªããªããï¼ãããé²ããªãã¿ã¼ã²ããã«ããã¦ã¯ï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£
+å¦çãçµç±ããã«ï¼ã¢ããªã±ã¼ã·ã§ã³ãç¨æããCPUä¾å¤ãã³ãã©ãç´æ¥å®è¡ã
+ãæ¹æ³ãç¨æããã®ãæã¾ããï¼ãããï¼CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºãã¨å¼ã¶ï¼
+
+ããã§ã¯ï¼ãã¼ãã¦ã§ã¢ã§ãã¯ã¿ãã¼ãã«ãæã¤ãã­ã»ããµã«ããã¦ï¼ã¿ã¼ã²ã
+ãä¾å­é¨ã®ã¿ã®ä¿®æ­£ã«ããï¼CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºãã®æ©è½ãè¿½å ããæ¹
+æ³ã«ã¤ãã¦èª¬æããï¼
+
+âTA_DIRECTå±æ§ã®å°å
+¥
+
+CPUä¾å¤ãã³ãã©ã®ç´æ¥å¼åºããæå®ããããã«ï¼CPUä¾å¤ãã³ãã©å±æ§ã«ï¼
+TA_DIRECTå±æ§ãå°å
+¥ããï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®ä¿®æ­£ç®æ
+
+TA_DIRECTã®å¤ãï¼target_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡
+ã¤ã«ï¼ã§å®ç¾©ãï¼ãã®å¤ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãåãåºããããã«ï¼
+target_def.csvï¼ã¾ãã¯ï¼ããã«ä»£ãããã¡ã¤ã«ï¼ã«æ¬¡ã®è¡ãè¿½å ããï¼
+
+TA_DIRECT,TA_DIRECT
+
+æ¬¡ã«ï¼target.tfï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§ï¼
+TARGET_EXCATRã«è¨­å®ãããå¤ã«ï¼TA_DIRECTãè¿½å ããï¼ä¾ãã°ï¼ä»ã®ã¿ã¼ã²ã
+ãä¾å­ã®CPUä¾å¤ãã³ãã©å±æ§ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨­å®ããï¼
+
+$TARGET_EXCATR = TA_DIRECT$
+
+æ¬¡ã«ï¼OMIT_INITILIZE_EXCEPTIONãç¨ãã¦ï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çãç
+æããããã®è¨è¿°ã¨CPUä¾å¤ãã³ãã©åæåãã­ãã¯ã®æ¨æºã®å®ç¾©ãçæããã
+ã®ãææ­¢ãï¼ããã«ãã£ã¦ææ­¢ãããé¨åãtarget.tfã«ã³ãã¼ããä¸ã§ï¼ä»¥ä¸
+ã®ä¿®æ­£ãå ããï¼
+
+CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çãçæããããã®è¨è¿°ï¼EXCHDR_ENTRYã®ãªã¹ãï¼
+ãçæããé¨åã¯ï¼æ¬¡ã®ããã«ä¿®æ­£ããï¼
+
+$FOREACH excno EXC.ORDER_LIST$
+	$IF (EXC.EXCATR[excno] & TA_DIRECT) == 0$
+		EXCHDR_ENTRY($EXC.EXCNO[excno]$, $+EXC.EXCNO[excno]$, $EXC.EXCHDR[excno]$)$NL$
+	$END$
+$END$
+
+ã¾ãï¼CPUä¾å¤ãã³ãã©åæåãã­ãã¯ã®å®ç¾©ãçæããé¨åã¯ï¼æ¬¡ã®ããã«ä¿®
+æ­£ããï¼
+
+$IF LENGTH(EXC.ORDER_LIST)$
+	const EXCINIB _kernel_excinib_table[TNUM_EXCNO] = {$NL$
+	$JOINEACH excno EXC.ORDER_LIST ",\n"$
+		$IF (EXC.EXCATR[excno] & TA_DIRECT) == 0$
+			$TAB${ ($EXC.EXCNO[excno]$), ($EXC.EXCATR[excno]$), (FP)(EXC_ENTRY($EXC.EXCNO[excno]$, $EXC.EXCHDR[excno]$)) }
+		$ELSE$
+			$TAB${ ($EXC.EXCNO[excno]$), ($EXC.EXCATR[excno]$), (FP)($EXC.EXCHDR[excno]$) }
+		$END$
+	$END$$NL$
+	};$NL$
+$ELSE$
+	TOPPERS_EMPTY_LABEL(const EXCINIB, _kernel_excinib_table);$NL$
+$END$
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/porting.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/porting.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/porting.txt	(revision 313)
@@ -0,0 +1,4995 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		ã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ã
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2014å¹´11æ17æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ãï¼æªãµãã¼ãã®ã¿ã¼ã²ããã·ã¹ã
+ã ã«ãã¼ãã£ã³ã°ããããã«å¿
+è¦ã¨ãªãã¿ã¼ã²ããä¾å­é¨ã®å®è£
+æ¹æ³ãèª¬æã
+ããã®ã§ããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âç®æ¬¡
+
+ï¼ï¼å
+±éäºé 
+
+	1.1 ã¿ã¼ã²ããä¾å­é¨ã®æ§æ
+	1.2 ååã®è¡çªã®é²æ­¢
+	1.3 å¤éã¤ã³ã¯ã«ã¼ãã®é²æ­¢
+	1.4 ã¢ã»ã³ããªè¨èªã¨ã®ããããã¡ã¤ã«ã®å
+±ç¨ 
+	1.5 ã¤ã³ã¯ã«ã¼ãè¨è¿°ã®æ¹æ³
+	1.6 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å®ç¾ã«é¢ããå¶ç´
+ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢ã®ã¿ã¼ã²ããä¾å­é¨
+	2.1 ã¿ã¼ã²ããç¥ç§°ã¨ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããª
+	2.2 Makefileã®ã¿ã¼ã²ããä¾å­é¨
+	2.3 éçºç°å¢åã¨ã³ãã³ãåã®è¨­å®
+	2.4 ã³ã³ãã¤ã«ãªãã·ã§ã³ã¨ãªãã¸ã§ã¯ããã¡ã¤ã«ã®è¨­å®
+	2.5 ãªãã»ãããã¡ã¤ã«ã®çææ¹æ³
+		2.5.1 ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ããæ¹æ³
+		2.5.2 makeoffset.cã¨genoffsetãç¨ããæ¹æ³
+	2.6 ãªã³ã¯æ¹æ³ã®è¨­å®
+	2.7 ä¾å­é¢ä¿ã®å®ç¾©
+	2.8 ãã®ä»ã®è¨­å®
+ï¼ï¼TOPPERSå
+±éå®ç¾©ã®ã¿ã¼ã²ããä¾å­é¨
+	3.1 ã¿ã¼ã²ããè­å¥ãã¯ã­
+	3.2 æ´æ°åã®æå¤§å¤ã»æå°å¤ã»ãããæ°
+	3.3 ãµã¤ãºã®æå®ãããæ´æ°åï¼ãã®æå¤§å¤ã»æå°å¤ï¼æ´æ°å®æ°ãä½ããã¯ã­
+	3.4 ãµã¤ãºã®æå®ãããæµ®åå°æ°ç¹åï¼ãã®æå¤§å¤ã»æå°å¤ã®ãã¯ã­
+	3.5 ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ã­å®ç¾©
+	3.6 æ¨æºçãªå®ç¾©ã®ä¸æ¸ã
+	3.7 ã¢ãµã¼ã·ã§ã³ã®ããã®å®ç¾©
+ï¼ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ã¿ã¼ã²ããä¾å­é¨
+	4.1 å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®ç®¡ç
+	4.2 å¾®å°æéå¾
+ã¡
+	4.3 ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³
+	4.4 ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+	4.5 I/Oç©ºéã¢ã¯ã»ã¹é¢æ°
+ï¼ï¼ã«ã¼ãã«APIã®ã¿ã¼ã²ããä¾å­é¨
+	5.1 ã¿ã¼ã²ããå®ç¾©ã§ãµãã¼ãããæ©è½
+	5.2 å²è¾¼ã¿åªå
+åº¦ã®ç¯å²
+	5.3 ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
+	5.4 ã¡ã¢ãªé åç¢ºä¿ã®ããã®åå®ç¾©
+	5.5 ããããã¿ã¼ã³ã®ãããæ°
+	5.6 ã¡ã¢ãªé åç¢ºä¿ã®ããã®ãã¯ã­
+	5.7 ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã®ããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
+ï¼ï¼ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨
+	6.1 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®å
+±éäºé 
+
+		6.1.1 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®æ§æè¦ç´ 
+		6.1.2 ã¿ã¼ã²ããä¾å­é¨ã®é¢æ°ã®å½åè¦å
+	6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿
+	6.3 ã·ã¹ãã ç¶æ
+ã®ç®¡ç
+		6.3.1 å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®ç®¡ç
+		6.3.2 ã³ã³ãã­ã¹ãã®ç®¡ç
+		6.3.3 CPUã­ãã¯ç¶æ
+ã®ç®¡ç
+	6.4 å²è¾¼ã¿ã«é¢é£ããã·ã¹ãã ç¶æ
+ã®ç®¡ç
+		6.4.1 å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®ç®¡ç
+		6.4.2 å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ç®¡ç
+		6.4.3 å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+		6.4.4 å²è¾¼ã¿è¦æ±ã®ãã­ã¼ã
+		6.4.5 å²è¾¼ã¿ãã³ãã©ã®å
+é ­å¦çã¨æ«å°¾å¦ç
+	6.5 ã¿ã¹ã¯ãã£ã¹ãããã£
+		6.5.1 ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã¨ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯
+		6.5.2 ãã£ã¹ãããã£æ¬ä½
+		6.5.3 ã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ãã£ã¹ããã
+		6.5.4 ãã£ã¹ãããã£ã®åä½éå§
+		6.5.5 ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ããã
+		6.5.6 ã¿ã¹ã¯ã®èµ·åå¦ç
+	6.6 å²è¾¼ã¿ãã³ãã©
+		6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦ç
+		6.6.2 å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
+¥å£å¦çã®çæ
+		6.6.3 å²è¾¼ã¿ãã³ãã©ã®è¨­å®
+		6.6.4 å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+		6.6.5 å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
+		6.6.6 ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©
+		6.6.7 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿
+		6.6.8 å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
+	6.7 CPUä¾å¤ãã³ãã©ã¨CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
+ã®åç
+§
+		6.7.1 CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦ç
+		6.7.2 CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çæ
+		6.7.3 CPUä¾å¤ãã³ãã©ã®è¨­å®
+		6.7.4 CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
+		6.7.5 ããã©ã«ãã®CPUä¾å¤ãã³ãã©
+		6.7.6 CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
+ã®åç
+§
+	6.8 ã«ã¼ãã«ã®èµ·åã»çµäºã¨ã¹ã¿ãã¯é åãªã©
+	6.9 ã«ã¼ãã«å
+é¨ã®ãã¥ã¼ãã³ã°
+		6.9.1 ãããããããµã¼ã
+		6.9.2 ããããã£ã¼ã«ã
+	6.10 ã«ã¼ãã«å®è£
+ã«é¢ãããã®ä»ã®å®ç¾©
+		6.10.1 ãªãã¸ã§ã¯ãå±æ§ã®æ¡å¼µ
+		6.10.2 ã¨ã©ã¼ãã§ãã¯æ¹æ³ã®æå®
+		6.10.3 éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é å
+		6.10.4 ç©ºã©ãã«ã®å®ç¾©
+	6.11 ãã¬ã¼ã¹ã­ã°æ©è½ã«é¢ããè¨­å®
+		6.11.1 åå¾ã§ãããã¬ã¼ã¹ã­ã°ã®ç¨®é¡ã¨ãã¯ã­
+		6.11.2 ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ã
+	6.12 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ããã®ãªãã¼ã è¨è¿°
+	6.13 ã¿ã¤ããã©ã¤ã
+		6.13.1 ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
+		6.13.2 ã¿ã¤ãã®åæåã»çµäºå¦çã»å²è¾¼ã¿å¦ç
+		6.13.3 æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§ã®ããã®æ©è½
+	6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãï¼ãªãã·ã§ã³ï¼
+		6.14.1 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
+		6.14.2 ãªã¼ãã©ã³ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
+	6.15 åçã¡ã¢ãªç®¡çï¼ãªãã·ã§ã³ï¼
+		6.15.1 TLSFãç¨ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ä¾
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨­å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+	7.1 è¨­å®ãã¡ã¤ã«ã¨ã¿ã¼ã²ããä¾å­é¨ã®ä½ç½®ä»ã
+	7.2 ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+		7.2.1 ã¿ã¼ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
+		7.2.2 ã¿ã¼ã²ããéä¾å­é¨ã§å®ç¾©ãããå¤æ°
+	7.3 ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+		7.3.1 ã¿ã¼ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
+		7.3.2 ã¿ã¼ã²ããä¾å­é¨ã§è¡ãã¹ãã¨ã©ã¼ãã§ãã¯
+	7.4 cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«
+ï¼ï¼ã·ã¹ãã ãµã¼ãã¹ç­ã®ã¿ã¼ã²ããä¾å­é¨
+	8.0 ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨
+	8.1 ã·ã¹ãã ã­ã°æ©è½ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+	8.2 ã­ã°ã¿ã¹ã¯ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+	8.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨
+		8.3.1 å¤æ°ï¼ãã¼ã¿åï¼ç®¡çé¢æ°
+		8.3.2 ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
+		8.3.3 ã³ã¼ã«ããã¯ã«ã¼ãã³
+	8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã¿ã¼ã²ããä¾å­å®ç¾©
+	8.5 ãµã³ãã«ãã­ã°ã©ã ã¨ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+	8.6 å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+ï¼ï¼ãã®ä»
+	9.1 ãã­ã¥ã¡ã³ã
+	9.2 ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«
+ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
+	10.1 ã¿ã¼ã²ããä¾å­é¨ã®ãã¡ã¤ã«ä¸è¦§
+
+
+ï¼ï¼å
+±éäºé 
+
+
+1.1 ã¿ã¼ã²ããä¾å­é¨ã®æ§æ
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼targetãã£ã¬ã¯ããªã®ä¸ã«ï¼ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ã¨
+éçºç°å¢ã®çµã¿åããæ¯ã«ç¨æããï¼ãã ãï¼ã¿ã¼ã²ããä¾å­é¨ã®åå©ç¨æ§ã
+èæ
+®ãï¼ãã­ã»ããµï¼ãããï¼éçºç°å¢ã®ã¿ã«ä¾å­ããé¨åãï¼ãã­ã»ããµä¾
+å­é¨ï¼ãããä¾å­é¨ï¼éçºç°å¢ä¾å­é¨ã¨ããå½¢ã§åãåãã¦ãããï¼åãåã
+æ¹ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®å®è£
+ã«ä»»ããã¦ããï¼ãã­ã»ããµä¾å­é¨ï¼ãããä¾
+å­é¨ï¼éçºç°å¢ä¾å­é¨ã¯ï¼archãã£ã¬ã¯ããªã®ä¸ã«ç½®ãï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã¯ï¼ã·ã¹ãã æ§ç¯ç°å¢ï¼Makefileç­ï¼ã®ã¿ã¼ã²ã
+ãä¾å­é¨ï¼TOPPERSå
+±éå®ç¾©ï¼t_stddef.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ï¼ã·ã¹ãã ã¤ã³
+ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼sil.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ï¼ã«ã¼ãã«APIï¼kernel.hï¼
+ã®ã¿ã¼ã²ããä¾å­é¨ï¼ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
+è¨­å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ãå«ãï¼ï¼ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾
+å­é¨ï¼ã¿ã¼ã²ããä¾å­é¨ã«é¢ãããã­ã¥ã¡ã³ãç­ã§æ§æãããï¼
+
+1.2 ååã®è¡çªã®é²æ­¢
+
+TOPPERSãã­ã¸ã§ã¯ããæä¾ããã½ããã¦ã§ã¢ã®ããã«ï¼TOPPERS_ã§å§ã¾ãã·ã³
+ãã«ãäºç´ãã¦ããï¼ããããã¡ã¤ã«ä¸­ã«è¨è¿°ããï¼ã¢ããªã±ã¼ã·ã§ã³ããå
+ç
+§ã§ããå
+é¨ã·ã³ãã«ã¯ï¼TOPPERS_ã§å§ã¾ãååã¨ããï¼
+
+ã¾ãï¼_kernel_ã§å§ã¾ãã·ã³ãã«ã¯ï¼ã«ã¼ãã«å
+é¨ã®å¤æ°ãé¢æ°ã®ããã«äºç´
+ãã¦ããï¼ã«ã¼ãã«å
+é¨ã®å¤æ°ãé¢æ°ã®ååã§ï¼ãªã³ã¯æã«ã¢ããªã±ã¼ã·ã§ã³
+ã®ååã¨è¡çªããå¯è½æ§ããããã®ã¯ï¼ãªãã¼ã è¨è¿°ã«ãªã¹ãã¢ãããããã¨
+ã§ï¼ã³ã³ãã¤ã«æã«_kernel_ã§å§ã¾ãååã«ç½®ãæãããã¨ã¨ãã¦ããï¼
+
+1.3 å¤éã¤ã³ã¯ã«ã¼ãã®é²æ­¢
+
+ãã¹ã¦ã®ããããã¡ã¤ã«ã¯ï¼å¤éã«ã¤ã³ã¯ã«ã¼ããããã®ãé²æ­¢ããããã®æ¡
+ä»¶ã³ã³ãã¤ã«è¨è¿°ãå
+¥ãããã¨ã¨ããï¼ä¾ãã°ï¼target_config.hã§ããã°ï¼ãã¡
+ã¤ã«ã®å
+é ­ã«
+
+#ifndef TOPPERS_TARGET_CONFIG_H
+#define TOPPERS_TARGET_CONFIG_H
+
+ãï¼ãã¡ã¤ã«ã®æ«å°¾ã«
+
+#endif /* TOPPERS_TARGET_CONFIG_H */
+
+ãè¨è¿°ããï¼
+
+1.4 ã¢ã»ã³ããªè¨èªã¨ã®ããããã¡ã¤ã«ã®å
+±ç¨ 
+
+ASPã«ã¼ãã«ã®ããããã¡ã¤ã«ã®å¤ãã¯ï¼ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãã
+ãã¤ã³ã¯ã«ã¼ãã§ããããã«ããããã«ï¼æ¬¡ã®ã«ã¼ã«ã«å¾ã£ã¦è¨è¿°ãããã®ã¨
+ããï¼
+
+ã»TOPPERS_MACRO_ONLYããã¯ã­å®ç¾©ããã¦ããå ´åã«ã¯ï¼ã¢ã»ã³ããªè¨èªã§ã¯
+ãè§£éã§ããªãè¨è¿°ï¼ãã¯ã­å®ç¾©ä»¥å¤ã®è¨è¿°ï¼ãé¤ãããã«è¨è¿°ããï¼
+
+ã»ç¬¦å·ç¡ãæ´æ°åã®å®æ°å¤ã¯ï¼UINT_CãULONG_Cãªã©ã®æ´æ°å®æ°ãä½ãããã®ã
+ãã¯ã­ãç¨ãã¦è¨è¿°ããï¼ãã ãï¼ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã¤
+ãã³ã¯ã«ã¼ãã§ãããã¡ã¤ã«ä¸­ã§ãã£ã¦ãï¼Cè¨èªã®ã¿ã§ç¨ããå®æ°ããããã®
+ããã¯ã­ãä½¿ã£ã¦è¨è¿°ããå¿
+è¦ã¯ãªãï¼
+
+ã¾ãï¼ã«ã¼ãã«å®è£
+ã«ããã¦ã¯ï¼æ¬¡ã®ã«ã¼ã«ã«å¾ããã®ã¨ããï¼
+
+ã»ã¢ã»ã³ããªè¨èªãããç¨ããå®æ°ã®å®ç¾©ä¸­ã«åã­ã£ã¹ããç¨ããå ´åã«ã¯ï¼
+ãCASTãã¯ã­ãç¨ãã¦è¨è¿°ããï¼
+
+ã¢ã»ã³ããªè¨èªããããããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããéã«ã¯ï¼å¿
+è¦ã«å¿ãã¦ï¼
+TOPPERS_MACRO_ONLYï¼UINC_Cï¼ULONG_Cï¼CASTããã¯ã­å®ç¾©ãã¦ããï¼ã¤ã³ã¯ã«ã¼
+ãããªããã°ãªããªãï¼
+
+1.5 ã¤ã³ã¯ã«ã¼ãè¨è¿°ã®æ¹æ³
+
+éçºç°å¢ã§ç¨æããã¦ããæ¨æºããããã¡ã¤ã«ããã³includeãã£ã¬ã¯ããªä¸ã®
+æ¨æºããããã¡ã¤ã«ã¯ï¼ã#include <...>ãã«ããã¤ã³ã¯ã«ã¼ãããï¼
+
+ãã®ä»ã®ããããã¡ã¤ã«ã¯ï¼ã#include "..."ãã«ããã¤ã³ã¯ã«ã¼ãããï¼ãã
+ããã¡ã¤ã«ãï¼ã«ã¬ã³ããã£ã¬ã¯ããªãã¤ã³ã¯ã«ã¼ããããã¡ã¤ã«ã¨åããã£
+ã¬ã¯ããªä»¥å¤ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ããå ´åã«ã¯ï¼æ¬¡ã®ããã«ãã¹æå®ã
+è¡ãï¼
+
+ã»ã¿ã¼ã²ããä¾å­é¨ï¼target/<ã¿ã¼ã²ããå>ï¼ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ãã
+ãå ´åã¯ï¼ãã¹æå®ãè¡ããï¼ãã¡ã¤ã«åã®ã¿ãè¨è¿°ããï¼
+		ä¾ï¼#include "target_config.h"
+
+ã»archãã£ã¬ã¯ããªä¸ã®ãã£ã¬ã¯ããªã«ç½®ããã¦ããå ´åã«ã¯ï¼archãã£ã¬ã¯
+ãããªããã®ç¸å¯¾ãã¹ã§è¨è¿°ããï¼
+		ä¾ï¼#include "m68k_gcc/prc_config.h"
+
+ã»ãã®ä»ã®å ´åã«ã¯ï¼ã½ã¼ã¹ãã­ã°ã©ã ã®ã«ã¼ããã£ã¬ã¯ããªï¼configureãç½®
+ãããã¦ãããã£ã¬ã¯ããªï¼ããã®ç¸å¯¾ãã¹ã§è¨è¿°ããï¼
+		ä¾ï¼#include "pdic/upd72001/upd72001.h"
+
+ã»ã«ã¼ãã«ãæ§æãããã¡ã¤ã«ããï¼kernelãã£ã¬ã¯ããªä¸ã®ããããã¡ã¤ã«
+ããã¤ã³ã¯ã«ã¼ãããå ´åã¯ï¼ãã¹æå®ãè¡ããï¼ãã¡ã¤ã«åã®ã¿ãè¨è¿°ããï¼
+		ä¾ï¼#include "kernel_impl.h"
+
+1.6 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å®ç¾ã«é¢ããå¶ç´
+
+ã«ã¼ãã«å
+ã§ç¨ããã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çãå®ç¾ããå ´åã«ã¯ï¼
+æ¬¡ã®2ã¤ã®æ¡ä»¶ãæºããããã«å®è£
+ããªããã°ãªããªãï¼
+
+(1-6-1) åºå
+¥å¦çããæããæç¹ã§ã¯ï¼å²è¾¼ã¿ã®ç¦æ­¢ï¼è¨±å¯ãå®äºãã¦ããªã
+ãã°ãªããªãï¼ä¾ãã°ï¼å²è¾¼ã¿ç¦æ­¢ï¼è¨±å¯å½ä»¤ãå®è¡ãã¦ããå®éã«å²è¾¼ã¿ã
+ç¦æ­¢ï¼è¨±å¯ãããã¾ã§ä½å½ä»¤ãé
+å»¶ãããã­ã»ããµã®å ´åã«ã¯ï¼åºå
+¥å¦çã®ä¸­
+ã«NOPå½ä»¤ãå
+¥ãããªã©ã®æ¹æ³ã§ï¼åºå
+¥å¦çãæããæç¹ã§ã¯ï¼å²è¾¼ã¿ãç¦æ­¢ï¼
+è¨±å¯ãããç¶æ
+ã«ãªã£ã¦ãããã¨ãä¿è¨¼ããªããã°ãªããªãï¼
+
+(1-6-2) ã¡ã¢ãªä¸ã®ãã¼ã¿æ§é ãæ¸ãå¤ããå¯è½æ§ããããã¨ãï¼ä½ããã®æ¹
+æ³ã§ã³ã³ãã¤ã©ã«ç¥ãããªããã°ãªããªãï¼GNUéçºç°å¢ã§ã¯ï¼æ¬¡ã®ããããã®
+æ¹æ³ã§ãã®å¶ç´ãæºãããã¨ãã§ããï¼
+
+(a) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å
+¨ä½ã¾ãã¯åºå
+¥å¦çã®æ¬è³ªçãªé¨å
+	ï¼å
+·ä½çã«ã¯ï¼å²è¾¼ã¿ç¦æ­¢ï¼è¨±å¯ããå¦çï¼ãï¼ã¤ã³ã©ã¤ã³ã§ãªãï¼éå¸¸
+	ã®é¢æ°ã«ããå®ç¾ããï¼
+
+(b) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®æ¬è³ªçãªé¨åãã¤ã³ã©ã¤ã³ã¢ã»ã³ã
+	ã©ã«ãã£ã¦å®ç¾ãã¦ããå ´åã«ã¯ï¼ãã®ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ã®clobberå¤
+	æ°ãªã¹ãã«"memory"ãè¿½å ããï¼
+
+(c) ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®æ¬è³ªçãªé¨åãï¼ãã¯ã­ãã¤ã³ã©ã¤
+	ã³é¢æ°å¼åºãã§å®ç¾ãã¦ããå ´åã«ã¯ï¼ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã«å
+¥ãå¦
+	çã®æå¾ã¨åºãå¦çã®å
+é ­ã«ï¼Asm("":::"memory")ã¨ããè¨è¿°ãå
+¥ããï¼
+
+ãã®ãããªå¶ç´ãè¨­ããçç±ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASPã«ã¼ãã« è¨­è¨ã¡ã¢ã
+ã®ãã«ã¼ãã«ã®ãã¼ã¿æ§é ã«å¯¾ããvolatileå®£è¨ã«ã¤ãã¦ãã®ç¯ãåç
+§ããã
+ã¨ï¼
+
+
+ï¼ï¼ã·ã¹ãã æ§ç¯ç°å¢ã®ã¿ã¼ã²ããä¾å­é¨
+
+ãã®ç« ã®èª¬æã¯ï¼GNUéçºç°å¢ï¼GCCï¼GASï¼BINUTILSï¼GNU Makeï¼ãç¨ãããã¨
+ãæ³å®ãã¦è¨è¿°ãã¦ããï¼ããä»¥å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼éçºç°å¢ã«
+ãããã¦ä¿®æ­£ããå¿
+è¦ãããï¼
+
+2.1 ã¿ã¼ã²ããç¥ç§°ã¨ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããª
+
+æ°ããã¿ã¼ã²ããä¾å­é¨ãä½æããæã¯ï¼ã¾ãï¼ã¿ã¼ã²ããç¥ç§°ãå®ããï¼ã¿ã¼
+ã²ããç¥ç§°ã¯ï¼ã·ã¹ãã ç¥ç§°ã¨éçºç°å¢ç¥ç§°ã"_"ã§é£çµãããã®ã¨ããï¼ã·ã¹
+ãã ç¥ç§°ã«ç¨ããæå­ã¯è±å°æå­ã¨æ°å­ã¨"_"ã«ï¼éçºç°å¢ç¥ç§°ã«ç¨ããæå­ã¯
+è±å°æå­ã¨æ°å­ã«éå®ããï¼GNUéçºç°å¢ã®éçºç°å¢ç¥ç§°ã¯ï¼"gcc"ã¨ããï¼ä¾
+ãã°ï¼ã·ã¹ãã ç¥ç§°ã"dve68k"ã§ï¼GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼ã¿ã¼ã²ãã
+ç¥ç§°ã¯"dve68k_gcc"ã¨ãªãï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã®ãã¡ã¤ã«ãç½®ãããã«ï¼targetãã£ã¬ã¯ããªã®ä¸ã«ï¼ã¿ã¼
+ã²ããç¥ç§°ãåç§°ã¨ãããã£ã¬ã¯ããªãä½æããï¼ãããã¿ã¼ã²ããä¾å­é¨ãã£
+ã¬ã¯ããªã¨å¼ã¶ï¼
+
+ã¿ã¼ã²ããä¾å­é¨ãããã­ã»ããµä¾å­é¨ããããä¾å­é¨ãåãåããå ´åã«ã¯ï¼
+ä¾å­é¨ç¥ç§°ãå®ããï¼ä¾å­é¨ç¥ç§°ã¯ï¼ãã­ã»ããµããããã®ç¥ç§°ã¨éçºç°å¢ç¥
+ç§°ã"_"ã§é£çµãããã®ã¨ããï¼ãã­ã»ããµããããã®ç¥ç§°ã«ç¨ããæå­ã¯ï¼è±
+å°æå­ã¨æ°å­ã¨"_"ã«éå®ããï¼ä¾ãã°ï¼ãã­ã»ããµç¥ç§°ã"m68k"ã§ï¼GNUéçº
+ç°å¢ãç¨ããå ´åã«ã¯ï¼ä¾å­é¨ç¥ç§°ã¯"m68k_gcc"ã¨ãªãï¼
+
+ã¾ãï¼ã¿ã¼ã²ããä¾å­é¨ããéçºç°å¢ä¾å­é¨ãåãåããå ´åã«ã¯ï¼éçºç°å¢
+ç¥ç§°ãä¾å­é¨ç¥ç§°ã¨ããï¼ä¾ãã°ï¼GNUéçºç°å¢ä¾å­é¨ã®ä¾å­é¨ç¥ç§°ã¯ï¼"gcc"
+ã¨ãªãï¼
+
+ãããã®ä¾å­é¨ã®ãã¡ã¤ã«ãç½®ãããã«ï¼archãã£ã¬ã¯ããªã®ä¸ã«ï¼ä¾å­é¨ç¥
+ç§°ãåç§°ã¨ãããã£ã¬ã¯ããªãä½æããï¼
+
+ãªãï¼GNUéçºç°å¢ä»¥å¤ã®éçºç°å¢ãç¨ããå ´åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+ã¹ã¯ãªããï¼configureï¼ï¼ãµã³ãã«ã®Makefileï¼sample/Makefileï¼ï¼ä¸é¨ã®
+ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ï¼utils/makedepï¼ãï¼ãã®éçºç°å¢ç¨ã«ç¨æããå¿
+
+è¦ãããå ´åãããï¼ãã®å ´åã«ã¯ï¼ãããã®ãã¡ã¤ã«ãï¼ã¿ã¼ã²ããä¾å­é¨
+ãã£ã¬ã¯ããªãéçºç°å¢ä¾å­é¨ãã£ã¬ã¯ããªã«ç½®ããã®ã¨ããï¼ã¾ãï¼éçºç°
+å¢ç¨ã®ãã­ã¸ã§ã¯ããã¡ã¤ã«ãå¿
+è¦ãªå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ã
+ãªã«ç½®ããã®ã¨ããï¼
+
+2.2 Makefileã®ã¿ã¼ã²ããä¾å­é¨
+
+Makefileã®ã¿ã¼ã²ããä¾å­é¨ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã«ç½®ãã
+Makefile.targetã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ãã­ã»ããµã»ãã
+ãã»éçºç°å¢ä¾å­é¨ã§ç¨æããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
+
+2.3 éçºç°å¢åã¨ã³ãã³ãåã®è¨­å®
+
+éçºç°å¢åã¨ã³ãã³ãåãè¨­å®ããããã«ï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§æ¬¡
+ã®å¤æ°ãå®ç¾©ããï¼
+
+(2-3-1) TOOL					éçºç°å¢å
+
+éçºç°å¢åã«å®ç¾©ããï¼GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼gccã«å®ç¾©ããï¼
+
+(2-3-2) GCC_TARGET				GNUéçºç°å¢ã®ã¿ã¼ã²ããå
+
+GNUéçºç°å¢ãç¨ããå ´åã«ï¼GNUéçºç°å¢ãconfigureããå ´åã«æå®ããã¿ã¼
+ã²ããåã«å®ç¾©ããï¼ããã§æå®ããã¿ã¼ã²ããåã¯ï¼éçºç°å¢ã®ã³ãã³ãå
+ã®å
+é ­ã«ä»ä¸ãããæå­åã¨ãªãï¼ä¾ãã°ï¼GCC_TARGETãm68k-unknown-elfã«
+å®ç¾©ããå ´åã«ã¯ï¼ã³ã³ãã¤ã©ã¨ãã¦m68k-unknown-elf-gccãä½¿ãããï¼ãã®
+å¤æ°ãå®ç¾©ãããªãå ´åã«ã¯ï¼åãªãgccãä½¿ãããï¼
+
+(2-3-3) CC						Cã³ã³ãã¤ã©ãã©ã¤ãã®åç§°
+(2-3-4) CXX						C++ã³ã³ãã¤ã©ãã©ã¤ãã®åç§°
+(2-3-5) AS						ã¢ã»ã³ãã©ã®åç§°
+(2-3-6) LD						ãªã³ã«ã®åç§°
+(2-3-7) AR						ã¢ã¼ã«ã¤ãã®åç§°
+(2-3-8) NM						nmãã­ã°ã©ã ã®åç§°
+(2-3-9) RANLIB					ranlibãã­ã°ã©ã ã®åç§°
+(2-3-10) OBJCOPY				objcopyãã­ã°ã©ã ã®åç§°
+(2-3-11) OBJDUMP				objdumpãã­ã°ã©ã ã®åç§°
+
+GNUéçºç°å¢ä»¥å¤ã®éçºç°å¢ãç¨ããå ´åã«ï¼ããããã®ã³ãã³ãã®åç§°ã«å®ç¾©
+ããï¼å¯¾å¿ããã³ãã³ãããªãå ´åãï¼ã³ãã³ããã©ã¡ã¼ã¿ãç°ãªãå ´åã«ã¯ï¼
+Makefileä¸­ã§ãã®ã³ãã³ããå¼ã³åºãã¦ããé¨åãå¤æ´ããå¿
+è¦ãããï¼
+
+GNUéçºç°å¢ã§ã¯ï¼ãããã¯GCC_TARGETãç¨ãã¦å®ç¾©ãããã®ã§ï¼å®ç¾©ããå¿
+è¦
+ã¯ãªãï¼
+
+2.4 ã³ã³ãã¤ã«ãªãã·ã§ã³ã¨ãªãã¸ã§ã¯ããã¡ã¤ã«ã®è¨­å®
+
+Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§ä»¥ä¸ã§èª¬æããå¤æ°ãå®ç¾©ããæã«ã¯ï¼":="ã
+ç¨ãã¦ï¼ããã¾ã§ã®å®ç¾©ã«è¿½å ããå½¢ã§è¡ãï¼ä¾ãã°ï¼ã³ã³ãã¤ã©ã«å¯¾ããã
+ã®ä»ã®ãªãã·ã§ã³ã¨ãã¦ã-Wall -g -O2ããè¿½å ãããå ´åã«ã¯ï¼ãCOPTS :=
+$(COPTS) -Wall -g -O2ãã¨ããè¨è¿°ãMakefileã®ã¿ã¼ã²ããä¾å­é¨ã«å«ããï¼
+
+(2-4-1) COPTS				ã³ã³ãã¤ã©ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
+(2-4-2) CDEFS				ãã¯ã­å®ç¾©ãªãã·ã§ã³ï¼-Dãªãã·ã§ã³ï¼
+(2-4-3) INCLUDES			ããããã¡ã¤ã«ã®ç½®ããããã£ã¬ã¯ããªæå®ãª
+							ãã·ã§ã³ï¼-Iãªãã·ã§ã³ï¼
+(2-4-4) LDFLAGS				ãªã³ã«ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³
+(2-4-5) LIBS				ã©ã¤ãã©ãªãªã³ã¯æå®ã®ããã®ãªãã·ã§ã³
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã«å
+±éããã³ã³ãã¤ã«ãªãã·ã§
+ã³ã®è¿½å ãå¿
+è¦ãªå ´åã«ã¯ï¼ãªãã·ã§ã³ã®ç¨®é¡æ¯ã«ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
+
+ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
+ä¸ã®è¨è¿°ãå«ããå¿
+è¦ãããï¼
+
+----------------------------------------
+INCLUDES := $(INCLUDES) -I$(TARGETDIR)
+----------------------------------------
+
+ããã§TARGETDIRã¯ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã«å®ç¾©ããã¦ããï¼ã¾ã
+SRCDIRã¯ï¼Makefileã«ããã¦ï¼ã½ã¼ã¹ãã­ã°ã©ã ã®ã«ã¼ããã£ã¬ã¯ããª
+ï¼configureãç½®ããã¦ãããã£ã¬ã¯ããªï¼ã«å®ç¾©ããã¦ããï¼
+
+ã³ã³ãã¤ã©ã®åé¡ç­ã§ï¼è­¦åã¡ãã»ã¼ã¸ãåºããã¨ãé²ããªãç¶æ³ä»¥å¤ã§ã¯ï¼
+COPTSã«-Werrorãè¿½å ãããã¨ãæ¨å¥¨ããï¼
+
+----------------------------------------
+COPTS := $(COPTS) -Werror
+----------------------------------------
+
+ã«ã¼ãã«ã®ã³ã³ãã¤ã«æã«ï¼dereferencing type-punned pointer will break
+strict-aliasing rulesã¨ããè­¦åãåºãå ´åã«ã¯ï¼ä»¥ä¸ãè¿½å ããã¨ããï¼ã
+ã®è­¦åã¡ãã»ã¼ã¸ã«é¢ããè©³ç´°ã¯ï¼ãTOPPERS/ASPã«ã¼ãã« è¨­è¨ã¡ã¢ãã®ãå
+ã­ã£ã¹ãã«ä¼´ãè­¦åã¡ãã»ã¼ã¸ãã®ç¯ãåç
+§ãããã¨ï¼
+
+----------------------------------------
+KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasing
+----------------------------------------
+
+ã¾ãï¼ã¢ã»ã³ããªè¨èªã¬ãã«ã®è­å¥åãï¼Cè¨èªã¬ãã«ã®è­å¥åã®å
+é ­ã«"_"ã
+ä»ãããã®ã«ãªãå ´åã«ã¯ï¼CDEFSã«-DTOPPERS_LABEL_ASMãè¿½å ããï¼
+
+(2-4-6) SYSSVC_DIR			ã·ã¹ãã ãµã¼ãã¹ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
+(2-4-7) SYSSVC_ASMOBJS		ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®
+							ãªãã¸ã§ã¯ã
+(2-4-8) SYSSVC_COBJS		Cè¨èªã§è¨è¿°ãããã·ã¹ãã ãµã¼ãã¹ã®ãªãã¸ã§ã¯ã
+(2-4-9) SYSSVC_CFLAGS		ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
+(2-4-10) SYSSVC_LIBS		ã·ã¹ãã ãµã¼ãã¹ã«å¯¾ããã©ã¤ãã©ãªãªã³ã¯æå®
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ã·ã¹ãã ãµã¼ãã¹ï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãããã¤ã¹ã
+ã©ã¤ããªã©ï¼ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ã·ã¹ãã ãµã¼ãã¹ãæ§æãã
+ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨ããã³ã³ã
+ã¤ã«ãªãã·ã§ã³ï¼ãã®æ§æã«å¿
+è¦ãªã©ã¤ãã©ãªãªã³ã¯æå®ãè¿½å ããå ´åã«ã¯ï¼
+ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
+
+(2-4-11) KERNEL_DIR			ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããª
+(2-4-12) KERNEL_ASMOBJS		ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
+(2-4-13) KERNEL_COBJS		Cè¨èªã§è¨è¿°ãããã«ã¼ãã«ã®ãªãã¸ã§ã¯ã
+(2-4-14) KERNEL_CFLAGS		ã«ã¼ãã«ã«å¯¾ããã³ã³ãã¤ã«ãªãã·ã§ã³
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ã«ã¼ãã«ã®ã½ã¼ã¹ãç½®ããããã£ã¬ã¯ããªï¼ã«ã¼ãã«
+ãæ§æãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ãï¼ããããã³ã³ãã¤ã«ããéã«é©ç¨
+ããã³ã³ãã¤ã«ãªãã·ã§ã³ãè¿½å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
+
+ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
+ä¸ã®è¨è¿°ãå«ããå¿
+è¦ãããï¼
+
+----------------------------------------
+KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
+KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_timer.o
+----------------------------------------
+
+(2-4-15) CFG_TABS			ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³ãè¿½å ããå ´
+åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼å
+·ä½çã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤å
+å¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ï¼target_def.csvï¼ãããå ´åã«ã¯ï¼
+ãããæå®ãããªãã·ã§ã³ãè¿½å ããå¿
+è¦ãããï¼
+
+ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
+ä¸ã®è¨è¿°ãå«ããå¿
+è¦ãããï¼
+
+----------------------------------------
+CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
+----------------------------------------
+
+(2-4-16) CFG1_OUT_LDFLAGS	cfg1_out.cã«å¯¾ãããªã³ã¯ãªãã·ã§ã³
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼cfg1_out.cããªã³ã¯ããéã«é©ç¨ãããªãã·ã§ã³ãè¿½
+å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
+
+ãªãï¼LDFLAGSã¯ï¼cfg1_out.cããªã³ã¯ããéã«ã¯é©ç¨ãããªãããï¼LDFLAGS
+ã«å®ç¾©ãããªãã·ã§ã³ã§ï¼cfg1_out.cããªã³ã¯ããéã«ãå¿
+è¦ãªãã®ã¯ï¼
+CFG1_OUT_LDFLAGSã«ãå®ç¾©ããå¿
+è¦ãããï¼
+
+(2-4-17) CFG_ASMOBJS		ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããã·ã¹ãã ã³ã³ãã£
+							ã®ã¥ã¬ã¼ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯ã
+(2-4-18) CFG_COBJS			Cè¨èªã§è¨è¿°ãããã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
+							ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯ã
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã®ããã®ãªãã¸ã§ã¯
+ããã¡ã¤ã«ãï¼kernel_cfg.oä»¥å¤ã«ï¼è¿½å ããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®
+ç¾©ããï¼ãã®å ´åï¼è¿½å ãããªãã¸ã§ã¯ããã¡ã¤ã«ã®ä½æã«ã¼ã«ï¼ã³ã³ãã¤ã«ï¼
+ã¢ã»ã³ãã«ã«ã¼ã«ã¨ä¾å­é¢ä¿ä½æã«ã¼ã«ï¼ãï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã«
+è¨è¿°ããå¿
+è¦ãããï¼
+
+(2-4-19) CFG2_OUT_SRCS
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã§kernel_cfg.cã¨
+kernel_cfg.hä»¥å¤ã®ãã¡ã¤ã«ãçæããå ´åã«ã¯ï¼ä¸ã«ç¤ºããå¤æ°ã«å®ç¾©ããï¼
+
+(2-4-20) OMIT_WARNING_ALL
+(2-4-21) OMIT_OPTIMIZATION
+
+ãµã³ãã«ã®Makefileã§ã¯ï¼ã³ã³ãã¤ã©ã«å¯¾ãããªãã·ã§ã³ã«ã-Wall -g -O2ã
+ãè¿½å ããï¼-Wallãè¿½å ããããªãå ´åã«ã¯ï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§
+OMIT_WARNING_ALLã"true"ã«å®ç¾©ããï¼-O2ãè¿½å ããããªãå ´åã«ã¯ï¼
+Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§OMIT_OPTIMIZATIONã"true"ã«å®ç¾©ããï¼
+
+2.5 ãªãã»ãããã¡ã¤ã«ã®çææ¹æ³
+
+ã¢ã»ã³ããªè¨èªã§è¨è¿°ããããã­ã°ã©ã ããï¼Cè¨èªã®æ§é ä½ã«ã¢ã¯ã»ã¹ããå ´
+åã«ã¯ï¼æ§é ä½ã®åãã£ã¼ã«ãã®ãªãã»ããå¤ãåç
+§ãããã¨ãå¿
+è¦ã§ããï¼
+ASPã«ã¼ãã«ã§ã¯ï¼å¿
+è¦ãªãªãã»ããå¤ãæ±ãã¦ãã¡ã¤ã«ï¼æ¨æºã§ã¯offset.hï¼
+ã«çæããããã®ä»çµã¿ãç¨æãã¦ããï¼
+
+ãã®ä»çµã¿ãç¨ãããã¨ã§ï¼ä¾ãã°ï¼TCBä¸­ã®texptnãã£ã¼ã«ãã®ãªãã»ããå¤
+ãTCB_texptnã«ãã¯ã­å®ç¾©ãããã¨ãï¼TCBä¸­ã®ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯
+ï¼tskctxbï¼ã«å«ã¾ããpcãã£ã¼ã«ãã®ãªãã»ããå¤ãTCB_pcã«ãã¯ã­å®ç¾©ãã
+ãã¨ãã§ããï¼ã¾ãï¼TCBä¸­ã®enatexãã£ã¼ã«ãã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼
+ããããã¹ã¯ãï¼ããããTCB_enatexï¼TCB_enatex_bitï¼TCB_enatex_maskã«ã
+ã¯ã­å®ç¾©ãããã¨ãã§ããï¼
+
+offset.hãçæããããã®ä»çµã¿ã¨ãã¦ï¼ç¾æç¹ã§ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã
+ç¨ããæ¹æ³ã¨ï¼makeoffset.cã¨genoffsetãç¨ããæ¹æ³ãç¨æãã¦ããï¼å¾è
+ã®
+æ¹æ³ã¯ï¼GNUéçºç°å¢ã«ããå¯¾å¿ãã¦ããªããã¨ããï¼å°æ¥ã®ãã¼ã¸ã§ã³ã§ã¯ï¼
+å¾è
+ã®æ¹æ³ã®ãµãã¼ãããããè¨ç»ã§ããï¼æ°ãã«ãã¼ãã£ã³ã°ããå ´åã«ã¯ï¼
+åè
+ã®æ¹æ³ãç¨ãããã¨ãæ¨å¥¨ããï¼
+
+ãããã®ä»çµã¿ã§ãªãã»ãããã¡ã¤ã«ãçæã§ããªãæã«ã¯ï¼offset.hãã¿ã¼
+ã²ããä¾å­é¨ã§ç¨æãï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§OMIT_MAKEOFFSETã
+"true"ã«å®ç¾©ããï¼
+
+æ¡å¼µããã±ã¼ã¸ã®ä¸­ã«ã¯ï¼TCBã«ãã£ã¼ã«ããè¿½å ãããã®ãããããï¼TCBä¸­
+ã®ãã£ã¼ã«ãã®ãªãã»ããå¤ã¯å¤åããï¼offset.hãçæããå ´åã§ãï¼ã¿ã¼
+ã²ããä¾å­é¨ã§ç¨æããå ´åã§ãï¼æ¡å¼µããã±ã¼ã¸ã«å¯¾å¿ããããã«ã¯ï¼ãã®
+ãã¨ãèæ
+®ããå¿
+è¦ãããï¼
+
+2.5.1 ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ããæ¹æ³
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã§çæããcfg1_out.cãã³ã³ãã¤ã«ãã¦çæãããª
+ãã¸ã§ã¯ããã¡ã¤ã«ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ãã£ã¦offset.hãçæããæ¹
+æ³ã§ããï¼ãã®æ¹æ³ãç¨ããããã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ãªãã»ãããã¡ã¤
+ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ãç¨æãï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããã
+ãã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã¨target_def.csvï¼ã¾ãã¯ï¼åç­ã®å½¹å²ãæ
+ã¤ãã¡ã¤ã«ï¼ã«è¨è¿°ãè¿½å ããå¿
+è¦ãããï¼ãªãï¼ãããã®ãã¡ã¤ã«ãæ°ãã«
+ç¨æããéãä¿®æ­£ããéã«ã¯ï¼offset.hã«å¦¥å½ãªå®ç¾©ãçæããã¦ãããã¨ã
+ç¢ºèªãã¹ãã§ããï¼
+
+ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ï¼
+target_offset.tfï¼ã¾ãã¯ï¼ãã­ã»ããµä¾å­é¨ããããä¾å­é¨ã§ç¨æãããã
+ã«ä»£ãããã¡ã¤ã«ï¼ã«ç¨æããï¼ã¾ãï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§ï¼æ¬¡ã®
+ä¾ã®ããã«ï¼OFFSET_TFã«ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ã®ãã¡
+ã¤ã«åãå®ç¾©ããï¼
+
+----------------------------------------
+# ãªãã»ãããã¡ã¤ã«çæã®ããã®å®ç¾©
+OFFSET_TF = $(TARGETDIR)/target_offset.tf
+----------------------------------------
+
+ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ã«ã¯ï¼ä»¥ä¸ã®å
+å®¹ãè¨è¿°ããï¼
+
+(1) æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+
+ãªãã»ãããã¡ã¤ã«çæç¨ã®æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ï¼kernel/genoffset.tfï¼
+ãã¤ã³ã¯ã«ã¼ãããï¼æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã«ã¯ï¼ä»¥ä¸ã§ç¨ããDEFINEé¢
+æ°ãDEFINE_BITé¢æ°ã®å®ç¾©ãªã©ãå«ã¾ãã¦ããï¼
+
+----------------------------------------
+$ æ¨æºãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+$INCLUDE "kernel/genoffset.tf"$
+----------------------------------------
+
+(2) ãªãã»ããå¤ã®ãã¯ã­å®ç¾©ã®çæ
+
+DEFINEé¢æ°ãç¨ãã¦ï¼ãªãã»ããå¤ã®ãã¯ã­å®ç¾©ãçæããï¼ä¾ãã°ï¼TCBä¸­ã®
+ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ï¼tskctxbï¼ã«å«ã¾ããpcãã£ã¼ã«ãã®ãªãã»ãã
+å¤ãï¼TCB_pcã«ãã¯ã­å®ç¾©ããå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨è¿°ããï¼
+
+----------------------------------------
+$ ãªãã»ããå¤ã®ãã¯ã­å®ç¾©ã®çæ
+$DEFINE("TCB_pc", offsetof_TCB_pc)$
+----------------------------------------
+
+ããã§ï¼DEFINEé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã¯ãã¯ã­å®ç¾©ããã·ã³ãã«ï¼ç¬¬2ãã©ã¡ã¼
+ã¿ã¯ï¼ãªãã»ããå¤ãä¿æããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤æ°ã§ããï¼
+
+ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãªãã»ããå¤ãä¿æããå¤æ°ï¼ä¸ã®ä¾ã§ã¯
+offsetof_TCB_pcï¼ã«å¤ãè¨­å®ããããã«ï¼target_def.csvï¼ã¾ãã¯ï¼åç­ã®å½¹
+å²ãæã¤ãã¡ã¤ã«ï¼ã«æ¬¡ã®ä¾ã®ãããªè¡ãè¿½å ããï¼
+
+----------------------------------------
+offsetof_TCB_pc,"offsetof(TCB,tskctxb.pc)"
+----------------------------------------
+
+ãã ãï¼åãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®ã¿ã¼ã²ããéä¾å­ã®ãã£ã¼ã«ãã®
+ãªãã»ããå¤ãåå¾ããããã®è¨è¿°ã¯ï¼kernel/kernel_def.csvã«å«ã¾ãã¦ããï¼
+kernel/kernel_def.csvã«å«ã¾ãã¦ããè¨è¿°ã¯ï¼target_def.csvï¼ã¾ãã¯ï¼åç­
+ã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«è¿½å ããå¿
+è¦ã¯ãªãï¼
+
+(3) ããããªãã»ããå¤ç­ã®ãã¯ã­å®ç¾©ã®çæ
+
+DEFINE_BITé¢æ°ãç¨ãã¦ï¼ãããã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼ããããã¹ã¯
+ã®ãã¯ã­å®ç¾©ãçæããï¼ä¾ãã°ï¼TCBä¸­ã®enatexãã£ã¼ã«ãã®ãªãã»ããå¤ï¼
+ãããä½ç½®ï¼ããããã¹ã¯ãï¼ããããTCB_enatexï¼TCB_enatex_bitï¼
+TCB_enatex_maskã«ãã¯ã­å®ç¾©ããå ´åã«ã¯ï¼æ¬¡ã®ããã«è¨è¿°ããï¼
+
+----------------------------------------
+$DEFINE_BIT("TCB_enatex", sizeof_TCB, "B")$
+----------------------------------------
+
+ããã§ï¼DEFINE_BITé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ã¯ãã¯ã­å®ç¾©ããã·ã³ãã«ï¼ã®å
+é ­é¨
+åï¼ï¼ç¬¬2ãã©ã¡ã¼ã¿ã¯æ§é ä½ã®ãµã¤ãºã§ããï¼ç¬¬3ãã©ã¡ã¼ã¿ã«ã¯ï¼ãããã®
+ãªãã»ããï¼ãããä½ç½®ï¼ããããã¹ã¯ãï¼8ãããåä½ï¼ãã¤ãåä½ï¼ã§æ±ã
+ãå ´åã«ã¯"B"ãï¼16ãããåä½ã§æ±ããå ´åã«ã¯"H"ãï¼32ãããåä½ã§æ±ã
+ãå ´åã«ã¯"W"ãæå®ããï¼ãªãï¼ãããä½ç½®ã¯ï¼LSBã0ã¨ããå¤ï¼ããããªã
+ã«ã¨ã³ãã£ã¢ã³ãæ³å®ï¼ãæ±ããï¼
+
+ã¾ãï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ï¼
+ããããªãã»ããå¤ç­ãæ±ããããã®æ§é ä½ã®å¤æ°å®ç¾©ãè¿½å ããï¼ãã®æ§é 
+ä½ã®å¤æ°ã¯ï¼åç§°ããã¯ã­å®ç¾©ããã·ã³ãã«ï¼DEFINE_BITé¢æ°ã®ç¬¬1ãã©ã¡ã¼ã¿ï¼
+ã¨ãï¼å¯¾è±¡ã®ãããã®ã¿ã1ã§ï¼ä»ã®ãã¹ã¦ã®ãããã0ã«ãªãããã«åæåã
+ãï¼ã¾ãï¼constä¿®é£¾å­ãä»å ããï¼ä¾ãã°ï¼TCBä¸­ã®enatexãã£ã¼ã«ãã®ãã
+ããªãã»ããå¤ç­ãæ±ããå ´åã«ã¯ï¼æ¬¡ã®ãããªå®ç¾©ãè¿½å ããï¼tskctxbã®å
+æå¤ã¯ï¼ã¿ã¼ã²ããä¾å­ãªã®ã§æ³¨æãããã¨ï¼ï¼
+
+----------------------------------------
+const TCB	TCB_enatex = {
+	{ NULL, NULL },			/* task_queue */
+	NULL,					/* p_tinib */
+	0U,						/* tstat */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	0U,						/* bpriority */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+	0U,						/* priority */
+	false,					/* acqeue */
+	false,					/* wupque */
+	true,					/* enatex */
+	0U,						/* texptn */
+	NULL,					/* p_winifo */
+#ifdef TOPPERS_SUPPORT_MUTEX
+	{ NULL, NULL },			/* mutex_queue */
+#endif /* TOPPERS_SUPPORT_MUTEX */
+#ifdef TOPPERS_SUPPORT_OVRHDR
+	0U,						/* leftotm */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	{ NULL, NULL }			/* tskctxb */
+};
+----------------------------------------
+
+ããã«ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼æ§é ä½ã®ãµã¤ãºï¼ä¸ã®ä¾ã§ã¯sizeof_TCBï¼ã«
+å¤ãè¨­å®ããããã«ï¼target_def.csvï¼ã¾ãã¯ï¼åç­ã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼
+ã«æ¬¡ã®ä¾ã®ãããªè¡ãè¿½å ããï¼
+
+----------------------------------------
+sizeof_TCB,sizeof(TCB)
+----------------------------------------
+
+ãã ãï¼åè¿°ããéãï¼kernel/kernel_def.csvã«å«ã¾ãã¦ããè¨è¿°ã¯ï¼
+target_def.csvï¼ã¾ãã¯ï¼åç­ã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«è¿½å ããå¿
+è¦ã¯ãªãï¼
+
+æå¾ã«ï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼
+ã«ï¼offset.hãçæããä»çµã¿ãæ­£ããåä½ãã¦ãããã¨ãç¢ºèªããããã®æ¬¡
+ã®è¨è¿°ãè¿½å ããï¼
+
+----------------------------------------
+const uint8_t	MAGIC_1 = 0x12;
+const uint16_t	MAGIC_2 = 0x1234;
+const uint32_t	MAGIC_4 = 0x12345678;
+----------------------------------------
+
+2.5.2 makeoffset.cã¨genoffsetãç¨ããæ¹æ³
+
+makeoffset.cã¯ï¼ã©ã®ãªãã»ããå¤ãoffset.hã«çæããããæå®ãããã¡ã¤
+ã«ã§ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããï¼genoffsetã¯ï¼makeoffset.cãã³ã³ãã¤ã«
+ãã¦å¾ãããã¢ã»ã³ããªã½ã¼ã¹ãã¡ã¤ã«ããï¼offset.hãçæããã¹ã¯ãªãã
+ã§ããï¼genoffsetã¯ï¼GNUéçºç°å¢ã«ã®ã¿å¯¾å¿ãã¦ããï¼
+
+makeoffset.cãè¨è¿°ããå ´åã«ã¯ï¼æ¢å­ã®ã¿ã¼ã²ããä¾å­é¨ã«å«ã¾ãã
+makeoffset.cãä¿®æ­£ããã®ãè¿éã§ããï¼æ¨æºçãªmakeoffset.cã¯ï¼ä»¥ä¸ã®6ã¤
+ã®é¨åã§æ§æããã¦ããï¼ãªãï¼makeoffset.cãæ°ãã«è¨è¿°ããéã«ã¯ï¼
+offset.hã«å¦¥å½ãªå®ç¾©ãçæããã¦ãããã¨ãç¢ºèªãã¹ãã§ããï¼
+
+(1) å¿
+è¦ãªãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+
+ãªãã»ããå¤ãæ±ããããã£ã¼ã«ããå«ãæ§é ä½ãå®ç¾©ããããããã¡ã¤ã«ã
+ã¤ã³ã¯ã«ã¼ãããï¼TCBä¸­ã®ãã£ã¼ã«ãã®ãªãã»ããå¤ãæ±ãããå ´åã«ã¯ï¼ä»¥
+ä¸ã®3è¡ãå«ããã°ããï¼
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "sil.h"
+
+(2) ãªãã»ããå¤åºåç¨ãã¯ã­ã®å®ç¾©
+
+æ§é ä½ä¸­ã®ãã£ã¼ã«ãã®ãªãã»ããå¤ã®å®ç¾©ãçæããããã«ç¨ãããã¯ã­
+ï¼OFFSET_DEFã¨OFFSET_DEF2ï¼ã®å®ç¾©ï¼ãããã®ãã¯ã­ã®å®ç¾©ã¯ï¼ä¿®æ­£ããå¿
+è¦
+ããªãï¼
+
+(3) ãªãã»ããå¤åºåç¨é¢æ°ã®å®ç¾©
+
+æ§é ä½ä¸­ã®ãã£ã¼ã«ãã®ãªãã»ããå¤ã®å®ç¾©ãçæããããã®é¢æ°
+ï¼makeoffsetï¼ã®å®ç¾©ï¼ãªãã»ããå¤ã®ãã¯ã­å®ç¾©ãçæããããã£ã¼ã«ãæ¯
+ã«ï¼æ¬¡ã®ããããã®ãã¯ã­ãè¨è¿°ããï¼
+
+(2-5-2-1) OFFSET_DEF(TYPE, FIELD)
+
+TYPEã«æ§é ä½ã®ãã¼ã¿ååï¼FIELDã«ãã®æ§é ä½ä¸­ã®ãã£ã¼ã«ããæå®ããã¨ï¼
+TYPE_FIELDã¨ããååã®ã·ã³ãã«ã«ï¼ãã®ãã£ã¼ã«ãã®ãªãã»ããå¤ããã¯ã­
+å®ç¾©ããè¨è¿°ãçæããï¼
+
+(2-5-2-2) OFFSET_DEF2(TYPE, FIELD, FIELDNAME)
+
+TYPEã«æ§é ä½ã®ãã¼ã¿ååï¼FIELDã«ãã®æ§é ä½ä¸­ã®ãã£ã¼ã«ããæå®ããã¨ï¼
+TYPE_FIELDNAMEã¨ããååã®ã·ã³ãã«ã«ï¼ãã®ãã£ã¼ã«ãã®ãªãã»ããå¤ãã
+ã¯ã­å®ç¾©ããè¨è¿°ãçæããï¼æ§é ä½ã«å«ã¾ããæ§é ä½ä¸­ã®ãã£ã¼ã«ãã®ãªã
+ã»ããå¤ãæ±ãããå ´åã«ã¯ï¼ãã¡ãã®ãã¯ã­ãä½¿ç¨ããï¼
+
+(4) ã¨ã³ãã£ã¢ã³ãåç
+§ããããã®é¢æ°ã®å®ç¾©
+
+SILã§å®ç¾©ãããã¨ã³ãã£ã¢ã³ãåç
+§ããããã®é¢æ°ï¼sil_endianï¼ã®å®ç¾©ï¼ã
+ã®é¢æ°ã®å®ç¾©ã¯ï¼ä¿®æ­£ããå¿
+è¦ããªãï¼
+
+(5) ããããªãã»ããå¤åºåã®ããã®åç
+§å®ç¾©
+
+åæå¤ãæã£ãå¤æ°å®ç¾©ã«å¯¾ãã¦ï¼ã³ã³ãã¤ã©ãçæããã¢ã»ã³ããªå½ä»¤ãå
+ç
+§ããããã®å¤æ°ï¼BIT_REF_4ï¼BIT_REF_2ï¼BIT_REF_1ï¼ã®å®ç¾©ï¼ãããã®å®ç¾©
+ã¯ï¼ã»ã¨ãã©ã®å ´åã«ä¿®æ­£ããå¿
+è¦ããªãï¼ãã ãï¼uint8_tåã®ãµãã¼ããã
+ã¦ããªãã¿ã¼ã²ããã§ã¯ï¼BIT_REF_1ã®å®ç¾©ã¯åé¤ããå¿
+è¦ãããï¼ã¾ãï¼ãã¤
+ã³ã¿ã64ãããã®ã¿ã¼ã²ããç­ã§ã¯ï¼BIT_REF_8ã®å®ç¾©ãè¿½å ããªããã°ãªããª
+ãã¨æãããï¼
+
+(6) ããããªãã»ããå¤åºåç¨å¤æ°ã®å®ç¾©
+
+ãããã®ãªãã»ããå¤ï¼ãããä½ç½®ï¼ããããã¹ã¯ã®å®ç¾©ãçæããããã®ãã¼
+ã¿åã®å®ç¾©ï¼ãããã®å®ç¾©ãçæãããããããã£ã¼ã«ãæ¯ã«ï¼ä»¥ä¸ã®èª¬æã
+ãå¤æ°ãå®ç¾©ããï¼
+
+æ§é ä½ã®ãã¼ã¿ååãTYPEï¼ãã®æ§é ä½ä¸­ã®ããããã£ã¼ã«ãåãFIELDã®å ´å
+ã«ï¼ãã¼ã¿åãTYPEã§ï¼å¤æ°åãBIT_xy_TYPE_FIELDã®å¤æ°ãå®ç¾©ããï¼ã¾ãï¼
+ãã®å¤æ°ãï¼å¯¾è±¡ã®ãããã®ã¿ã1ã§ï¼ä»ã®ãã¹ã¦ã®ãããã0ã«ãªãããã«å
+æåããï¼ããã§ï¼xã¯ã¨ã³ãã£ã¢ã³ãæå®ããæå­ã§ï¼Bï¼ããã°ã¨ã³ãã£ã¢
+ã³ï¼ã¾ãã¯Lï¼ãªãã«ã¨ã³ãã£ã¢ã³ï¼ãæå®ããï¼ã¾ãyã«ã¯ï¼ãããã®ãªãã»ã
+ãï¼ãããä½ç½®ï¼ããããã¹ã¯ãï¼8ãããåä½ï¼ãã¤ãåä½ï¼ã§æ±ããå ´åã«
+ã¯Bãï¼16ãããåä½ã§æ±ããå ´åã«ã¯Hãï¼32ãããåä½ã§æ±ããå ´åã«ã¯Wã
+æå®ããï¼
+
+ããã«ããï¼TYPE_FIELDã¨ããååã®ã·ã³ãã«ã«ãã®ãããã®ãªãã»ããï¼
+TYPE_FIELD_bitã¨ããååã®ã·ã³ãã«ã«ãããä½ç½®ï¼TYPE_FIELD_maskã¨ããå
+åã®ã·ã³ãã«ã«ããããã¹ã¯ããã¯ã­å®ç¾©ããè¨è¿°ãçæããï¼ãªãï¼ããã
+ä½ç½®ã¯ï¼LSBã0ã¨ããå¤ï¼ããããªãã«ã¨ã³ãã£ã¢ã³ãæ³å®ï¼ãæ±ããï¼
+
+2.6 ãªã³ã¯æ¹æ³ã®è¨­å®
+
+(2-6-1) LDSCRIPT				ãªã³ã«ã¹ã¯ãªããã®ãã¡ã¤ã«å
+
+éçºç°å¢ã«æ¨æºã®ãªã³ã«ã¹ã¯ãªãããä½¿ç¨ã§ããªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­
+é¨ã§ãªã³ã«ã¹ã¯ãªãããç¨æãï¼ãã®ãã¡ã¤ã«åããã®å¤æ°ã«å®ç¾©ããï¼
+
+(2-6-2) TEXT_START_ADDRESS		ãã­ã¹ãã»ã¯ã·ã§ã³ã®å
+é ­çªå°
+(2-6-3) DATA_START_ADDRESS		ãã¼ã¿ã»ã¯ã·ã§ã³ã®å
+é ­çªå°
+
+åã»ã¯ã·ã§ã³ã®å
+é ­çªå°ã®æå®ãå¿
+è¦ãªå ´åã«ã¯ï¼ãããã®å¤æ°ã«å
+é ­çªå°ã
+å®ç¾©ããï¼
+
+(2-6-4) START_OBJS				å
+é ­ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«å
+(2-6-5) END_OBJS				æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«å
+
+ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®å
+é ­ã¨æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼
+ã«ãï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããå¿
+è¦ãããï¼å¤ãã®å ´åï¼ã¹ã¿ã¼ãã¢ãã
+ã¢ã¸ã¥ã¼ã«ãã­ã¼ãã¢ã¸ã¥ã¼ã«ã®å
+é ­ã«ãªã³ã¯ããå¿
+è¦ãããï¼
+
+ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®å
+é ­ã«ãªã³ã¯ãã¹ããã­ã°ã©ã ãããå ´åã«ã¯ï¼Makefile
+ã®ã¿ã¼ã²ããä¾å­é¨ã«ããã¦ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åãSTART_OBJSã«å®
+ç¾©ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾å­é¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼ã­ã¼
+ãã¢ã¸ã¥ã¼ã«ã®æå¾ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«ãããå ´åã«ã¯ï¼ãã®ãªãã¸ã§
+ã¯ããã¡ã¤ã«åãEND_OBJSã«å®ç¾©ãï¼ããã«å¯¾ããã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾å­é¢
+ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼ã¾ãï¼æ¨æºã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ï¼crt0.oï¼
+ããªã³ã¯ããªãããã«ï¼LDFLAGSã¨CFG1_OUT_LDFLAGSã«-nostdlibãè¿½å ããå¿
+
+è¦ãããï¼ããã«ï¼-nostdlibãã¤ãããã¨ã§æ¨æºã©ã¤ãã©ãªããªã³ã¯ãããªã
+ãªãããï¼LIBSã«-lgccãè¿½å ããªããã°ãªããªãï¼
+
+ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãstart.Sã®å ´åã«ã¯ï¼
+Makefileã®ã¿ã¼ã²ããä¾å­é¨ã«æ¬¡ã®ãããªè¨è¿°ãå
+¥ããã¨ããï¼
+
+----------------------------------------
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
+START_OBJS = start.o
+
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
+$(START_OBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¾å­é¢ä¿ä½æã«ã¼ã«
+$(START_OBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+# ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
+LDFLAGS := -nostdlib $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
+LIBS := $(LIBS) -lgcc
+----------------------------------------
+
+ã¾ãï¼GNUéçºç°å¢ã§ï¼ã³ã³ãã¤ã©ã«æ¨æºã®crtbegin.oã¨crtend.oãç¨ããå ´å
+ã«ã¯ï¼Makefile ã®ã¿ã¼ã²ããä¾å­é¨ã«æ¬¡ã®ãããªè¨è¿°ãå
+¥ããã¨ããï¼
+
+----------------------------------------
+# ãªãã¸ã§ã¯ããã¡ã¤ã«å
+START_OBJS = $(shell $(CC) -print-file-name=crtbegin.o)
+END_OBJS = $(shell $(CC) -print-file-name=crtend.o)
+
+# ä¾å­é¢ä¿ä½æã«ã¼ã«
+$(START_OBJS:.o=.d): %.d:
+$(END_OBJS:.o=.d): %.d:
+
+# ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
+LDFLAGS := -nostdlib $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
+LIBS := $(LIBS) -lgcc
+----------------------------------------
+
+ãã®å ´åï¼ãããã®ãã¡ã¤ã«ãã³ã³ãã¤ã«ãããã¨ã¯ãªãããï¼ã³ã³ãã¤ã«ã«ã¼
+ã«ã¯ä¸è¦ã§ããï¼ã¾ãï¼ä¾å­é¢ä¿ä½æã«ã¼ã«ã¯ããã¼ã§ããï¼ä¾å­é¢ä¿ä½æã«ã¼
+ã«ããªãã¨ã¨ã©ã¼ã«ãªãï¼ï¼
+
+(2-6-6) HIDDEN_OBJS				æå®ããªãã¦ããªã³ã¯ãããã¢ã¸ã¥ã¼ã«å
+
+ã­ã¼ãã¢ã¸ã¥ã¼ã«ã«ãªã³ã¯ãã¹ãã¢ã¸ã¥ã¼ã«ãï¼ãªã³ã«ã«å¯¾ãããã©ã¡ã¼ã¿ã§
+ã¯ãªãï¼ãªã³ã«ã¹ã¯ãªããä¸­ã«ï¼ä¾ãã°ï¼GNUéçºç°å¢ã®ãªã³ã«ã¹ã¯ãªããã®
+STARTUPãä½¿ã£ã¦ï¼è¨è¿°ããå ´åã«ã¯ï¼ãã®ãªãã¸ã§ã¯ããã¡ã¤ã«åãï¼
+ï¼START_OBJSã¾ãã¯END_OBJSã§ã¯ãªãï¼HIDDEN_OBJSã«å®ç¾©ãï¼ããã«å¯¾ããã³
+ã³ãã¤ã«ã«ã¼ã«ã¨ä¾å­é¢ä¿ä½æã«ã¼ã«ãå®ç¾©ããï¼HIDDEN_OBJSã«å®ç¾©ããã¢
+ã¸ã¥ã¼ã«ã¯ï¼ãªã³ã«ã«å¯¾ãããã©ã¡ã¼ã¿ããã¯é¤å¤ãããï¼LDFLAGSã¨
+CFG1_OUT_LDFLAGSï¼LIBSã«ã¤ãã¦ã¯ï¼START_OBJSã¾ãã¯END_OBJSãç¨ããå ´å
+ã¨åæ§ã§ããï¼
+
+ä¾ãã°ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãstart.Sã§ï¼start.oã
+ãªã³ã¯ãããã¨ããªã³ã«ã¹ã¯ãªããä¸­ã«è¨è¿°ããå ´åã«ã¯ï¼Makefileã®ã¿ã¼ã²ã
+ãä¾å­é¨ã«æ¬¡ã®ãããªè¨è¿°ãå
+¥ããã¨ããï¼
+
+----------------------------------------
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ãªãã¸ã§ã¯ããã¡ã¤ã«å
+HIDDEN_OBJS = start.o
+
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«
+$(HIDDEN_OBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+# ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¾å­é¢ä¿ä½æã«ã¼ã«
+$(HIDDEN_OBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+# ãªã³ã«ã«å¯¾ãããªãã·ã§ã³
+LDFLAGS := -nostdlib $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
+LIBS := $(LIBS) -lgcc
+----------------------------------------
+
+2.7 ä¾å­é¢ä¿ã®å®ç¾©
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®åãã¹ã«å¯¾ãã¦ï¼ã¿ã¼ã²ããä¾å­ã®ãã¡ã¤ã«ã¸ã®ä¾å­é¢
+ä¿ãå®ç¾©ããï¼å
+·ä½çã«ã¯ï¼ãã¹1ï¼ãã¹2ï¼ãã¹3ãä¾å­ãããã¡ã¤ã«ãï¼ãã
+ããcfg1_out.cï¼kernel_cfg.timestampï¼$(OBJFILE)ã«å¯¾ããä¾å­é¢ä¿ã®å½¢ã§
+è¨è¿°ããï¼
+
+ã»ã¨ãã©ã®å ´åã«ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®Makefile.targetã«ã¯ï¼ä»¥
+ä¸ã®è¨è¿°ãå«ããå¿
+è¦ãããï¼
+
+----------------------------------------
+cfg1_out.c: $(TARGETDIR)/target_def.csv
+kernel_cfg.timestamp: $(TARGETDIR)/target.tf
+$(OBJFILE): $(TARGETDIR)/target_check.tf
+----------------------------------------
+
+2.8 ãã®ä»ã®è¨­å®
+
+(2-8-1) CLEAN_FILES				cleanã«ããåé¤ãããã¡ã¤ã«å
+
+cleanã«ããåé¤ãããã¡ã¤ã«ãã¿ã¼ã²ããä¾å­é¨ã§è¿½å ãããå ´åã«ã¯ï¼ãã¡
+ã¤ã«åããã®å¤æ°ã«è¿½å å®ç¾©ããï¼
+
+(2-8-2) REALCLEAN_FILES			realcleanã«ããåé¤ãããã¡ã¤ã«å
+
+realcleanã«ããåé¤ãããã¡ã¤ã«ãã¿ã¼ã²ããä¾å­é¨ã§è¿½å ãããå ´åã«ã¯ï¼
+ãã¡ã¤ã«åããã®å¤æ°ã«è¿½å å®ç¾©ããï¼
+
+
+ï¼ï¼TOPPERSå
+±éå®ç¾©ã®ã¿ã¼ã²ããä¾å­é¨
+
+TOPPERSå
+±éå®ç¾©ï¼t_stddef.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ã¯ï¼target_stddef.hã¾ã
+ã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­
+é¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
+
+3.1 ã¿ã¼ã²ããè­å¥ãã¯ã­
+
+ã¢ããªã±ã¼ã·ã§ã³ãã·ã¹ãã ãµã¼ãã¹ã§ã¿ã¼ã²ãããè­å¥ããããã«ï¼
+"TOPPERS_"ã«ã·ã¹ãã ç¥ç§°ãå¤§æå­ã«ããæå­åãé£çµãããã®ï¼ä¾ãã°ï¼
+"TOPPERS_DVE68K"ï¼ããã¯ã­å®ç¾©ããï¼
+
+ã¾ãï¼ã¿ã¼ã²ããä¾å­é¨ãããã­ã»ããµä¾å­é¨ããããä¾å­é¨ãåãåããå ´
+åã«ã¯ï¼"TOPPERS_"ã«ä¾å­é¨ç¥ç§°ãå¤§æå­ã«ããæå­åãé£çµãããã®ï¼ä¾ã
+ã°ï¼"TOPPERS_M68K"ï¼ããã¯ã­å®ç¾©ããï¼
+
+3.2 æ´æ°åã®æå¤§å¤ã»æå°å¤ã»ãããæ°
+
+(3-2-1) INT_MAX				intã«æ ¼ç´ã§ããæå¤§å¤ï¼C90æºæ ï¼
+(3-2-2) INT_MIN				intã«æ ¼ç´ã§ããæå°å¤ï¼C90æºæ ï¼
+(3-2-3) UINT_MAX			unsigned intã«æ ¼ç´ã§ããæå¤§å¤ï¼C90æºæ ï¼
+(3-2-4) LONG_MAX			longã«æ ¼ç´ã§ããæå¤§å¤ï¼C90æºæ ï¼
+(3-2-5) LONG_MIN			longã«æ ¼ç´ã§ããæå°å¤ï¼C90æºæ ï¼
+(3-2-6) ULONG_MAX			unsigned longã«æ ¼ç´ã§ããæå¤§å¤ï¼C90æºæ ï¼
+(3-2-7) CHAR_BIT			charåã®ãããæ°ï¼C90æºæ ï¼
+
+æ´æ°åã®æå¤§å¤ã»æå°å¤ã»ãããæ°ãï¼ãããã®ã·ã³ãã«ã«ãã¯ã­ã«å®ç¾©ããï¼
+
+ãããã®ãã¯ã­ã¯ï¼C90ã«æºæ ãããã®ã§ããï¼éçºç°å¢ã«C90ã«æºæ ãã
+limits.hãç¨æããã¦ããå ´åã«ã¯ï¼ãããã®ãã¯ã­ãå®ç¾©ãããã¨ã«ä»£ãã¦ï¼
+limits.hãã¤ã³ã¯ã«ã¼ãããã°ããï¼
+
+3.3 ãµã¤ãºã®æå®ãããæ´æ°åï¼ãã®æå¤§å¤ã»æå°å¤ï¼æ´æ°å®æ°ãä½ããã¯ã­
+
+(3-3-1) int8_t				ç¬¦å·ä»ã8ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-2) uint8_t				ç¬¦å·ç¡ã8ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-3) int16_t				ç¬¦å·ä»ã16ãããæ´æ°ï¼C99æºæ ï¼
+(3-3-4) uint16_t			ç¬¦å·ç¡ã16ãããæ´æ°ï¼C99æºæ ï¼
+(3-3-5) int32_t				ç¬¦å·ä»ã32ãããæ´æ°ï¼C99æºæ ï¼
+(3-3-6) uint32_t			ç¬¦å·ç¡ã32ãããæ´æ°ï¼C99æºæ ï¼
+(3-3-7) int64_t				ç¬¦å·ä»ã64ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-8) uint64_t			ç¬¦å·ç¡ã64ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-9) int128_t			ç¬¦å·ä»ã128ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-10) uint128_t			ç¬¦å·ç¡ã128ãããæ´æ°ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-11) int_least8_t		8ãããä»¥ä¸ã®ç¬¦å·ä»ãæ´æ°ï¼C99æºæ ï¼
+(3-3-12) uint_least8_t		8ãããä»¥ä¸ã®ç¬¦å·ç¡ãæ´æ°ï¼C99æºæ ï¼
+(3-3-13) intptr_t			ãã¤ã³ã¿ãæ ¼ç´ã§ãããµã¤ãºã®ç¬¦å·ä»ãæ´æ°ï¼C99æºæ ï¼
+(3-3-14) uintptr_t			ãã¤ã³ã¿ãæ ¼ç´ã§ãããµã¤ãºã®ç¬¦å·ç¡ãæ´æ°ï¼C99æºæ ï¼
+(3-3-15) INT8_MAX			int8_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-16) INT8_MIN			int8_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-17) UINT8_MAX			uint8_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-18) INT16_MAX			int16_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-19) INT16_MIN			int16_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
+(3-3-20) UINT16_MAX			uint16_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-21) INT32_MAX			int32_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-22) INT32_MIN			int32_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
+(3-3-23) UINT32_MAX			uint32_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-24) INT64_MAX			int64_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-25) INT64_MIN			int64_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-26) UINT64_MAX			uint64_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-27) INT128_MAX			int128_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-28) INT128_MIN			int128_tã«æ ¼ç´ã§ããæå°å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-29) UINT128_MAX		uint128_tã«æ ¼ç´ã§ããæå¤§å¤ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-30) INT_LEAST8_MAX		int_least8_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-31) INT_LEAST8_MIN		int_least8_tã«æ ¼ç´ã§ããæå°å¤ï¼C99æºæ ï¼
+(3-3-32) UINT_LEAST8_MAX	uint_least8_tã«æ ¼ç´ã§ããæå¤§å¤ï¼C99æºæ ï¼
+(3-3-33) INT8_C(val)		int_least8_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-34) UINT8_C(val)		uint_least8_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-35) INT16_C(val)		int16_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-36) UINT16_C(val)		uint16_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-37) INT32_C(val)		int32_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-38) UINT32_C(val)		uint32_tåã®å®æ°ãä½ããã¯ã­ï¼C99æºæ ï¼
+(3-3-39) INT64_C(val)		int64_tåã®å®æ°ãä½ããã¯ã­ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-40) UINT64_C(val)		uint64_tåã®å®æ°ãä½ããã¯ã­ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-41) INT128_C(val)		int128_tåã®å®æ°ãä½ããã¯ã­ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+(3-3-42) UINT128_C(val)		uint128_tåã®å®æ°ãä½ããã¯ã­ï¼ãªãã·ã§ã³ï¼C99æºæ ï¼
+
+æå®ããããµã¤ãºã®æ´æ°åãï¼ãããã®ã·ã³ãã«ã«åå®ç¾©ããï¼ã¾ãï¼ãã¼ã¿
+åã«æ ¼ç´ã§ããæå¤§å¤ã»æå°å¤ã¨ï¼æ´æ°å®æ°ãä½ããã¯ã­ãï¼ãããã®ã·ã³ã
+ã«ã«ãã¯ã­å®ç¾©ããï¼
+
+ãããã®ãã¼ã¿åããã³ãã¯ã­ã¯ï¼C99ã«æºæ ãããã®ã§ããï¼éçºç°å¢ã«C99
+ã«æºæ ããstdint.hãç¨æããã¦ããå ´åã«ã¯ï¼ãããã®ãã¼ã¿åããã³ãã¯
+ã­ãå®ç¾©ãããã¨ã«ä»£ãã¦ï¼stdint.hãã¤ã³ã¯ã«ã¼ãããã°ããï¼
+
+ä¸ã§ãªãã·ã§ã³ã¨è¨è¿°ãããã®ã¯ï¼è©²å½ãããã¼ã¿åãã³ã³ãã¤ã©ã§ãµãã¼ã
+ããã¦ããå ´åã«ã®ã¿å®ç¾©ãããã¨ãç¤ºãï¼
+
+3.4 ãµã¤ãºã®æå®ãããæµ®åå°æ°ç¹åï¼ãã®æå¤§å¤ã»æå°å¤ã®ãã¯ã­
+
+(3-4-1) float32_t			IEEE754æºæ ã®32ãããåç²¾åº¦æµ®åå°æ°ç¹æ°ï¼ãªã
+							ã·ã§ã³ï¼
+(3-4-2) double64_t			IEEE754æºæ ã®64ãããåç²¾åº¦æµ®åå°æ°ç¹æ°ï¼ãªã
+							ã·ã§ã³ï¼
+(3-4-3) FLOAT32_MIN			float32_tã«æ ¼ç´ã§ããæå°ã®æ­£è¦åãããæ­£ã®æµ®
+							åå°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
+(3-4-4) FLOAT32_MAX			float32_tã«æ ¼ç´ã§ããè¡¨ç¾å¯è½ãªæå¤§ã®æéæµ®å
+							å°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
+(3-4-5) DOUBLE64_MIN		double64_tã«æ ¼ç´ã§ããæå°ã®æ­£è¦åãããæ­£ã®æµ®
+							åå°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
+(3-4-6) DOUBLE64_MAX		double64_tã«æ ¼ç´ã§ããè¡¨ç¾å¯è½ãªæå¤§ã®æéæµ®å
+							å°æ°ç¹æ°ï¼ãªãã·ã§ã³ï¼
+
+æå®ããããµã¤ãºã»è¡¨ç¾å½¢å¼ã®æµ®åå°æ°ç¹åãï¼ãããã®ã·ã³ãã«ã«åå®ç¾©ã
+ãï¼ã¾ãï¼ãã¼ã¿åã«æ ¼ç´ã§ããæå¤§å¤ã»æå°å¤ãï¼ãããã®ã·ã³ãã«ã«ãã¯
+ã­å®ç¾©ããï¼
+
+ããããï¼è©²å½ãããã¼ã¿åãã³ã³ãã¤ã©ã§ãµãã¼ãããã¦ããå ´åã«ã®ã¿å®
+ç¾©ããï¼
+
+3.5 ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ã®ããã®ãã¯ã­å®ç¾©
+
+ã³ã³ãã¤ã©ã®æ¡å¼µæ©è½ãç¨ããããã®ãã¯ã­ã¨ãã¦ï¼å¿
+è¦ã«å¿ãã¦ï¼ä»¥ä¸ã®ã
+ã¯ã­ã®å®ç¾©ãå«ããï¼
+
+(3-5-1) inlineï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
+(3-5-2) Inlineï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯static inlineï¼
+
+ã¤ã³ã©ã¤ã³é¢æ°ã§ãããã¨ãç¤ºãæå®ï¼Inlineã¯ï¼ã³ã³ãã¤ã«åä½ã«ã­ã¼ã«ã«
+ãªã¤ã³ã©ã¤ã³é¢æ°ã§ãããã¨ãç¤ºãï¼
+
+(3-5-3) asmï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
+(3-5-4) Asmï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
+
+ã¤ã³ã©ã¤ã³ã¢ã»ã³ãã©ãè¨è¿°ããããã®æå®ï¼Asmã¯ï¼æé©åã«ããåé¤ãã¦ã¯
+ãªããªããã¨ãç¤ºãï¼ãããã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ã®ã¿ä½¿ããã¯ã­ã§ããã
+ãï¼ã¿ã¼ã²ããä¾å­é¨ã§ä½¿ããªããªãå®ç¾©ããå¿
+è¦ã¯ãªãï¼
+
+(3-5-5) offsetof(structure, field)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã®å®ç¾©ããï¼
+
+æ§é ä½structureã®ä¸­ã§ã®ï¼ãã£ã¼ã«ãfieldã®ãªãã»ãããæ±ãããã¯ã­ï¼
+
+(3-5-6) alignof(type)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã®å®ç¾©ããï¼
+
+ãã¼ã¿åtypeã®ã¢ã©ã¤ã³ã¡ã³ãåä½ãæ±ãããã¯ã­ï¼
+
+(3-5-7) NoReturnï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯æªå®ç¾©ï¼
+
+ãªã¿ã¼ã³ãããã¨ã®ãªãé¢æ°ã§ãããã¨ãç¤ºãæå®ï¼ããã¯ï¼ã¿ã¼ã²ããä¾å­
+é¨ã®ã¿ä½¿ããã¯ã­ã§ããããï¼ã¿ã¼ã²ããä¾å­é¨ã§ä½¿ããªããªãå®ç¾©ããå¿
+è¦
+ã¯ãªãï¼
+
+3.6 æ¨æºçãªå®ç¾©ã®ä¸æ¸ã
+
+t_stddef.hã«å«ã¾ããTOPPERSå
+±éå®ç¾©ã®æ¨æºçãªå®ç¾©ãä¸æ¸ãããå ´åã«ã¯ï¼
+ä»¥ä¸ã®ãã¯ã­ãå®ç¾©ããï¼
+
+(3-6-1) TOPPERS_boolï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯intï¼
+(3-6-2) TOPPERS_sizeï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯uintptr_tï¼
+(3-6-3) TOPPERS_fpï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯ä»ã¨äºææ§ã®ãªãé¢æ°ãã¤ã³ã¿ï¼
+
+ããããï¼bool_tï¼SIZEï¼FPã«åå®ç¾©ãã¹ããã¼ã¿åï¼
+
+(3-6-4) UINT_C(val)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯Uãä»å ï¼
+(3-6-5) ULONG_C(val)ï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯ULãä»å ï¼
+
+ããããï¼unsigned uintåï¼unsigned longåã®å®æ°ãä½ãããã®ãã¯ã­ï¼
+
+(3-6-6) NULLï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯0ï¼
+
+C90æºæ ã®Cè¨èªç°å¢ã§ã¯ï¼NULLã®å®ç¾©ã¯stddef.hã«å«ã¾ãã¦ããããï¼ããã
+ã¤ã³ã¯ã«ã¼ããã¦ãããï¼
+
+(3-6-7) ERCD(mercd, sercd)ï¼ãªãã·ã§ã³ï¼
+(3-6-8) MERCD(ercd)ï¼ãªãã·ã§ã³ï¼
+(3-6-9) SERCD(ercd)ï¼ãªãã·ã§ã³ï¼
+
+ERCDï¼MERCDï¼SERCDã®æ¨æºã®å®ç¾©ã¯ï¼ç¬¦å·ä»ãæ´æ°ã2ã®è£æ°ã§è¡¨ç¾ããã¦ããï¼
+å³ã·ããæ¼ç®å­ï¼>>ï¼ãç®è¡ã·ããããããã¨ãä»®å®ãã¦ããï¼å¤ãã®ã³ã³ã
+ã¤ã©ã§ãã®ä»®å®ãæãç«ã¤ãï¼ããã§ãªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ãã
+ãã®å®ç¾©ãä¸æ¸ãããå¿
+è¦ãããï¼
+
+(3-6-10) ALIGN_TYPE(addr, type)ï¼ãªãã·ã§ã³ï¼
+
+ã¢ãã¬ã¹addrãï¼ãã¼ã¿åtypeã®ã¢ã©ã¤ã³ã¡ã³ãåä½ã«ã¢ã©ã¤ã³ãã¦ããã
+ãã§ãã¯ãããã¯ã­ï¼
+
+3.7 ã¢ãµã¼ã·ã§ã³ã®ããã®å®ç¾©
+
+t_stddef.hã«ã¯ï¼assertã®å®ç¾©ãå«ã¾ããï¼assertãå¤±æããå ´åï¼assertã®
+ãã©ã¡ã¼ã¿ãfalseã«ãªã£ãå ´åï¼ã®å¦çãï¼ã¿ã¼ã²ããä¾å­ã«ç¨æããå¿
+è¦ã
+ããï¼ãããã®å®ç¾©ã¯ï¼assertãã¯ã­ãä½¿ç¨ããåã§ããã°ï¼t_stddef.hä»¥é
+ã«ã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ã«å«ã¾ãã¦ãã¦ãããï¼ãªãï¼assertãç¡å¹ã«
+ããï¼NDEBUGããã¯ã­å®ç¾©ãã¦ã³ã³ãã¤ã«ããï¼å ´åã«ã¯ï¼ããããç¨æãã
+å¿
+è¦ã¯ãªãï¼
+
+(3-7-1) TOPPERS_assert_abort(void)
+
+assertãå¤±æããå ´åã«ï¼ãã­ã°ã©ã ãåæ­¢ãããé¢æ°ï¼ã·ã¹ãã éçºä¸­ã¯ã
+ããã¬ã«è½ã¨ãã®ãçæ³çã§ããï¼ã·ã¹ãã ç¨¼åæã«ã¯ä¾å¤å¦çãè¡ãããã
+ã¨ã«ãªãï¼
+
+(3-7-2) TOPPERS_assert_fail(exp, file, line)
+
+assertãå¤±æããæã®æ
+å ±ãè¡¨ç¤º/è¨é²ããããã®ãã¯ã­ï¼ã·ã¹ãã ã­ã°æ©è½ã
+ç¨ããå ´åã«ã¯ï¼t_syslog.hã«ã·ã¹ãã ã­ã°æ©è½ã«è¨é²ããããã®å®ç¾©ãå«ã¾
+ãã¦ããã®ã§ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããå¿
+è¦ã¯ãªãï¼
+
+
+ï¼ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã®ã¿ã¼ã²ããä¾å­é¨
+
+ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼sil.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ã®å®ç¾©ã¯ï¼
+target_sil.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ãã­ã»ããµã»ãã
+ãã»éçºç°å¢ä¾å­é¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
+
+SILã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼ä»»æã®ã·ã¹ãã ç¶æ
+ã§å¼ã³åºããã¨ãã§ããï¼ãã®ã
+ãï¼SILã®ã¿ã¼ã²ããä¾å­é¨ã®é¢æ°ã¯ï¼ä»»æã®ã·ã¹ãã ç¶æ
+ã§å¼ã³åºããããã«
+å®è£
+ããªããã°ãªããªãï¼
+
+4.1 å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®ç®¡ç
+
+SILã®ã¿ã¼ã²ããä¾å­é¨ã§ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¸é·ç§»ããæ©è½ã¨ï¼å
+ã®ç¶æ
+
+ã¸æ»ãæ©è½ï¼å
+ã®ç¶æ
+ãè¨æ¶ããããã«å¤æ°ãä½¿ãï¼ãæä¾ããï¼å
+¨å²è¾¼ã¿ã­ã
+ã¯ç¶æ
+ã§ããããå¤å¥ããæ©è½ã¯æä¾ããå¿
+è¦ããªãï¼
+
+SILã®æ©è½ã¯ï¼ã«ã¼ãã«ãä½¿ç¨ããªãå ´åã«ãä½¿ç¨ã§ããå¿
+è¦ãããï¼ãã®ããï¼
+å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¸ã®é·ç§»ã¨å
+ã®ç¶æ
+ã¸ã®å¾©å¸°ã¯ï¼ã«ã¼ãã«ãç¨ããï¼ãã­
+ã»ããµã®ãªã½ã¼ã¹ãç´æ¥æä½ãããã¨ã«ãã£ã¦å®ç¾ããï¼ã¾ãï¼å
+¨å²è¾¼ã¿ã­ã
+ã¯ç¶æ
+ã¸ã®é·ç§»ã¨å
+ã®ç¶æ
+ã¸ã®å¾©å¸°ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ãCPUã­ãã¯ç¶æ
+ã§
+ãè¡ããå¿
+è¦ãããï¼
+
+ä¿è­·æ©è½ãæã£ãã«ã¼ãã«ã§ã¯ï¼ã¦ã¼ã¶ã¿ã¹ã¯ãããã­ã»ããµã®ãªã½ã¼ã¹ãç´
+æ¥æä½ãããã¨ãã§ããªãããï¼ã¦ã¼ã¶ã¿ã¹ã¯ããã¯ãããã®æ©è½ãç¨ããã
+ã¨ãã§ããªãï¼ç¨ããå ´åã®æ¯èãã¯ã¿ã¼ã²ãããã­ã»ããµã«ä¾å­ãããï¼å
+¸
+åçã«ã¯ï¼ç¹æ¨©å½ä»¤éåãªã©ã®CPUä¾å¤ãçºçãããã¨ã«ãªãï¼
+
+(4-1-1) SIL_PRE_LOC
+
+å
+¨å²è¾¼ã¿ã­ãã¯ãã©ã°ã®ç¶æ
+ãä¿å­ããããã®å¤æ°ãå®ç¾©ãããã¯ã­ï¼ååã®
+å¾ã«ï¼å¤æ°åãç¶ãããã®ã«å®ç¾©ããï¼å¤æ°åã¯ï¼ä»ã®ååã¨è¡çªããªããã
+ã«ï¼"TOPPERS_"ã§å§ã¾ãååã«ããï¼
+
+(4-1-2) SIL_LOC_INT()
+
+ç¾å¨ã®å
+¨å²è¾¼ã¿ã­ãã¯ãã©ã°ã®ç¶æ
+ãSIL_PRE_LOCã§å®ç¾©ããå¤æ°ã«ä¿å­ãï¼å
+¨
+å²è¾¼ã¿ã­ãã¯ç¶æ
+ã«é·ç§»ããããã¯ã­ï¼ãã®ãã¯ã­ãå®ç¾ããéã«ã¯ï¼ã1.6
+ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å®ç¾ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ã
+ãå¶ç´ã«å¾ããªããã°ãªããªãï¼
+
+(4-1-3) SIL_UNL_INT()
+
+SIL_LOC_INT()ã«ãã£ã¦å¤æ°ã«ä¿å­ããç¶æ
+ã«æ»ããã¯ã­ï¼ãã®ãã¯ã­ãå®ç¾ã
+ãéã«ã¯ï¼ã1.6 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®å®ç¾ã«é¢ããå¶ç´ãã®
+ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
+
+4.2 å¾®å°æéå¾
+ã¡
+
+(4-2-1) void sil_dly_nse(ulong_t dlytim)
+
+dlytimã§æå®ãããä»¥ä¸ã®æéï¼åä½ã¯ããç§ï¼ï¼ã«ã¼ããªã©ã«ãã£ã¦å¾
+ã¤é¢
+æ°ï¼
+
+ä»¥ä¸ã®é¢æ°ã¨ç­ä¾¡ãªå¦çãï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããæ¹æ³ãï¼æ¨æºçãªå®è£
+
+æ¹æ³ã¨ããï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããã®ã¯ï¼ã³ã³ãã¤ã©ã®æé©åã«ä¾å­ããª
+ãããã«ããããã§ããï¼ã¾ããã®é¢æ°ã¯ï¼ã­ã£ãã·ã¥ç­ã®å½±é¿ãåããªãã
+ãã«ï¼ã§ããéãã¡ã¢ãªã¢ã¯ã»ã¹ãè¡ããªãããã«å®è£
+ãã¹ãã§ããï¼
+
+	void sil_dly_nse(ulong_t dlytim)
+	{
+		dlytim -= SIL_DLY_TIM1;
+		if (çµæã0ããå¤§ãã) {
+			do {
+				dlytim -= SIL_DLY_TIM2;
+			} while (çµæã0ããå¤§ãã);
+		}
+	}
+
+ãã®é¢æ°ã®åä½ã¯æ¬¡ã®éãã§ããï¼dlytimãSIL_DLY_TIM1ä»¥ä¸ã®å ´åã«ã¯ï¼æ
+åã®ifæã®æ¡ä»¶ãæç«ããï¼ããã«é¢æ°ããæããï¼dlytimãSIL_DLY_TIM1ã
+ãå¤§ããï¼(SIL_DLY_TIM1+SIL_DLY_TIM2)ä»¥ä¸ã®å ´åã«ã¯ï¼æåã®ifæã®æ¡ä»¶ã¯
+æç«ãããï¼doã«ã¼ãã¯1åãåããã«é¢æ°ããæããï¼dlytimã
+(SIL_DLY_TIM1+SIL_DLY_TIM2)ããå¤§ããï¼(SIL_DLY_TIM1+SIL_DLY_TIM2*2)ä»¥
+ä¸ã®å ´åã«ã¯ï¼doã«ã¼ãã1åã ãåã£ã¦é¢æ°ããæããï¼ãã®å¾ï¼dlytimã
+SIL_DLY_TIM2å¤§ãããªãåº¦ã«ï¼whileã«ã¼ããåãåæ°ã1åãã¤å¢ããï¼
+
+ãªãï¼ãã®é¢æ°ãã¢ã»ã³ããªè¨èªï¼ã¾ãã¯ï¼Cè¨èªï¼ã§è¨è¿°ããå ´åï¼ã©ã®ãã¡
+ã¤ã«ã«è¨è¿°ããããåé¡ã«ãªãï¼SILã®ã¿ã¼ã²ããä¾å­é¨ã«ã¯ï¼æ¨æºã§ã¯ï¼ã¢ã»
+ã³ããªè¨èªï¼ã¾ãã¯ï¼Cè¨èªï¼ã®é¢æ°å®ç¾©ãè¨è¿°ããããã®ãã¡ã¤ã«ãç¨æãã¦
+ããªãï¼ã¿ã¼ã²ããä¾å­ã§ç¨æãã¦ããããï¼ä¾å¤çã«ï¼ã«ã¼ãã«å®è£
+ã®ã¿ã¼
+ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼target_support.Sã¾ãã¯target_config.cï¼ã«è¨è¿°ãã¦
+ããããã¨ã«ããï¼
+
+(4-2-2) SIL_DLY_TIM1ï¼ãªãã·ã§ã³ï¼
+(4-2-3) SIL_DLY_TIM2ï¼ãªãã·ã§ã³ï¼
+
+sil_dly_nseãä¸è¨ã®æ¨æºçãªæ¹æ³ã§å®ç¾ããå ´åï¼ãã®2ã¤ã®å®æ°ãã¿ã¼ã²ã
+ãä¾å­é¨ã§ãã¯ã­å®ç¾©ããï¼
+
+SIL_DLY_TIM2ã¯ï¼ä¸è¨ã®é¢æ°ã«ããã¦ï¼doã«ã¼ã1åã®å®è¡æéï¼åä½ã¯ããç§ï¼
+ã«è¨­å®ããï¼ã¿ã¼ã²ãããã­ã»ããµã®å½ä»¤ã»ããã«ããããï¼ããããï¼æ¸ç®
+å½ä»¤ã¨æ¡ä»¶åå²å½ä»¤å1åã®å®è¡æéã«ãªãï¼SIL_DLY_TIM2ãæ±ºã¾ãã°ï¼é¢æ°å¼
+åºããå«ããå
+¨ä½ã®æéãdlytimã§æå®ãããä»¥ä¸ã®æéã«ãªãããã«ï¼
+SIL_DLY_TIM1ãæ±ºããï¼
+
+ãã®2ã¤ã®å®æ°å¤ã®æ±ºå®ãæ¯æ´ãããã­ã°ã©ã ã¨ãã¦ï¼testãã£ã¬ã¯ããªã«ï¼
+test_dlynseãç¨æãã¦ããï¼test_dlynseãå®è¡ããã¨ï¼æ¬¡ã®ãããªåºåãå¾
+ãããï¼
+
+-- for fitting parameters --
+sil_dly_nse(0): 430 OK
+sil_dly_nse(420): 430 OK
+sil_dly_nse(510): 520 OK
+sil_dly_nse(600): 610 OK
+<ä¸­ç¥>
+-- for checking boundary conditions --
+sil_dly_nse(421): 520 OK
+sil_dly_nse(511): 610 OK
+sil_dly_nse(601): 700 OK
+
+"for fitting parameters"ã«ç¶ãåºåã¯ï¼sil_dly_nse(dlytim)ãå¼ã³åºããå ´
+åã®å¾
+ã¡æéãæ¸¬å®ããçµæã§ããï¼ãã®ãã­ã°ã©ã ãç¨ãã¦ï¼":"ã®å³å´ã®æ°
+å¤ãï¼dlytimãããå¤§ããç¯å²ã§ãªãã¹ãè¿ãå¤ã«ãªãããã«ï¼2ã¤ã®å®æ°å¤ã
+èª¿æ´ããï¼"for checking boundary conditions"ã«ç¶ãåºåã¯ï¼ãã­ã°ã©ã ã®
+å¦¥å½æ§ããã§ãã¯ããããã®ãã®ã§ï¼":"ã®å³å´ã®æ°å¤ãï¼dlytimãããå¤§ãã
+ãã¨ãç¢ºèªããï¼è¿ãå¤ã«ãªãå¿
+è¦ã¯ãªãï¼ï¼
+
+4.3 ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³
+
+(4-3-1) SIL_ENDIAN_BIG
+(4-3-2) SIL_ENDIAN_LITTLE
+
+ãã­ã»ããµã®ã¨ã³ãã£ã¢ã³ã«ããï¼ããããçæ¹ã®ã·ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+(4-3-3) TOPPERS_SIL_REV_ENDIAN_UINT16ï¼ãªãã·ã§ã³ï¼
+(4-3-4) TOPPERS_SIL_REV_ENDIAN_UINT32ï¼ãªãã·ã§ã³ï¼
+
+ããããï¼16ãããï¼32ãããã®ç¬¦å·ç¡ãæ´æ°ã®ã¨ã³ãã£ã¢ã³ãåè»¢ãããã
+ã¯ã­ï¼ãã­ã»ããµãã¨ã³ãã£ã¢ã³åè»¢ã®ããã®å½ä»¤ãæã¤å ´åã«ã¯ï¼ãã®å½ä»¤
+ãç¨ãã¦å®ç¾ããï¼ãããã®ã·ã³ãã«ããã¯ã­å®ç¾©ããªãå ´åã«ã¯ï¼ããã©ã«
+ãã®å®ç¾©ãä½¿ãããï¼
+
+4.4 ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+
+(4-4-1) TOPPERS_OMIT_SIL_ACCESS
+
+æ¨æºã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ãä½¿ç¨ããï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããå ´å
+ã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+(4-4-2) TOPPERS_OMIT_SIL_REH_LEM
+(4-4-3) TOPPERS_OMIT_SIL_WRH_LEM
+(4-4-4) TOPPERS_OMIT_SIL_REH_BEM
+(4-4-5) TOPPERS_OMIT_SIL_WRH_BEM
+(4-4-6) TOPPERS_OMIT_SIL_REW_LEM
+(4-4-7) TOPPERS_OMIT_SIL_WRW_LEM
+(4-4-8) TOPPERS_OMIT_SIL_REW_BEM
+(4-4-9) TOPPERS_OMIT_SIL_WRW_BEM
+
+ããããï¼æ¨æºã®sil_reh_lemï¼sil_wrh_lemï¼sil_reh_bemï¼sil_wrh_bemï¼
+sil_rew_lemï¼sil_wrw_lemï¼sil_rew_bemï¼sil_wrw_bemãä½¿ç¨ããï¼ã¿ã¼ã²ã
+ãä¾å­é¨ã§ç¨æããå ´åã«ã¯ï¼ãããã®ã·ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+4.5 I/Oç©ºéã¢ã¯ã»ã¹é¢æ°
+
+ã¡ã¢ãªç©ºéã¨ã¯å¥ã«I/Oç©ºéãæã¤ãã­ã»ããµã§ã¯ï¼I/Oç©ºéã«ããããã¤ã¹ã¬
+ã¸ã¹ã¿ãã¢ã¯ã»ã¹ããããã®é¢æ°ã¨ãã¦ï¼sil_reb_iopï¼sil_wrb_iopï¼
+sil_reh_iopï¼sil_wrh_iopï¼sil_reh_lepï¼sil_wrh_lepï¼sil_reh_bepï¼
+sil_wrh_bepï¼sil_rew_iopï¼sil_wrw_iopï¼sil_rew_lepï¼sil_wrw_lepï¼
+sil_rew_bepï¼sil_wrw_bepã®ä¸­ã§å¿
+è¦ãªãã®ãï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããï¼
+
+
+ï¼ï¼ã«ã¼ãã«APIã®ã¿ã¼ã²ããä¾å­é¨
+
+ã«ã¼ãã«APIï¼kernel.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ã®å®ç¾©ã¯ï¼target_kernel.hã¾ã
+ã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­
+é¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
+
+5.1 ã¿ã¼ã²ããå®ç¾©ã§ãµãã¼ãããæ©è½
+
+(5-1-1) TOPPERS_TARGET_SUPPORT_DIS_INT		dis_intããµãã¼ããã
+(5-1-2) TOPPERS_TARGET_SUPPORT_ENA_INT		ena_intããµãã¼ããã
+(5-1-3) TOPPERS_TARGET_SUPPORT_GET_UTM		get_utmããµãã¼ããã
+
+dis_intï¼ena_intï¼get_utmããµãã¼ãããå ´åã«ï¼ããããã®ã·ã³ãã«ããã¯
+ã­å®ç¾©ããï¼
+
+5.2 å²è¾¼ã¿åªå
+åº¦ã®ç¯å²
+
+(5-2-1) TMIN_INTPRI				å²è¾¼ã¿åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼
+(5-2-2) TMAX_INTPRI				å²è¾¼ã¿åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼
+
+ããããï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿åªå
+åº¦ã®æå°å¤ï¼ï¼åªå
+åº¦ãæé«ï¼ï¼ã«ã¼ã
+ã«ç®¡çã®å²è¾¼ã¿åªå
+åº¦ã®æå¤§å¤ï¼åªå
+åº¦ãæä½ï¼ã«å®ç¾©ããï¼TMAX_INTPRIã¯-1
+ã«åºå®ããã¦ãããï¼å¯¾ç§°æ§ã®ããã«ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ãããã¨ã«ã
+ã¦ããï¼
+
+5.3 ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
+
+(5-3-1) TIC_NUME				ã¿ã¤ã ãã£ãã¯ã®å¨æã®åå­
+(5-3-2) TIC_DENO				ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯
+
+ã¿ã¤ã ãã£ãã¯ã®å¨æï¼signal_timeãå¼ã³åºãå¨æï¼ãï¼ããªç§åä½ã§ï¼
+TIC_NUME/TIC_DENOã«å®ç¾©ããï¼ä¾ãã°ï¼ã¿ã¤ã ãã£ãã¯ã®å¨æã1/30ç§ã®å ´å
+ã«ã¯ï¼TIC_NUMEã100ã«ï¼TIC_DENOã3ã«å®ç¾©ããã°ããï¼
+
+ã¿ã¤ã ãã£ãã¯ã®å¨æã¯ï¼1ããªç§ã¨ããï¼ã¤ã¾ãï¼TIC_NUMEï¼TIC_DENOã¨ã1
+ã«å®ç¾©ããï¼ãã¨ãæ¨å¥¨ãããï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãæ§è½ã®ä½ããã­ã»ã
+ãµã§ãããé©åã§ãªãå ´åã«ã¯ï¼ããä»¥å¤ã®å¤ã¨ãã¦ãããï¼ãã®å ´åã§ãï¼
+å¯è½ãªéãï¼1ããªç§ã®åæ°ã§ããï¼ã¤ã¾ãï¼TIC_DENOã1ã«å®ç¾©ããï¼ãã¨ã
+æã¾ããï¼
+
+TIC_NUMEã¨TIC_DENOã®å®ç¾©ãå¤æ´ãããã¨ã§ï¼ã¿ã¤ã ãã£ãã¯ã®å¨æãå¤æ´ã§
+ããããã«ã¿ã¤ããã©ã¤ããå®è£
+ããå ´åã«ã¯ï¼ãã®2ã¤ã®å®æ°ã®å®ç¾©ã¯ããã©
+ã«ãå¤ãä¸ãã¦ãããã¨ã«ãªãï¼ããã§ï¼ãããã®å®ç¾©ãã#ifndef TIC_NUMEã
+ã#endifãã§å²ãã§è¨è¿°ããï¼
+
+5.4 ã¡ã¢ãªé åç¢ºä¿ã®ããã®åå®ç¾©
+
+(5-4-1) TOPPERS_STK_T	ã¹ã¿ãã¯é åãç¢ºä¿ããããã®åï¼ãªãã·ã§ã³ï¼
+(5-4-2) TOPPERS_MPF_T	åºå®é·ã¡ã¢ãªãã¼ã«é åãç¢ºä¿ããããã®åï¼ãªãã·ã§ã³ï¼
+
+ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã¯ï¼æ¨æºã§ã¯ï¼intptr_tåã®é
+åã¨ã
+ã¦ç¢ºä¿ãããï¼ããå¤§ããåä½ã§ã¢ã©ã¤ã³ãããããªã©ã®çç±ã§ï¼ããä»¥å¤ã®
+åã®é
+åã¨ãã¦ç¢ºä¿ããå ´åã«ã¯ï¼ããããTOPPERS_STK_Tã¨TOPPERS_MPF_Tãï¼
+é
+åã®ãã¼ã¹ã¨ãªããã¼ã¿åã«ãã¯ã­å®ç¾©ããï¼
+
+5.5 ããããã¿ã¼ã³ã®ãããæ°
+
+(5-5-1) TBIT_TEXPTN		ã¿ã¹ã¯ä¾å¤è¦å ã®ãããæ°ï¼ãªãã·ã§ã³ï¼
+(5-5-2) TBIT_FLGPTN		ã¤ãã³ããã©ã°ã®ãããæ°ï¼ãªãã·ã§ã³ï¼
+
+TBIT_TEXPTNï¼TBIT_FLGPTNã®æ¨æºã®å®ç¾©ã§ã¯ï¼æ´æ°åã®æå¹ãããæ°ãï¼ãã®
+åã®sizeofã«CHAR_BITãä¹ãããã®ã¨ä¸è´ãã¦ãããã¨ãä»®å®ãã¦ããï¼å¤ã
+ã®ã³ã³ãã¤ã©ã§ãã®ä»®å®ãæãç«ã¤ãï¼ããã§ãªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­
+é¨ã§ãããã®å®ç¾©ãä¸æ¸ãããå¿
+è¦ãããï¼ãã ãï¼ãããã®å¤ã¯16ä»¥ä¸ã§ãª
+ããã°ãªããªãï¼
+
+5.6 ã¡ã¢ãªé åç¢ºä¿ã®ããã®ãã¯ã­
+
+(5-6-1) TOPPERS_ROUND_SZï¼ãªãã·ã§ã³ï¼
+(5-6-2) TOPPERS_COUNT_SZï¼ãªãã·ã§ã³ï¼
+
+TOPPERS_COUNT_SZ(sz, unit)ã¯ï¼sz/unitãåãä¸ããå¤ãæ±ãããã¯ã­ã§ï¼ãµ
+ã¤ãºãszã®ã¡ã¢ãªé åããµã¤ãºãunitã®ãã¼ã¿åã®é
+åã§ç¢ºä¿ããå ´åã®è¦ç´ 
+æ°ãæ±ããããã«ç¨ããï¼TOPPERS_ROUND_SZ(sz, unit)ã¯ï¼sz/unitãåãä¸ã
+ããã®ã«unitããããå¤ãæ±ãããã¯ã­ã§ï¼ãµã¤ãºãszã®ã¡ã¢ãªé åããµã¤ãº
+ãunitã®ãã¼ã¿åã®é
+åã§ç¢ºä¿ããå ´åã®ãã¼ã¿ã«ãµã¤ãºãæ±ããããã«ç¨ã
+ãï¼
+
+ããããï¼æ¨æºã®TOPPERS_ROUND_SZï¼TOPPERS_COUNT_SZãé©åã§ãªãï¼ã¿ã¼ã²ã
+ãä¾å­é¨ã§ç¨æããå ´åã«ã¯ï¼ãããã®ã·ã³ãã«ãé©åãªå¤ã«ãã¯ã­å®ç¾©ããï¼
+
+5.7 ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã®ããã®å®ç¾©ï¼ãªãã·ã§ã³ï¼
+
+ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããï¼ä½¿ç¨ã§ããããã«ã
+ãï¼å ´åã«ã¯ï¼æ¬¡ã®3ã¤ãå®æ½ãããã¨ãå¿
+è¦ã§ããï¼
+
+ã»ãã®ç¯ã§èª¬æããå®ç¾©ãè¡ãï¼
+ã»ï¼ç« ã«ç¤ºãã³ã¼ãä¸­ã§ï¼TOPPERS_SUPPORT_OVRHDRããã¯ã­å®ç¾©ããã¦ããå ´
+ãåã«ã®ã¿æå¹ã¨ãªãã³ã¼ããå®è£
+ããï¼
+ã»ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããç¨æããï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã«ã¤ãã¦
+ãã¯ï¼ã6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããã®ç¯ãåç
+§ãããã¨ï¼
+
+(5-7-1) TOPPERS_TARGET_SUPPORT_OVRHDR
+
+ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ã¯ï¼ãã®ã·ã³ã
+ã«ããã¯ã­å®ç¾©ããï¼
+
+(5-7-2) TMAX_OVRTIMï¼ãªãã·ã§ã³ï¼ããã©ã«ãã¯ULONG_MAXï¼
+
+ãã­ã»ããµæéã¨ãã¦ãªã¼ãã©ã³ã¿ã¤ãã«è¨­å®ã§ããæå¤§å¤ï¼åä½ã¯ãã¤ã¯ã­
+ç§ï¼ã«ãã¯ã­å®ç¾©ããï¼
+
+
+ï¼ï¼ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨
+
+6.1 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®å
+±éäºé 
+
+
+6.1.1 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®æ§æè¦ç´ 
+
+ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã¯ï¼ä»¥ä¸ã®è¦ç´ ã§æ§æãããï¼
+
+(a) ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+
+ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããéä¾å­é¨ããåç
+§ãããã¿ã¼ã²ããä¾å­ã®å®ç¾©ã¯ï¼
+target_config.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ãã­ã»ããµã»ãã
+ãã»éçºç°å¢ä¾å­é¨ã§ç¨æãããããããã¡ã¤ã«ãªã©ï¼ã«å«ããï¼
+
+ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºï¼å²è¾¼ã¿ãã³ãã©çªå·ãCPUä¾å¤ãã³ãã©çªå·ï¼
+ããã¤ã¹ã¬ã¸ã¹ã¿ã®çªå°ãªã©ï¼ã®å®ç¾©ã¯ï¼ã·ã¹ãã ãµã¼ãã¹ãã¢ããªã±ã¼ã·ã§
+ã³ã«ãæç¨ã§ããããï¼ã«ã¼ãã«å®è£
+ã®ã¿ã«æç¨ãªå®ç¾©ãå«ããã¡ã¤ã«ã¨ã¯å
+ãåãã¦ï¼ç¬ç«ããããããã¡ã¤ã«ã«å«ããï¼ãã®ããããã¡ã¤ã«ã®æ¨æºçãª
+åç§°ãï¼ã·ã¹ãã ç¥ç§°.hï¼ã¾ãã¯ï¼ãããç¥ç§°.hï¼ãã­ã»ããµç¥ç§°.hï¼ã¨ããï¼
+
+(b) ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«
+
+ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­ã®å¤æ°å®ç¾©ãé¢æ°ãå«ãã¢ã¸ã¥ã¼ã«ï¼Cè¨èªã§è¨
+è¿°ãããé¨åãtarget_config.cï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ãããé¨åã
+target_support.Sã«å«ããï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ãåãåã
+ããã¨ãï¼ãã¡ã¤ã«ãå¤§ãããªãå ´åã«è¤æ°ã®ãã¡ã¤ã«ã«åå²ãããã¨ãå¯è½
+ã§ããï¼
+
+(c) ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ããã®ãªãã¼ã è¨è¿°
+
+ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®å¤æ°åãé¢æ°åãï¼å
+é ­ã«_kernel_ãä»ä¸
+ããååã«ãªãã¼ã ããããã®ã¢ã¸ã¥ã¼ã«ï¼target_rename.defãç¨æãï¼ãã¼
+ã«ï¼utils/genrenameï¼ã«ããï¼target_rename.hã¨target_unrename.hãçæã
+ãï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ãåãåããå ´åã«ã¯ï¼ãªãã¼ã è¨
+è¿°ãåãåããï¼
+
+(d) ã¿ã¤ããã©ã¤ã
+
+ã«ã¼ãã«ã«ã¿ã¤ã ãã£ãã¯ãéç¥ããï¼signal_timeãå¨æçã«å¼ã³åºãï¼ãã
+ã®ã¿ã¤ããã©ã¤ãã®ããããã¡ã¤ã«ï¼å®è£
+ãã¡ã¤ã«ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ãã¡ã¤ã«ãï¼ããããï¼target_timer.hï¼target_timer.cï¼
+target_timer.cfgã«å«ããï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ãåãåã
+ããã¨ãå¯è½ã§ããï¼
+
+ã¾ãï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ã¯ï¼ãªã¼
+ãã©ã³ãã³ãã©ãèµ·åããï¼call_ovrhdrãå¼ã³åºãï¼ããã®ãªã¼ãã©ã³ã¿ã¤ã
+ãã©ã¤ããï¼åããã¡ã¤ã«ã«å«ããï¼
+
+ãªãï¼ãã®ç« ã«ç¤ºãã³ã¼ãä¸­ã§ï¼TOPPERS_SUPPORT_OVRHDRããã¯ã­å®ç¾©ããã¦
+ããå ´åã«ã®ã¿æå¹ã¨ãªãã³ã¼ãã¯ï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
+ããµãã¼ãããªãå ´åã«ã¯ï¼å®è£
+ããå¿
+è¦ããªãï¼
+
+(e) ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨­å®ãã¡ã¤ã«
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨­å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ãï¼target_def.csvï¼
+target.tfï¼target_check.tfã«ç¨æããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨­å®ãã¡ã¤ã«ã®
+è¨è¿°æ¹æ³ã«ã¤ãã¦ã¯ï¼ï¼ç« ã§èª¬æããï¼
+
+6.1.2 ã¿ã¼ã²ããä¾å­é¨ã®é¢æ°ã®å½åè¦å
+
+ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ãæ§æããé¢æ°ã®ä¸­ã§ï¼t_ã§å§ã¾ããã®ã¯ã¿
+ã¹ã¯ã³ã³ãã­ã¹ãå°ç¨ï¼i_ã§å§ã¾ããã®ã¯éã¿ã¹ã¯ã³ã³ãã­ã¹ãå°ç¨ï¼x_ã§å§
+ã¾ããã®ã¯ãããã®ã³ã³ãã­ã¹ãããã§ãå¼ã³åºããã¨ãã§ããé¢æ°ã§ããï¼
+
+6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿
+
+ã«ã¼ãã«ã®ãã¬ã¼ã¹ã­ã°æ©è½ã®ä¸­ã§ï¼ãã£ã¹ãããã£ï¼å²è¾¼ã¿ãã³ãã©ï¼CPUä¾
+å¤ãã³ãã©ã®éå§ã»çµäºã®ãã¬ã¼ã¹ã­ã°åå¾ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®è£
+ãã
+å¿
+è¦ãããï¼ã»ã¨ãã©ã®ã¿ã¼ã²ããã·ã¹ãã ã«ããã¦ï¼ãããã®å¦çã¯ã¢ã»ã³
+ããªè¨èªã§è¨è¿°ããã¦ããï¼ã¿ã¼ã²ããéä¾å­é¨åãã®ãã¬ã¼ã¹ã­ã°ãã¯ã­ã¨
+åãæ¹æ³ï¼ãã¬ã¼ã¹ã­ã°ãã¯ã­ãï¼ãã¬ã¼ã¹ã­ã°åå¾å¦çã®Cè¨èªè¨è¿°ã«ãã¯ã­
+å®ç¾©ããæ¹æ³ï¼ã¯ï¼ç¨ãããã¨ãã§ããªãï¼
+
+ããã§ï¼ã¢ã»ã³ããªè¨èªã§è¨è¿°ããã¦ããå¦çä¸­ã«ãã¬ã¼ã¹ã­ã°åå¾ãåãè¾¼
+ãå ´åã«ã¯ï¼ãã¬ã¼ã¹ã­ã°ãã¯ã­ãå®ç¾©ããã¦ããã°ï¼ãããä½ã«å®ç¾©ããã¦
+ãããã¯ç¡è¦ãã¦ï¼æ¨æºçãªãã¬ã¼ã¹ã­ã°é¢æ°ãCè¨èªã§è¨è¿°ããã¦ããã¨æ³å®
+ãã¦ï¼ãããå¼ã³åºãããã«ã³ã¼ãã£ã³ã°ããï¼
+
+å
+·ä½çã«ã¯ï¼ä¸ã®è¡¨ã®å·¦å´ã«ç¤ºãããã¬ã¼ã¹ã­ã°ãã¯ã­ãå®ç¾©ããã¦ããã°ï¼
+è¡¨ã®å³å´ã«ç¤ºããCè¨èªè¨è¿°ã¨åç­ã®å¦çãè¡ãããã«ã³ã¼ãã£ã³ã°ããï¼
+
+	ãã¬ã¼ã¹ã­ã°ãã¯ã­		ãã¬ã¼ã¹ã­ã°åå¾å¦ç
+	-----------------------------------------------
+	LOG_DSP_ENTER			log_dsp_enter(p_runtsk)
+	LOG_DSP_LEAVE			log_dsp_leave(p_runtsk)
+	LOG_INH_ENTER			log_inh_enter(inhno)
+	LOG_INH_LEAVE			log_inh_leave(inhno)
+	LOG_EXC_ENTER			log_exc_enter(excno)
+	LOG_EXC_LEAVE			log_exc_leave(excno)
+
+6.3 ã·ã¹ãã ç¶æ
+ã®ç®¡ç
+
+ASPã«ã¼ãã«ãæ°ããªã¿ã¼ã²ããã·ã¹ãã ã«ãã¼ãã£ã³ã°ããéã«ï¼æãéè¦ãª
+ä½æ¥­ã¯ï¼ã«ã¼ãã«ãå®ç¾©ããã·ã¹ãã ç¶æ
+ãï¼ãã¼ãã¦ã§ã¢ï¼ãã­ã»ããµï¼ä¸
+ã§ã©ã®ããã«å®ç¾ãããã§ããï¼ä»¥ä¸ã®èª¬æã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã«ãã
+ãã·ã¹ãã ç¶æ
+ã®å®ç¾©ã»æå³ãç¥ã£ã¦ãããã¨ãåæã«è¨è¿°ãã¦ããï¼
+
+6.3.1 å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®ç®¡ç
+
+å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¯ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
+ã§ããï¼å
+¨
+å²è¾¼ã¿ã­ãã¯ç¶æ
+ãç®¡çããæ©è½ã¯ï¼ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼SILï¼ã«
+ãã£ã¦æä¾ããï¼ã«ã¼ãã«ã¯å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ãç®¡çããªãï¼
+
+å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ã¯ï¼sns_kerã¨ext_kerä»¥å¤ã®ã«ã¼ãã«ã®ãµã¼ãã¹ã³ã¼ã«
+ãå¼ã¶ãã¨ã¯ã§ããªããã®ã¨ãã¦ããï¼å¼ãã å ´åã«ã¯ä½ãèµ·ãããä¿è¨¼ãã¦
+ããªãï¼sns_kerã¨ext_kerããå¼ã³åºãå¦çã¯ï¼ãã¬ã¼ã¹ã­ã°åå¾å¦çã¨SILã®
+ãµã¼ãã¹ã³ã¼ã«ãé¤ãã¨ï¼call_exit_kernelã®ã¿ã§ããï¼ãã®ããï¼
+call_exit_kernelããå¼ã³åºããã®ãé¤ãã¦ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®
+é¢æ°ãï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã³åºãããç¶æ³ã¯èããå¿
+è¦ããªãï¼
+
+6.3.2 ã³ã³ãã­ã¹ãã®ç®¡ç
+
+å¦çåä½ãå®è¡ãããã³ã³ãã­ã¹ãã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã¨éã¿ã¹ã¯ã³ã³ã
+ã­ã¹ãã«åé¡ãããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼å®è¡ä¸­ã®å¦çåä½ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããã¦
+ãããéã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããã¦ããããå¤å¥ããæ©è½ãæä¾ããï¼
+ã¾ãï¼CPUä¾å¤ãçºçããã³ã³ãã­ã¹ãã«ã¤ãã¦å¤å¥ããæ©è½ãæä¾ããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã§ã¯ï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®å
+¥å£å¦çã§éã¿ã¹
+ã¯ã³ã³ãã­ã¹ãã«åãæãï¼ãããã®åºå£å¦çã§å
+ã®ã³ã³ãã­ã¹ãã«æ»ãï¼ã¾
+ãï¼ãã£ã¹ãããã£ã®å
+é¨ã§ä¸æçã«éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããï¼
+
+(6-3-2-1) bool_t sense_context(void)
+
+å®è¡ä¸­ã®å¦çåä½ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããã¦ããå ´åã«ã¯falseï¼é
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããã¦ããå ´åã«ã¯trueãè¿ãé¢æ°ï¼ãã®é¢æ°ã¯ï¼
+CPUã­ãã¯ç¶æ
+ã§ãCPUã­ãã¯è§£é¤ç¶æ
+ã§ãå¼ã³åºããããã«å®è£
+ããªããã°ãª
+ããªãï¼
+
+6.3.3 CPUã­ãã¯ç¶æ
+ã®ç®¡ç
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼CPUã­ãã¯ç¶æ
+ã¸é·ç§»ããæ©è½ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã¸é·
+ç§»ããæ©è½ï¼CPUã­ãã¯ç¶æ
+ã§ããããå¤å¥ããæ©è½ãæä¾ããï¼
+
+(6-3-3-1) void t_lock_cpu(void)
+(6-3-3-2) void i_lock_cpu(void)
+(6-3-3-3) void x_lock_cpu(void)
+
+CPUã­ãã¯è§£é¤ç¶æ
+ããï¼CPUã­ãã¯ç¶æ
+ã¸é·ç§»ãããé¢æ°ï¼ãããã®é¢æ°ã¯ï¼
+CPUã­ãã¯ç¶æ
+ã§å¼ã³åºããããã¨ã¯ãªãï¼å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ãã
+å¿
+è¦ããªãï¼
+
+ãããã®é¢æ°ãå®ç¾ããéã«ã¯ï¼ã1.6 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®
+å®ç¾ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
+
+(6-3-3-4) void t_unlock_cpu(void)
+(6-3-3-5) void i_unlock_cpu(void)
+(6-3-3-6) void x_unlock_cpu(void)
+
+CPUã­ãã¯ç¶æ
+ããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã¸é·ç§»ãããé¢æ°ï¼ãããã®é¢æ°ã¯ï¼
+CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããããã¨ã¯ãªãï¼å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼
+ããå¿
+è¦ããªãï¼
+
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUã­ãã¯ç¶æ
+ã«é·ç§»ããå ´åã«ã¯ï¼CPUã­ãã¯è§£é¤ç¶æ
+
+ã«æ»ãã®ã¯ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«éããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUã­ãã¯è§£
+é¤ç¶æ
+ã«æ»ããã¨ã¯ãªãï¼è¨ãæããã¨ï¼t_unlock_cpuãå¼ã³åºãããã®ã¯ï¼
+t_lock_cpuã«ãã£ã¦CPUã­ãã¯ç¶æ
+ã«ãªã£ã¦ããæã§ããï¼i_lock_cpuã«ãã£ã¦
+CPUã­ãã¯ç¶æ
+ã«ãªã£ã¦ããæã«ã¯ï¼t_unlock_cpuãå¼ã³åºããããã¨ã¯ãªãï¼
+
+åæ§ã«ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUã­ãã¯ç¶æ
+ã«é·ç§»ããå ´åã«ã¯ï¼CPUã­ã
+ã¯è§£é¤ç¶æ
+ã«æ»ãã®ã¯éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«éããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§
+CPUã­ãã¯è§£é¤ç¶æ
+ã«æ»ããã¨ã¯ãªãï¼è¨ãæããã¨ï¼i_unlock_cpuãå¼ã³åºã
+ããã®ã¯ï¼i_lock_cpuã«ãã£ã¦CPUã­ãã¯ç¶æ
+ã«ãªã£ã¦ããæã§ããï¼
+t_lock_cpuã«ãã£ã¦CPUã­ãã¯ç¶æ
+ã«ãªã£ã¦ããæã«ã¯ï¼i_unlock_cpuãå¼ã³åº
+ããããã¨ã¯ãªãï¼
+
+ãããã®é¢æ°ãå®ç¾ããéã«ã¯ï¼ã1.6 ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ã®åºå
+¥å¦çã®
+å®ç¾ã«é¢ããå¶ç´ãã®ç¯ã«è¨è¿°ããã¦ããå¶ç´ã«å¾ããªããã°ãªããªãï¼
+
+(6-3-3-7) bool_t t_sense_lock(void)
+(6-3-3-8) bool_t i_sense_lock(void)
+(6-3-3-9) bool_t x_sense_lock(void)
+
+ç¾å¨ã®ã·ã¹ãã ç¶æ
+ãï¼CPUã­ãã¯ç¶æ
+ã®å ´åã¯trueï¼CPUã­ãã¯è§£é¤ç¶æ
+ã®å ´
+åã«ã¯falseãè¿ãé¢æ°ï¼
+
+ãããã®é¢æ°ãå
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã³åºãããç¶æ³ã¯èããå¿
+è¦ããªãã
+ã¨ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨CPUã­ãã¯ç¶æ
+ãåºå¥ã§ããå¿
+è¦ã¯ãªãï¼NMIä»¥
+å¤ã«ã«ã¼ãã«ã®ç®¡çå¤ã®å²è¾¼ã¿ãè¨­ããªãå ´åã«ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨
+CPUã­ãã¯ç¶æ
+ãå
+¨ãåä¸ã®ç¶æ
+ã§ããã¾ããªãï¼
+
+6.4 å²è¾¼ã¿ã«é¢é£ããã·ã¹ãã ç¶æ
+ã®ç®¡ç
+
+6.4.1 å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®ç®¡ç
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãè¨­å®ããæ©è½ã¨ï¼å²è¾¼ã¿åªå
+åº¦ã
+ã¹ã¯ãåç
+§ããæ©è½ãæä¾ããï¼
+
+(6-4-1-1) bool_t VALID_INTPRI_CHGIPM(PRI intpri)ï¼ãªãã·ã§ã³ï¼
+
+intpriãï¼chg_ipmã«å¯¾ããå²è¾¼ã¿åªå
+åº¦ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ã
+ãã§ãªãå ´åã«falseãè¿ããã¯ã­ï¼æ¨æºã§ã¯ï¼TMIN_INTPRIä»¥ä¸ï¼TIPM_ENAALL
+ï¼ï¼0ï¼ä»¥ä¸ã®å¤ãchg_ipmã«å¯¾ããå²è¾¼ã¿åªå
+åº¦ã¨ãã¦æå¹ã§ãããï¼ã¿ã¼ã²ã
+ãä¾å­é¨ã§ãã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼TMIN_INTPRIãããå°ããå¤ãæå¹ã¨
+ãããã¨ãã§ããï¼æå¹ãªå¤ã®ç¯å²ãç­ãã¦ã¯ãªããªãï¼ï¼
+
+(6-4-1-2) void x_set_ipm(PRI intpri)
+(6-4-1-3) void t_set_ipm(PRI intpri)
+(6-4-1-4) void i_set_ipm(PRI intpri)
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤ãintpriã«è¨­å®ããé¢æ°ï¼
+
+ãããã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã§ãCPUã­ãã¯è§£é¤ç¶æ
+ã§ãå¼ã³åºããããã«
+å®è£
+ããã®ãæã¾ããï¼ãã ãï¼x_set_ipmã¨t_set_ipmã¯ï¼ã¿ã¼ã²ããéä¾å­
+é¨ãCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããã¨ã¯ãªãããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³
+åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼i_set_ipmã¯ï¼CPUã­ãã¯ç¶æ
+ã§ã
+CPUã­ãã¯è§£é¤ç¶æ
+ã§ãå¼ã³åºããããã«å®è£
+ããªããã°ãªããªãï¼
+
+ã¾ãï¼ãããã®é¢æ°ã¯ï¼VALID_INTPRI_CHGIPM(intpri)ãtrueãè¿ãintpriã«å¯¾
+ãã¦ã®ã¿å¼ã°ããï¼intpriã«ããã§ãªãå¤ãæ¸¡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+
+è¦ããªãï¼
+
+(6-4-1-5) PRI x_get_ipm(void)
+(6-4-1-6) PRI t_get_ipm(void)
+(6-4-1-7) PRI i_get_ipm(void)
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤ãåç
+§ãã¦è¿ãé¢æ°ï¼
+
+ãããã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã§ãCPUã­ãã¯è§£é¤ç¶æ
+ã§ãå¼ã³åºããããã«
+å®è£
+ããã®ãæã¾ããï¼ãã ãï¼x_get_ipmã¨t_get_ipmã¯ï¼ã¿ã¼ã²ããéä¾å­
+é¨ãCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããã¨ã¯ãªãããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³
+åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼i_get_ipmã¯ï¼CPUã­ãã¯ç¶æ
+ã§ã
+CPUã­ãã¯è§£é¤ç¶æ
+ã§ãå¼ã³åºããããã«å®è£
+ããªããã°ãªããªãï¼
+
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãç¨ãã¦ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ããã¹ã¦ãã¹ã¯ããç¶æ
+ã¯ï¼
+CPUã­ãã¯ç¶æ
+ã¨åºå¥ã§ãããã¨ãå¿
+è¦ã§ããï¼å
+·ä½çã«ã¯ï¼CPUã­ãã¯è§£é¤ç¶
+æ
+ã«ããã¦ï¼x_set_ipmãç¨ãã¦ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ããã¹ã¦ãã¹ã¯ããå ´å
+ã§ãï¼x_sense_lockã¯falseãè¿ãï¼
+
+ããã«å¯¾ãã¦ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãç¨ãã¦NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯
+ã§ããå ´åï¼ãã®ç¶æ
+ã¨å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ãåºå¥ã§ããå¿
+è¦ã¯ãªãï¼å
+¨ãå
+ä¸ã®ç¶æ
+ã§ããã¾ããªãï¼
+
+6.4.2 å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ã®ç®¡ç
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã»ããããæ©è½ã¨ã¯ãªã¢ããæ©
+è½ãæä¾ããï¼
+
+(6-4-2-1) bool_t VALID_INTNO_DISINT(INTNO intno)
+
+intnoãï¼dis_intï¼ena_intã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«
+trueï¼ããã§ãªãå ´åã«falseãè¿ããã¯ã­ï¼å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã»ããï¼
+ã¯ãªã¢ã§ããªãintnoã«å¯¾ãã¦ã¯ï¼ãã®ãã¯ã­ãfalseãè¿ãããã«ããï¼
+
+(6-4-2-2) bool_t x_disable_int(INTNO intno)
+(6-4-2-3) bool_t t_disable_int(INTNO intno)
+(6-4-2-4) bool_t i_disable_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã»ãããï¼
+trueãè¿ãé¢æ°ï¼æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿å±æ§ãè¨­å®ã
+ãã¦ããªãå ´åã«ã¯ï¼falseãè¿ãï¼
+
+ãããã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ãCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããã¨ã¯ãª
+ãããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼
+ãã ãï¼ã¿ã¼ã²ããä¾å­é¨ããCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãå ´åã«ã¯ï¼ä¿è¨¼ã
+ãå¿
+è¦ãããï¼
+
+ã¾ãï¼ãããã®é¢æ°ã¯ï¼VALID_INTNO_DISINT(intno)ãtrueã¨ãªãintnoã«å¯¾ã
+ã¦ã®ã¿å¼ã°ããï¼intnoã«ããã§ãªãå¤ãæ¸¡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ã
+ãªãï¼
+
+dis_intãµã¼ãã¹ã³ã¼ã«ããµãã¼ãããå ´åï¼TOPPERS_SUPPORT_DIS_INTããã¯
+ã­å®ç¾©ããå ´åï¼ã«ã¯ï¼t_disable_intãç¨æããã¦ããªããã°ãªããªãï¼
+
+(6-4-2-5) bool_t x_enable_int(INTNO intno)
+(6-4-2-6) bool_t t_enable_int(INTNO intno)
+(6-4-2-7) bool_t i_enable_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã¯ãªã¢ãï¼
+trueãè¿ãé¢æ°ï¼æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿å±æ§ãè¨­å®ã
+ãã¦ããªãå ´åã«ã¯ï¼falseãè¿ãï¼
+
+ãããã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ãCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããã¨ã¯ãª
+ãããï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼
+ãã ãï¼ã¿ã¼ã²ããä¾å­é¨ããCPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãå ´åã«ã¯ï¼ä¿è¨¼ã
+ãå¿
+è¦ãããï¼
+
+ã¾ãï¼ãããã®é¢æ°ã¯ï¼VALID_INTNO_DISINT(intno)ãtrueã¨ãªãintnoã«å¯¾ã
+ã¦ã®ã¿å¼ã°ããï¼intnoã«ããã§ãªãå¤ãæ¸¡ãããå ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ã
+ãªãï¼
+
+ena_intãµã¼ãã¹ã³ã¼ã«ããµãã¼ãããå ´åï¼TOPPERS_SUPPORT_ENA_INTããã¯
+ã­å®ç¾©ããå ´åï¼ã«ã¯ï¼t_enable_intãç¨æããã¦ããªããã°ãªããªãï¼
+
+6.4.3 å²è¾¼ã¿è¦æ±ã®ã¯ãªã¢
+
+(6-4-3-1) void x_clear_int(INTNO intno)
+(6-4-3-2) void t_clear_int(INTNO intno)
+(6-4-3-3) void i_clear_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¨ãã¸ããªã¬ã§ããå ´åã«ï¼ããªã¬ãã
+ãå²è¾¼ã¿è¦æ±ãã¯ãªã¢ããé¢æ°ï¼intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¬ãã«
+ããªã¬ã§ããå ´åã«ã¯ä½ãããªãï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ãããã®é¢æ°ãå¼ã³åºãã¦ããªããï¼
+ã¿ã¼ã²ããä¾å­é¨ãã·ã¹ãã ãµã¼ãã¹ã§å¼ã³åºãå¯è½æ§ãé«ãããï¼ç¨æãã
+ãã¨ã¨ãã¦ããï¼ãã®ããï¼ãããã®é¢æ°ãã©ã®ãããªã·ã¹ãã ç¶æ
+ã§å¼ã³åº
+ãããã¯ï¼ã¿ã¼ã²ããä¾å­é¨å
+ã§ä¸è²«ãã¦ããã°ããï¼
+
+6.4.4 å²è¾¼ã¿è¦æ±ã®ãã­ã¼ã
+
+(6-4-4-1) bool_t x_probe_int(INTNO intno)
+(6-4-4-2) bool_t t_probe_int(INTNO intno)
+(6-4-4-3) bool_t i_probe_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ãã¦ï¼å²è¾¼ã¿ãè¦æ±ããã¦ããå ´åã«
+trueï¼ããã§ãªãå ´åã«falseãè¿ãé¢æ°ï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ãããã®é¢æ°ãå¼ã³åºãã¦ããªããï¼
+ã¿ã¼ã²ããä¾å­é¨ãã·ã¹ãã ãµã¼ãã¹ã§å¼ã³åºãå¯è½æ§ãé«ãããï¼ç¨æãã
+ãã¨ã¨ãã¦ããï¼ãã®ããï¼ãããã®é¢æ°ãã©ã®ãããªã·ã¹ãã ç¶æ
+ã§å¼ã³åº
+ãããã¯ï¼ã¿ã¼ã²ããä¾å­é¨å
+ã§ä¸è²«ãã¦ããã°ããï¼
+
+6.4.5 å²è¾¼ã¿ãã³ãã©ã®å
+é ­å¦çã¨æ«å°¾å¦ç
+
+(6-4-5-1) void i_begin_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿ãã³ãã©ã®å
+é ­ã§è¡ãã¹ã
+å¦çãè¡ãé¢æ°ï¼ããã§è¡ãã¹ãå¦çã¨ãã¦ã¯ï¼å²è¾¼ã¿è¦æ±ã©ã¤ã³ãã¨ãã¸ã
+ãªã¬ã§ããå ´åã®ããªã¬ãããå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢ãæããããï¼
+
+intnoã«å¯¾ãã¦ç»é²ãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãå¼ã³åºãå²è¾¼ã¿ãã³ãã©ã®
+å
+é ­ã§å¼ã³åºãããï¼ãã®ãããã®é¢æ°ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®å
+é ­ï¼éå¸¸ã¯
+CPUã­ãã¯è§£é¤ç¶æ
+ï¼ã§å¼ã³åºããããã«å®è£
+ããªããã°ãªããªãï¼
+
+(6-4-5-2) void i_end_int(INTNO intno)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ããå²è¾¼ã¿ãã³ãã©ã®æ«å°¾ã§è¡ãã¹ã
+å¦çãè¡ãé¢æ°ï¼ããã§è¡ãã¹ãå¦çã¨ãã¦ã¯ï¼å²è¾¼ã¿ã³ã³ãã­ã¼ã©ï¼IRCï¼ã«
+å¯¾ããå²è¾¼ã¿å¦çã®çµäºéç¥ãæããããï¼
+
+intnoã«å¯¾ãã¦ç»é²ãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãå¼ã³åºãå²è¾¼ã¿ãã³ãã©ã®
+æ«å°¾ã§å¼ã³åºãããï¼ãã®ãããã®é¢æ°ã¯ï¼å²è¾¼ã¿ãã³ãã©ã®æ«å°¾ï¼éå¸¸ã¯
+CPUã­ãã¯è§£é¤ç¶æ
+ï¼ã§å¼ã³åºããããã«å®è£
+ããªããã°ãªããªãï¼
+
+ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼IRCã«å¯¾ããå²è¾¼ã¿å¦çã®çµäºéç¥ãè¡ãåã«ï¼ãã¹ã¦
+ã®å²è¾¼ã¿ãç¦æ­¢ããªããã°ãªããªãå ´åãããï¼ãã®å ´åã«ã¯ï¼ãã®é¢æ°ã®ä¸­
+ã§å²è¾¼ã¿ãç¦æ­¢ãï¼ãã®ç¶æ
+ã®ã¾ã¾ï¼å²è¾¼ã¿ãã³ãã©ãããªã¿ã¼ã³ããï¼å²è¾¼
+ã¿ãã³ãã©ããã®ãªã¿ã¼ã³åã«ã¯ï¼å²è¾¼ã¿ç¦æ­¢ãè§£é¤ããã®ãååã§ãããï¼
+å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã§å
+ã«æ»ãå¦çãè¡ãã®ã§å·®ãæ¯ããªãã¯ãã§ããï¼
+å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çãï¼ããã§å·®ãæ¯ããªãå®è£
+ã«ãªã£ã¦ãããã¨ãç¢º
+èªããã¹ãã§ããï¼
+
+6.5 ã¿ã¹ã¯ãã£ã¹ãããã£
+
+6.5.1 ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã¨ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯
+
+(6-5-1-1) TSKCTXB
+
+ã¿ã¼ã²ããä¾å­ã®ã¿ã¹ã¯ã³ã³ãã­ã¹ããä¿å­ããããã«ï¼TCBä¸­ã«æã¤ãã¨ãå¿
+
+è¦ãªãã¼ã¿æ§é ã®åãï¼TSKCTXBã«å®ç¾©ããï¼æ¨æºçã«ã¯ï¼TSKCTXBã«ã¯ï¼ã¿ã¹
+ã¯ã®ã¹ã¿ãã¯ãã¤ã³ã¿ã¨å®è¡åéçªå°ãæ ¼ç´ããï¼
+
+(6-5-1-2) USE_TSKINICTXBï¼ãªãã·ã§ã³ï¼
+(6-5-1-3) TSKINICTXBï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããä¾å­ã®æ
+å ±ãã¿ã¹ã¯åæåãã­ãã¯ï¼TINIBï¼ã«å
+¥ãããå ´åãï¼
+TINIBä¸­ã®ã¹ã¿ãã¯é åã®ãµã¤ãºã¨å
+é ­çªå°ã®æã¡æ¹ãã¿ã¼ã²ããä¾å­ã«å¤æ´ã
+ããå ´åã«ã¯ï¼USE_TSKINICTXBããã¯ã­å®ç¾©ãï¼TINIBä¸­ã«æã¤ãã¨ãå¿
+è¦ãªãã¼
+ã¿æ§é ã®åãï¼TSKINICTXBã«å®ç¾©ããï¼
+
+USE_TSKINICTXBããã¯ã­å®ç¾©ããã¨ï¼TINIBä¸­ã«ã¹ã¿ãã¯é åã¨ãµã¤ãºã¨å
+é ­çª
+å°ãå«ã¾ããªããªãããï¼ããã«ä»£ããæ
+å ±ãTSKINICTXBä¸­ã«æã¤å¿
+è¦ãããï¼
+ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­
+é¨ã§ï¼TSKINICTXBã®åæåæ
+å ±ãçæããããã®GENERATE_TSKINICTXBãï¼ãã¹
+3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ï¼TINIBããã¹ã¿ãã¯é åã®
+å
+é ­çªå°ãåãåºãããã®GET_STK_TSKINICTXBãå®ç¾©ããå¿
+è¦ãããï¼
+
+6.5.2 ãã£ã¹ãããã£æ¬ä½
+
+ãã£ã¹ãããã£æ¬ä½ï¼dispatcherï¼ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ããç´æ¥å¼ã³åºã
+ãããã¨ã¯ãªãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®å
+é¨ããã®ã¿å¼ã³åºãããï¼
+dispatcherã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£
+é¤ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã§å¼ã³åºãããï¼
+
+dispatcherã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+dispatcher(void)
+{
+#ifdef LOG_DSP_ENTER
+	log_dsp_enter(p_runtsk);
+#endif /* LOG_DSP_ENTER */
+  dispatcher_0:
+	while ((p_runtsk = p_schedtsk) == NULL) {
+		å²è¾¼ã¿ãè¨±å¯ãããCPUã­ãã¯è§£é¤ç¶æ
+ã«ãªãããæºåãã
+		éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã â¦ (*1)
+		do {
+			å²è¾¼ã¿ããã¹ã¦è¨±å¯ãï¼å²è¾¼ã¿çºçãå¾
+ã¤ â¦ (*2)
+			å²è¾¼ã¿è¨±å¯åã®ç¶æ
+ã«æ»ãï¼ï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããï¼
+		} while (!reqflg);
+		reqflg = false;
+		ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«æ»ã â¦ (*1)
+		CPUã­ãã¯ç¶æ
+ã«æ»ã ... (*3)
+	}
+	èªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBããã¹ã¿ãã¯ãã¤ã³ã¿ãå¾©å¸°ãã
+#ifdef LOG_DSP_LEAVE
+	log_dsp_leave(p_runtsk);
+#endif /* LOG_DSP_LEAVE */
+	èªã¿ã¹ã¯ã®TCBããå®è¡åéçªå°ãå¾©å¸°ãï¼ããã¸åå²ãã â¦ (*a)
+}
+----------------------------------------
+
+å²è¾¼ã¿çºçãå¾
+ã¤éã«éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããã®ã¯ï¼ãã®éã«å®è¡
+ãããå²è¾¼ã¿ãã³ãã©å
+ã§ï¼ã¿ã¹ã¯ãã£ã¹ããããããªãããã«ããããã§ã
+ãï¼ãã®æï¼å²è¾¼ã¿ãã³ãã©ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ãä½¿ãã
+ãã«ããªããã°ãªããªãï¼éå¸¸ã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããéã«é
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«æ»ãéã«
+å
+ã®ã¹ã¿ãã¯ã«åãæããï¼
+
+ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç¹ã«ï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ã®å ´åï¼ï¼å¼·å¶çã«éã¿
+ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãããã¨ãé£ããå ´åãããï¼ãã®å ´åã«ã¯ï¼ãã®
+éã«å®è¡ãããå²è¾¼ã¿ãã³ãã©å
+ã§ã¿ã¹ã¯ãã£ã¹ããããããªããããªä»çµã¿
+ãå®è£
+ãããã¨ã§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã¸ã®åæããçç¥ãããã¨ãã§ããï¼
+
+(*1)ã®éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããå¦çã¨ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«æ»ãå¦
+çã¯ï¼doã«ã¼ãã®ä¸­ã§è¡ã£ã¦ãããï¼ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼å²è¾¼ã¿ã®è¨±å¯ï¼
+ç¦æ­¢ã¨ã¾ã¨ãã¦å¦çããæ¹ãå¹çãè¯ãï¼ï¼
+
+(*2)ã«ããã¦ï¼å²è¾¼ã¿ãè¨±å¯ããå¦çã¨ï¼å²è¾¼ã¿çºçãå¾
+ã¤å¦çã¨ã¯ï¼ä¸å¯å
+ã«è¡ãªãå¿
+è¦ãããï¼ãããä¸å¯åã«è¡ãªããªãå ´åï¼å²è¾¼ã¿ãè¨±å¯ããç´å¾
+ã«å²è¾¼ã¿ãå
+¥ãï¼ãã®ä¸­ã§ã¿ã¹ã¯ãå®è¡å¯è½ç¶æ
+ã«ãªãã¨ï¼å®è¡ãã¹ãã¿ã¹ã¯
+ãããã«ãããããããã­ã»ããµãå²è¾¼ã¿å¾
+ã¡ã«ãªã£ã¦ãã¾ãï¼
+
+ã¾ãï¼(*2)ã«ããã¦ï¼å²è¾¼ã¿çºçãå¾
+ã¤å½ä»¤ãç¨æããã¦ããªãå ´åãï¼ãã
+ãçºè¡ããã®ãä¸é½åãªå ´åã«ã¯ï¼å²è¾¼ã¿ããã¹ã¦è¨±å¯ãã¦å²è¾¼ã¿ãåãä»ã
+ãããç¶æ
+ã«ãªã£ãå¾ã«ï¼å²è¾¼ã¿çºçãå¾
+ããã«æ¬¡ã«é²ãã§ãããï¼ãã®å ´åï¼
+ãã®å¤å´ã®doã«ã¼ãã«ãã£ã¦ï¼å²è¾¼ã¿çºçãå¾
+ã¤ãã¨ã«ãªãï¼
+
+CPUã­ãã¯ãè§£é¤ããããã®æ
+å ±ï¼ä¾ãã°ï¼CPUã­ãã¯åã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼
+ãå¤æ°ã«ä¿æãã¦ããå ´åã«ã¯ï¼(*3)ã§CPUã­ãã¯ç¶æ
+ã«æ»ãéã«ï¼ãã®å¤æ°ã®
+å¤ãå
+ã«æ»ã£ã¦ããå¿
+è¦ãããï¼ç¹ã«ï¼ãã®å¤æ°ãï¼å²è¾¼ã¿å¾
+ã¡ã®éã«å®è¡ã
+ãå²è¾¼ã¿ãã³ãã©å
+ã§æ¸ãæããããå ´åã¯ï¼å
+ã®å¤ã«æ»ããã¨ãå¿
+è¦ã§ããï¼
+
+å²è¾¼ã¿å¾
+ã¡ã®éã¯ï¼p_runtskãNULLï¼ï¼0ï¼ã«è¨­å®ããªããã°ãªããªãï¼ä¸ã®å¦
+çå
+å®¹ããã®ã¾ã¾å®è£
+ããã°ãããªãï¼ï¼ãã®ããã«è¨­å®ããªãã¨ï¼å²è¾¼ã¿ã
+ã³ãã©ããiget_tidãå¼ã³åºããéã®åä½ãä»æ§ã«åè´ããªããªãï¼
+
+dispatcherãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ã­ã°åå¾å¦çã¯ï¼
+ã6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³ã°ããã
+ã¨ï¼ãªãï¼log_dsp_enterã¯åæãåã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã§ï¼log_dsp_leave ã¯
+åæãå¾ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ã§å®è¡ããï¼
+
+6.5.3 ã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ãã£ã¹ããã
+
+(6-5-3-1) void dispatch(void)
+(6-5-3-2) OMIT_CALLTEXï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®ãã£ã¹ãããï¼dispatchï¼ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ã
+ç¨ã®ãµã¼ãã¹ã³ã¼ã«å¦çã«ããã¦ã¿ã¹ã¯åæããå¿
+è¦ã«ãªã£ãå ´åã«ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ã®ãµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ããå¼ã³åºãããï¼
+
+dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤
+ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã§å¼ã³åºãããï¼
+
+dispatchã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+dispatch(void)
+{
+#ifdef TOPPERS_SUPPORT_OVRHDR
+	ovrtimer_stop();					/* ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿(*)ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ãã
+	ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿å­ãã
+	dispatch_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿å­ãã â¦ (*a)
+	dispatcherã«åå²ãã
+
+  dispatch_r:
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+#ifdef TOPPERS_SUPPORT_OVRHDR
+	ovrtimer_start();					/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	calltex(); â¦ (*b)
+}
+----------------------------------------
+
+ããã§ã¹ã¯ã©ããã¬ã¸ã¹ã¿(*)ã¨ã¯ï¼é¢æ°å¼åºãã«ããä¿å­ãããªãã¬ã¸ã¹ã¿ã®
+ãã¨ã§ããï¼å¿
+è¦ãªå ´åã«ã¯ï¼é¢æ°ãå¼ã³åºãå´ã§ä¿å­ããªããã°ãªããªãã
+ãï¼caller saved registerã¨å¼ã°ããå ´åãããï¼
+
+dispatchãå¼ã³åºããã¿ã¹ã¯ãæ¬¡ã«å®è¡ãããæã«ã¯ï¼å®è¡åéçªå°ã¨ãã¦ç»
+é²ããdispatch_rã«æ»ã£ã¦ããï¼dispatch_rã«ã¯ï¼dispatcherã®ã¿ããåå²ãï¼
+ãã®æã®ç¶æ
+ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨
+è§£é¤ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããï¼
+
+(*b)ã§calltexãå¼ã¶ä»£ããã«ï¼calltexã®å¦çå
+å®¹ï¼p_runtsk->enatexãtrue
+ã§ï¼p_runtsk->texptnã0ã§ãªãï¼ipmflgãtrueã®å ´åã«ï¼call_texrtnãå¼ã¶ï¼
+ãããã«ã¤ã³ã©ã¤ã³å±éããæ¹ãå¹çãããï¼ã¿ã¼ã²ããéä¾å­é¨ã®calltexã
+ä½¿ããªãå ´åã«ã¯ï¼OMIT_CALLTEXããã¯ã­å®ç¾©ãããã¨ã§ï¼ã¿ã¼ã²ããéä¾å­
+é¨ããcalltexãåãé¤ããã¨ãã§ããï¼
+
+6.5.4 ãã£ã¹ãããã£ã®åä½éå§
+
+(6-5-4-1) void start_dispatch(void)
+
+ãã£ã¹ãããã£ã®åä½éå§ï¼start_dispatchï¼ã¯ï¼ã«ã¼ãã«èµ·åæã«ï¼ã«ã¼ã
+ã«ã®åæåå¦çããå¼ã³åºãããï¼start_dispatchã¯ï¼ãªã¿ã¼ã³ãããã¨ã®ãª
+ãé¢æ°ã§ããï¼
+
+start_dispatchã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹
+ã¯ããç¶æ
+ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ã®ç¶æ
+ï¼ã§å¼ã³åºãããï¼start_dispatch
+å
+ã§ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãï¼CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨
+è§£é¤ç¶æ
+ã«ããªããã°ãªããªãï¼
+
+start_dispatchã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+start_dispatch(void)
+{
+	ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã
+	CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã«ãã
+	dispatcher_0ã«åå²ãã
+}
+----------------------------------------
+
+6.5.5 ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ããã
+
+(6-5-5-1) void exit_and_dispatch(void)
+
+ç¾å¨ã®ã³ã³ãã­ã¹ããæ¨ã¦ã¦ãã£ã¹ãããï¼exit_and_dispatchï¼ã¯ï¼èªã¿ã¹ã¯
+ãçµäºããããµã¼ãã¹ã³ã¼ã«å¦çé¢æ°ããå¼ã³åºãããï¼exit_and_dispatchã¯ï¼
+ãªã¿ã¼ã³ãããã¨ã®ãªãé¢æ°ã§ããï¼
+
+exit_and_dispatchã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ã
+ã¹ã¯å
+¨è§£é¤ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã§å¼ã³åºãããï¼
+
+exit_and_dispatchã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+exit_and_dispatch(void)
+{
+	dispatcherã«åå²ãã
+}
+----------------------------------------
+
+6.5.6 ã¿ã¹ã¯ã®èµ·åå¦ç
+
+(6-5-6-1) void activate_context(TCB *p_tcb)
+
+ã¿ã¹ã¯ã®èµ·åå¦çï¼activate_contextï¼ã¯ï¼ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ããå®è¡ã§ãã
+ç¶æ
+ã«ããæã«å¼ã°ãï¼p_tcbã§æå®ãããã¿ã¹ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ï¼ã®TCBä¸­ã®ã¹
+ã¿ãã¯ãã¤ã³ã¿ãåæåãï¼å®è¡åéçªå°ãã¿ã¹ã¯éå§æå¦çï¼start_rï¼ã«è¨­
+å®ããï¼ãã®æç¹ã§ã¯ï¼å¾è¿°ããçç±ã§ï¼å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãä½¿ã£ã¦
+ã¯ãªããªãï¼
+
+å¯¾è±¡ã¿ã¹ã¯ãæåã«å®è¡ãããæã«ã¯ï¼å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã¨ãã¦ï¼å®è¡å
+éçªå°ã¨ãã¦ç»é²ããstart_rã«åå²ãã¦ããï¼start_rã«ã¯ï¼dispatcherã®ã¿
+ããåå²ãï¼ãã®æã®ç¶æ
+ã¯ï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åª
+å
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã»ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããï¼
+
+start_rã¯ï¼CPUã­ãã¯ç¶æ
+ãè§£é¤ããå¾ï¼ã¿ã¹ã¯ã®èµ·åçªå°ãå¼ã³åºãï¼ãã
+ã«ï¼ã¿ã¹ã¯ã®èµ·åçªå°ããæ»ã£ã¦ããå ´åã«ã¯ï¼ext_tskãå¼ã³åºãï¼
+
+activate_contextã¨start_rã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+activate_context(TCB *p_tcb)
+{
+	æå®ãããã¿ã¹ã¯ï¼p_tcbï¼ã®TCBä¸­ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãåæåãã
+	start_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿å­ãã â¦ (*a)
+	return;
+
+  start_r:
+#ifdef TOPPERS_SUPPORT_OVRHDR
+	ovrtimer_start();					/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	CPUã­ãã¯è§£é¤ç¶æ
+ã«ãã
+	èªã¿ã¹ã¯ï¼p_runtskï¼ã®èµ·åçªå°ãï¼æ¡å¼µæ
+å ±ããã©ã¡ã¼ã¿ã¨ãã¦å¼ã³åºã
+	ext_tskã«åå²ãã ... (*c)
+}
+----------------------------------------
+
+(*c)ã§ext_tskãå¼ã¶ä»£ããã«ï¼èªã¿ã¹ã¯ã®èµ·åçªå°ãå¼ã³åºãæã®è¿ãçªå°ã
+ext_tskã®çªå°ã¨ãã¦ããæ¹æ³ãããï¼
+
+ããã§ï¼ã¿ã¹ã¯ã®èµ·åå¦çã«ããã¦å¯¾è±¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãä½¿ã£ã¦ã¯ãªã
+ãªãçç±ã¯ï¼æ¬¡ã®éãï¼å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã«ããã¦ï¼è¤æ°ã®å¶ç´ã¿ã¹
+ã¯ãã¹ã¿ãã¯é åãå
+±æãã¦ããå ´åã«ï¼ã¿ã¹ã¯ã®èµ·åæç¹ã§ã¯ï¼ãã®ã¿ã¹ã¯
+ã¨ã¹ã¿ãã¯é åãå
+±æãã¦ããã¿ã¹ã¯ãï¼ã¹ã¿ãã¯é åãä½¿ç¨ãã¦ããå¯è½æ§
+ãããããã§ããï¼
+
+ãã®ãã¼ãã£ã³ã°ã¬ã¤ãã§ã¯ï¼ã¿ã¹ã¯ã®å®è¡åéçªå°ãTCBã«ä¿å­ãã¦ãã
+(*a)ããããã¹ã¿ãã¯ã«ä¿å­ããæ¹æ³ãèãããããï¼ã¿ã¹ã¯ã®èµ·åå¦çã§ã¹
+ã¿ãã¯é åãä½¿ããªããã¨ããï¼ã¿ã¹ã¯ã®èµ·åå¦çã ãã¯ä¾å¤æ±ãããªããã°
+ãªããªãï¼ä¾ãã°ï¼ã¿ã¹ã¯ã®èµ·åå¦çã«ããã¦ã¯TCBä¸­ã®ã¹ã¿ãã¯ãã¤ã³ã¿ãç¹
+æ®ãªå¤ï¼ä¾ãã°0ï¼ã«è¨­å®ãã¦ããï¼ãã£ã¹ãããã£æ¬ä½ã§TCBä¸­ã®ã¹ã¿ãã¯ã
+ã¤ã³ã¿ããã®å¤ã®å ´åã«ã¯start_rã«åå²ããï¼start_rã«ããã¦ã¹ã¿ãã¯ãã¤
+ã³ã¿ãåæåããæ¹æ³ãèããããï¼
+
+6.6 å²è¾¼ã¿ãã³ãã©
+
+6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦ç
+
+ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ã®åºå
+¥å£å¦çã®æ¹æ³ã¯ï¼ãã­ã»ããµã«ãã£ã¦å¤§ããç°ãª
+ããï¼ããããã®å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+<å²è¾¼ã¿ã®åºå
+¥å£å¦ç>(void)
+{
+	å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã«ãã â¦ (*f)
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ãã
+	if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å²è¾¼ã¿çºç) {
+#ifdef TOPPERS_SUPPORT_OVRHDR
+		ovrtimer_stop();				/* ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+		ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
+								éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã
+	}
+	å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼åãä»ããå²è¾¼ã¿è¦æ±ã®å²è¾¼åªå
+åº¦ã«è¨­å®ãï¼
+				CPUã­ãã¯è§£é¤ç¶æ
+ã«ããï¼åãä»ããå²è¾¼ã¿ããã
+				åªå
+åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããããã«ããï¼â¦ (*i)
+
+
+#ifdef LOG_INH_ENTER
+	log_inh_enter(å²è¾¼ã¿ãã³ãã©çªå·);
+#endif /* LOG_INH_ENTER */
+	å²è¾¼ã¿ãã³ãã©ãå¼ã³åºã
+#ifdef LOG_INH_LEAVE
+	log_inh_leave(å²è¾¼ã¿ãã³ãã©çªå·);
+#endif /* LOG_INH_LEAVE */
+
+  ret_int:
+	if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å²è¾¼ã¿çºç) {
+		ï¼å°ãªãã¨ãï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã«ãã â¦ (*d)
+		ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã
+																â¦ (*g)
+		if (reqflg) {
+			reqflg = false;
+			CPUã­ãã¯ç¶æ
+ã«ãã â¦ (*e)
+			å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼å
+¨è§£é¤ç¶æ
+ï¼TIPM_ENAALLï¼ã«è¨­å®ãã â¦ (*h)
+			if (dspflg && p_runtsk != p_schedtsk) {
+				ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ãã
+				ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿å­ãã
+				ret_int_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿å­ãã â¦ (*a)
+				dispatcherã«åå²ãã
+
+			  ret_int_r:
+				ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+			}
+#ifdef TOPPERS_SUPPORT_OVRHDR
+			ovrtimer_start();			/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+			calltex(); â¦ (*b)
+		}
+#ifdef TOPPERS_SUPPORT_OVRHDR
+		else {
+			ovrtimer_start();			/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+		}
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+	}
+	å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã
+									å²è¾¼ã¿å¦çåã®å¤ã«æ»ãããã«æºåãã
+	å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã«æ»ãããã«æºåãã
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+	å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³
+}
+----------------------------------------
+
+å²è¾¼ã¿ã®åä»ãã«ããï¼ã¹ã¿ãã¯ãã¤ã³ã¿ãåãæãããï¼ãã¹ã¦ã®å²è¾¼ã¿ã
+ç¦æ­¢ãããªããã­ã»ããµã§ã¯ï¼(*f)ã«ããã¦ï¼å°ãªãã¨ãã«ã¼ãã«ç®¡çã®å²è¾¼
+ã¿ãç¦æ­¢ããï¼ãã®çç±ã¯æ¬¡ã®éãã§ããï¼
+
+å²è¾¼ã¿ã®å
+¥å£å¦çã«ããã¦ï¼ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«
+åãæããåã«å¤éå²è¾¼ã¿ãçºçããã¨ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åãä½¿ç¨ãããï¼
+ä¸è¨ã®ãããªãã­ã»ããµã§ã¯ï¼ã¹ã¿ãã¯ã®åæãåã«ï¼æå¤§ã§å²è¾¼ã¿åªå
+åº¦ã®
+æ®µæ°åã®å¤éå²è¾¼ã¿ãçºçãããã¨ãé²ããã¨ã¯ã§ããï¼åã¿ã¹ã¯ã®ã¹ã¿ãã¯
+é åãç¢ºä¿ããéã«ï¼ãã®åãè¦è¾¼ãã§ç¢ºä¿ããªããã°ãªããªãï¼åã¿ã¹ã¯ã®
+ã¹ã¿ãã¯é åããªãã¹ãå°ããããããã«ã¯ï¼ã¹ã¿ãã¯ããªãã¹ãä½¿ç¨ããªã
+å
+ã«ï¼å¤éå²è¾¼ã¿ãç¦æ­¢ããã®ãæã¾ããï¼ãã®ããï¼ã¹ã¯ã©ããã¬ã¸ã¹ã¿ã
+ã¹ã¿ãã¯ã«ä¿å­ããåã«ï¼å²è¾¼ã¿ãç¦æ­¢ããï¼ãã ãï¼å²è¾¼ã¿ã®ç¦æ­¢å¦çã«å¿
+
+è¦ãªæä½éã®ã¬ã¸ã¹ã¿ã«ã¤ãã¦ã¯ï¼å²è¾¼ã¿ã®ç¦æ­¢ã«å
+ç«ã£ã¦ã¹ã¿ãã¯ã«ä¿å­ã
+ãå¿
+è¦ãããï¼
+
+åæ§ã®ãã¨ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«ãå½ã¦ã¯ã¾ãï¼ããªãã¡ï¼ã«ã¼ãã«
+ç®¡çå¤ã®å²è¾¼ã¿ã«ã¤ãã¦ãï¼ã¹ã¿ãã¯ããªãã¹ãä½¿ç¨ããªãå
+ã«ç¦æ­¢ããã®ã
+æã¾ããï¼ãã®ãã¨ããï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãä½¿ç¨ããå ´åã«ã¯ï¼(*f)
+ã«ããã¦ï¼ãã¹ã¦ã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã«ããã®ãæã¾ãããã¨ã«ãªãï¼ä¸
+æ¹ã§ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®ç¦æ­¢æéãé·ããªãã¨ï¼ã«ã¼ãã«ç®¡çå¤ã®å²
+è¾¼ã¿ã®å¿ç­æ§ãä½ä¸ããããï¼ã¦ã¼ã¶ã«æ³¨æãä¿ãå¿
+è¦ãããï¼ã¾ãï¼ã«ã¼ã
+ã«ç®¡çå¤ã®å²è¾¼ã¿å¦çã«ããã¦ãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ï¼ã¾ã
+ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çç¨ã®ã¹ã¿ãã¯ï¼ã«åãæãããã¨ãæã¾ãã
+ãï¼ããã¯ã«ã¼ãã«ã®ç®¡è½å¤ã§ããï¼
+
+(*i)ã«å«ã¾ããå²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãè¨­å®ããå¦çã¯ï¼ãã­ã»ããµããã¼ãã¦ã§
+ã¢ã§å®ç¾ãã¦ããå ´åãå¤ãï¼
+
+(*d)ã«ããã¦ã¯ï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããã ãã§ï¼CPUã­ãã¯ç¶æ
+ã«ã
+ãå¿
+è¦ã¯ãªãï¼ä¾ãã°ï¼CPUã­ãã¯ç¶æ
+ã§ãããã¨ãç¤ºãå¤æ°ãç¨æãã¦ããå ´
+åã«ã¯ï¼(*d)ã®æç¹ã§ã¯ãã®å¤æ°ãCPUã­ãã¯ç¶æ
+ãç¤ºãå¤ã«å¤æ´ããå¿
+è¦ã¯ãª
+ãï¼(*e)ã«ããã¦å¤æ´ããã°ããï¼
+
+(*g)ã«ããã¦ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããå¦çã¯ï¼å²è¾¼ã¿å¦çããã®ãªã¿ã¼
+ã³ã«ããã¹ã¿ãã¯ã¨ã³ã³ãã­ã¹ããå
+ã«æ»ããã­ã»ããµã§ã¯ï¼reqflgãtrueã®
+å ´åã«ã®ã¿è¡ãã°ããï¼reqflgãfalseã®æã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®ã¾ã¾å¦
+çãç¶ãï¼å²è¾¼ã¿å¦çããã®ãªã¿ã¼ã³ã§ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«æ»ããã¨ã«ãªãï¼
+
+(*e)ã«ããã¦CPUã­ãã¯ç¶æ
+ã«ããã®ã¯ï¼dispatcherã«åå²ããéã¨ï¼(*b)ã«ã
+ãã¦calltexï¼ã¾ãã¯ï¼ãããå±éããå ´åã«ã¯call_texrtnï¼ãå¼ã³åºãéã«ï¼
+CPUã­ãã¯ç¶æ
+ã«ãªã£ã¦ããå¿
+è¦ãããããã§ããï¼
+
+(*h)ã®å¦çãå®è¡ãããã®ã¯ï¼å²è¾¼ã¿å¦çåã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ç¶
+æ
+ï¼TIPM_ENAALLï¼ã§ãã£ãå ´åã«éããï¼ããã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤
+ç¶æ
+ã«è¨­å®ããã®ã¯ï¼å²è¾¼ã¿å¦çåã®å¤ã«æ»ãã®ã¨ç­ä¾¡ã§ããï¼ããã§ãã®å¦
+çãè¡ãã®ã¯ï¼dispatcherã«åå²ããéã¨ï¼(*b)ã«ããã¦calltexï¼ã¾ãã¯ï¼ã
+ããå±éããå ´åã«ã¯call_texrtnï¼ãå¼ã³åºãéã«ã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨
+è§£é¤ç¶æ
+ã«ãªã£ã¦ããå¿
+è¦ãããããã§ããï¼
+
+ã¿ã¹ã¯ã®å®è¡ä¸­ã«å²è¾¼ã¿ãçºçãï¼ä¸ã®å¦çä¸­ã§dispatcherã«åå²ããå ´åï¼
+ãã®ã¿ã¹ã¯ãæ¬¡ã«å®è¡ãããæã«ã¯ï¼å®è¡åéçªå°ã¨ãã¦ç»é²ããret_int_rã«
+æ»ã£ã¦ããï¼ret_int_rã«ã¯ï¼dispatcherã®ã¿ããåå²ãï¼ãã®æã®ç¶æ
+ã¯ï¼ã¿
+ã¹ã¯ã³ã³ãã­ã¹ãã»CPUã­ãã¯ç¶æ
+ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã»ãã£ã¹ãã
+ãè¨±å¯ç¶æ
+ã§ããï¼
+
+å²è¾¼ã¿ã®åºå
+¥å£å¦çãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ã­ã°åå¾
+å¦çã¯ï¼ã6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³
+ã°ãããã¨ï¼
+
+6.6.2 å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
+¥å£å¦çã®çæ
+
+å²è¾¼ã¿ãã¯ãã«ããã¼ãã¦ã§ã¢ã§å®ç¾ãã¦ããå ´åãªã©ï¼å²è¾¼ã¿ãã³ãã©æ¯ã«
+åºå
+¥å£å¦çãç¨æããæ¹ãå¹çãè¯ãã¿ã¼ã²ããã®ããã«ï¼å²è¾¼ã¿ãã³ãã©æ¯
+ã«åºå
+¥å£å¦çãçæããæ©æ§ãç¨æãã¦ããï¼
+
+ä»¥ä¸ã®ãã¯ã­ã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼
+ã²ããéä¾å­é¨ã§ä½¿ãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­é¨
+ã§ç¨æãï¼ãã®ä¸­ã§ãããã®ãã¯ã­ãä½¿ããªãå ´åã«ã¯ï¼ãããã®ãã¯ã­ãç¨
+æããå¿
+è¦ã¯ãªãï¼
+
+(6-6-2-1) INT_ENTRY(inhno, inthdr)
+
+å²è¾¼ã¿ãã³ãã©çªå·ãinhnoï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åãinthdrã§ããå²è¾¼ã¿ã
+ã³ãã©ã®åºå
+¥å£å¦çã®ã©ãã«ãä½ããã¯ã­ï¼INTHDR_ENTRYãç¨ãã¦å²è¾¼ã¿ãã³
+ãã©æ¯ã«åºå
+¥å£å¦çãçæããå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ããï¼
+
+#define INT_ENTRY(inhno, inthdr)	_kernel_##inthdr##_##inhno
+
+å²è¾¼ã¿ãã³ãã©æ¯ã«åºå
+¥å£å¦çãä½ãå¿
+è¦ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ã
+ã¦ï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åããã®ã¾ã¾è¿ãï¼
+
+#define INT_ENTRY(inhno, inthdr)	inthdr
+
+(6-6-2-2) INTHDR_ENTRY(inhno, inhno_num, inthdr)
+
+å²è¾¼ã¿ãã³ãã©çªå·ãinhnoï¼å²è¾¼ã¿ãã³ãã©ã®é¢æ°åãinthdrã§ããå²è¾¼ã¿ã
+ã³ãã©ã®åºå
+¥å£å¦çãçæãããã¯ã­ï¼inhno_numã«ã¯ï¼ã¢ã»ã³ããªè¨èªè¨è¿°ç¨
+ã«ï¼å²è¾¼ã¿ãã³ãã©çªå·ãæ°å¤ã§æ¸¡ãããï¼å²è¾¼ã¿ãã³ãã©æ¯ã«åºå
+¥å£å¦çã
+ä½ãå¿
+è¦ããªãå ´åã«ã¯ï¼ç©ºã«å®ç¾©ããï¼
+
+6.6.3 å²è¾¼ã¿ãã³ãã©ã®è¨­å®
+
+(6-6-3-1) bool_t VALID_INHNO_DEFINH(INHNO inhno)ï¼ãªãã·ã§ã³ï¼
+
+inhnoãï¼DEF_INHã«å¯¾ããå²è¾¼ã¿ãã³ãã©çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«
+trueï¼ããã§ãªãå ´åã«falseãè¿ããã¯ã­ï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ãã®ãã¯ã­ã¯ä½¿ããã¦ããªãããï¼ã¿ã¼
+ã²ããä¾å­é¨ã§ä½¿ããªããªãï¼ç¨æããå¿
+è¦ããªãï¼
+
+(6-6-3-2) void x_define_inh(INHNO inhno, FP int_entry)
+
+inhnoã§æå®ãããå²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çã®çªå°ãint_entryã«è¨­å®ããï¼
+
+ãã®é¢æ°ã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ããå¼ã³åºãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­
+é¨ã§ç¨æãï¼ãã®ä¸­ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
+å¿
+è¦ã¯ãªãï¼
+
+ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
+ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
+ã³åºããããã«å®è£
+ããã°ããï¼
+
+æå®ãããå²è¾¼ã¿ãã³ãã©çªå·ãDEF_INHã«å¯¾ãããã®ã¨ãã¦æå¹ãªå¤ã§ãªãå ´
+åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ãã
+ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+ã§å®ç¾©ããINHNO_DEFINH_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºããããã§ããï¼
+
+6.6.4 å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®
+
+(6-6-4-1) bool_t VALID_INTNO_CFGINT(INTNO intno)ï¼ãªãã·ã§ã³ï¼
+
+intnoãï¼å²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ããã§ãªãå ´åã«
+falseãè¿ããã¯ã­ï¼CFG_INTã«ã¯ï¼ãã¹ã¦ã®å²è¾¼ã¿çªå·ãæå®ãããã¨ãã§ã
+ãããï¼ãã®ãã¯ã­ã¯ï¼intnoãæå¹ãªå¤ã®å ´åã«ã¯trueï¼intnoãç¡å¹ã®å¤ã®
+å ´åã«ã¯falseãè¿ãããã«ããï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ãã®ãã¯ã­ã¯ä½¿ããã¦ããªãããï¼ã¿ã¼
+ã²ããä¾å­é¨ã§ä½¿ããªããªãï¼ç¨æããå¿
+è¦ããªãï¼
+
+(6-6-4-2) void x_config_int(INTNO intno, ATR intatr, PRI intpri)
+
+intnoã§æå®ãããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å²è¾¼ã¿å±æ§ãï¼intatrã§æå®ãããéã
+ã«è¨­å®ããï¼ã¾ãï¼å²è¾¼ã¿åªå
+åº¦ãï¼intpriã§æå®ãããå¤ã«è¨­å®ããï¼
+
+ãã®é¢æ°ã¯ï¼æ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ããå¼ã³åºãããï¼å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­
+é¨ã§ç¨æãï¼ãã®ä¸­ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
+å¿
+è¦ã¯ãªãï¼
+
+ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
+ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
+ã³åºããããã«å®è£
+ããã°ããï¼
+
+intatrã¨ãã¦è¨­å®ã§ããå²è¾¼ã¿å±æ§ã¯æ¬¡ã®éãï¼
+
+	TA_ENAINT		0x01	å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã¯ãªã¢
+	TA_EDGE			0x02	ã¨ãã¸ããªã¬
+
+ãã®ä»ã«ï¼ã¿ã¼ã²ããå®ç¾©ã§å²è¾¼ã¿å±æ§ãè¿½å ãã¦ãããï¼ã¿ã¼ã²ããå®ç¾©ã§
+è¿½å ããããã«ï¼ä»¥ä¸ã®å±æ§åãäºç´ããã¦ããï¼
+
+	TA_POSEDGE				ãã¸ãã£ãã¨ãã¸ããªã¬
+	TA_NEGEDGE				ãã¬ãã£ãã¨ãã¸ããªã¬
+	TA_BOTHEDGE				ä¸¡ã¨ãã¸ããªã¬
+	TA_LOWLEVEL				ã­ã¼ã¬ãã«ããªã¬
+	TA_HIGHLEVEL			ãã¤ã¬ãã«ããªã¬
+
+ãããã®å±æ§åãã¿ã¼ã²ããå®ç¾©ã§è¿½å ããå ´åã«ã¯ï¼ãã®å±æ§å¤ãæ±ºå®ãï¼
+å®ç¾©ãtarget_kernel.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«
+ããï¼ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ããåç
+§ã§ããããã«ï¼
+target_def.csvï¼ã¾ãã¯ï¼åç­ã®å½¹å²ãæã¤ãã¡ã¤ã«ï¼ã«å«ãï¼ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¨ã©ã¼ã¨ãªããªãããã«ï¼
+target.tfï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã§TARGET_INTATR
+ã«è¨­å®ããï¼
+
+æå®ãããå²è¾¼ã¿çªå·ãæå¹ãªå¤ã§ãªãå ´åãï¼ãã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«å¯¾ã
+ã¦è¨­å®ã§ããªãå±æ§ãæå®ããå ´åï¼è¨­å®ã§ããªãå²è¾¼ã¿åªå
+åº¦ãæå®ããå ´
+åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ãã®
+ãããªã±ã¼ã¹ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã§ã¨ã©ã¼ãæ¤åºãã¹ãã§ããï¼ã³ã³ãã£
+ã®ã¥ã¬ã¼ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã¯ï¼ãã¹2ã®ãã³ãã¬ã¼
+ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããINTNO_CFGINT_VALIDï¼
+TARGET_INTATRï¼INTPRI_CFGINT_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºãããï¼æ¨æºã®å²
+è¾¼ã¿å±æ§ï¼TA_ENAINTï¼TA_EDGEï¼ãè¨­å®ã§ããªãå ´åãï¼è¨­å®ã§ããªãå±æ§ã
+å²è¾¼ã¿åªå
+åº¦ãå²è¾¼ã¿è¦æ±ã©ã¤ã³ã«ãã£ã¦ç°ãªãå ´åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼
+ã¿ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ã§æ¤åºããªããã°ãªããªãï¼
+
+6.6.5 å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
+
+(6-6-5-1) OMIT_INITIALIZE_INTERRUPTï¼ãªãã·ã§ã³ï¼
+
+å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­é¨ã§ç¨æãï¼ã¿ã¼ã²ããéä¾å­
+é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããªãå ´åã«ã¯ï¼ãã®ã·
+ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+ãã®ã·ã³ãã«ããã¯ã­å®ç¾©ããã¨ï¼INHINIBï¼INTINIBï¼initialize_interrupt
+ã®å®ç¾©ãï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ããåãé¤ãããï¼ã¾ãï¼
+TNUM_INHNOï¼tnum_inhnoï¼inhinib_tableï¼TNUM_INTNOï¼tnum_intnoï¼
+intinib_tableã®å®ç¾©ã¨ï¼å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
+¥å£å¦çãçæããããã®è¨è¿°
+ï¼INTHDR_ENTRYãã¯ã­ã®ãªã¹ãï¼ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼
+ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã«ãã£ã¦kernel_cfg.cã«çæãããªããªãï¼
+ãã ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­
+é¨ã§ï¼USE_INHINIB_TABLEã¨USE_INTINIB_TABLEãè¨­å®ãããã¨ã§ï¼ãã®ä¸é¨
+åãkernel_cfg.cã«çæãããã¨ãå¯è½ã§ããï¼
+
+(6-6-5-2) void initialize_interrupt(void)ï¼ãªãã·ã§ã³ï¼
+
+OMIT_INITIALIZE_INTERRUPTããã¯ã­å®ç¾©ããå ´åã«ã¯ï¼ãã®é¢æ°ãã¿ã¼ã²ãã
+ä¾å­é¨ã§ç¨æããï¼OMIT_INITIALIZE_INTERRUPTããã¯ã­å®ç¾©ãããã¨ã«ããå
+ãé¤ããããã®ä»ã®ãã¼ã¿åï¼å¤æ°ï¼ãã¯ã­ã¯ï¼ãã®é¢æ°ã§ä½¿ç¨ããå ´åã«ã®
+ã¿ç¨æããã°ããï¼
+
+6.6.6 ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©
+
+(6-6-6-1) void default_int_handler(void)ï¼ãªãã·ã§ã³ï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ããå²è¾¼ã¿ãã³ãã©ã®ãã¼ãã«ãçæããå ´åãªã©ã«ã¯ï¼
+å²è¾¼ã¿ãã³ãã©ãç»é²ããªãã£ãå²è¾¼ã¿ãã³ãã©çªå·ã«å¯¾ãã¦ï¼ããã©ã«ãã®
+å²è¾¼ã¿ãã³ãã©ã¨ãã¦ï¼default_int_handlerãç»é²ããï¼
+
+default_int_handlerã¯ï¼æ¨æºã®ãã®ãã¿ã¼ã²ããä¾å­é¨ã§ç¨æãããï¼ã¦ã¼ã¶
+ãç¨æãããã®ã§ç½®ãæããããããã«ï¼OMIT_DEFAULT_INT_HANDLERããã¯ã­
+å®ç¾©ããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããªãããã«ããï¼ãªãï¼ã¦ã¼ã¶
+ãç¨æããå ´åã®åç§°ã¯ï¼_kernel_default_int_handlerã¨ãªãï¼
+
+6.6.7 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿
+
+ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã¯ï¼ã«ã¼ãã«å
+ã®å²è¾¼ã¿åºå
+¥å£å¦çãçµç±ã
+ãã«å®è¡ããã®ãåºæ¬ã§ããï¼
+
+ãã ãï¼ãã¹ã¦ã®å²è¾¼ã¿ã§åãã¢ãã¬ã¹ã«åå²ãããã­ã»ããµã§ã¯ï¼ã«ã¼ãã«
+å
+ã®å²è¾¼ã¿åºå
+¥å£å¦çãå
+¨ãçµç±ããã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®
+è¡ãããã¨ãã§ããªãããï¼å²è¾¼ã¿åºå
+¥å£å¦çã®ãªãã¹ãæ©ãã¿ã¤ãã³ã°ã§ï¼
+ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã§ããããå¤å¥ãï¼å¦çå
+å®¹ãåããå¿
+è¦ãããï¼å
+·
+ä½çã«ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®åºå
+¥å£å¦çã§ã¯ï¼ãªã¼ãã©ã³ãã³ãã©ã®
+åæ­¢ã¨åä½éå§ãè¡ã£ã¦ã¯ãªããªãï¼ã¾ãï¼reqflgããã§ãã¯ãï¼ã¿ã¹ã¯åæ
+ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºããè¡ãå¿
+è¦ããªãï¼ããã«ï¼NMIã®åºå
+¥å£
+å¦çã§ã¯ï¼ãã¬ã¼ã¹ã­ã°åå¾å¦çï¼log_inh_enterããã³log_inh_leaveï¼ãå¼
+ã³åºãã¦ã¯ãªããªãï¼
+
+ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®è¡ããéã«ï¼ã«ã¼ãã«å
+ã®å²è¾¼ã¿åºå
+¥å£
+å¦çã®ä¸é¨åãçµç±ããå ´åã«ã¯ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ãæ¥µåæ¸ããã¨ã¨ã
+ã«ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ãããå ´åã«ã¯ï¼ãã®å¯è½æ§ãã¿ã¼ã²ããä¾å­é¨ã®
+ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ããªããã°ãªããªãï¼
+
+æ¬¡ã«ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨­å®æ¹æ³ã«é¢ãã¦ï¼ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«
+çµ±åä»æ§æ¸ãã®ã2.7.8 ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨­å®æ¹æ³ãã®ç¯ã®3ã¤ã®æ¹æ³
+ã®ããããæ¡ç¨ããããæ±ºå®ããï¼
+
+(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ãï¼ã«ã¼ãã«ç®¡çå¤ã¨ããå²è¾¼ã¿ã«å¯¾ãã¦ï¼ã«ã¼ãã«
+ã®APIã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ã¨å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®ããµãã¼ã
+ããªãå ´åã«ã¯ï¼ããã«ä»£ããæ¹æ³ãã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢
+ã«ã«è¨è¿°ããï¼
+
+(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ãã¦ã«ã¼ãã«ã®APIã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ãå²è¾¼
+ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®ããµãã¼ãããå ´åãï¼(b)ãæ¡ç¨ããå ´åã«ã¯ï¼ã¿ã¼
+ã²ããä¾å­é¨ã«ããã¦ãããå®ç¾ããå¿
+è¦ãããï¼
+
+ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦ï¼DEF_INHã«ããå²è¾¼ã¿ãã³ãã©ã®ç»é²ããµãã¼
+ãããã«ã¯ï¼æ¬¡ã®è¨­å®ãå¿
+è¦ã«ãªãï¼
+
+ã»TARGET_INHATRã«ï¼TA_NONKERNELãè¨­å®ããï¼
+
+ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INHNO_DEFINH_VALIDã«ï¼ã«ã¼ãã«ç®¡
+ãçå¤ã¨ããå²è¾¼ã¿ã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·ãå«ããï¼ã¾ãï¼
+ãVALID_INHNO_DEFINHãï¼ã«ã¼ãã«ç®¡çå¤ã¨ããå²è¾¼ã¿ãã³ãã©çªå·ãæå¹ãª
+ãå¤ã¨å¤å®ããããã«ããï¼
+
+ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INHNO_FIX_KERNELã«ã«ã¼ãã«ç®¡çã¨
+ãããå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ããï¼INHNO_FIX_NONKERNELã«ã«ã¼ãã«ç®¡çå¤
+ãã¨ããå²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ãè¨­å®ããï¼
+
+ã»DEF_INHãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾å¿ã§ããããã«ããï¼æ¨æºã®å²è¾¼ã¿ç®¡
+ãçæ©è½ã®åæåå¦çãç¨ããå ´åã«ã¯ï¼x_define_inhãã«ã¼ãã«ç®¡çå¤ã®å²
+ãè¾¼ã¿ã«å¯¾å¿ãããï¼
+
+ã»å¿
+è¦ãªå ´åã«ã¯ï¼TA_NONKERNELå±æ§ãè¨­å®ãããå²è¾¼ã¿ãã³ãã©ãã«ã¼ãã«
+ãç®¡çå¤ã¨æ±ãããã«ï¼ã«ã¼ãã«å
+ã®å²è¾¼ã¿åºå
+¥å£å¦çãä¿®æ­£ããï¼æ¨æºã®å²
+ãè¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦
+ãã¯ï¼ã«ã¼ãã«å
+ã®å²è¾¼ã¿åºå
+¥å£å¦çãçæããï¼ã¢ããªã±ã¼ã·ã§ã³ãç»é²ã
+ããå²è¾¼ã¿ãã³ãã©ãç´æ¥å¼ã³åºãããã«ï¼ã¿ã¼ã²ããéä¾å­é¨ã«ããè¨­å®ã
+ãããããï¼ã¿ã¼ã²ããä¾å­é¨ã§ã¯å¯¾å¿ããå¿
+è¦ããªãï¼
+
+ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦ï¼CFG_INTã«ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­
+å®ããµãã¼ãããã«ã¯ï¼æ¬¡ã®è¨­å®ãå¿
+è¦ã«ãªãï¼
+
+ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INTNO_CFGINT_VALIDã«ï¼ã«ã¼ãã«ç®¡
+ãçå¤ã¨ããå²è¾¼ã¿ã«å¯¾å¿ããå²è¾¼ã¿çªå·ãå«ããï¼ã¾ãï¼VALID_INTNO_CFGINT
+ããï¼ã«ã¼ãã«ç®¡çå¤ã¨ããå²è¾¼ã¿çªå·ãæå¹ãªå¤ã¨å¤å®ããããã«ããï¼
+
+ã»(a-1)ã¾ãã¯(a-2)ãæ¡ç¨ããå ´åã«ã¯ï¼INTNO_FIX_KERNELã«ã«ã¼ãã«ç®¡çã¨
+ãããå²è¾¼ã¿çªå·ã®ãªã¹ããï¼INTNO_FIX_NONKERNELã«ã«ã¼ãã«ç®¡çå¤ã¨ããå²
+ãè¾¼ã¿çªå·ã®ãªã¹ãè¨­å®ããï¼
+
+ã»INTPRI_CFGINT_VALIDã«ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
+åº¦ãå«ããï¼
+
+ã»CFG_INTãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾å¿ã§ããããã«ããï¼æ¨æºã®å²è¾¼ã¿ç®¡
+ãçæ©è½ã®åæåå¦çãç¨ããå ´åã«ã¯ï¼x_config_intãã«ã¼ãã«ç®¡çå¤ã®å²
+ãè¾¼ã¿ã«å¯¾å¿ãããï¼
+
+chg_ipmã«ããï¼ï¼NMIä»¥å¤ã®ï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ããã¹ã¯ã§ããããã«
+ããå ´åã«ã¯ï¼æ¬¡ã®è¨­å®ãå¿
+è¦ã«ãªãï¼
+
+ã»VALID_INTPRI_CHGIPMãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
+åº¦ãæå¹ãªå¤ã¨
+ãå¤å®ããããã«ããï¼
+
+ã»t_set_ipmãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨ãªãåªå
+åº¦ãæ±ããããã«ããï¼
+
+6.6.8 å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
+
+(6-6-8-1) bool_t VALID_INTNO_CREISR(INTNO intno)
+
+intnoãï¼acre_isrã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«trueï¼ãã
+ã§ãªãå ´åã«falseãè¿ããã¯ã­ï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ãä½¿ç¨ããªãå ´
+åã«ã¯ï¼å®ç¾©ããå¿
+è¦ããªãï¼
+
+6.7 CPUä¾å¤ãã³ãã©ã¨CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
+ã®åç
+§
+
+6.7.1 CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦ç
+
+CPUä¾å¤ã®åºå
+¥å£å¦çã®æ¹æ³ã¯ãã­ã»ããµã«ãã£ã¦å¤§ããç°ãªããï¼ããããã®
+å¦çå
+å®¹ã¯æ¬¡ã®éãï¼
+
+----------------------------------------
+void
+<CPUä¾å¤ã®åºå
+¥å£å¦ç>(void)
+{
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ãã
+	if (ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤) {
+		if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUä¾å¤çºç) {
+			ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
+									éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã â¦ (*j)
+		}
+		ã·ã¹ãã ç¶æ
+ï¼ã³ã³ãã­ã¹ãã¯é¤ãï¼ãï¼CPUä¾å¤çºçæã®ç¶æ
+ã«ãã
+		CPUä¾å¤ãã³ãã©ãï¼CPUä¾å¤ã®æ
+å ±ãè¨æ¶ãã¦ããé åã®å
+é ­çªå°ã
+									ãã©ã¡ã¼ã¿ï¼p_excinfï¼ã¨ãã¦å¼ã³åºã
+		if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUä¾å¤çºç) {
+			ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼
+									ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã â¦ (*j)
+		}
+		CPUä¾å¤å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
+ã«
+													æ»ãããã«æºåãã
+	}
+	else {
+		if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUä¾å¤çºç) {
+			ï¼å°ãªãã¨ãï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã«ãã
+#ifdef TOPPERS_SUPPORT_OVRHDR
+			ovrtimer_stop();			/* ãªã¼ãã©ã³ã¿ã¤ãã®åæ­¢ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+			ã¹ã¿ãã¯ãéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼
+									éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã
+		}
+		å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãï¼CPUä¾å¤çºçæã®å¤ã«è¨­å®ãï¼
+				CPUã­ãã¯è§£é¤ç¶æ
+ã«ããï¼CPUä¾å¤çºçæã®å²è¾¼ã¿åªå
+åº¦ãã¹ã¯
+				ãããåªå
+åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããããã«ããï¼
+
+#ifdef LOG_EXC_ENTER
+		log_exc_enter(CPUä¾å¤ãã³ãã©çªå·);
+#endif /* LOG_EXC_ENTER */
+		CPUä¾å¤ãã³ãã©ãï¼CPUä¾å¤ã®æ
+å ±ãè¨æ¶ãã¦ããé åã®å
+é ­çªå°ã
+									ãã©ã¡ã¼ã¿ï¼p_excinfï¼ã¨ãã¦å¼ã³åºã
+#ifdef LOG_EXC_LEAVE
+		log_exc_leave(CPUä¾å¤ãã³ãã©çªå·);
+#endif /* LOG_EXC_LEAVE */
+
+	  ret_exc:
+		if (ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§CPUä¾å¤çºç) {
+			ï¼å°ãªãã¨ãï¼ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãç¦æ­¢ããç¶æ
+ã«ãã â¦ (*d)
+			ã¹ã¿ãã¯ãã¿ã¹ã¯ç¨ã®ã¹ã¿ãã¯ã«æ»ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã
+																	â¦ (*g)
+			if (reqflg) {
+				reqflg = false;
+				CPUã­ãã¯ç¶æ
+ã«ãã â¦ (*e)
+				if (dspflg && p_runtsk != p_schedtsk) {
+					ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ãã
+					ã¹ã¿ãã¯ãã¤ã³ã¿ãèªã¿ã¹ã¯ï¼p_runtskï¼ã®TCBã«ä¿å­ãã
+					ret_exc_rãï¼å®è¡åéçªå°ã¨ãã¦èªã¿ã¹ã¯ã®TCBã«ä¿å­ãã
+																	â¦ (*a)
+					dispatcherã«åå²ãã
+
+				  ret_exc_r:
+					ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãé¤ããã¹ã¦ã®ã¬ã¸ã¹ã¿ã
+												ã¹ã¿ãã¯ããå¾©å¸°ãã
+				}
+#ifdef TOPPERS_SUPPORT_OVRHDR
+				ovrtimer_start();		/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+				calltex(); â¦ (*b)
+			}
+#ifdef TOPPERS_SUPPORT_OVRHDR
+			else {
+				ovrtimer_start();		/* ãªã¼ãã©ã³ã¿ã¤ãã®åä½éå§ */
+			}
+#endif /* TOPPERS_SUPPORT_OVRHDR */
+		}
+		CPUä¾å¤å¦çããã®ãªã¿ã¼ã³å¾ã«ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã«æ»ãããã«æºåãã
+	}
+	ã¹ã¯ã©ããã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ããå¾©å¸°ãã
+	CPUä¾å¤å¦çããã®ãªã¿ã¼ã³
+}
+----------------------------------------
+
+CPUä¾å¤ãã³ãã©ã¯ï¼éã³ã³ãã­ã¹ãã«åãæãããã¨ãé¤ãã¦ã¯ï¼CPUä¾å¤çº
+çæã¨åãã·ã¹ãã ç¶æ
+ã§å¼ã³åºããªããã°ãªããªãï¼ä¾ãã°ï¼CPUä¾å¤ãCPU
+ã­ãã¯ç¶æ
+ã§çºçããå ´åã«ã¯CPUã­ãã¯ç¶æ
+ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§çºçãã
+å ´åã«ã¯CPUã­ãã¯è§£é¤ç¶æ
+ã§ï¼CPUä¾å¤ãã³ãã©ãå¼ã³åºããªããã°ãªããªãï¼
+CPUã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨ãªãããï¼ã«ã¼
+ãã«ç®¡çã®CPUä¾å¤ãã³ãã©ã«ã¤ãã¦ã¯ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºããã¨ã«
+ãªãï¼
+
+ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãæ­£ç¢ºã«å¤å®ããã®ãé£ãã
+å ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§ãªãç¶æ
+ã§
+çºçããCPUä¾å¤ãï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨æ±ã£ã¦ãæ¯éããªãï¼ããã¯ï¼
+å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§ãªãå ´åã«ã¯ï¼xsns_dpnï¼xsns_xpnã¨ãtrueã
+è¿ãããï¼ã¢ããªã±ã¼ã·ã§ã³ããã¯ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨åºå¥ã§ããªãã
+ãã§ããï¼
+
+å
+·ä½çã«ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ï¼ã¾ãã¯CPUã­ãã¯ï¼ãå°ãããªã¼ããããã§å®ç¾
+ãããã¨ããã¨ï¼CPUä¾å¤ãã³ãã©ã®ä¸­ã§ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ï¼ã¾ãã¯CPUã­ã
+ã¯ç¶æ
+ï¼ã¨å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãé«ãã¬ãã«ã«è¨­å®ããç¶æ
+ãåºå¥ã§ããªãå ´
+åãããï¼ã¾ãï¼ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸­ãã«ã¼ãã«å®è¡ä¸­ã§ãããã¨
+ãæ­£ç¢ºã«å¤æ­ãããã¨ãé£ããå ´åãããï¼
+
+ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ãå¼ã¶æã«ï¼(*j)ã«ããã¦ï¼ã¹ã¿ãã¯ãéã¿
+ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã«åãæãï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæã
+ã¦ãããï¼ãã®åæãã¯ã¿ã¼ã²ããå®ç¾©ã§çãã¦ãè¯ãï¼ããã¯ï¼ã«ã¼ãã«ç®¡
+çå¤ã®CPUä¾å¤ã¯ï¼ã«ã¼ãã«å
+ã®ã¯ãªãã£ã«ã«ã»ã¯ã·ã§ã³ä¸­ã§çºçããå¯è½æ§ã
+ããããï¼å®å
+¨ã«åãæããããã¨ã¯éããªãããã§ããï¼ã¾ãï¼ã«ã¼ãã«ç®¡
+çå¤ã®å²è¾¼ã¿ãã³ãã©ãå¼ã¶æã®ã³ã³ãã­ã¹ããã¹ã¿ãã¯ã¯ã¿ã¼ã²ããä¾å­ãª
+ã®ã§ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ãããã¨åæ§ã«æ±ã£ã¦è¯ãã¨èããã
+ãããã§ããï¼
+
+ä¸ã®ã³ã¼ãã§ã¯ï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã«å¯¾ãã¦ï¼ãã¬ã¼ã¹ã­ã°åå¾å¦ç
+ï¼log_exc_enterããã³log_exc_leaveï¼ãå¼ã³åºãã¦ããªããï¼å
+¨å²è¾¼ã¿ã­ã
+ã¯ç¶æ
+ãNMIã®å¦çä¸­ã«CPUä¾å¤ãçºçããå ´åãé¤å¤ããã°ï¼å¼ã³åºãã¦ãã
+ã¾ããªãï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ãNMIã®å¦çä¸­ã«çºçããCPUä¾å¤ã®å ´åã«ã¯ï¼
+ãã¬ã¼ã¹ã­ã°åå¾å¦çãå¼ã³åºãã¦ã¯ãªããªãï¼
+
+CPUä¾å¤ãã³ãã©ãå®è¡ããéã«çµç±ããé¨åã§ã¯ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ã
+æ¥µåæ¸ããã¨ã¨ãã«ï¼CPUä¾å¤ãèµ·ããå¯è½æ§ãããå ´åï¼ä¾ãã°ï¼ã¹ã¯ã©ãã
+ã¬ã¸ã¹ã¿ãã¹ã¿ãã¯ã«ä¿å­ããæã«ï¼ãã¹ã¨ã©ã¼ãªã©ã®CPUä¾å¤ãçºçããå¯è½
+æ§ãèããããï¼ã«ã¯ï¼ãã®å¯è½æ§ãã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢
+ã«ã«è¨è¼ããªããã°ãªããªãï¼
+
+ret_excä»¥éã®å¦çã¯ï¼å²è¾¼ã¿ã®åºå
+¥å£å¦çã®ret_intä»¥éã®å¦çã¨ã»ã¼åãã§
+ããããï¼ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼å
+±éã®ã«ã¼ãã³ãç¨ãããã¨ãã§ããå¯è½
+æ§ãããï¼
+
+CPUä¾å¤ã®åºå
+¥å£å¦çãã¢ã»ã³ããªè¨èªã§è¨è¿°ããå ´åã«ã¯ï¼ãã¬ã¼ã¹ã­ã°åå¾
+å¦çã¯ï¼ã6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿ãã®ç¯ã§è¨è¿°ããæ¹æ³ã§ã³ã¼ãã£ã³
+ã°ãããã¨ï¼
+
+6.7.2 CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çæ
+
+CPUä¾å¤ãã¯ãã«ããã¼ãã¦ã§ã¢ã§å®ç¾ãã¦ããå ´åãªã©ï¼CPUä¾å¤ãã³ãã©æ¯
+ã«åºå
+¥å£å¦çãç¨æããæ¹ãå¹çãè¯ãã¿ã¼ã²ããã®ããã«ï¼CPUä¾å¤ãã³ãã©
+æ¯ã«åºå
+¥å£å¦çãçæããæ©æ§ãç¨æãã¦ããï¼
+
+ä»¥ä¸ã®ãã¯ã­ã¯ï¼æ¨æºã®CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼
+ã²ããéä¾å­é¨ã§ä½¿ãããï¼CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­é¨
+ã§ç¨æãï¼ãã®ä¸­ã§ãããã®ãã¯ã­ãä½¿ããªãå ´åã«ã¯ï¼ãããã®ãã¯ã­ãç¨
+æããå¿
+è¦ã¯ãªãï¼
+
+(6-7-2-1) EXC_ENTRY(excno, exchdr)
+
+CPUä¾å¤ãã³ãã©çªå·ãexcnoï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åãexchdrã§ããCPUä¾
+å¤ãã³ãã©ã®åºå
+¥å£å¦çã®ã©ãã«ãä½ããã¯ã­ï¼EXCHDR_ENTRYãç¨ãã¦CPUä¾å¤
+ãã³ãã©æ¯ã«åºå
+¥å£å¦çãçæããå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ããï¼
+
+#define EXC_ENTRY(excno, exchdr)	_kernel_##exchdr##_##excno
+
+CPUä¾å¤ãã³ãã©æ¯ã«åºå
+¥å£å¦çãä½ãå¿
+è¦ããªãå ´åã«ã¯ï¼æ¬¡ã®ããã«å®ç¾©ã
+ã¦ï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åããã®ã¾ã¾è¿ãï¼
+
+#define EXC_ENTRY(excno, exchdr)	exchdr
+
+(6-7-2-2) EXCHDR_ENTRY(excno, excno_num, exchdr)
+
+CPUä¾å¤ãã³ãã©çªå·ãexcnoï¼CPUä¾å¤ãã³ãã©ã®é¢æ°åãexchdrã§ããCPUä¾
+å¤ãã³ãã©ã®åºå
+¥å£å¦çãçæãããã¯ã­ï¼excno_numã«ã¯ï¼ã¢ã»ã³ããªè¨èªè¨
+è¿°ç¨ã«ï¼CPUä¾å¤ãã³ãã©çªå·ãæ°å¤ã§æ¸¡ãããï¼CPUä¾å¤ãã³ãã©æ¯ã«åºå
+¥å£
+å¦çãä½ãå¿
+è¦ããªãå ´åã«ã¯ï¼ç©ºã«å®ç¾©ããï¼
+
+6.7.3 CPUä¾å¤ãã³ãã©ã®è¨­å®
+
+(6-7-3-1) bool_t VALID_EXCNO_DEFEXC(EXCNO excno)ï¼ãªãã·ã§ã³ï¼
+
+excnoãï¼DEF_EXCã«å¯¾ããCPUä¾å¤ãã³ãã©çªå·ã¨ãã¦æå¹ãªå¤ã§ããå ´åã«
+trueï¼ããã§ãªãå ´åã«falseãè¿ããã¯ã­ï¼
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ãã®ãã¯ã­ã¯ä½¿ããã¦ããªãããï¼ã¿ã¼
+ã²ããä¾å­é¨ã§ä½¿ããªããªãï¼ç¨æããå¿
+è¦ããªãï¼
+
+(6-7-3-2) void x_define_exc(EXCNO excno, FP exc_entry)
+
+excnoã§æå®ãããCPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çªå°ãexc_entryã«è¨­å®ããï¼
+
+ãã®é¢æ°ã¯ï¼æ¨æºã®CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãç¨ããå ´åã®ã¿ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ããå¼ã³åºãããï¼CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­
+é¨ã§ç¨æãï¼ãã®ä¸­ã§ãã®é¢æ°ãå¼ã³åºããªãå ´åã«ã¯ï¼ãã®é¢æ°ãç¨æãã
+å¿
+è¦ã¯ãªãï¼
+
+ãã®é¢æ°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã®ã«ã¼ãã«åæåå¦çããå¼ã³åºãããããï¼
+ã«ã¼ãã«ã®åæåå¦çï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããã¦ããï¼ããå¼
+ã³åºããããã«å®è£
+ããã°ããï¼
+
+æå®ãããCPUä¾å¤ãã³ãã©çªå·ãDEF_EXCã«å¯¾ãããã®ã¨ãã¦æå¹ãªå¤ã§ãªã
+å ´åã®åä½ã¯ä¿è¨¼ããå¿
+è¦ããªãï¼assertã§ã¨ã©ã¼ã¨ããã®ãæã¾ããï¼ï¼ã
+ãã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­
+é¨ã§å®ç¾©ããEXCNO_DEFEXC_VALIDãç¨ãã¦ã¨ã©ã¼ãæ¤åºããããã§ããï¼
+
+6.7.4 CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çã®å¤æ´
+
+(6-7-4-1) OMIT_INITIALIZE_EXCEPTIONï¼ãªãã·ã§ã³ï¼
+
+CPUä¾å¤ç®¡çæ©è½ã®åæåå¦çãã¿ã¼ã²ããä¾å­é¨ã§ç¨æãï¼ã¿ã¼ã²ããéä¾å­
+é¨ã«å«ã¾ããæ¨æºã®å²è¾¼ã¿ç®¡çæ©è½ã®åæåå¦çãç¨ããªãå ´åã«ã¯ï¼ãã®ã·
+ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+ãã®ã·ã³ãã«ããã¯ã­å®ç¾©ããã¨ï¼EXCINIBã¨initialize_exceptionã®å®ç¾©ãï¼
+ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ããåãé¤ãããï¼ã¾ãï¼TNUM_EXCNOï¼
+tnum_excnoï¼excinib_tableã®å®ç¾©ã¨ï¼CPUä¾å¤ãã³ãã©æ¯ã®åºå
+¥å£å¦çãçæ
+ããããã®è¨è¿°ï¼EXCHDR_ENTRYãã¯ã­ã®ãªã¹ãï¼ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ã
+ã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã«ãã£ã¦kernel_cfg.cã«çæ
+ãããªããªãï¼
+
+(6-7-4-2) void initialize_exception(void)ï¼ãªãã·ã§ã³ï¼
+
+OMIT_INITIALIZE_EXCEPTIONããã¯ã­å®ç¾©ããå ´åã«ã¯ï¼ãã®é¢æ°ãã¿ã¼ã²ãã
+ä¾å­é¨ã§ç¨æããï¼OMIT_INITIALIZE_EXCEPTIONããã¯ã­å®ç¾©ãããã¨ã«ããå
+ãé¤ããããã®ä»ã®ãã¼ã¿åï¼å¤æ°ï¼ãã¯ã­ã¯ï¼ãã®é¢æ°ã§ä½¿ç¨ããå ´åã«ã®
+ã¿ç¨æããã°ããï¼
+
+6.7.5 ããã©ã«ãã®CPUä¾å¤ãã³ãã©
+
+(6-7-5-1) void default_exc_handler(void *p_excinf)ï¼ãªãã·ã§ã³ï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ããCPUä¾å¤ãã³ãã©ã®ãã¼ãã«ãçæããå ´åãªã©ã«ã¯ï¼
+CPUä¾å¤ãã³ãã©ãç»é²ããªãã£ãCPUä¾å¤ãã³ãã©çªå·ã«å¯¾ãã¦ï¼ããã©ã«ã
+ã®CPUä¾å¤ãã³ãã©ã¨ãã¦ï¼default_exc_handlerãç»é²ããï¼
+
+default_exc_handlerã¯ï¼æ¨æºã®ãã®ãã¿ã¼ã²ããä¾å­é¨ã§ç¨æãããï¼ã¦ã¼ã¶
+ãç¨æãããã®ã§ç½®ãæããããããã«ï¼OMIT_DEFAULT_EXC_HANDLERããã¯ã­
+å®ç¾©ããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããªãããã«ããï¼ãªãï¼ã¦ã¼ã¶
+ãç¨æããå ´åã®åç§°ã¯ï¼_kernel_default_exc_handlerã¨ãªãï¼
+
+6.7.6 CPUä¾å¤çºçæã®ã·ã¹ãã ç¶æ
+ã®åç
+§
+
+(6-7-6-1) bool_t exc_sense_intmask(void *p_excinf)
+
+CPUä¾å¤ã®çºçããæã®ã·ã¹ãã ç¶æ
+ãï¼ã«ã¼ãã«å®è¡ä¸­ã§ãªãï¼ã¿ã¹ã¯ã³ã³ã
+ã­ã¹ãã§ããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§ãªãï¼CPUã­ãã¯ç¶æ
+ã§ãªãï¼å²è¾¼ã¿åªå
+
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããæã«trueï¼ããã§ãªãæã«falseãè¿ãé¢æ°ï¼
+
+p_excinfã«ã¯ï¼CPUä¾å¤ã®æ
+å ±ãè¨æ¶ãã¦ããé åã®å
+é ­çªå°ãæ¸¡ãããï¼
+
+CPUä¾å¤ãã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿å¦çä¸­ã§çºçããå ´åã«ãfalseãè¿ããªã
+ãã°ãªããªããã¨ã«æ³¨æãããã¨ï¼
+
+6.8 ã«ã¼ãã«ã®èµ·åã»çµäºã¨ã¹ã¿ãã¯é åãªã©
+
+(6-8-1) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
+
+ã«ã¼ãã«ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã¯ï¼ã·ã¹ãã ã®ãªã»ããå¾ã«æåã«å®è¡
+ããããã­ã°ã©ã ã§ããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã¯ï¼æ¨æºçã«ã¯ï¼ãã­ã»ã
+ãµä¾å­é¨ã¾ãã¯ãããä¾å­é¨ã§ç¨æãä»¥ä¸ã®å¦çãè¡ããï¼ããã«ãã ããå¿
+
+è¦ã¯ãªãï¼å
+·ä½çã«ã¯ï¼éçºç°å¢ã«ç¨æããã¦ããã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«
+ãç¨ããæ¹æ³ï¼ãã®å ´åï¼ã¿ã¼ã²ããä¾å­é¨ã§mainé¢æ°ãç¨æããå¿
+è¦ãããï¼
+ãï¼ã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åãèããããï¼
+
+(a) ãã­ã»ããµç¶æ
+ã®åæå
+
+ãã­ã»ããµã¢ã¼ãï¼ã¹ã¿ãã¯ãã¤ã³ã¿ï¼ãã¬ã¼ã ãã¤ã³ã¿ç­ï¼ãã­ã»ããµã®ç¶
+æ
+ãåæåããï¼ã¾ãï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
+ï¼å
+¨å²è¾¼ã¿
+ã­ãã¯ç¶æ
+ã¨åç­ã®ç¶æ
+ï¼ã¨ããï¼DRAMã³ã³ãã­ã¼ã©ã®åæåãªã©ï¼ã¡ã¢ãªã
+ã¢ã¯ã»ã¹ããããã«å¿
+è¦ãªåæåå¦çãããã§è¡ã£ã¦ãããï¼æ¬¡ã®
+hardware_init_hookã§è¡ã£ã¦ãããï¼ï¼
+
+(b) hardware_init_hookãå¼ã³åºã
+
+ã·ã¹ãã ã®ãªã»ããå¾ããã«è¡ãå¿
+è¦ã®ããã¿ã¼ã²ããã·ã¹ãã ä¾å­ã®åæå
+å¦çãè¡ãããã«ï¼hardware_init_hookãå¼ã³åºãï¼hardware_init_hookãç¨
+æããã¦ããªãå ´åã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼ãªã³ã«ã¹ã¯ãªããä¸­ã®
+weak definitionã«ããï¼hardware_init_hookãç¨æããã¦ããªãå ´åã®å¤ã0
+ã¨ãããã¨ã§ï¼ãããå®ç¾ã§ããï¼weak definitionã®æ©è½ãæããªãéçºç°å¢
+ã§ã¯ï¼hardware_init_hookãå¿
+ãå¼ã³åºããã¨ã«ããï¼
+
+hardware_init_hookã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããã®ãæ¨æºã§ãããï¼ã·ã¹
+ãã ã®ãªã»ããå¾ããã«è¡ãå¿
+è¦ã®ããåæåå¦çãè¿½å ããããã«ï¼ã¢ããª
+ã±ã¼ã·ã§ã³ã§ç¨æãããã®ãç¨ããå ´åãããï¼
+
+ã¡ã¢ãªã¢ã¯ã»ã¹ã«å¿
+è¦ãªåæåå¦çãhardware_init_hookã§è¡ãå ´åã«ã¯ï¼ã
+ããå¼ã³åºãæç¹ã§ã¡ã¢ãªã«ã¢ã¯ã»ã¹ãããã¨ãã§ããªãããï¼é¢æ°ï¼ãµãã«ã¼
+ãã³ï¼ãå¼ã³åºãããã«ã¹ã¿ãã¯ãä½¿ç¨ãããã­ã»ããµã§ã¯ï¼æ»ãçªå°ãæ±ç¨
+ã¬ã¸ã¹ã¿ã«å
+¥ãã¦å¼ã³åºãã¨ãã£ãå·¥å¤«ãå¿
+è¦ã§ããï¼ãã®å ´åï¼
+hardware_init_hookãCè¨èªã§è¨è¿°ãããã¨ã¯ã§ããªããªããï¼ãããããªãï¼
+
+(c) bssã»ã¯ã·ã§ã³ã¨dataã»ã¯ã·ã§ã³ã®åæå
+
+bssã»ã¯ã·ã§ã³ãã¯ãªã¢ãï¼dataã»ã¯ã·ã§ã³ã«åæå¤ãè¨­å®ããï¼
+
+ãã ãï¼ã«ã¼ãã«æ¬ä½ã¯ï¼kerflgãfalseï¼ï¼0ï¼ã«åæåããããã¨ä»¥å¤ã«ï¼
+ãããã®ã»ã¯ã·ã§ã³ãåæåããããã¨ã«ä¾å­ãã¦ããªãããï¼ã¹ã¿ã¼ãã¢ã
+ãã¢ã¸ã¥ã¼ã«ãã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åã§ï¼ã·ã¹ãã ãµã¼ãã¹ãã¢ã
+ãªã±ã¼ã·ã§ã³ããããã®ã»ã¯ã·ã§ã³ãåæåããããã¨ã«ä¾å­ãã¦ããªãå ´å
+ã«ã¯ï¼ã·ã¹ãã ã®èµ·åæéãç­ç¸®ããããã«ï¼kerflgãfalseã«åæåããã ã
+ã§ååã§ããï¼
+
+(d) software_init_hookãå¼ã³åºã
+
+éçºç°å¢ï¼ç¹ã«ã©ã¤ãã©ãªï¼ã«ä¾å­ãã¦å¿
+è¦ãªåæåå¦çãè¡ãããã«ï¼
+software_init_hookãå¼ã³åºãï¼software_init_hookãç¨æããã¦ããªãå ´å
+ã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼ãªã³ã«ã¹ã¯ãªããä¸­ã®weak definitionã«
+ããï¼software_init_hookãç¨æããã¦ããªãå ´åã®å¤ã0ã¨ãããã¨ã§ï¼ãã
+ãå®ç¾ã§ããï¼weak definitionã®æ©è½ãæããªãéçºç°å¢ã§ã¯ï¼
+software_init_hookãå¿
+ãå¼ã³åºããã¨ã«ããï¼
+
+software_init_hookã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããã®ãæ¨æºã§ããï¼
+
+(e) sta_kerã¸åå²
+
+sta_kerãå¼ã³åºãï¼sta_kerã¯ï¼NMIãé¤ããã¹ã¦ã®å²è¾¼ã¿ããã¹ã¯ããç¶æ
+
+ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã¨åç­ã®ç¶æ
+ï¼ã§å¼ã³åºããªããã°ãªããªãï¼sta_kerã
+ãã¯ãªã¿ã¼ã³ãããã¨ããªãããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«æ»ã£ã¦ããã
+ã¨ã¯èããå¿
+è¦ããªãï¼
+
+(6-8-2) void target_initialize(void)
+
+ã¿ã¼ã²ããä¾å­é¨ã®åæåãè¡ãé¢æ°ï¼sta_kerã®æåã§å¼ã³åºãããï¼ãã­ã»ã
+ãµã»ãããã»éçºç°å¢ä¾å­ã®åæåå¦çãï¼ãããã®ä¾å­é¨ã«åãåãããã¨
+ãå¯è½ã§ããï¼
+
+ãã®é¢æ°ã¯ï¼ããã¾ã§ãã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®åæåå¦çãè¡ããã
+ã®ãã®ã§ããï¼ã¢ããªã±ã¼ã·ã§ã³ã«å¿
+è¦ãªåæåå¦çã¯ï¼åæåã«ã¼ãã³ã§è¡
+ãã®ãåºæ¬ã§ãããï¼ã·ã¹ãã ã®ãªã»ããå¾ããã«è¡ãå¿
+è¦ãããå ´åã«ã¯ï¼
+hardware_init_hookãç¨ããï¼
+
+(6-8-3) void call_exit_kernel(void)
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã¦ï¼exit_kernelã¸åå²ããé¢æ°ï¼ext_kerã
+ãå¼ã³åºãããï¼exit_kernelããã¯ãªã¿ã¼ã³ãããã¨ããªãããï¼ãã®é¢æ°ã«
+æ»ã£ã¦ãããã¨ã¯èããå¿
+è¦ããªãï¼
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæããã®ã¯ï¼çµäºå¦çã«ã¼ãã³ãï¼éã¿ã¹ã¯ã³ã³
+ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ã§å®è¡ããããã§ããï¼çµäºå¦çã«ã¼ãã³ãã¿ã¹ã¯ç¨ã®
+ã¹ã¿ãã¯ã§å®è¡ããã¨ï¼åã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãºãæ±ºå®ããéã«ï¼çµ
+äºå¦çã«ã¼ãã³ãä½¿ç¨ããã¹ã¿ãã¯é åãèæ
+®ããªããã°ãªããªãï¼ããã«ã¯ï¼
+çµäºå¦çã«ã¼ãã³ãä½¿ç¨ããã¹ã¿ãã¯é åãå¤§ããå ´åã«åã¿ã¹ã¯ã®ã¹ã¿ãã¯
+é åãç¡é§ã«å¤§ããããªããã°ãªããªããã¨ã«å ãã¦ï¼æå³ããªãã¹ã¿ãã¯ãªã¼
+ãã¼ãã­ã¼ãçºçããå¯è½æ§ãé«ããã¨ããåé¡ãããï¼
+
+ãã®é¢æ°ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã°ããããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ããå¼
+ã³åºããã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
+ããªããã°ãªããªãï¼
+
+(6-8-4) void target_exit(void)
+
+ã¿ã¼ã²ããä¾å­é¨ã®çµäºå¦çãè¡ãé¢æ°ï¼ãã®é¢æ°ã¯ï¼ã«ã¼ãã«çµäºå¦çã®æ
+å¾ã«å¼ã³åºããï¼ãªã¿ã¼ã³ãã¦ã¯ãªããªãï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾
+å­ã®çµäºå¦çãï¼ãããã®ä¾å­é¨ã«åãåãããã¨ãå¯è½ã§ããï¼
+
+ãã®é¢æ°ã§ã¯ï¼æåã«ï¼atexitã«ãã£ã¦ç»é²ãããé¢æ°ã¨ãã¹ãã©ã¯ã¿ãå¼ã³
+åºããã¨ãæå³ãã¦ããï¼æ¨æºçã«ã¯ï¼software_term_hookãå¼ã³åºãï¼
+software_term_hookãç¨æããã¦ããªãå ´åã¯ï¼ä½ãããªãï¼GNUéçºç°å¢ã§ã¯ï¼
+ãªã³ã«ã¹ã¯ãªããä¸­ã®weak definitionã«ããï¼software_term_hookãç¨æãã
+ã¦ããªãå ´åã®å¤ã0ã¨ãããã¨ã§ï¼ãããå®ç¾ã§ããï¼weak definitionã®æ©
+è½ãæããªãéçºç°å¢ã§ã¯ï¼software_term_hookãå¿
+ãå¼ã³åºããã¨ã«ããï¼
+
+ãã®é¢æ°ã¯ï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã°ããããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ããå¼
+ã³åºããã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
+ããªããã°ãªããªãï¼
+
+6.9 ã«ã¼ãã«å
+é¨ã®ãã¥ã¼ãã³ã°
+
+6.9.1 ãããããããµã¼ã
+
+(6-9-1-1) OMIT_BITMAP_SEARCHï¼ãªãã·ã§ã³ï¼
+(6-9-1-2) uint_t bitmap_search(uint16_t bitmap)ï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããéä¾å­é¨ã§ï¼uint16_tåã®æ´æ°å¤ï¼bitmapï¼ä¸­ã®1ã®ãããã®å
+ï¼æ
+ãä¸ä½ï¼å³ï¼ã®ãã®ããµã¼ããï¼ãã®ãããçªå·ãè¿ãé¢æ°bitmap_searchãç¨
+æãã¦ããï¼ããã§ï¼ãããçªå·ã¯æä¸ä½ãããã0ã¨ãï¼bitmapã«0ãæå®ã
+ã¦ã¯ãªããªããã®ã¨ãã¦ããï¼
+
+ããããµã¼ãå½ä»¤ãæã¤ãã­ã»ããµã§ã¯ï¼bitmap_searchãï¼ããããµã¼ãå½ä»¤
+ãä½¿ãããã«æ¸ãç´ããæ¹ãå¹çãè¯ãå ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼ã¿ã¼
+ã²ããä¾å­é¨ã§ããããµã¼ãå½ä»¤ãä½¿ã£ãbitmap_searchãå®ç¾©ãï¼
+OMIT_BITMAP_SEARCHããã¯ã­å®ç¾©ããï¼
+
+æ¨æºã©ã¤ãã©ãªã«ããããµã¼ãå½ä»¤ãç¨ããffsãããå ´åï¼bitmap_searchã
+(ffs(bitmap) - 1)ã«å®ç¾©ããã¨ããï¼
+
+(6-9-1-3) uint16_t PRIMAP_BIT(PRI pri)ï¼ãªãã·ã§ã³ï¼
+
+ããããµã¼ãå½ä»¤ã®ãµã¼ãæ¹åãéãªã©ã®çç±ã§ï¼åªå
+åº¦ã¨ãããã¨ã®å¯¾å¿ã
+å¤æ´ãããå ´åã«ã¯ï¼PRIMAP_BITããã¯ã­å®ç¾©ããï¼
+
+6.9.2 ããããã£ã¼ã«ã
+
+(6-9-2-1) BIT_FIELD_UINTï¼ãªãã·ã§ã³ï¼
+
+8ãããä»¥ä¸ã®å¹
+ã®ããããã£ã¼ã«ãã§ï¼ç¬¦å·ç¡ãæ´æ°å¤ãä¿æãããå ´åã«ç¨
+ããã¹ããã¼ã¿åï¼ããã©ã«ãã®å®ç¾©ã¯unsigned intã¨ãªã£ã¦ãããï¼ã¿ã¼ã²ã
+ãããã¼ã«ä¾å­ã§ï¼unsigned charã¾ãã¯unsigned shortã«å®ç¾©ããæ¹ãå¹çã
+è¯ãå ´åãããï¼
+
+(6-9-2-2) BIT_FIELD_BOOLï¼ãªãã·ã§ã³ï¼
+
+1ãããå¹
+ã®ããããã£ã¼ã«ãã§ï¼ãã¼ã«å¤ãä¿æãããå ´åã«ç¨ããã¹ããã¼
+ã¿åï¼ããã©ã«ãã§ã¯BIT_FIELD_UINTã¨åä¸ã«å®ç¾©ãã¦ãããï¼ãã¼ã«å¤ãä¿
+æãããã¨ãæç¤ºããããã«å¥ã®ååã¨ãã¦ããï¼
+
+(6-9-2-3) TBIT_TCB_PRIORITYï¼ãªãã·ã§ã³ï¼
+
+ç¾å¨åªå
+åº¦ï¼ããã³ï¼ãã¥ã¼ããã¯ã¹æ¡å¼µã«ããããã¼ã¹åªå
+åº¦ï¼ãä¿æãã
+ããã®TCBä¸­ã®ãã£ã¼ã«ãã®ãããæ°ï¼ããã©ã«ãã§ã¯8ãããã«å®ç¾©ãã¦ãã
+ãï¼ããä»¥å¤ã«å®ç¾©ãããå ´åã«ï¼ãããæ°ããã®ååã«ãã¯ã­å®ç¾©ããï¼
+
+6.10 ã«ã¼ãã«å®è£
+ã«é¢ãããã®ä»ã®å®ç¾©
+
+6.10.1 ã¿ã¼ã²ããä¾å­ã®ãªãã¸ã§ã¯ãå±æ§
+
+(6-10-1-1) TARGET_TSKATRï¼ãªãã·ã§ã³ï¼	ã¿ã¼ã²ããå®ç¾©ã®ã¿ã¹ã¯å±æ§
+(6-10-1-2) TARGET_ISRATRï¼ãªãã·ã§ã³ï¼	ã¿ã¼ã²ããå®ç¾©ã®ISRå±æ§
+(6-10-1-3) TARGET_INHATRï¼ãªãã·ã§ã³ï¼	ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿ãã³ãã©å±æ§
+(6-10-1-4) TARGET_INTATRï¼ãªãã·ã§ã³ï¼	ã¿ã¼ã²ããå®ç¾©ã®å²è¾¼ã¿å±æ§
+(6-10-1-5) TARGET_EXCATRï¼ãªãã·ã§ã³ï¼	ã¿ã¼ã²ããå®ç¾©ã®CPUä¾å¤ãã³ãã©å±æ§
+
+åãªãã¸ã§ã¯ãã®å±æ§ãï¼ã¿ã¼ã²ããå®ç¾©ã«æ¡å¼µããå ´åã«ï¼è©²å½ãããªãã¸ã§
+ã¯ãå±æ§ãç¤ºãå¤æ°ã«ï¼æ¡å¼µã«ä½¿ç¨ãããããã®è«çåãå®ç¾©ããï¼ããã«ã
+ãï¼æ¡å¼µã«ä½¿ç¨ããããããè¨­å®ããã¦ããå ´åã«ï¼ã¨ã©ã¼ã«ãªãã®ãé²ãï¼
+
+ãªãï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ã§ã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼
+å±æ§ãã¿ã¼ã²ããå®ç¾©ã§æ¡å¼µã§ããä»æ§ã¨ã¯ãªã£ã¦ããªãï¼
+
+6.10.2 ã¨ã©ã¼ãã§ãã¯æ¹æ³ã®æå®
+
+(6-10-2-1) TARGET_MIN_STKSZï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããå®ç¾©ã§ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãè¨­å®ããå ´åã«ã¯ï¼ã
+ã®å¤æ°ãã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ã«å®ç¾©ããï¼
+
+(6-10-2-2) TARGET_MIN_ISTKSZï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããå®ç¾©ã§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãè¨­å®ã
+ãå ´åã«ã¯ï¼ãã®å¤æ°ãã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ã«å®ç¾©ããï¼
+
+(6-10-2-3) CHECK_STKSZ_ALIGNï¼ãªãã·ã§ã³ï¼
+
+ã¹ã¿ãã¯é åã®ãµã¤ãºãããå¤ï¼ã¢ã©ã¤ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´
+åã«ï¼ãã®å¤æ°ãã¢ã©ã¤ã³åä½ã«å®ç¾©ããï¼ãã®å¤æ°ãå®ç¾©ãããã¨ã§ï¼
+kernel.tfããã³acre_tskï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ã®ã¿ï¼ã«ããã¦ï¼ã¹ã¿ã
+ã¯é åã®ãµã¤ãºãæ­£ãããªãï¼ãã®å¤æ°ã«å®ç¾©ããå¤ã®åæ°ã§ãªãï¼å ´åã®ã¨
+ã©ã¼ããã§ãã¯ããããã«ãªãï¼ãã§ãã¯ãå¿
+è¦ãªãå ´åã«ã¯ï¼ãã®å¤æ°ãå®
+ç¾©ããªãï¼
+
+(6-10-2-4) CHECK_FUNC_ALIGNï¼ãªãã·ã§ã³ï¼	å¦çåä½ã®ã¢ã©ã¤ã³åä½
+(6-10-2-5) CHECK_FUNC_NONNULLï¼ãªãã·ã§ã³ï¼	å¦çåä½ã®éNULLãã§ãã¯
+(6-10-2-6) CHECK_STACK_ALIGNï¼ãªãã·ã§ã³ï¼	ã¹ã¿ãã¯é åã®ã¢ã©ã¤ã³åä½
+(6-10-2-7) CHECK_STACK_NONNULLï¼ãªãã·ã§ã³ï¼ã¹ã¿ãã¯é åã®éNULLãã§ãã¯
+(6-10-2-8) CHECK_MPF_ALIGNï¼ãªãã·ã§ã³ï¼	åºå®é·ã¡ã¢ãªãã¼ã«é åã®ã¢ã©ã¤ã³åä½
+(6-10-2-9) CHECK_MPF_NONNULLï¼ãªãã·ã§ã³ï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã®éNULLãã§ãã¯
+
+å¦çåä½ï¼ã¹ã¿ãã¯é åï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ãããå¤ï¼ã¢ã©
+ã¤ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´åã«ï¼ããããï¼CHECK_FUNC_ALIGNï¼
+CHECK_STACK_ALIGNï¼CHECK_MPF_ALIGNãã¢ã©ã¤ã³åä½ã«å®ç¾©ããï¼å¦çåä½ï¼
+ã¹ã¿ãã¯é åï¼åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ãNULLã§ãªããã®ãã§ãã¯
+ãè¡ãå ´åã«ã¯ï¼ããããCHECK_FUNC_NONNULLï¼CHECK_STACK_NONNULLï¼
+CHECK_MPF_NONNULLãå®ç¾©ããï¼
+
+(6-10-2-10) CHECK_MB_ALIGNï¼ãªãã·ã§ã³ï¼	ç®¡çé åã®ã¢ã©ã¤ã³åä½
+
+ã«ã¼ãã«å
+ã®ç®¡çé åï¼å
+·ä½çã«ã¯ï¼ãã¼ã¿ã­ã¥ã¼ç®¡çé åï¼åªå
+åº¦ãã¼ã¿
+ã­ã¥ã¼ç®¡çé åï¼åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åï¼ã®å
+é ­çªå°ãããå¤ï¼ã¢ã©ã¤
+ã³åä½ï¼ã®åæ°ã§ãªããã°ãªããªãå ´åã«ï¼ãã®å¤æ°ãã¢ã©ã¤ã³åä½ã«å®ç¾©ã
+ãï¼åççææ©è½æ¡å¼µããã±ã¼ã¸ãä½¿ç¨ããªãå ´åã«ã¯ï¼å®ç¾©ããå¿
+è¦ããªãï¼
+
+6.10.3 éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é å
+
+(6-10-3-1) DEFAULT_ISTKSZ
+
+DEF_ICSã«ããéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åãæå®ãããªãå ´åã®ï¼
+ããã©ã«ãã®ã¹ã¿ãã¯é åã®ãµã¤ãºï¼
+
+(6-10-3-2) DEFAULT_ISTKï¼ãªãã·ã§ã³ï¼
+
+DEF_ICSã«ããéã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åãæå®ãããªãå ´åã®ï¼
+ããã©ã«ãã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ï¼ãã®ãã¯ã­ãå®ç¾©ãããªãå ´åã«ã¯ï¼
+ãµã¤ãºãDEFAULT_ISTKSZã®ã¹ã¿ãã¯é åãï¼é
+åã«ããç¢ºä¿ãããï¼
+
+(6-10-3-3) STK_T *TOPPERS_ISTKPT(STK_T *istk, SIZE istksz)ï¼ãªãã·ã§ã³ï¼
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ãä¿æããå¤æ°ï¼istkptï¼
+ãç¨ããå ´åã«ï¼ãã®ã·ã³ãã«ã«ï¼ã¹ã¿ãã¯é åã®å
+é ­çªå°ï¼istkï¼ã¨ã¹ã¿ã
+ã¯é åã®ãµã¤ãºï¼istkszï¼ããï¼ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ãæ±ãããã¯ã­ã
+å®ç¾©ããï¼
+
+6.10.4 ç©ºã©ãã«ã®å®ç¾©
+
+(6-10-4-1) TOPPERS_EMPTY_LABEL(type, symbol)ï¼ãªãã·ã§ã³ï¼
+
+ãªã³ã¯ã¨ã©ã¼ãé²ãããã«ï¼ãã¼ã¿åtypeã®é
+åã§ããå¤æ°symbolã«å®ç¾©ãä¸
+ããããã®ãã¯ã­ï¼ä¸ããå®ç¾©ãåç
+§ããããã¨ã¯ãªãããï¼ã©ã®ãããªå®ç¾©
+ãä¸ãã¦ãããï¼
+
+ããã©ã«ãã§ã¯ï¼symbolãï¼è¦ç´ åãtypeã§ãµã¤ãºã0ã®é
+åã«å®ç¾©ãã¦ããï¼
+ãµã¤ãºã0ã®é
+åãã¨ã©ã¼ã¨ãªããªãã³ã³ãã¤ã©ï¼GCCã¯ããã«è©²å½ï¼ãç¨ãã
+å ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããå¿
+è¦ã¯ãªãï¼
+
+6.11 ãã¬ã¼ã¹ã­ã°æ©è½ã«é¢ããè¨­å®
+
+ASPã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼ãã«ã¯ï¼ã«ã¼ãã«ã®å®è¡ãã¬ã¼ã¹ã­ã°ãåå¾ãããã
+ã®ãã¯ã­ç­ãåãè¾¼ãã§ããï¼ããã©ã«ãã§ã¯ï¼ãããã®ãã¯ã­ã¯ç©ºã«å®ç¾©ã
+ãã¦ãã¬ã¼ã¹ã­ã°ã®åå¾ã¯è¡ããªããï¼ãããã®ãã¯ã­ãé©åã«å®ç¾©ãããã¨
+ã§ãã¬ã¼ã¹ã­ã°ã®åå¾ãè¡ããã¨ãã§ããï¼
+
+6.11.1 åå¾ã§ãããã¬ã¼ã¹ã­ã°ã®ç¨®é¡ã¨ãã¯ã­
+
+åå¾ã§ãããã¬ã¼ã¹ã­ã°ã®ç¨®é¡ã¨ï¼ãããåå¾ããããã«å®ç¾©ãããã¯ã­ã¯æ¬¡
+ã®éãã§ããï¼
+
+(a) ã«ã¼ãã«ã®åä½éå§ã¨çµäº
+
+æ¬¡ã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼ã«ã¼ãã«ã®åä½éå§æã¨çµäºæã®ãã¬ã¼ã¹ã­ã°
+ãåå¾ãããã¨ãã§ããï¼
+
+	LOG_KER_ENTER		ã«ã¼ãã«ãåä½ãéå§ããç´åï¼åæåã®å®äºå¾ï¼
+	LOG_KER_LEAVE		ã«ã¼ãã«ã®çµäºï¼ext_kerï¼ãå¼ã°ããç´å¾ï¼çµäºå¦
+						çã®å®è¡åï¼
+
+(b) å¦çåä½ã®å®è¡éå§ã¨çµäº
+
+æ¬¡ã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼å²è¾¼ã¿ãã³ãã©ï¼INHï¼ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ã
+ã³ï¼ISRï¼ï¼å¨æãã³ãã©ï¼CYCï¼ï¼ã¢ã©ã¼ã ãã³ãã©ï¼ALMï¼ï¼CPUä¾å¤ãã³ã
+ã©ï¼EXCï¼ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ï¼TEXï¼ã®å®è¡éå§åã¨çµäºå¾ã®ãã¬ã¼ã¹
+ã­ã°ãåå¾ãããã¨ãã§ããï¼
+
+	LOG_<å¦çåä½ç¥å·>_ENTER	å¦çåä½ã®å®è¡éå§ç´å
+	LOG_<å¦çåä½ç¥å·>_LEAVE	å¦çåä½ã®çµäºç´å¾
+
+å²è¾¼ã¿ãã³ãã©ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãç»é²ãããã®ã®ã¿ãå¯¾è±¡ã¨ãï¼å²è¾¼ã¿
+ãµã¼ãã¹ã«ã¼ãã³ãå¼ã³åºãããã«ã«ã¼ãã«å
+ã«çæããããã®ã¯å¯¾è±¡ã¨ããª
+ãï¼ã¿ã¹ã¯ã®å®è¡éå§ã¨çµäºã¯ï¼ä»ã®æ¹æ³ã§åå¾ã§ããããï¼ãã®æ¹æ³ã¯ç¨æ
+ãã¦ããªãï¼
+
+ãªãï¼å²è¾¼ã¿ãã³ãã©ã¨CPUä¾å¤ãã³ãã©ã®å®è¡éå§ã¨çµäºã®ãã¬ã¼ã¹ã­ã°åå¾
+ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®è£
+ããå¿
+è¦ãããï¼è©³ããã¯ï¼ã6.2 ãã¬ã¼ã¹ã­ã°
+æ©è½ã¸ã®å¯¾å¿ãã6.6.1 å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çãã6.7.1 CPUä¾å¤ãã³ã
+ã©ã®åºå
+¥å£å¦çãã®ç¯ãåç
+§ãããã¨ï¼
+
+(c) ã¿ã¹ã¯ç¶æ
+ã®å¤å
+
+æ¬¡ã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼ã¿ã¹ã¯ç¶æ
+ãå¤åããæã®ãã¬ã¼ã¹ã­ã°ãåå¾
+ãããã¨ãã§ããï¼ãã ãï¼å®è¡ç¶æ
+ã¨å®è¡å¯è½ç¶æ
+ã®éã®é·ç§»ã¯ï¼ä»ã®æ¹æ³
+ã§åå¾ã§ããããï¼ãã®ãã¯ã­ã§ã¯åå¾ã§ããªãï¼
+
+	LOG_TSKSTAT		ã¿ã¹ã¯ç¶æ
+ã®å¤å
+
+(d) ãã£ã¹ãããã£ã®å®è¡éå§ã¨çµäº
+
+æ¬¡ã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼ãã£ã¹ãããã£ãå®è¡éå§ããæã¨ï¼çµäºãã
+æã®ãã¬ã¼ã¹ã­ã°ãåå¾ãããã¨ãã§ããï¼
+
+	LOG_DSP_ENTER	ãã£ã¹ãããã£ã®å®è¡éå§
+	LOG_DSP_LEAVE	ãã£ã¹ãããã£ã®çµäº
+
+ãã£ã¹ãããã£ã®å®è¡éå§ã¯ï¼ã¿ã¹ã¯ãå®è¡ç¶æ
+ããå®è¡å¯è½ç¶æ
+ã«é·ç§»ãã
+ã¿ã¤ãã³ã°ã§ããããï¼å®è¡å¯è½ç¶æ
+ã¸é·ç§»ããã¿ã¹ã¯ã®TCBã¸ã®ãã¤ã³ã¿ãã
+ã©ã¡ã¼ã¿ã¨ããï¼éã«ï¼ãã£ã¹ãããã£ã®çµäºã¯ï¼ã¿ã¹ã¯ãå®è¡å¯è½ç¶æ
+ãã
+å®è¡ç¶æ
+ã«é·ç§»ããã¿ã¤ãã³ã°ã§ããããï¼å®è¡ç¶æ
+ã¸é·ç§»ããã¿ã¹ã¯ã®TCBã¸
+ã®ãã¤ã³ã¿ããã©ã¡ã¼ã¿ã¨ããï¼
+
+ASPã«ã¼ãã«ã§ã¯ï¼å®è¡ã§ããã¿ã¹ã¯ããªãï¼ã«ã¼ãã«ãã¢ã¤ãã«ç¶æ
+ã«ãªãå ´
+åã«ã¯ï¼ãã£ã¹ãããã£ã®ä¸­ã«çã¾ãï¼ãã®ããï¼ã¢ã¤ãã«ç¶æ
+ã¸ã®é·ç§»ã¨ã¢
+ã¤ãã«ç¶æ
+ããä»ã®ç¶æ
+ã¸ã®é·ç§»ã¯ï¼ãã®ãã¯ã­ã§ã¯åå¾ã§ããªãï¼
+
+ãªãï¼ãã£ã¹ãããã£ã®å®è¡éå§ã¨çµäºã®ãã¬ã¼ã¹ã­ã°åå¾ã¯ï¼ã¿ã¼ã²ããä¾
+å­é¨ã§å®è£
+ããå¿
+è¦ãããï¼è©³ããã¯ï¼ã6.2 ãã¬ã¼ã¹ã­ã°æ©è½ã¸ã®å¯¾å¿ãã¨
+ã6.5.2 ãã£ã¹ãããã£æ¬ä½ãã®ç¯ãåç
+§ãããã¨ï¼
+
+(e) ãµã¼ãã¹ã³ã¼ã«ã®å
+¥å£ã¨åºå£
+
+æ¬¡ã®ãã¯ã­ãå®ç¾©ãããã¨ã§ï¼åãµã¼ãã¹ã³ã¼ã«ã®å
+¥å£ã¨åºå£ã®ãã¬ã¼ã¹ã­ã°
+ãåå¾ãããã¨ãã§ããï¼
+
+	LOG_<ãµã¼ãã¹ã³ã¼ã«ã®å¤§æå­è¡¨è¨>_ENTER		ãµã¼ãã¹ã³ã¼ã«åã®å
+¥å£
+	LOG_<ãµã¼ãã¹ã³ã¼ã«ã®å¤§æå­è¡¨è¨>_LEAVE		ãµã¼ãã¹ã³ã¼ã«åã®åºå£
+
+ããããã®ãã¯ã­ã®åç§°ããã©ã¡ã¼ã¿ã®è©³ç´°ã«ã¤ãã¦ã¯ï¼ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼
+ããåç
+§ãããã¨ï¼
+
+6.11.2 ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ã
+
+ãã¬ã¼ã¹ã­ã°ãè¨é²ããæ¹æ³ã®ä¸ä¾ã¨ãã¦ï¼ã¡ã¢ãªä¸ã«ãã¬ã¼ã¹ã­ã°ãè¨é²ã
+ãããã®ãµã³ãã«ã³ã¼ããarch/logtraceãã£ã¬ã¯ããªã«ç¨æãã¦ããï¼ãã®ãµ
+ã³ãã«ã³ã¼ãã¯ï¼ã·ã¹ãã ã­ã°æ©è½ã¨åæ§ã®ãã¬ã¼ã¹ã­ã°æ©è½ãç¨æãï¼ãã¬ã¼
+ã¹ã­ã°æ
+å ±ãã¡ã¢ãªä¸ã«è¨é²ããã¨ã¨ãã«ï¼ãããèª­ã¿åºãã¦è¡¨ç¤ºããæ©è½ã
+å®ç¾ãã¦ããï¼
+
+ãã®ãµã³ãã«ã³ã¼ããçµã¿è¾¼ãæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
+
+(1) target_config.hããã³target_syssvc.hã«ï¼æ¬¡ã®è¨è¿°ãè¿½å ããï¼
+
+	#ifdef TOPPERS_ENABLE_TRACE
+	#include "logtrace/trace_config.h"
+	#endif /* TOPPERS_ENABLE_TRACE */
+
+(2) Makefile.targetã«ï¼æ¬¡ã®è¨è¿°ãè¿½å ããï¼
+
+	ifeq ($(ENABLE_TRACE),true)
+		COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+		KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
+		KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
+	endif
+
+(3) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§ï¼bssã»ã¯ã·ã§ã³ã®ã¯ãªã¢ãçç¥ãã¦ããå ´å
+    ã«ã¯ï¼trace_modeãTRACE_STOPï¼ï¼0ï¼ã«åæåããã³ã¼ããè¿½å ããï¼ã
+    ãã¯ï¼ãã¬ã¼ã¹ã­ã°æ©è½ãåæåãããåã«æ¸ãè¾¼ã¾ãããã¬ã¼ã¹ã­ã°ã
+    ç¡è¦ããããã§ããï¼
+
+ãã®ãµã³ãã«ã³ã¼ããç¨ãã¦ï¼ãã¬ã¼ã¹ã­ã°ãè¨é²ã»ãã³ãããæ¹æ³ã®ä¾ã«ã¤
+ãã¦ã¯ï¼ãTOPPERS/ASPã«ã¼ãã« ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãã®ã11.6 ãã¬ã¼ã¹ã­
+ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³ãã®ç¯ãåç
+§ãããã¨ï¼
+
+ãªãï¼ãã®ãµã³ãã«ã³ã¼ãã§ã¯ï¼ãã£ã¹ãããã£ã®åºå£ï¼ã¿ã¹ã¯ã®ç¶æ
+é·ç§»ï¼
+ã·ã¹ãã ã­ã°ã®åºåã®3ã¤ã®ãã¬ã¼ã¹ã­ã°ã®ã¿ãè¨é²ãã¦ããï¼ä»ã®ãã¬ã¼ã¹ã­
+ã°ãè¨é²ãããå ´åã«ã¯ï¼trace_config.hï¼ããã³trace_dump.cï¼ãä¿®æ­£ãã
+å¿
+è¦ãããï¼ãªãï¼ã«ã¼ãã«ã®ãã¬ã¼ã¹ã­ã°ãç¶²ç¾
+çã«è¨é²ããããã®ã³ã¼ã
+ã¯ï¼TLVï¼TraceLogVisualizerï¼ã®é
+å¸ããã±ã¼ã¸ã«å«ã¾ãã¦ããï¼
+
+6.12 ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ããã®ãªãã¼ã è¨è¿°
+
+ã«ã¼ãã«å
+é¨ã«éãã¦ä½¿ãããé¢æ°ãå¤æ°ãªã©ã®åç§°ã§ï¼ãªãã¸ã§ã¯ããã¡ã¤
+ã«ã®ã·ã³ãã«è¡¨ã«ç»é²ããã¦å¤é¨ããåç
+§ã§ããåç§°ã¯ï¼Cè¨èªã¬ãã«ã§ï¼å
+é ­
+ã"_kernel_"ã¾ãã¯"_KERNEL_"ã§ããåç§°ã¨ããªããã°ãªããªããï¼ASPã«ã¼ã
+ã«ã§ã¯ï¼ã½ã¼ã¹ã³ã¼ããã³ã³ãã¯ãã«ä¿ã¡ã¤ã¤ãããå®ç¾ããããã«ï¼ãªãã¼
+ã è¨è¿°ãã¡ã¤ã«ãå°å
+¥ãã¦ããï¼
+
+å
+·ä½çã«ã¯ï¼ãªãã¼ã ãã¹ãåç§°ããªã¹ãã¢ããããxxx_rename.defãç¨æãï¼
+ãã®ãã¡ã¤ã«ãããã¼ã«ï¼utils/genrenameï¼ã«ããï¼åç§°ããªãã¼ã ãããã
+ã®ãã¯ã­å®ç¾©ãå«ãxxx_rename.hã¨ï¼ãããã®ãã¯ã­å®ç¾©ãè§£é¤ããããã®
+xxx_unrename.hãçæããï¼ãã¼ã«ã®èµ·åæ¹æ³ã¯æ¬¡ã®éãã§ããï¼
+
+	% genrename xxx
+
+xxx_rename.defã«ã¯ï¼ãªãã¼ã ãã¹ãåç§°ã1è¡ã«1ã¤è¨è¿°ããï¼xxxxã¨ããå
+ç§°ãè¨è¿°ããã¦ããå ´åï¼xxx_rename.hã«ã¯æ¬¡ã®ãããªè¨è¿°ãçæãããï¼
+
+#define xxxx				_kernel_xxxx
+#ifdef TOPPERS_LABEL_ASM
+#define _xxxx				__kernel_xxxx
+#endif /* TOPPERS_LABEL_ASM */
+
+ã¾ãï¼xxx_unrename.hã«ã¯æ¬¡ã®ãããªè¨è¿°ãçæãããï¼
+
+#undef xxxx
+#ifdef TOPPERS_LABEL_ASM
+#undef _xxxx
+#endif /* TOPPERS_LABEL_ASM */
+
+xxx_rename.defã®ä¸­ã«ã¯ï¼ä»ã®ãªãã¼ã è¨è¿°ãåãè¾¼ãããã«ï¼ãINCLUDE
+"yyy"ãã¾ãã¯ãINCLUDE <yyy>ãã¨ããè¨è¿°ãå«ãããã¨ãã§ããï¼ãã®è¨è¿°
+ãããã¦ããå ´åï¼xxx_rename.hã«ã¯ã#include "yyy_rename.h"ãã¾ãã¯
+ã#include <yyy_rename.h>ãã¨ããè¨è¿°ãï¼xxx_unrename.hã«ã¯ã#include
+"yyy_unrename.h"ãã¾ãã¯ã#include <yyy_unrename.h>ãã¨ããè¨è¿°ãçæã
+ããï¼
+
+xxx_rename.defã®ä¸­ã®"#"ã§å§ã¾ãè¡ã¯ã³ã¡ã³ãã¨ãã¦èª­ã¿é£ã°ãããï¼ã¾ãï¼
+ç©ºè¡ãç¡è¦ãããï¼
+
+ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ä½¿ãããåç§°ããªãã¼ã ããããã«ï¼kernel
+ãã£ã¬ã¯ããªã«ï¼kernel_rename.defã¨ï¼ããããçæããkernel_rename.hã
+ãã³kernel_unrename.hãç¨æããã¦ããï¼kernel_rename.defã«ã¯ï¼
+ãINCLUDE "target"ãã¨ããè¨è¿°ãå«ã¾ãã¦ããï¼ã¿ã¼ã²ããä¾å­é¨ã®ãªãã¼
+ã è¨è¿°ãåãè¾¼ãããã«ãªã£ã¦ããï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ãï¼ã¿ã¼ã²ãã
+éä¾å­é¨ã§åç
+§ãããåç§°ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®ãªãã¼ã è¨è¿°ã«å«ããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã§ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ä½¿ãããåç§°ããªãã¼ã ãããã
+ã«ï¼target_rename.defã¨ï¼ããããçæããtarget_rename.hããã³
+target_unrename.hãç¨æããï¼ã¿ã¼ã²ããä¾å­é¨ãããã­ã»ããµã»ãããã»é
+çºç°å¢ä¾å­é¨ãåãåããå ´åã«ã¯ï¼target_rename.defã«INCLUDEè¨è¿°ãå
+¥ãï¼
+ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ã®ãªãã¼ã è¨è¿°ãåãè¾¼ãããã«ããï¼
+
+6.13 ã¿ã¤ããã©ã¤ã
+
+ã¿ã¤ããã©ã¤ãã¯ï¼ã«ã¼ãã«ã«ã¿ã¤ã ãã£ãã¯ãéç¥ããããã®ã¿ã¤ããã©ã¤
+ãã§ããï¼
+
+6.13.1 ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
+
+ã¿ã¤ããã©ã¤ããçµã¿è¾¼ãããã®éçAPIãè¨è¿°ããã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ãã¡ã¤ã«ãï¼target_timer.cfgã«ç¨æããï¼ãã®ãã¡ã¤ã«ã«ã¯ï¼ã¿ã¤ã
+ãã©ã¤ããåæåããããã®åæåã«ã¼ãã³ã®è¿½å ï¼ã¿ã¤ããã©ã¤ããçµäºã
+ããããã®çµäºå¦çã«ã¼ãã³ã®è¿½å ï¼ã¿ã¤ãå²è¾¼ã¿ã®ããã®å²è¾¼ã¿ãã³ãã©ã®
+å®ç¾©ï¼ã¾ãã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®è¿½å ï¼ï¼ã¿ã¤ãå²è¾¼ã¿ã®ããã®å²è¾¼
+ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®ã®éçAPIãªã©ãå«ããã¨ã«ãªãï¼
+
+ã¿ã¤ããã©ã¤ããå¼ã³åºãããã«å¿
+è¦ãªå®ç¾©ãå«ãããããã¡ã¤ã«ãï¼
+target_timer.hã«ç¨æããï¼ã¾ãï¼ã¿ã¤ããã©ã¤ãã®å®è£
+ãã¡ã¤ã«ã
+target_timer.cã«ç¨æããï¼
+
+ã¿ã¤ã ãã£ãã¯ã®éç¥ã«ããè¡ãå¦çã®å¤ãã¯ï¼ã¿ã¹ã¯ã®èµ·åãå¾
+ã¡è§£é¤ãè¡
+ããã®ã§ããããï¼ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ã¯ï¼å²è¾¼ã¿ã®ä¸­ã§æä½ã®åªå
+
+åº¦ã§ååã§ããï¼ãã ãï¼å¨æãã³ãã©ãã¢ã©ã¼ã ãã³ãã©ã®å®è¡éå§é
+ãã
+åé¡ã«ãªãå ´åã«ã¯ï¼ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ãããé«ãå¤ã«è¨­å®ãããï¼
+ããã§ï¼ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ãå¤æ´ããæ¹æ³ãï¼ã¿ã¼ã²ããä¾å­é¨ã®
+ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ãã¹ãã§ããï¼
+
+6.13.2 ã¿ã¤ãã®åæåã»çµäºå¦çã»å²è¾¼ã¿å¦ç
+
+(6-13-2-1) void target_timer_initialize(intptr_t exinf)
+
+ã¿ã¤ããåæåãï¼ã¿ã¤ãå²è¾¼ã¿ãå¨æçã«çºçãããé¢æ°ï¼ã¿ã¤ãå²è¾¼ã¿ã®
+å¨æã¯ï¼TIC_NUMEã¨TIC_DENOã§æå®ãããæéã¨ä¸è´ãããï¼ã5.2 ã¿ã¤ã 
+ãã£ãã¯ã®å®ç¾©ãã®ç¯ãåç
+§ï¼ï¼
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼åæåã«ã¼ãã³ã¨
+ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+(6-13-2-2) void target_timer_terminate(intptr_t exinf)
+
+ã¿ã¤ãã®åä½ãåæ­¢ããï¼ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«ããé¢æ°ï¼
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼çµäºå¦çã«ã¼ãã³
+ã¨ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+(6-13-2-3) void target_timer_handler(void)
+    ã¾ãã¯ void target_timer_isr(intptr_t exinf)
+
+ã¿ã¤ãå²è¾¼ã¿ã«ããèµ·åãããå²è¾¼ã¿å¦çãã­ã°ã©ã ï¼å²è¾¼ã¿ãã³ãã©ã¨ãã¦
+å®ç¾ããå ´åã«ã¯target_timer_handlerï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦å®ç¾
+ããå ´åã«ã¯target_timer_isrã®åç§°ã¨ããï¼ã¿ã¼ã²ããéä¾å­é¨ã®
+signal_timeãå¼ã³åºãï¼
+
+target_timer_handlerã¯ï¼æ¨æºçã«ã¯æ¬¡ã®ããã«å®ç¾©ããï¼
+
+----------------------------------------
+void
+target_timer_handler(void)
+{
+	i_begin_int(<ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿çªå·>);
+	signal_time();
+	i_end_int(<ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿çªå·>);
+}
+----------------------------------------
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼å²è¾¼ã¿ãã³ãã©ã¾
+ãã¯å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+6.13.3 æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§ã®ããã®æ©è½
+
+æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§æ©è½ï¼get_utmï¼ããµãã¼ãããå ´åã«ã¯ï¼ã¿ã¤
+ããã©ã¤ãã§ï¼ä»¥ä¸ã®ãã¼ã¿åãé¢æ°ãªã©ãç¨æããï¼
+
+(6-13-3-1) OMIT_GET_UTMï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããéä¾å­é¨ã®get_utmã®å®è£
+ãä½¿ç¨ããï¼ã¿ã¼ã²ããä¾å­é¨ã§get_utm
+ãç¨æããå ´åã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ã­å®ç¾©ããï¼ãã®ã·ã³ãã«ããã¯ã­
+å®ç¾©ããå ´åï¼ä»¥ä¸ã®ãã¼ã¿åãé¢æ°ãªã©ãç¨æããå¿
+è¦ã¯ãªãï¼
+
+(6-13-3-2) CLOCK
+
+ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ã®ããã®ãã¼ã¿åï¼
+
+(6-13-3-3) CLOCK target_timer_get_current(void)
+
+ã¿ã¤ãã®ç¾å¨å¤ãèª­ã¿åºãï¼å
+é¨è¡¨ç¾ã§è¿ãé¢æ°ï¼ã¿ã¤ãå¤ã¯ï¼æéã®çµéã¨
+ã¨ãã«å¢å ãããã¨ãæ³å®ãã¦ããï¼ãã¼ãã¦ã§ã¢ã®ã¿ã¤ããï¼ã¿ã¤ãå¤ãæ¸
+å°ãããã®ã§ããå ´åã«ã¯ï¼ãã®é¢æ°å
+ã§å¢å ããå¤ã¨ãªãããã«å¤æããï¼
+
+(6-13-3-4) bool_t target_timer_probe_int(void)
+
+ã¿ã¤ãå²è¾¼ã¿è¦æ±ããã§ãã¯ããé¢æ°ï¼ã¿ã¤ãå²è¾¼ã¿ãè¦æ±ããã¦ããå ´åã«
+trueï¼è¦æ±ããã¦ããªãå ´åã«falseãè¿ãï¼
+
+(6-13-3-5) TO_USEC(clock)
+
+ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ãï¼1Î¼ç§åä½ã«å¤æããããã®ãã¯ã­ï¼ã¾ãã¯é¢æ°ï¼ï¼
+targettimer_get_currentã§èª­ã¿åºããå¤ãï¼ã¿ã¤ãå²è¾¼ã¿çºçããã®çµéæé
+ï¼åä½: 1Î¼ç§ï¼ã«å¤æããããã«ç¨ããï¼
+
+6.14 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãï¼ãªãã·ã§ã³ï¼
+
+ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã¯ï¼ãªã¼ãã©ã³ãã³ãã©ãèµ·åããããã®ã¿ã¤ãã®
+ãã©ã¤ãã§ããï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããªãå ´
+åã«ã¯ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããç¨æããå¿
+è¦ã¯ãªãï¼
+
+6.14.1 ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ãã¡ã¤ã«æ§æ
+
+ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã¯ï¼ã¿ã¤ããã©ã¤ãã¨åããã¡ã¤ã«ã®ä¸­ã«è¨è¿°ããï¼
+ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®ããã®è¨è¿°ã¯ï¼TOPPERS_SUPPORT_OVRHDRããã¯ã­
+å®ç¾©ããã¦ããå ´åã«ã®ã¿æå¹ã«ãªãããã«ããï¼
+
+ããªãã¡ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããçµã¿è¾¼ãããã®éçAPIã¯
+target_timer.cfgã®ä¸­ã«è¨è¿°ããï¼ãã®ãã¡ã¤ã«ã«ã¯ï¼ãªã¼ãã©ã³ã¿ã¤ããã©
+ã¤ããåæåããããã®åæåã«ã¼ãã³ã®è¿½å ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã
+çµäºãããããã®çµäºå¦çã«ã¼ãã³ã®è¿½å ï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®ããã®
+å²è¾¼ã¿ãã³ãã©ã®å®ç¾©ï¼ã¾ãã¯ï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®è¿½å ï¼ï¼ãªã¼ãã©
+ã³ã¿ã¤ãå²è¾¼ã¿ã®ããã®å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®å±æ§ã®è¨­å®ã®éçAPIãªã©ãå«ãã
+ã¨ã«ãªãï¼
+
+ã¾ãï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ããå¼ã³åºãããã«å¿
+è¦ãªå®ç¾©ã¯
+target_timer.hã®ä¸­ã«ï¼ãªã¼ãã©ã³ã¿ã¤ããã©ã¤ãã®å®è£
+ã¯target_timer.cã®
+ä¸­ã«è¨è¿°ããï¼
+
+ãªã¼ãã©ã³ãã³ãã©ã¯ï¼ã¿ã¹ã¯ã®ãªã¼ãã©ã³ã«å¯¾ããå¦çãè¡ããã®ã§ããã
+ãï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ã¯ï¼å²è¾¼ã¿ã®ä¸­ã§æä½ã®åªå
+åº¦ã§
+ååã§ããï¼ãã ãï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ãããé«ãå¤ã«
+è¨­å®ãããå ´åããªãã¨ã¯è¨ããªãããï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åª
+å
+åº¦ãå¤æ´ããæ¹æ³ãï¼ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ãã¹
+ãã§ããï¼
+
+6.14.2 ãªã¼ãã©ã³ã¿ã¤ãã®æä½ã¨å²è¾¼ã¿å¦ç
+
+(6-14-2-1) void target_ovrtimer_initialize(intptr_t exinf)
+
+ãªã¼ãã©ã³ã¿ã¤ãã®åæåå¦çãè¡ãï¼ã¿ã¤ãã®åä½éå§ã¯è¡ããªãï¼
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼åæåã«ã¼ãã³ã¨
+ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+(6-14-2-2) void target_ovrtimer_terminate(intptr_t exinf)
+
+ãªã¼ãã©ã³ã¿ã¤ããåæ­¢ããï¼ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãçºçããªãããã«ã
+ãï¼
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼çµäºå¦çã«ã¼ãã³
+ã¨ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+(6-14-2-3) void target_ovrtimer_start(OVRTIM ovrtim)
+
+ãªã¼ãã©ã³ã¿ã¤ãã«ï¼æ®ãæéovrtimãè¨­å®ãï¼åä½éå§ããï¼ovrtimã®åä½
+ã¯ãã¤ã¯ã­ç§ã¨ããï¼
+
+(6-14-2-4) OVRTIM target_ovrtimer_stop(void)
+
+ãªã¼ãã©ã³ã¿ã¤ããåæ­¢ãï¼ã¿ã¤ãã®æ®ãæéãèª­ã¿åºãï¼ããæ®ãæéã
+0ï¼ã¾ãã¯ããæªæºï¼ã«ãªã£ã¦ããå ´åã«ã¯ï¼1ãè¿ãï¼ã¾ãï¼ãªã¼ãã©ã³ã¿ã¤
+ãããã®å²è¾¼ã¿ãã¯ãªã¢ããï¼
+
+(6-14-2-5) OVRTIM target_ovrtimer_get_current(void)
+
+ãªã¼ãã©ã³ã¿ã¤ãã®æ®ãæéãèª­ã¿åºãï¼ããæ®ãæéã0ï¼ã¾ãã¯ããæªæºï¼
+ã«ãªã£ã¦ããå ´åã«ã¯ï¼0ãè¿ãï¼ãªã¼ãã©ã³ã¿ã¤ãããã®å²è¾¼ã¿ã¯ã¯ãªã¢ããª
+ãï¼
+
+(6-14-2-6) void target_ovrtimer_handler(void)
+    ã¾ãã¯ void target_ovrtimer_isr(intptr_t exinf)
+
+ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã«ããèµ·åãããå²è¾¼ã¿å¦çãã­ã°ã©ã ï¼å²è¾¼ã¿ãã³
+ãã©ã¨ãã¦å®ç¾ããå ´åã«ã¯target_ovrtimer_handlerï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ã
+ã³ã¨ãã¦å®ç¾ããå ´åã«ã¯target_ovrtimer_isrã®åç§°ã¨ããï¼ã¿ã¼ã²ããéä¾
+å­é¨ã®call_ovrhdrãå¼ã³åºãï¼
+
+target_timer_handlerã¯ï¼æ¨æºçã«ã¯æ¬¡ã®ããã«å®ç¾©ããï¼
+
+----------------------------------------
+void
+target_ovrtimer_handler(void)
+{
+	i_begin_int(<ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿çªå·>);
+	ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ã¯ãªã¢ï¼å¿
+è¦ãªãï¼
+	call_ovrhdr();
+	i_end_int(<ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿çªå·>);
+}
+----------------------------------------
+
+ãã®é¢æ°ã¯ï¼target_timer.cfgä¸­ã«è¨è¿°ããéçAPIã«ããï¼å²è¾¼ã¿ãã³ãã©ã¾
+ãã¯å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ã«ã¼ãã«ã«ç»é²ãããã¨ãæ³å®ãã¦ããï¼
+
+(6-14-2-7) OMIT_OVRTIMER_START
+(6-14-2-8) OMIT_OVRTIMER_STOP
+
+ã¿ã¼ã²ããä¾å­é¨ããå¼ã³åºãovrtimer_startã¨ovrtimer_stopãï¼ã¢ã»ã³ããª
+è¨èªã®ã½ã¼ã¹ã³ã¼ãä¸­ã«å±éãï¼Cè¨èªã®é¢æ°ãä¸è¦ã«ãªãå ´åã«ã¯ï¼ããããï¼
+OMIT_OVRTIMER_STARTã¨OMIT_OVRTIMER_STOPããã¯ã­å®ç¾©ããï¼
+
+6.15 åçã¡ã¢ãªç®¡çï¼ãªãã·ã§ã³ï¼
+
+åççææ©è½æ¡å¼µããã±ã¼ã¸ãä½¿ç¨ããå ´åã«ã¯ï¼ã«ã¼ãã«å
+ã§ã®åçã¡ã¢ãª
+ç®¡çã®æ¹æ³ãæ±ºããå¿
+è¦ãããï¼
+
+åççææ©è½æ¡å¼µããã±ã¼ã¸ã®ã¿ã¼ã²ããéä¾å­é¨ã§ã¯ï¼ã¡ã¢ãªé åãå
+é ­ã
+ãé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããªãã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«
+ã®ã¿ãå®è£
+ãã¦ããï¼ããã©ã«ãã§ã¯ï¼ãã®ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãä½¿ç¨ãã
+ãï¼
+
+æ¬æ ¼çãªåçã¡ã¢ãªç®¡çãè¡ãããå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã¾ãã¯ã¦ã¼ã¶
+å´ã§ï¼ä»¥ä¸ã®é¢æ°ãå®ç¾©ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãç¨æããå¿
+è¦ãããï¼
+
+(6-15-1) OMIT_KMM_ALLOCONLYï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããéä¾å­é¨ã®ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãä½¿ç¨ããï¼ã¿ã¼ã²ããä¾å­é¨ã¾
+ãã¯ã¦ã¼ã¶å´ã§ç¨æããå ´åã«ã¯ï¼ãã®ã·ã³ãã«ããã¯ã­å®ç¾©ããï¼
+
+(6-15-2) void initialize_kmm(void)ï¼ãªãã·ã§ã³ï¼
+
+ã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ãåæåããé¢æ°ï¼ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®
+ãµã¤ãºã¨å
+é ­çªå°ã¯ï¼ããããkmmszã¨kmmã«ãã£ã¦åç
+§ã§ããï¼
+
+(6-15-3) void *kernel_malloc(SIZE size)ï¼ãªãã·ã§ã³ï¼
+
+sizeã§æå®ããããµã¤ãºã®ã¡ã¢ãªé åãå²ãä»ãï¼ãã®å
+é ­çªå°ãè¿ãé¢æ°ï¼
+å²ãä»ãããã¨ãã§ããªãå ´åã«ã¯ï¼NULLãè¿ãï¼
+
+(6-15-4) void kernel_free(void *ptr)ï¼ãªãã·ã§ã³ï¼
+
+ptrã§æå®ãããã¡ã¢ãªé åãè§£æ¾ããé¢æ°ï¼
+
+6.15.1 TLSFãç¨ããã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ã®ä¾
+
+ãªã¼ãã³ã½ã¼ã¹ã®ã¡ã¢ãªå²ä»ãã©ã¤ãã©ãªã§ããTLSFãç¨ãã¦åçã¡ã¢ãªç®¡ç
+ãå®ç¾ããã«ã¯ï¼OMIT_KMM_ALLOCONLYããã¯ã­å®ç¾©ãï¼ä»¥ä¸ã®é¢æ°å®ç¾©ç­ãCè¨
+èªã½ã¼ã¹ãã¡ã¤ã«ã«å«ããã°ããï¼
+
+----------------------------------------
+#include "tlsf.h"
+
+static bool_t	tlsf_initialized = false;
+
+void
+initialize_kmm(void)
+{
+	if (init_memory_pool(kmmsz, kmm) >= 0) {
+		tlsf_initialized = true;
+	}
+}
+
+void *
+kernel_malloc(SIZE size)
+{
+	if (tlsf_initialized) {
+		return(malloc_ex(size, kmm));
+	}
+	else {
+		return(NULL);
+	}
+}
+
+void
+kernel_free(void *ptr)
+{
+	if (tlsf_initialized) {
+		free_ex(ptr, kmm);
+	}
+}
+----------------------------------------
+
+
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿è¨­å®ãã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+
+7.1 è¨­å®ãã¡ã¤ã«ã¨ã¿ã¼ã²ããä¾å­é¨ã®ä½ç½®ä»ã
+
+ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼è¨­å®ãã¡ã¤ã«ã®è¨è¿°ã«å¾ã£ã¦ãã¡ã¤ã«ã®
+çæããã³ã¨ã©ã¼ãã§ãã¯ãè¡ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¨­å®ãã¡ã¤ã«ã«ã¯ï¼
+ä»¥ä¸ã®4ã¤ãããï¼
+
+(a) éçAPIãã¼ãã«
+
+éçAPIã®ä¸è¦§ã¨ï¼åéçAPIã®ãã©ã¡ã¼ã¿ã«ã¤ãã¦è¨è¿°ãããã¡ã¤ã«ï¼éç
+APIãæ¡å¼µããå ´åä»¥å¤ã¯å¤æ´ããå¿
+è¦ããªãããï¼ã¿ã¼ã²ããéä¾å­é¨ã§ç¨æ
+ãã¦ããï¼kernel/kernel_api.csvï¼ï¼
+
+(b) å¤åå¾ã·ã³ãã«ãã¼ãã«
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã«ããã¦ï¼ãã©ã¡ã¼ã¿è¨ç®ç¨Cè¨èªãã¡ã¤ã«ã«åºå
+ãï¼å¤ãæ±ãããã·ã³ãã«ï¼ä¸è¬ã«ã¯å¼ï¼ãè¨è¿°ããããã®ãã¡ã¤ã«ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ã§ã¯ï¼ã¿ã¼ã²ããã«ä¾å­ããã«å¿
+è¦ã¨ãªãã·ã³ãã«ãè¨è¿°ãããã¡
+ã¤ã«ãç¨æãã¦ããï¼kernel/kernel_def.csvï¼ï¼
+
+ã¿ã¼ã²ããã«ä¾å­ãã¦å¿
+è¦ã¨ãªãã·ã³ãã«ãããå ´åã«ã¯ï¼targetãã£ã¬ã¯ã
+ãªã«ç½®ãããtarget_def.csvä¸­ã«è¨è¿°ããï¼target_def.csvä¸­ã«è¨è¿°ãã¦å¤ã
+æ±ãããã¨ãã§ããã·ã³ãã«ã¯ï¼kernel/kernel_int.hããã³ããããã¤ã³ã¯ã«ã¼
+ãããããã¡ã¤ã«ã§å®ç¾©ããã¦ããªããã°ãªããªãï¼kernel_int.hããã¯ï¼
+target_stddef.hï¼target_kernel.hï¼target_config.hãï¼éæ¥çã«ï¼ã¤ã³ã¯ã«ã¼
+ããã¦ããããï¼ãããã®ãã¡ã¤ã«ããã³ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤
+ã«ã§å®ç¾©ãããã¿ã¼ã²ããä¾å­ã®ã·ã³ãã«ã¯ï¼target_def.csvä¸­ã«è¨è¿°ããã
+ã¨ãã§ããï¼
+
+ããã§å¤ãæ±ããã·ã³ãã«ã®å¤ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ããã³ãã¹3ã®
+ãã³ãã¬ã¼ããã¡ã¤ã«ä¸­ã§åç
+§ãããã¨ãã§ããï¼
+
+(c) ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã¯ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã«å¾ã£ã¦ï¼ã«ã¼ãã«ã®æ§
+æã»åæåãã¡ã¤ã«ï¼kernel_cfg.cï¼ï¼æ§æã»åæåããããã¡ã¤ã«
+ï¼kernel_cfg.hï¼ãªã©ãçæããï¼ãã®ãã³ãã¬ã¼ããã¡ã¤ã«ã¯ï¼ã¿ã¼ã²ãã
+éä¾å­é¨ã¨ã¿ã¼ã²ããä¾å­é¨ã«åãåãã¦ãããï¼ä»ã®ãã¡ã¤ã«ã®ã¿ã¼ã²ãã
+ä¾å­é¨ã¨ã¯éã«ï¼ã¿ã¼ã²ããä¾å­é¨ããã¿ã¼ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãã
+ãå½¢ã«ãªã£ã¦ããï¼
+
+å
+·ä½çã«ã¯ï¼targetãã£ã¬ã¯ããªã«ç½®ãããtarget.tfã§ï¼å¿
+è¦ãªå¤æ°ãå®ç¾©ã
+ãå¾ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ï¼kernel/kernel.tfï¼ãã¤
+ã³ã¯ã«ã¼ãããï¼kernel.tfã§ã¯ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§ä½¿ç¨ããå¤
+æ°å®ç¾©ç­ãçæããï¼kernel.tfãã¤ã³ã¯ã«ã¼ãããå¾ï¼target.tfã§ã¯ï¼ã«ã¼
+ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã§ä½¿ç¨ããå¤æ°å®ç¾©ç­ãçæããï¼target.tfããï¼ã
+ã­ã»ããµä¾å­é¨ï¼ãããä¾å­é¨ãï¼éçºç°å¢ä¾å­é¨ãåãåãã¦ãããï¼
+
+(d) ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã¯ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã«å¾ã£ã¦ï¼éçAPIã®ä¸
+è¬å®æ°å¼ãã©ã¡ã¼ã¿ã®ãã§ãã¯ãè¡ãï¼ãã®ãã³ãã¬ã¼ããã¡ã¤ã«ãï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ã¨ã¿ã¼ã²ããä¾å­é¨ã«åãåãã¦ããï¼ã¿ã¼ã²ããä¾å­é¨ããã¿ã¼
+ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãããå½¢ã«ãªã£ã¦ããï¼
+
+å
+·ä½çã«ã¯ï¼targetãã£ã¬ã¯ããªã«ç½®ãããtarget_check.tfã§ï¼å¿
+è¦ãªå¤æ°ã
+å®ç¾©ããå¾ï¼ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨
+ï¼kernel/kernel_check.tfï¼ãã¤ã³ã¯ã«ã¼ãããï¼kernel_check.tfã§ã¯ï¼ã«ã¼
+ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§åæåãã­ãã¯ã«åºåããä¸è¬å®æ°å¼ãã©ã¡ã¼ã¿
+ã®ãã§ãã¯ãè¡ãï¼kernel_check.tfãã¤ã³ã¯ã«ã¼ãããå¾ï¼target_check.tf
+ã§ã¯ï¼ã¿ã¼ã²ããã«ä¾å­ãããã§ãã¯ãè¡ãï¼target_check.tfããï¼ãã­ã»ã
+ãµä¾å­é¨ï¼ãããä¾å­é¨ãï¼éçºç°å¢ä¾å­é¨ãåãåãã¦ãããï¼
+
+ãªãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è©³ç´°ä»æ§ã¨è¨­å®ãã¡ã¤ã«ã®è¨è¿°æ¹æ³ã«ã¤ãã¦ã¯ï¼
+å¥éPDFãã¡ã¤ã«ã®å½¢ã§é
+å¸ãã¦ãããTOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ä»æ§ãããã³ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿å
+èµãã¯ã­
+ãã­ã»ããµä»æ§ããåç
+§ãããã¨ï¼
+
+7.2 ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+
+ä»¥ä¸ã§ã¯ï¼ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ãè¨è¿°ããä¸ã§å¿
+
+è¦ãªäºé 
+ã«ã¤ãã¦èª¬æããï¼
+
+7.2.1 ã¿ã¼ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
+
+target.tfããkernel.tfãã¤ã³ã¯ã«ã¼ãããåã«ï¼æ¬¡ã®å¤æ°ãå®ç¾©ãã¦ãããª
+ããã°ãªããªãï¼
+
+(7-2-1-1) INTNO_ATTISR_VALID	ATT_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·
+(7-2-1-2) INHNO_ATTISR_VALID	INTNO_ATTISR_VALIDã«å¯¾å¿ããå²è¾¼ãã³ãã©çªå·
+(7-2-1-3) INHNO_DEFINH_VALID	DEF_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿ãã³ãã©çªå·
+(7-2-1-4) EXCNO_DEFEXC_VALID	DEF_EXCã§ä½¿ç¨ã§ããCPUä¾å¤ãã³ãã©çªå·
+(7-2-1-5) INTNO_CFGINT_VALID	CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·
+(7-2-1-6) INTPRI_CFGINT_VALID	CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿åªå
+åº¦
+
+APIã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ï¼å²è¾¼ã¿ãã³ãã©çªå·ï¼CPUä¾å¤ãã³ãã©çªå·ï¼å²
+è¾¼ã¿åªå
+åº¦ã®ãªã¹ããï¼åå¤æ°ã«å®ç¾©ããï¼INHNO_ATTISR_VALIDã«ã¯ï¼
+INTNO_ATTISR_VALIDã«ãªã¹ãã¢ããããå²è¾¼ã¿çªå·ã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©
+çªå·ã®ãªã¹ããå®ç¾©ããï¼CFG_INTã«ã¯ï¼ãã¹ã¦ã®å²è¾¼ã¿çªå·ãæå®ãããã¨ã
+ã§ããããï¼INTNO_CFGINT_VALIDã«ã¯ï¼æå¹ãªå²è¾¼ã¿çªå·ããã¹ã¦ãªã¹ãã¢ã
+ãããï¼
+
+(7-2-1-7) INTNO_FIX_KERNELï¼ãªãã·ã§ã³ï¼	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ãã
+											å²è¾¼ã¿çªå·
+(7-2-1-8) INHNO_FIX_KERNELï¼ãªãã·ã§ã³ï¼	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ãã
+		 									å²è¾¼ã¿ãã³ãã©çªå·
+(7-2-1-9) INHNO_FIX_NONKERNELï¼ãªãã·ã§ã³ï¼	ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ãã
+											å²è¾¼ã¿çªå·
+(7-2-1-10) INHNO_FIX_NONKERNELï¼ãªãã·ã§ã³ï¼ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ãã
+		 									å²è¾¼ã¿ãã³ãã©çªå·
+
+ã«ã¼ãã«ç®¡çã¾ãã¯ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããå²è¾¼ã¿ãããå ´åã«ã¯ï¼
+ãããã®å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®ãªã¹ããï¼åå¤æ°ã«å®ç¾©ããï¼
+
+(7-2-1-11) USE_INHINIB_TABLEï¼ãªãã·ã§ã³ï¼
+
+OMIT_INITIALIZE_INTERRUPTãå®ç¾©ãããï¼å²è¾¼ã¿ãã³ãã©ã®åæåã«å¿
+è¦ãªæ
+
+å ±ãkernel_cfg.cã«çæãããå ´åã«ã¯ï¼ãã®å¤æ°ã1ã«è¨­å®ããï¼å
+·ä½çã«ã¯ï¼
+TNUM_INHNOï¼tnum_inhnoï¼inhinib_tableã®å®ç¾©ã¨ï¼å²è¾¼ã¿ãã³ãã©æ¯ã®åºå
+¥å£
+å¦çãçæããããã®è¨è¿°ï¼INTHDR_ENTRYãã¯ã­ã®ãªã¹ãï¼ãï¼ã¿ã¼ã²ããé
+ä¾å­é¨ã«ãã£ã¦çæãããï¼
+
+(7-2-1-12) USE_INTINIB_TABLEï¼ãªãã·ã§ã³ï¼
+
+OMIT_INITIALIZE_INTERRUPTãå®ç¾©ãããï¼å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®åæåã«å¿
+è¦ãª
+æ
+å ±ãkernel_cfg.cã«çæãããå ´åã«ã¯ï¼ãã®å¤æ°ã1ã«è¨­å®ããï¼å
+·ä½çã«
+ã¯ï¼TNUM_INTNOï¼tnum_intnoï¼intinib_tableã®å®ç¾©ãï¼ã¿ã¼ã²ããéä¾å­é¨ã«
+ãã£ã¦çæãããï¼
+
+(7-2-1-13) GENERATE_TSKINICTXBï¼ãªãã·ã§ã³ï¼
+
+USE_TSKINICTXBããã¯ã­å®ç¾©ããå ´åï¼TSKINICTXBã®åæåæ
+å ±ãçæããã
+ããã³ãã¬ã¼ããã¡ã¤ã«é¢æ°GENERATE_TSKINICTXBãå®ç¾©ããï¼
+GENERATE_TSKINICTXBã«ã¯ï¼ã¿ã¹ã¯IDããã©ã¡ã¼ã¿ã¨ãã¦æ¸¡ãããï¼
+
+(7-2-1-14) ALLOC_STACKï¼ãªãã·ã§ã³ï¼
+
+ã¹ã¿ãã¯é åã®çææ¹æ³ãããã©ã«ãããå¤æ´ãããå ´åã«ã¯ï¼ã¹ã¿ãã¯é å
+ãçæããããã®ãã³ãã¬ã¼ããã¡ã¤ã«é¢æ°ALLOC_STACKãå®ç¾©ããï¼
+ALLOC_STACKã«ã¯ï¼ã¹ã¿ãã¯é åã®å¤æ°åã¨ä¸¸ããåã®ãµã¤ãºããã©ã¡ã¼ã¿ã¨ã
+ã¦æ¸¡ãããã®ã§ï¼ã¹ã¿ãã¯é åãçæããã³ã¼ããçæãï¼å¤§ããæ¹ã«ä¸¸ãã
+ãµã¤ãºãè¡¨ãæå­åãè¿ãï¼
+
+7.2.2 ã¿ã¼ã²ããéä¾å­é¨ã§å®ç¾©ãããå¤æ°
+
+kernel.tfã®ä¸­ã§ã¯æ¬¡ã®å¤æ°ãå®ç¾©ãããããï¼kernel.tfãã¤ã³ã¯ã«ã¼ããã
+å¾ï¼target.tfã®ä¸­ã§ããããåç
+§ãããã¨ãã§ããï¼
+
+(7-2-2-1) INTNO[inhno]		inhnoãå¯¾å¿ããintnoã«å¤æããããã®é£æ³é
+å
+(7-2-2-2) INHNO[intno]		intnoãå¯¾å¿ããinhnoã«å¤æããããã®é£æ³é
+å
+
+7.3 ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨
+
+ä»¥ä¸ã§ã¯ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ãè¨è¿°ããä¸ã§å¿
+
+è¦ãªäºé 
+ã«ã¤ãã¦èª¬æããï¼
+
+7.3.1 ã¿ã¼ã²ããéä¾å­é¨ãã¤ã³ã¯ã«ã¼ãããåã«å®ç¾©ãã¹ãå¤æ°
+
+target_check.tfããkernel_check.tfãã¤ã³ã¯ã«ã¼ãããåã«ï¼å¿
+è¦ã«å¿ãã¦ï¼
+æ¬¡ã®å¤æ°ãå®ç¾©ãã¦ãããªããã°ãªããªãï¼
+
+(7-3-1-1) GET_STK_TSKINICTXBï¼ãªãã·ã§ã³ï¼
+
+USE_TSKINICTXBããã¯ã­å®ç¾©ããå ´åï¼TINIBããã¹ã¿ãã¯é åã®å
+é ­çªå°ãå
+ãåºãããã®ãã³ãã¬ã¼ããã¡ã¤ã«é¢æ°GET_STK_TSKINICTXBãå®ç¾©ããï¼
+GET_STK_TSKINICTXBã«ã¯ï¼ã¿ã¹ã¯åæåãã­ãã¯ï¼TINIBï¼ã®å
+é ­çªå°ããã©ã¡ã¼
+ã¿ã¨ãã¦æ¸¡ãããï¼CHECK_STACK_ALIGNï¼CHECK_STACK_NONNULLã¨ãå®ç¾©ããªã
+å ´åã«ã¯ï¼GET_STK_TSKINICTXBãå®ç¾©ããå¿
+è¦ã¯ãªãï¼
+
+(7-3-1-2) LMA.ORDER_LISTï¼ãªãã·ã§ã³ï¼
+(7-3-1-3) LMA.START_DATA[lmano]ï¼ãªãã·ã§ã³ï¼
+(7-3-1-4) LMA.END_DATA[lmano]ï¼ãªãã·ã§ã³ï¼
+(7-3-1-5) LMA.START_IDATA[lmano]ï¼ãªãã·ã§ã³ï¼
+
+ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããä¾å­é¨ã§dataã»ã¯ã·ã§ã³ãããã¼ã¿
+ãåå¾ããå ´åãï¼rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
+ã®ã11.8 rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åãã®ç¯ãåç
+§ï¼ã«ã¯ï¼ãããã®ã»
+ã¯ã·ã§ã³ã®å
+å®¹ãï¼é
+ç½®ã¢ãã¬ã¹ï¼ROMå
+ã®ã¢ãã¬ã¹ï¼LMAã¨å¼ã¶ï¼ããã¢ã¯ã»
+ã¹ã¢ãã¬ã¹ï¼RAMå
+ã®ã¢ãã¬ã¹ï¼VMAã¨å¼ã¶ï¼ã«ã³ãã¼ããå¿
+è¦ãããï¼
+
+ãã®ã³ãã¼ã¯ï¼LMA.ORDER_LISTã«ï¼ã³ãã¼ããã»ã¯ã·ã§ã³ã®çªå·ï¼lmanoï¼ã®ãª
+ã¹ãï¼çªå·ã¯ä»»æã«ä»ä¸ãã¦ããï¼ï¼LMA.START_DATA[lmano]ã«ã³ãã¼ããã»ã¯
+ã·ã§ã³ã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ã®å
+é ­ã®ã©ãã«ï¼LMA.END_DATA[lmano]ã«æ«å°¾ã®ã©ã
+ã«ï¼LMA.START_IDATA[lmano]ã«ãã®é
+ç½®ã¢ãã¬ã¹ã®å
+é ­ã®ã©ãã«ãè¨­å®ããã
+ã¨ã§ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã§å®æ½ããï¼
+
+ä¾ãã°ï¼ã³ãã¼ããã»ã¯ã·ã§ã³ã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ã®å
+é ­ã®ã©ãã«ã
+"__data_start"ï¼æ«å°¾ã®ã©ãã«ã"__data_end"ï¼ãã®é
+ç½®ã¢ãã¬ã¹ã®å
+é ­ã®ã©
+ãã«ã"__idata_start"ã®å ´åã«ã¯ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ã
+ãä¾å­é¨ã«ä»¥ä¸ã®è¨è¿°ãå«ããï¼
+
+----------------------------------------
+$LMA.ORDER_LIST = { 1 }$
+$LMA.START_DATA[1] = "__data_start"$
+$LMA.END_DATA[1] = "__data_end"$
+$LMA.START_IDATA[1] = "__idata_start"$
+----------------------------------------
+
+
+7.3.2 ã¿ã¼ã²ããä¾å­é¨ã§è¡ãã¹ãã¨ã©ã¼ãã§ãã¯
+
+ä»¥ä¸ã®å
+é ­çªå°ã¯ï¼ã¿ã¼ã²ããéä¾å­é¨ã§çæãããã¼ãã«ã«åºåãããªãã
+ãï¼ãã¹3ã®ã¿ã¼ã²ããéä¾å­é¨ï¼kernel_check.tfï¼ã§ã¯ï¼ãã­ã°ã©ã ã®éå§
+çªå°ã¨ãã¦æ­£ãããªãå ´åã®ã¨ã©ã¼ããã§ãã¯ããªãï¼ãã®ããï¼ã¿ã¼ã²ãã
+ä¾å­é¨ã§ã¨ã©ã¼ãã§ãã¯ãè¡ãå¿
+è¦ãããï¼
+
+ã»å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
+é ­çªå°ï¼ATT_ISRã®isrï¼
+ã»å²è¾¼ã¿ãã³ãã©ã®å
+é ­çªå°ï¼DEF_INHã®inthdrï¼
+ã»CPUä¾å¤ãã³ãã©ã®å
+é ­çªå°ï¼DEF_EXCã®exchdrï¼
+ã»åæåã«ã¼ãã³ã®å
+é ­çªå°ï¼ATT_INIã®inirtnï¼
+ã»çµäºå¦çã«ã¼ãã³ã®å
+é ­çªå°ï¼ATT_TERã®terrtnï¼
+
+ãã ãï¼ã¿ã¼ã²ããä¾å­é¨ã«ããã¦ãï¼ãããã®ã¨ã©ã¼ãã§ãã¯ãè¡ããã¨ã¯
+éããªãããï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã®ã1.5 æ¢ç¥ã®åé¡ãã®ç¯ã«ã¯ï¼ã¿ã¼ã²ã
+ãä¾å­ã§ãããã®ã¨ã©ã¼ãæ¤åºãããªããã¨ãããæ¨ãè¨è¼ãã¦ããï¼
+
+7.4 cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«é¢ãã¦ã¿ã¼ã²ããä¾å­ã«ç¨æããå¿
+è¦ããããã¡ã¤ã«ã¨
+ãã¦ï¼è¨­å®ãã¡ã¤ã«ä»¥å¤ã«ï¼cfg1_out.cããªã³ã¯ããããã«å¿
+è¦ãªã¹ã¿ãã®å®
+ç¾©ãã¡ã¤ã«ãããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹1ã§ã¯ï¼éçAPIã®æ´æ°å®æ°å¼ãã©ã¡ã¼ã¿ã®å¤ãCã³ã³
+ãã¤ã©ãç¨ãã¦æ±ããããã«ï¼cfg1_out.cãçæããï¼ãããã³ã³ãã¤ã«ï¼ãª
+ã³ã¯ãã¦ãªãã¸ã§ã¯ããã¡ã¤ã«ãçæããéã«ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã
+ãåç
+§ãããã·ã³ãã«ã®å®ç¾©ãä¸ããå¿
+è¦ãããï¼
+
+ãã®å®ç¾©ãä¸ããããã«ï¼cfg1_out.cããï¼ã¿ã¼ã²ããä¾å­é¨ã®
+target_cfg1_out.hãã¤ã³ã¯ã«ã¼ããã¦ããï¼target_cfg1_out.hï¼ã¾ãã¯ï¼ã
+ãããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ã¯ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããå
+ç
+§ãããã·ã³ãã«ã®ã¹ã¿ãã®å®ç¾©ãå«ããï¼å
+¸åçã«ã¯ï¼ä»¥ä¸ã®ãããªå®ç¾©ã
+å«ããå¿
+è¦ãããï¼
+
+----------------------------------------
+void sta_ker(void)
+{
+}
+
+void hardware_init_hook(void)
+{
+}
+
+void software_init_hook(void)
+{
+}
+
+const SIZE		_kernel_istksz = 0;
+
+STK_T *const	_kernel_istk = NULL;
+----------------------------------------
+
+ã¾ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨ãã¦ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ãçæã
+ãå ´åã«ã¯ï¼ãã®ããã®è¨è¿°ãtarget_cfg1_out.hï¼ã¾ãã¯ï¼ããããã¤ã³ã¯ã«ã¼
+ãããããã¡ã¤ã«ï¼ã«è¿½å ããå¿
+è¦ãããï¼è©³ããã¯ï¼ã2.5.1 ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ãç¨ããæ¹æ³ãã®ç¯ãåç
+§ãããã¨ï¼
+
+
+ï¼ï¼ã·ã¹ãã ãµã¼ãã¹ç­ã®ã¿ã¼ã²ããä¾å­é¨
+
+8.0 ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨
+
+ã·ãªã¢ã«ãã¼ãæ°ãã·ã¹ãã ã­ã°ã¿ã¹ã¯é¢é£ã®å®æ°ãªã©ï¼ã·ã¹ãã ãµã¼ãã¹ã®
+æ§æãæ±ºå®ããããã®å®ç¾©ãtarget_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ããã
+ããã¡ã¤ã«ï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ã§ç¨æãããããããã¡ã¤
+ã«ãªã©ï¼ã«å«ããï¼
+
+ãªãï¼TOPPERSçµè¾¼ã¿ã³ã³ãã¼ãã³ãã·ã¹ãã ãå°å
+¥ãããã¨ï¼ãã®ãã¡ã¤ã«ã®
+å
+å®¹ã¯ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã«è¨è¿°ããããã¨ã«ãªãï¼ãã®ãã¡ã¤ã«ã¯
+ç¡ããªãï¼ã¾ãã¯ï¼å¤§å¹
+ã«ç¸®å°ãããï¼è¦è¾¼ã¿ã§ããï¼
+
+8.1 ã·ã¹ãã ã­ã°æ©è½ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+
+ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããå ´åã§ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§bssã»ã¯ã·ã§
+ã³ã®ã¯ãªã¢ãçç¥ãã¦ããå ´åã«ã¯ï¼syslog_logmaskã¨syslog_lowmask_notã
+0ã«åæåããã³ã¼ããè¿½å ããï¼ããã¯ï¼ã·ã¹ãã ã­ã°æ©è½ãåæåãããå
+ã«åºåãããã­ã°æ
+å ±ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããããã§ããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã§æä¾ãã¹ãã·ã¹ãã ã­ã°æ©è½ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§ã
+ãï¼
+
+(8-1-1) TCNT_SYSLOG_BUFFER
+
+ã·ã¹ãã ã­ã°æ©è½ã®ã­ã°ãããã¡ã®ãµã¤ãºãå®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´å
+ã®ããã©ã«ãå¤ã¯32ï¼
+
+(8-1-2) void target_fput_log(char c)
+
+ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºåé¢æ°ï¼ã¿ã¼ã²ããä¾å­ã®æ¹æ³ã§ï¼
+æå­cãè¡¨ç¤º/åºå/ä¿å­ããï¼
+
+ãã®é¢æ°ã¯ï¼ãªã¨ã³ãã©ã³ãã«å®è£
+ããªããã°ãªããªãï¼ãã®é¢æ°å
+ã§æä»å¶
+å¾¡ãå¿
+è¦ãªå ´åã«ã¯ï¼SILãç¨ãã¦å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã«ãããã¨ï¼ã¾ãï¼å
+¨å²
+è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã°ããå ´åãããããï¼å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ããå¼ã³åºã
+ãã¨ãã§ããªãé¢æ°ãå¼ã°ãªãããã«å®è£
+ããªããã°ãªããªãï¼
+
+ä½ã¬ãã«åºåãã·ãªã¢ã«ãã¼ãçµç±ã§è¡ãå ´åã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ã
+ã©ã¤ãã¨ãã¼ããå
+±ç¨ããªããã¨ãæã¾ãããï¼ãã¼ãæ°ãè¶³ããªãããã«ã
+ããããå
+±ç¨ããå ´åã«ã¯ï¼ä¸¡è
+ãç«¶åããªãããã«æ³¨æãå¿
+è¦ã§ããï¼å
+·ä½
+çã«ã¯ï¼ä¸¡è
+ãåãè¨­å®ã§ã·ãªã¢ã«I/Oããã¤ã¹ãä½¿ãããã«ãï¼ã·ãªã¢ã«ã¤ã³
+ã¿ãã§ã¼ã¹ãã©ã¤ãã®åä½ä¸­ã«ä½ã¬ãã«åºåãè¡ããã¦ãå·®ãæ¯ããªãããã«
+è¨­è¨ããï¼ã¾ãï¼ä½ã¬ãã«åºåãåä½éå§å¾ã«ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤
+ããã·ãªã¢ã«I/Oããã¤ã¹ãåæåããã¨ï¼æå­åããèµ·ããå¯è½æ§ãããããï¼
+å
+±ç¨ãããã¼ãã¯ï¼ä½ã¬ãã«åºåæ©è½å´ã§åæåãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹
+ãã©ã¤ãã§ã¯åæåããªãããã«ããã¨ããï¼
+
+ãªãï¼ãã®é¢æ°ã®æ¬ä½ãï¼ã©ã®ãã¡ã¤ã«ã«è¨è¿°ããããåé¡ã«ãªãï¼ã·ã¹ãã 
+ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ã«ã¯ï¼æ¨æºã§ã¯ï¼é¢æ°å®ç¾©ãè¨è¿°ããããã®ãã¡
+ã¤ã«ãç¨æãã¦ããªãï¼ã¿ã¼ã²ããä¾å­ã§ç¨æãã¦ããããï¼ä¾å¤çã«ï¼ã«ã¼
+ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼target_config.cï¼ã«è¨è¿°ãã¦ãããï¼
+ãã®å ´åï¼target_fput_logãï¼ãªãã¼ã è¨è¿°ï¼target_rename.defãªã©ï¼ã«å«
+ãã¦ã¯ãªããªãï¼
+
+8.2 ã­ã°ã¿ã¹ã¯ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+
+ã¿ã¼ã²ããä¾å­é¨ã§æä¾ãã¹ãã­ã°ã¿ã¹ã¯ã®ããã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼ã
+ããã®å®ç¾©ã¯ï¼target_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ã«
+å«ããï¼
+
+(8-2-1) LOGTASK_PRIORITYï¼ãªãã·ã§ã³ï¼
+
+ã­ã°ã¿ã¹ã¯ã®åªå
+åº¦ãå®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯3ï¼
+
+(8-2-2) LOGTASK_STACK_SIZEï¼ãªãã·ã§ã³ï¼
+
+ã­ã°ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©ã«ã
+å¤ã¯1024ï¼
+
+(8-2-3) LOGTASK_PORTIDï¼ãªãã·ã§ã³ï¼
+
+ã­ã°ã¿ã¹ã¯ã®åºåå
+ã®ã·ãªã¢ã«ãã¼ãçªå·ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1ï¼
+
+(8-2-4) LOGTASK_INTERVALï¼ãªãã·ã§ã³ï¼
+
+ã­ã°ã¿ã¹ã¯ã®åä½ééï¼åä½ã¯ããªç§ï¼ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯10ï¼
+
+(8-2-5) LOGTASK_FLUSH_WAITï¼ãªãã·ã§ã³ï¼
+
+ã­ã°åºåãå¾
+ã¡åãããå¦çã«ããã¦ï¼ã¿ã¹ã¯ãå¾
+ãããåä½ã¨ãªãæéï¼å
+ä½ã¯ããªç§ï¼ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1ï¼
+
+8.3 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã¿ã¼ã²ããä¾å­é¨
+
+ã¿ã¼ã²ããä¾å­é¨ã§æä¾ãã¹ãã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ããã®å®ç¾©
+ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼å¥ã«æå®ããªãéãï¼target_serial.hã¾
+ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ã«å«ãï¼å¿
+è¦ãªã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+ã³æ
+å ±ãtarget_serial.cfgã«è¨è¿°ããï¼é¢æ°ã®å®ä½ãå¿
+è¦ãªå ´åã«ã¯ï¼
+target_serial.cç­ã®ãã¡ã¤ã«ãç¨æããï¼
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ä¸­ã§ï¼ã¿ã¼ã²ããã®ã·ãªã¢ã«I/Oããã¤ã¹ã«
+ä¾å­ããé¨åãï¼ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã¨å¼ã¶ï¼ã·ãªã¢ã«I/Oããã¤ã¹
+ãã©ã¤ãã¯ï¼ããããï¼ITRONããã¤ã¹ãã©ã¤ãè¨­è¨ã¬ã¤ãã©ã¤ã³ã®PDICã«ç¸å½
+ããï¼PDICã«ç¸å½ãããã¡ã¤ã«ã§ï¼ä»ã®ã·ã¹ãã ã«ãå
+±éã«ä½¿ããå¯è½æ§ãã
+ãå ´åã«ã¯ï¼pdicãã£ã¬ã¯ããªã«ç½®ãï¼
+
+8.3.1 å¤æ°ï¼ãã¼ã¿åï¼ç®¡çé¢æ°
+
+(8-3-1-1) TNUM_PORT
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããµãã¼ãããã·ãªã¢ã«ãã¼ãæ°ãå®ç¾©ãã
+ãã¯ã­ï¼ãã®ãã¯ã­ã®å®ç¾©ã¯ï¼target_syssvc.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãã
+ãããã¡ã¤ã«ã«å«ããï¼
+
+(8-3-1-2) void sio_initialize(intptr_t exinf)ï¼ãªãã·ã§ã³ï¼
+
+ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã®åæåå¦çï¼target_serial.cfgã«ï¼ãã®é¢æ°
+ãåæåã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼
+
+(8-3-1-3) void sio_terminate(intptr_t exinf)ï¼ãªãã·ã§ã³ï¼
+
+ã·ãªã¢ã«I/Oããã¤ã¹ãã©ã¤ãã®çµäºå¦çï¼target_serial.cfgã«ï¼ãã®é¢æ°ã
+çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼
+
+(8-3-1-4) void sio_isr(intptr_t exinf)
+
+ã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼target_serial.cfgã«ï¼ãã®
+é¢æ°ãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¨ãã¦ç»é²ããéçAPIãå«ããï¼ã¾ãï¼ãã®é
+çAPIã«å¿
+è¦ãªã·ãªã¢ã«I/Oããã¤ã¹ã®å²è¾¼ã¿çªå·ãªã©ã¯ï¼target_serial.hã§ã
+ã¯ã­å®ç¾©ããï¼å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã§ã¯ãªãï¼å²è¾¼ã¿ãã³ãã©ã¨ãããã¨
+ãã§ããï¼
+
+(8-3-1-5) SIOPCB
+
+ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ã®ãã¼ã¿åï¼target_serial.hã«ã¯ï¼ãã¼ã¿å
+ã®å®£è¨ã ãå«ã¾ãã¦ããã°ããï¼ï¼
+
+(8-3-1-6) SIO_RDY_SNDã¨SIO_RDY_RCV
+
+éä¿¡å¯è½ã³ã¼ã«ããã¯ã®è­å¥çªå·ãSIO_RDY_SNDã«ï¼åä¿¡éç¥ã³ã¼ã«ããã¯ã®è­
+å¥çªå·ãSIO_RDY_RCVã«ãã¯ã­å®ç¾©ããï¼ã³ã¼ã«ããã¯ã®ç¦æ­¢ï¼è¨±å¯ãè¡ãªããµã¼
+ãã¹ã³ã¼ã«ï¼sio_ena_cbrã¨sio_dis_cbrï¼ã§ç¨ããï¼
+
+8.3.2 ããã¤ã¹ãµã¼ãã¹ã«ã¼ãã³
+
+ä»¥ä¸ã®ããã¤ã¹ãµã¼ãã«ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®
+å²è¾¼ã¿ããã¹ã¯ãããç¶æ
+ã§å¼ã³åºãããï¼ã¾ãï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼éã¿
+ã¹ã¯ã³ã³ãã­ã¹ãã®ãããã§å¼ã³åºãããå ´åãããï¼ãããã§å¼ã³åºããã¦
+ãåä½ããããã«ããªããã°ãªããªãï¼ï¼
+
+(8-3-2-1) SIOPCB *sio_opn_por(ID siopid, intptr_t exinf)
+
+siopidã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããªã¼ãã³ããé¢æ°ï¼exinfã¯ã·ãªã¢ã«
+I/Oãã¼ãã«å¯¾ããæ¡å¼µæ
+å ±ã§ï¼ã³ã¼ã«ããã¯ãå¼ã¶æã«ãã¼ããåºå¥ããã
+ãã«æ¸¡ãï¼
+
+(8-3-2-2) void sio_cls_por(SIOPCB *siopcb)
+
+siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ããã¯ã­ã¼ãºããé¢æ°ï¼
+
+(8-3-2-3) bool_t sio_snd_chr(SIOPCB *siopcb, char c)
+
+siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãã«ï¼cã§ç¤ºãããæå­ãéä¿¡ããé¢æ°ï¼
+æå­ãéä¿¡ã¬ã¸ã¹ã¿ã«å
+¥ããå ´åã«ã¯trueãï¼åã«éä¿¡ããæå­ã®éä¿¡ãçµãã£
+ã¦ããªãããã«ï¼æå­ãéä¿¡ã¬ã¸ã¹ã¿ã«å
+¥ããããªãã£ãå ´åã«ã¯falseãè¿ãï¼
+
+(8-3-2-4) int_t sio_rcv_chr(SIOPCB *siopcb)
+
+siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããæå­ãèª­ãé¢æ°ï¼æå­ãåä¿¡ãã¦ã
+ãå ´åï¼èª­ãã æå­ã®ã³ã¼ãã¯æ­£ã®å¤ã¨ãã¦è¿ãï¼æå­ãåä¿¡ãã¦ããªãå ´å
+ã«ã¯-1ãè¿ãï¼
+
+(8-3-2-5) void sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
+
+siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
+ã¯ãè¨±å¯ããï¼cbrtnã«ã¯ï¼SIO_RDY_SNDãSIO_RDY_RCVãæå®ã§ããï¼
+
+(8-3-2-6) void sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
+
+siopcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãããã®ï¼cbrtnã§æå®ãããã³ã¼ã«ãã
+ã¯ãç¦æ­¢ããï¼cbrtnã«ã¯ï¼SIO_RDY_SNDãSIO_RDY_RCVãæå®ã§ããï¼
+
+8.3.3 ã³ã¼ã«ããã¯ã«ã¼ãã³
+
+ã¿ã¼ã²ããä¾å­é¨ã¯ï¼å¿
+è¦ãªã¿ã¤ãã³ã°ã§ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+ã®ã¿ã¼ã²ããéä¾å­é¨ã«å«ã¾ããä»¥ä¸ã®ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã³ã ã
+ãªããã°ãªããªãï¼ãã ãï¼ããããã®ã³ã¼ã«ããã¯ãç¦æ­¢ããã¦ããæã¯ï¼
+ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãã¦ã¯ãªããªãï¼
+
+ã³ã¼ã«ããã¯ã«ã¼ãã³ã¯ï¼ï¼å°ãªãã¨ãï¼ã·ãªã¢ã«I/Oãã¼ãããã®å²è¾¼ã¿ãç¦
+æ­¢ãããç¶æ
+ã§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å¼ã³åºãï¼exinfã«ã¯ï¼ã·ãªã¢ã«I/O
+ãã¼ãã®ãªã¼ãã³æã«æå®ãããæ¡å¼µæ
+å ±ãæ¸¡ãï¼
+
+(8-3-3-1) void sio_irdy_snd(intptr_t exinf)
+
+éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãã«å¯¾ãã¦æå­ãéä¿¡ã§ãã
+ç¶æ
+ã«ãªã£ãå ´åã«å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼
+ã«ããã¯ã«ã¼ãã³ã®ä¸­ã§ï¼sio_snd_chrãå¼ã³åºãã¦æ¬¡ã®æå­ãéä¿¡ãããï¼é
+ä¿¡ãã¹ãæå­ããªãå ´åã«ã¯éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ­¢ããï¼
+
+(8-3-3-2) void sio_irdy_rcv(intptr_t exinf)
+
+åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ï¼ã·ãªã¢ã«I/Oãã¼ãããæå­ãåä¿¡ããå ´åã«
+å¼ã³åºãï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã®ã³ã¼ã«ããã¯ã«ã¼ãã³ã®
+ä¸­ã§ï¼å¿
+ãsio_rcv_chrãå¼ã³åºãã¦åä¿¡ããæå­ãåãåºãï¼
+
+8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã¿ã¼ã²ããä¾å­å®ç¾©
+
+ã¿ã¼ã²ããä¾å­é¨ã§æä¾ãã¹ãã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ããã®å®ç¾©ã¯
+æ¬¡ã®éãã§ããï¼
+
+(8-4-1) TARGET_NAME
+
+ã¿ã¼ã²ããã®åç§°ã«å®ç¾©ããï¼
+
+(8-4-2) TARGET_COPYRIGHTï¼ãªãã·ã§ã³ï¼
+
+ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã«ï¼ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºãè¿½å ããããã®
+ãã¯ã­ï¼ããã©ã«ãã§ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºãè¿½å ããªãï¼
+
+8.5 ãµã³ãã«ãã­ã°ã©ã ã¨ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+
+ã¿ã¼ã²ããä¾å­é¨ã§æä¾ãã¹ããµã³ãã«ãã­ã°ã©ã ããã³ãã¹ããã­ã°ã©ã ã®
+ããã®å®ç¾©ã¯æ¬¡ã®éãã§ããï¼ãããã®å®ç¾©ã¯ï¼target_test.hï¼ã¾ãã¯ããã
+ããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«å«ããï¼
+
+(8-5-1) STACK_SIZEï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ããã³ãã¹ããã­ã°ã©ã ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå®ç¾©
+ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯4096ï¼ããã©ã«ãè¨­å®ã§ã¯ã¡ã¢
+ãªãä¸è¶³ããå ´åãï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ã§å¤§ããã¹ã¿ãã¯é åãå¿
+è¦
+ãªå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ãã®ãã¯ã­ãè¨­å®ããã¹ã¿ãã¯ãµã¤ãºã«å®ç¾©
+ããï¼
+
+(8-5-2) CPUEXC1ï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ããã³ãã¹ããã­ã°ã©ã ã§ç¨ããCPUä¾å¤ã®CPUä¾å¤ãã³ã
+ã©çªå·ãå®ç¾©ãããã¯ã­ï¼ãã®ãã¯ã­ãå®ç¾©ããªãå ´åï¼CPUä¾å¤ãã³ãã©ãä½¿
+ãé¨åããµã³ãã«ãã­ã°ã©ã ããé¤å¤ãããï¼CPUä¾å¤ãã³ãã©ã®ãã¹ãããã
+ãã¹ããã­ã°ã©ã ã¯ã³ã³ãã¤ã«ã§ããªãï¼
+
+(8-5-3) RAISE_CPU_EXCEPTIONï¼ãªãã·ã§ã³ï¼
+
+CPUEXC1ã«å®ç¾©ããCPUä¾å¤ãçºçãããCè¨èªã®ãã­ã°ã©ã ãå®ç¾©ãããã¯ã­ï¼
+CPUEXC1ãå®ç¾©ããå ´åã«ã¯å¿
+ãå®ç¾©ããªããã°ãªããªãï¼
+
+(8-5-4) CANNOT_RETURN_CPUEXCï¼ãªãã·ã§ã³ï¼
+
+ã¿ã¼ã²ããã·ã¹ãã ã®å¶ç´ã«ããï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ããå¾ã«ï¼ã¿
+ã¹ã¯ã®å®è¡ãç¶ç¶ã§ããªãå ´åã«å®ç¾©ãããã¯ã­ï¼ãã®ãã¯ã­ãå®ç¾©ããã¨ï¼
+CPUä¾å¤ãã³ãã©ã®ãã¹ãããããã¹ããã­ã°ã©ã ããï¼CPUä¾å¤ãã³ãã©ãã
+ãªã¿ã¼ã³ããå¾ã®å¦çãé¤å¤ãããï¼ãµã³ãã«ãã­ã°ã©ã ã®è©²å½é¨åã¯æ­£ãã
+åä½ããªãï¼
+
+(8-5-5) TASK_PORTIDï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ã«ããã¦ï¼ã³ãã³ãæå­ãèª­ã¿è¾¼ãã·ãªã¢ã«ãã¼ãçªå·ã
+å®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1ï¼
+
+(8-5-6) LOOP_REFï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ã«ããã¦ï¼ãã­ã»ããµã®éåº¦ãè¨æ¸¬ããããã®ã«ã¼ãåæ°
+ãå®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©ã«ãå¤ã¯1000000ï¼ããã©ã«ãè¨­å®
+ã§ã¯ï¼å¤ãå¤§ãéãã¦è¨æ¸¬ã«æéãããããããå ´åãï¼å¤ãå°ãéãã¦è¨æ¸¬
+çµæãå®å®ããªãå ´åã«ï¼ã¿ã¼ã²ããä¾å­é¨ã§ãã®ãã¯ã­ãè¨­å®ããã«ã¼ãå
+æ°ã«å®ç¾©ããï¼
+
+(8-5-7) MEASURE_TWICEï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ã«ããã¦ï¼ãã­ã»ããµã®éåº¦ã2åº¦è¨æ¸¬ããå ´åã«å®ç¾©ãã
+ãã¯ã­ï¼ã·ãã¥ã¬ã¼ã·ã§ã³ç°å¢ãªã©ãã­ã»ããµã®éåº¦ãå¤åããç°å¢ã§ï¼1åº¦ã®
+è¨æ¸¬ã§ã¯è¨æ¸¬çµæãå®å®ããªãå ´åã«å®ç¾©ããï¼
+
+(8-5-8) TASK_LOOPï¼ãªãã·ã§ã³ï¼
+
+ãµã³ãã«ãã­ã°ã©ã ã«ããã¦ï¼ãã­ã»ããµã®éåº¦ãè¨æ¸¬ããã«ï¼ã¿ã¹ã¯å
+ã§ã®
+ã«ã¼ãåæ°ãåºå®ããå ´åã«ï¼ã«ã¼ãåæ°ãå®ç¾©ãããã¯ã­ï¼ã«ã¼ãå
+¨ä½ã®å®
+è¡æéã0.4ç§ç¨åº¦ã«ãªããããªã«ã¼ãåæ°ãï¼ãã®ãã¯ã­ã«å®ç¾©ããï¼
+
+8.6 å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+
+å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã®è¨­å®ãã¿ã¼ã²ããä¾å­é¨ã§å¤æ´ããå ´åã«ï¼ã¿ã¼
+ã²ããä¾å­é¨ã§æä¾ãã¹ãå®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã®ããã®å®ç¾©ã¯æ¬¡ã®é
+ãã§ããï¼ãããã®å®ç¾©ã¯ï¼target_test.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ããã
+ããã¡ã¤ã«ï¼ã«å«ããï¼ãã®ä»ã«ï¼ã¿ã¼ã²ããä¾å­ã§å¿
+è¦ãªåæåå¦çããã
+å ´åã«ãï¼ã¿ã¼ã²ããä¾å­é¨ã«å«ããï¼
+
+(8-6-1) HISTTIMï¼ãªãã·ã§ã³ï¼
+
+å®è¡æéè¨æ¸¬ç¨ã®æå»ã®ãã¼ã¿åãå®ç¾©ãããã¯ã­ï¼å®ç¾©ããªãå ´åã®ããã©
+ã«ãã¯SYSUTMï¼
+
+(8-6-2) void HIST_GET_TIM(HISTTIM *p_time)ï¼ãªãã·ã§ã³ï¼
+
+å®è¡æéè¨æ¸¬ç¨ã®ç¾å¨æå»ã*p_timeã«åå¾ããå¦çã«å®ç¾©ãããã¯ã­ï¼å®ç¾©ã
+ãªãå ´åã®ããã©ã«ãã¯get_utmï¼
+
+(8-6-3) uint_t HIST_CONV_TIM(HISTTIM time)ï¼ãªãã·ã§ã³ï¼
+
+å®è¡æéè¨æ¸¬ç¨ã®æå»ã®å·®ï¼æéï¼ãï¼å®è¡æéåå¸éè¨ç¨ã®å¤ã«å¤æããå¦
+çã«å®ç¾©ãããã¯ã­ï¼æå»ãéå»ã«æ»ã£ãããªã¼ããã­ã¼ãããã®åºå¥ãã¤ã
+ãªãå ´åã«ã¯ï¼æä¸ä½ãããã1ã®å¤ï¼INT_MAXãããå¤§ããå¤ï¼ãè¿ãï¼å®ç¾©
+ããªãå ´åã®ããã©ã«ãã¯ï¼timeãuint_tã«ã­ã£ã¹ãããå¦çï¼
+
+(8-6-4) void HIST_BM_HOOK(void)ï¼ãªãã·ã§ã³ï¼
+
+å®è¡æéè¨æ¸¬ç´åã«è¡ãã¹ãå¦çã«å®ç¾©ãããã¯ã­ï¼ã­ã£ãã·ã¥ã®ãã¼ã¸ããã£
+ã«ï¼ã¡ã¢ãªããªã¢å¦çç­ãè¡ãããå ´åã«ã¯ï¼ãã®ãã¯ã­ã«å®ç¾©ããï¼å®ç¾©ã
+ãªãå ´åã®ããã©ã«ãã¯ï¼ç©ºã®å¦çã«ãªãï¼
+
+
+ï¼ï¼ãã®ä»
+
+9.1 ãã­ã¥ã¡ã³ã
+
+ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãï¼target_user.txtã«ç¨æããï¼ã
+ã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãåãåãã¦ãã
+ããï¼ãã¡ã¤ã«ãå¤§ãããªãå ´åã«ã¯è¤æ°ã®ãã¡ã¤ã«ã«åå²ãã¦ãããï¼ãã®
+å ´åã«ã¯ï¼target_user.txtä¸­ã«ãããã®ãã¡ã¤ã«åãè¨è¿°ãããã¨ï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«ã¯ï¼å°ãªãã¨ãæ¬¡ã®ãããªå
+å®¹ã
+è¨è¿°ãããã¨ãæã¾ããï¼
+
+(1) å¯¾å¿ãã¦ããã¿ã¼ã²ããã·ã¹ãã ã®ç¨®é¡ã»æ§æï¼ãã¼ã¸ã§ã³çªå·
+	ã»ã¿ã¼ã²ãããã¼ãã¦ã§ã¢ï¼ãã¼ãç­ï¼ã®åç§°ã¨å¯¾å¿ãã¦ããæ§æ
+	ã»ã¿ã¼ã²ããç¥ç§°
+	ã»ã¿ã¼ã²ããéä¾å­é¨ã®ãã¼ã¸ã§ã³çªå·
+	ã»ãã­ã»ããµï¼ãããï¼éçºç°å¢ä¾å­é¨ã®æ§æã¨ãã¼ã¸ã§ã³çªå·
+	ã»ä½¿ç¨ããPDICã¨ãã¼ã¸ã§ã³çªå·
+
+(2) ä½¿ç¨ããéçºç°å¢ã¨åä½æ¤è¨¼ããæ¡ä»¶ï¼ãã¼ã¸ã§ã³ï¼ãªãã·ã§ã³ç­ï¼
+	ã»è¨èªå¦çç³»ï¼ã³ã³ãã¤ã©ï¼ã¢ã»ã³ãã©ï¼ãªã³ã«ç­ï¼
+	ã»ãããã°ç°å¢
+
+(3) ã¿ã¼ã²ããå®ç¾©äºé 
+ã®è¦å®
+
+(3-1) ãã¼ã¿åã«é¢ããè¦å®
+	ã»int_tåï¼long_tåã®ãµã¤ãº
+	ã»charåï¼int_least8_tåï¼void *åï¼intptr_tåã®ãµã¤ãº
+	ã»int8_tåï¼uint8_tåï¼int64_tåï¼uint64_tåï¼int128_tåï¼
+	ãuint128_tåï¼float32_tåï¼double64_tåã®ãµãã¼ãã®æç¡
+
+(3-2) å²è¾¼ã¿å¦çã«é¢ããè¦å®
+	ã»å²è¾¼ã¿ãã³ãã©çªå·ã¨å²è¾¼ã¿çªå·ã®å²å½ã¦ï¼ä¸¡è
+ã®å¯¾å¿
+	ã»å²è¾¼ã¿åªå
+åº¦ã®æ®µéæ°ï¼TMIN_INTPRIã®å¤ï¼
+	ã»dis_intã¨ena_intã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé 
+
+	ã»CFG_INTã®å¶éäºé 
+ã¨æ¡å¼µï¼ã¿ã¼ã²ããå®ç¾©ã§ä½¿ç¨ã§ããå²è¾¼ã¿å±æ§ï¼
+	ã»TOPPERSæ¨æºå²è¾¼ã¿å¦çã¢ãã«ããã®ãã®ä»ã®é¸è±
+	ã»ããã©ã«ãã®å²è¾¼ã¿ãã³ãã©ï¼default_int_handlerï¼ã®æç¡ã¨å¦çå
+å®¹
+
+(3-3) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«é¢ããè¦å®
+	ã»TMIN_INTPRIã¯åºå®ãè¨­å®ã§ãããï¼ãã®è¨­å®æ¹æ³
+	ã»NMIä»¥å¤ã«ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãè¨­ãããï¼è¨­ããããããã«ãããï¼
+	ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨­å®æ¹æ³
+	ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã«å¯¾ãã¦DEF_INHï¼CFG_INTããµãã¼ãããã
+	ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ãå®è¡éå§ãããæã®ã·ã¹ãã ç¶æ
+ã¨
+	ãã³ã³ãã­ã¹ã
+	ã»å²è¾¼ã¿ãã³ãã©ã®çµäºæã«è¡ãããå¦ç
+	ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã®è¨è¿°æ¹æ³
+	ã»ã«ã¼ãã«å
+ã®å²è¾¼ã¿åºå
+¥å£å¦çã§èµ·ããå¯è½æ§ã®ããCPUä¾å¤
+
+(3-4) CPUä¾å¤å¦çã«é¢ããè¦å®
+	ã»CPUä¾å¤ãã³ãã©çªå·ã®å²å½ã¦
+	ã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãTMIN_INTPRIã¨åãããããããé«ãå¤ã«è¨­å®ãã¦
+	ãããç¶æ
+ã§çºçããCPUä¾å¤ãï¼ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã¨æ±ãã
+	ã»ã«ã¼ãã«å
+ã®CPUä¾å¤åºå
+¥å£å¦çã§èµ·ããå¯è½æ§ã®ããCPUä¾å¤
+	ã»ããã©ã«ãã®CPUä¾å¤ãã³ãã©ï¼default_exc_handlerï¼ã®æç¡ã¨å¦çå
+å®¹
+
+(3-5) æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§ã«é¢ããè¦å®
+	ã»get_utmã®ãµãã¼ãã®æç¡ï¼ãã®å¶éäºé 
+
+
+(3-6) æ¡å¼µããã±ã¼ã¸ã«é¢ããè¦å®
+	ã»åæ¡å¼µããã±ã¼ã¸ã®ãµãã¼ãã®æç¡
+		- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸
+		- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸
+		- ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸
+		- å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸
+		- åççææ©è½æ¡å¼µããã±ã¼ã¸
+	ã»ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ï¼ãã­ã»ã
+	ããµæéã«æå®ã§ããå¤ã®æå¤§å¤ï¼TMAX_OVRTIMã®å¤ï¼
+	ã»åççææ©è½æ¡å¼µããã±ã¼ã¸ããµãã¼ãããå ´åã«ï¼åçã¡ã¢ãªç®¡çã®
+	ãæ¹æ³
+
+(3-7) ãã®ä»
+	ã»ãã®ä»ã®å¶éäºé 
+
+	ã»ãã®ä»ã®æ¡å¼µæ©è½
+
+(4) ã«ã¼ãã«ã®èµ·åï¼çµäºå¦çã«é¢ããæ
+å ±
+	ã»ç¨æãã¦ããã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®å¦çå
+å®¹
+	ã»ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããhardware_init_hookãå¼ã³åºãã¦ããå ´
+	ãåã«ã¯ï¼hardware_init_hookãã¢ããªã±ã¼ã·ã§ã³ã§ç¨æããå ´åã®ä½æ
+	ãæ¹æ³ãå¶éäºé 
+ãªã©
+	ã»ã«ã¼ãã«ãçµäºããå¾ã®æ¯èã
+
+(5) ã¡ã¢ãªããã
+	ã»ããã©ã«ãã®ã¡ã¢ãªãããï¼ãã®å¤æ´æ¹æ³
+
+(6) ã¿ã¤ããã©ã¤ãé¢é£ã®æ
+å ±
+	ã»ã¿ã¤ã ãã£ãã¯ã®å¨æï¼ãã®å¤æ´æ¹æ³
+	ã»ä½¿ç¨ãããªã½ã¼ã¹ï¼ã¿ã¤ãï¼
+	ã»ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ã®å¤æ´æ¹æ³
+	ã»ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ã®å²è¾¼ã¿åªå
+åº¦ã®å¤æ´æ¹æ³
+
+(7) ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®æ
+å ±
+	ã»ä½¿ç¨ãããªã½ã¼ã¹ï¼SIOã³ã³ãã­ã¼ã©ï¼
+	ã»éä¿¡ãã©ã¡ã¼ã¿ï¼ãã¼ã¬ã¼ãï¼ãããæ°ï¼ããªãã£ã®æç¡ï¼ã¹ããããããï¼
+
+(8) ã·ã¹ãã ã­ã°æ©è½ã®æ
+å ±
+	ã»ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®å®ç¾æ¹æ³
+	ã»éä¿¡ãã©ã¡ã¼ã¿ï¼ãã¼ã¬ã¼ãï¼ãããæ°ï¼ããªãã£ã®æç¡ï¼ã¹ããããããï¼
+
+(9) ã·ã¹ãã æ§ç¯æé 
+
+(10) ã¿ã¼ã²ããã·ã¹ãã åºæã®æ³¨æäºé 
+
+	ã»ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«å«ã¾ããã¬ã¸ã¹ã¿ï¼å«ã¾ããªãã¬ã¸ã¹ã¿
+
+(11) é¡ä¼¼ã®ã¿ã¼ã²ããã«ãã¼ãã£ã³ã°ããéçºè
+åãã®åèæ
+å ±
+
+(12) ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ
+
+(13) ãã¼ã¸ã§ã³å±¥æ­´
+
+ã¾ãï¼å¿
+è¦ã«å¿ãã¦ï¼ã¿ã¼ã²ããä¾å­é¨ã®è¨­è¨ã¡ã¢ãï¼target_design.txtã«ç¨
+æããï¼ãã­ã»ããµã»ãããã»éçºç°å¢ä¾å­é¨ã«é¢ããè¨­è¨ã¡ã¢ãåãåãã¦
+ããããï¼ãã¡ã¤ã«ãå¤§ãããªãå ´åã«ã¯è¤æ°ã®ãã¡ã¤ã«ã«åå²ãã¦ããããï¼
+ãã®å ´åã«ã¯ï¼target_design.txtä¸­ã«ãããã®ãã¡ã¤ã«åãè¨è¿°ãããã¨ï¼
+
+9.2 ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«
+
+ãªãªã¼ã¹ããã±ã¼ã¸ï¼åå¥ããã±ã¼ã¸ããã³ç°¡æããã±ã¼ã¸ï¼ãä½æãããã
+ã«ï¼ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ãè¨è¿°ããããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãç¨æã
+ãï¼ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®åç§°ã¯ï¼åå¥ããã±ã¼ã¸ç¨ãMANIFESTï¼ç°¡æãã
+ã±ã¼ã¸ç¨ãE_PACKAGEã¨ããï¼
+
+ä¾ãã°ï¼arch/arm_gccãã£ã¬ã¯ããªã«ç½®ãããMANIFESTãã¡ã¤ã«ãç¨ãã¦åå¥
+ããã±ã¼ã¸ãä½æããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããï¼
+
+	% utils/makerelease arch/arm_gcc/MANIFEST
+
+ãã®ã³ãã³ãã«ããï¼RELEASE/asp_arch_arm_gcc-<ãã¼ã¸ã§ã³çªå·>.tar.gzã
+ä½æãããï¼ã¾ãï¼target/at91skyeye_gccãã£ã¬ã¯ããªã«ç½®ãããE_PACKAGE
+ãã¡ã¤ã«ãç¨ãã¦ç°¡æããã±ã¼ã¸ãä½æããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ã
+ãï¼
+
+	% utils/makerelease target/at91skyeye_gcc/E_PACKAGE
+
+ãã®ã³ãã³ãã«ããï¼RELEASE/asp_at91skyeye_gcc-<ãã¼ã¸ã§ã³çªå·>.tar.gz
+ãä½æãããï¼RELEASEãã£ã¬ã¯ããªããªãå ´åã«ã¯ï¼ãã£ã¬ã¯ããªãä½ãã
+ãï¼ï¼
+
+ãªãï¼makereleaseã¦ã¼ãã£ãªãã£ã¯ï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãç½®ãã
+ããã£ã¬ã¯ããªãï¼aspã¨ããåç§°ã§ãããã¨ãä»®å®ãã¦ããï¼ç°ãªãåç§°ã®å ´
+åã§ãããã±ã¼ã¸ã¯ä½æã§ãããï¼ããã±ã¼ã¸ãå±éããæã«å±éããããã£
+ã¬ã¯ããªãaspã§ãªããªãï¼ï¼ã¾ãï¼æ¨æºã®tarã³ãã³ããGNU tarã§ãããã¨
+ï¼æ­£ç¢ºã«ã¯ï¼zãªãã·ã§ã³ã«å¯¾å¿ãã¦ãããã¨ï¼ãæ³å®ãã¦ããï¼
+
+ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã«ã¯ï¼ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«åãï¼ããã±ã¼ã¸
+è¨è¿°ãã¡ã¤ã«ãç½®ããããã£ã¬ã¯ããªããã®ç¸å¯¾ãã¹åã§ï¼1è¡ã«1ã¤ãã¤è¨è¿°
+ããï¼ã¾ãï¼å¿
+è¦ã«å¿ãã¦ï¼ä»¥ä¸ã®ãã£ã¬ã¯ãã£ããå«ããï¼
+
+(a) E_PACKAGE <ç°¡æããã±ã¼ã¸å>
+
+ç°¡æããã±ã¼ã¸åãæå®ããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ï¼E_PACKAGEï¼ã®å
+
+é ­ã«è¨è¿°ããï¼ç°¡æããã±ã¼ã¸åã¯ï¼asp_<ã¿ã¼ã²ããç¥ç§°>ã¨ããï¼ä¾ãã°ï¼
+ã¿ã¼ã²ããç¥ç§°ãat91skyeye_gccã®å ´åã«ã¯ï¼asp_at91skyeye_gccã¨ãªãï¼å
+å¥ããã±ã¼ã¸ã¨åºå¥ããããã«ï¼ç°¡æããã±ã¼ã¸ã®ãã¡ã¤ã«åã«ã¯"target"ã
+å«ããªãï¼
+
+(b) PACKAGE <åå¥ããã±ã¼ã¸å>
+
+åå¥ããã±ã¼ã¸åãæå®ããï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ï¼MANIFESTï¼ã®å
+
+é ­ã«è¨è¿°ããï¼ã¾ãï¼ããããã¤ã³ã¯ã«ã¼ããããåãã¡ã¤ã«ã®å
+é ­ã«ãè¨è¿°
+ãï¼ãããã¤ã³ã¯ã«ã¼ããã¦ããåå¥ããã±ã¼ã¸åãæå®ããï¼ã¿ã¼ã²ããä¾
+å­é¨ã®åå¥ããã±ã¼ã¸åã¯ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãç½®ããããã£ã¬ã¯
+ããªã®ç¸å¯¾ãã¹ä¸­ã®"/"ã"_"ã«ç½®ãæããæå­åãï¼"asp_"ã®å¾ã«ã¤ãªããã
+ã®ã¨ããï¼ä¾ãã°ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãarch/arm_gcc/MANIFESTã®å ´
+åã«ã¯ï¼asp_arch_arm_gccã¨ãªãï¼
+
+(c) VERSION <ãã¼ã¸ã§ã³çªå·>
+
+ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³çªå·ãæå®ããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ããã³
+åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®ä¸­ã«è¨è¿°ããï¼ç°¡æããã±ã¼ã¸ã«ããã¦ï¼ãã¼
+ã¸ã§ã³çªå·ãããã±ã¼ã¸åããæ¥ä»ã¨ããå ´åã«ã¯ï¼ããã±ã¼ã¸çªå·ã®ä»£ãã
+ã«%dateã¨è¨è¿°ããï¼
+
+ãã¼ã¸ã§ã³çªå·ã®ä»ä¸æ¹æ³ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASPã«ã¼ãã« ã¦ã¼ã¶ã¼ãºã
+ãã¥ã¢ã«ãã®ã2.2 ç°¡æããã±ã¼ã¸ãããã³ã2.3 åå¥ããã±ã¼ã¸ãã®ç¯ãå
+ç
+§ãããã¨ï¼
+
+(d) INCLUDE <ãã¡ã¤ã«å>
+
+å¥ã®ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããï¼ç°¡æããã±ã¼ã¸è¨è¿°ãã¡ã¤
+ã«ããã¯ï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ã®ã¿ãã¤ã³ã¯ã«ã¼ãããã®ãååã¨ã
+ãï¼åå¥ããã±ã¼ã¸è¨è¿°ãã¡ã¤ã«ããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ä¸­ã§æå®ã
+ããåå¥ããã±ã¼ã¸åã¯ï¼ãã¹ã¦ä¸è´ãã¦ããªããã°ãªããªãï¼
+
+
+ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
+
+10.1 ã¿ã¼ã²ããä¾å­é¨ã®ãã¡ã¤ã«ä¸è¦§
+
+æ¨æºçãªã¿ã¼ã²ããä¾å­é¨ã®ãã¡ã¤ã«æ§æã¯æ¬¡ã®éãã§ããï¼
+
+Makefile.target		Makefileã®ã¿ã¼ã²ããä¾å­é¨ï¼ï¼ç« ï¼ï¼
+target_offset.tf	ãªãã»ãããã¡ã¤ã«çæç¨ãã³ãã¬ã¼ããã¡ã¤ã«ï¼2.5.1ç¯ï¼
+					ãªãã·ã§ã³ï¼
+
+target_stddef.h		TOPPERSå
+±éå®ç¾©ï¼t_stddef.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ï¼ï¼
+					ç« ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼
+					ããããï¼
+target_sil.h		ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ï¼sil.hï¼ã®ã¿ã¼ã²ããä¾
+					å­é¨ï¼ï¼ç« ï¼ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ãã
+					ã¤ã³ã¯ã«ã¼ããããï¼
+target_kernel.h		ã«ã¼ãã«APIï¼kernel.hï¼ã®ã¿ã¼ã²ããä¾å­é¨ï¼ï¼ç« ï¼ï¼
+					ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼ãã
+					ããï¼
+
+target_config.h		ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ããããã¡ã¤ã«ï¼ï¼
+					ç« ï¼ï¼ã«ã¼ãã«ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼
+target_config.c		ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®Cè¨èªã§è¨è¿°ããã
+					é¨åï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼ï¼
+target_support.S	ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¢ã»ã³ããªè¨èªã§è¨
+					è¿°ãããé¨åï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼ï¼
+target_rename.def	ã«ã¼ãã«å®è£
+ã®ã¿ã¼ã²ããä¾å­é¨ã®ããã®ãªãã¼ã è¨è¿°
+					ï¼6.12ç¯ï¼ï¼
+target_rename.h		target_rename.defããçæããããã¡ã¤ã«ï¼6.12ç¯ï¼ï¼
+target_unrename.h	target_rename.defããçæããããã¡ã¤ã«ï¼6.12ç¯ï¼ï¼
+target_timer.cfg	ã¿ã¤ããã©ã¤ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡
+					ã¤ã«ï¼6.13ç¯ï¼ï¼
+target_timer.h		ã¿ã¤ããã©ã¤ãã®ããããã¡ã¤ã«ï¼6.13ç¯ï¼ï¼ã«ã¼ãã«
+					ã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼
+target_timer.c		ã¿ã¤ããã©ã¤ãã®å®è£
+ãã¡ã¤ã«ï¼6.13ç¯ï¼ãªãã·ã§ã³ï¼ï¼
+ã·ã¹ãã ç¥ç§°.h		ã¿ã¼ã²ããã®ãã¼ãã¦ã§ã¢è³æºï¼å²è¾¼ã¿ãã³ãã©çªå·ã
+					CPUä¾å¤ãã³ãã©çªå·ï¼ããã¤ã¹ã¬ã¸ã¹ã¿ã®çªå°ãªã©ï¼ã®
+					å®ç¾©ãå«ãããããã¡ã¤ã«ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ã
+					ã«ã®ä¸¡æ¹ããã¤ã³ã¯ã«ã¼ããããï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼ï¼
+
+target_def.csv		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤åå¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ã
+					ãä¾å­é¨ï¼ï¼ç« ï¼ãªãã·ã§ã³ï¼ï¼
+target.tf			ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®
+					ã¿ã¼ã²ããä¾å­é¨ï¼7.2ç¯ï¼ï¼
+target_check.tf		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ï¼7.3
+					ç¯ï¼ï¼
+target_cfg1_out.h	cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©ãã¡ã¤ã«ï¼7.4
+					ç¯ï¼ï¼
+
+target_syssvc.h		ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼8.0ç¯ï¼ï¼
+target_serial.cfg	ã·ãªã¢ã«ãã©ã¤ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡
+					ã¤ã«ï¼8.3ç¯ï¼ï¼
+target_serial.h		ã·ãªã¢ã«ãã©ã¤ãã®ããããã¡ã¤ã«ï¼8.3ç¯ï¼ï¼ã·ãªã¢ã«
+					ãã©ã¤ãã®ã¿ããã¤ã³ã¯ã«ã¼ããããï¼
+target_serial.c		ã·ãªã¢ã«ãã©ã¤ãã®å®è£
+ãã¡ã¤ã«ï¼8.3ç¯ï¼ãªãã·ã§ã³ï¼ï¼
+target_test.h		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼8.4ç¯ï¼ï¼
+
+target_user.txt		ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ï¼9.1ç¯ï¼
+target_design.txt	è¨­è¨ã¡ã¢ï¼9.1ç¯ï¼ãªãã·ã§ã³ï¼
+MANIFEST			åå¥ããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ã®ãªã¹ãï¼9.2ç¯ï¼ãªã
+					ã·ã§ã³ï¼
+E_PACKAGE			ç°¡æããã±ã¼ã¸ã«å«ãããã¡ã¤ã«ã®ãªã¹ãï¼9.2ç¯ï¼ãªã
+					ã·ã§ã³ï¼
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/user.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/user.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/user.txt	(revision 313)
@@ -0,0 +1,2669 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2017å¹´4æ29æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ãä½¿ç¨ããããã«å¿
+è¦ãªäºé 
+ãèª¬æ
+ãããã®ã§ããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+âç®æ¬¡
+
+ï¼ï¼TOPPERS/ASPã«ã¼ãã«ã®æ¦è¦
+	1.1 TOPPERS/ASPã«ã¼ãã«ã®ä½ç½®ä»ã
+	1.2 TOPPERS/ASPã«ã¼ãã«ã®ä»æ§
+	1.3 ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ã
+	1.4 æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ã
+	1.5 æ¢ç¥ã®åé¡
+	1.6 Cygwinç°å¢ã«ãããæ³¨æäºé 
+
+ï¼ï¼ã¿ã¼ã²ããä¾å­é¨
+	2.1 ã¿ã¼ã²ããä¾å­é¨ã®æ¦è¦
+	2.2 ç°¡æããã±ã¼ã¸
+	2.3 åå¥ããã±ã¼ã¸
+ï¼ï¼ã¯ã¤ãã¯ã¹ã¿ã¼ãã¬ã¤ã
+	3.1 éçºç°å¢ã®æºå
+	3.2 ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®æ§ç¯
+	3.3 ãµã³ãã«ãã­ã°ã©ã ã®æ§ç¯ã¨å®è¡
+	3.4 ã«ã¼ãã«ãé¢æ°åä½ã§ã©ã¤ãã©ãªåããæ¹æ³
+	3.5 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥ã
+ã«æ§ç¯ããæ¹æ³
+ï¼ï¼ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ
+	4.1 é
+å¸ããã±ã¼ã¸ã®ãã£ã¬ã¯ããªæ§æ
+	4.2 ã¿ã¼ã²ããéä¾å­é¨ã®ãã¡ã¤ã«æ§æ
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ä½¿ãæ¹
+ï¼ï¼Makefileã®ä¿®æ­£æ¹æ³
+	6.1 Makefileã®å¤æ°å®ç¾©
+	6.2 ã³ã³ãã¤ã«ãªãã·ã§ã³
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä½¿ãæ¹
+ï¼ï¼ã·ã¹ãã ãµã¼ãã¹
+	8.1 ã·ã¹ãã ã­ã°æ©è½
+		8.1.1 ã·ã¹ãã ã­ã°æ©è½ã®ä½ç½®ä»ã
+		8.1.2 ã­ã°ãããã¡ã¸ã®è¨é²ã¨ä½ã¬ãã«åºå
+		8.1.3 ã­ã°æ
+å ±ã®ç¨®å¥
+		8.1.4 ã­ã°æ
+å ±ã®éè¦åº¦
+		8.1.5 ã­ã°æ
+å ±ã®ãã¼ã¿æ§é 
+		8.1.6 ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«
+		8.1.7 ã·ã¹ãã ã­ã°æ©è½ã®ããã®ã©ã¤ãã©ãªé¢æ°ã¨ãã¯ã­
+		8.1.8 ã·ã¹ãã ã­ã°æ©è½ã®ãã®ä»ã®ãµã¼ãã¹
+	8.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+		8.2.1 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«
+		8.2.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãã®ä»ã®ãµã¼ãã¹
+	8.3 ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+		8.3.1 ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãµã¼ãã¹ã³ã¼ã«
+		8.3.2 ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãã®ä»ã®ãµã¼ãã¹
+	8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+ï¼ï¼ãµãã¼ãã©ã¤ãã©ãª
+	9.1 åºæ¬çãªã©ã¤ãã©ãªé¢æ°
+	9.2 ã­ã¥ã¼æä½ã©ã¤ãã©ãªé¢æ°
+	9.3 ã·ã¹ãã ã­ã°åºåç¨ã©ã¤ãã©ãªé¢æ°
+	9.4 å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+ï¼ï¼ï¼ãã¹ããã­ã°ã©ã 
+	10.1 ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãª
+	10.2 ã«ã¼ãã«ã®æ´åæ§æ¤æ»
+	10.3 æ©è½ãã¹ããã­ã°ã©ã 
+	10.4 æ§è½è©ä¾¡ãã­ã°ã©ã 
+ï¼ï¼ï¼ä½¿ç¨ä¸ã®æ³¨æã¨ãã³ã
+	11.1 ã¿ã¤ããã©ã¤ãã®çµè¾¼ã¿
+	11.2 assertãã¯ã­ã®å¦ç
+	11.3 ã·ã¹ãã ã­ã°æ©è½ã®æ±ã
+	11.4 ãªãã¸ã§ã¯ãIDã®ç®¡ç
+	11.5 ã«ã¼ãã«ã®å
+é¨ã·ã³ãã«ã®ãªãã¼ã 
+	11.6 ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³
+	11.7 ã·ã¹ãã ã®èµ·åæã®åæåå¦ç
+	11.8 rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´å
+ï¼ï¼ï¼åèæ
+å ±
+	12.1 å©ç¨æ¡ä»¶ã¨å©ç¨å ±å
+	12.2 ä¿è¨¼ã»é©ç¨æ§ã»ãµãã¼ã
+	12.3 ãã°ã¬ãã¼ã
+	12.4 ã¦ã§ããµã¤ã
+	12.5 TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³ã°ãªã¹ã
+	12.6 TOPPERSãã­ã¸ã§ã¯ãã®ã¡ã³ãåãã®ãµã¼ãã¹
+	12.7 TOPPERSãã­ã¸ã§ã¯ãã¸ã®åå 
+ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
+	13.1 ãµã¼ãã¹ã³ã¼ã«ä¸è¦§
+	13.2 éçAPIä¸è¦§
+	13.3 ãã¼ã¸ã§ã³å±¥æ­´
+
+
+ï¼ï¼TOPPERS/ASPã«ã¼ãã«ã®æ¦è¦
+
+1.1 TOPPERS/ASPã«ã¼ãã«ã®ä½ç½®ä»ã
+
+TOPPERS/ASPã«ã¼ãã«ï¼ä»¥ä¸ï¼ASPã«ã¼ãã«ï¼ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ã®åºç¤
+ã¨ãªããã®ã¨ãã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«ããã¦éçºãããªã¢ã«ã¿ã¤ã ã«ã¼ã
+ã«ã§ããï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«æºæ ã®ãªã¢ã«ã¿ã¤ã ã«ã¼
+ãã«ã§ããTOPPERS/JSPã«ã¼ãã«ãæ¡å¼µã»æ¹è¯ããå½¢ã§éçºããï¼
+
+1.2 TOPPERS/ASPã«ã¼ãã«ã®ä»æ§
+
+ASPã«ã¼ãã«ã®ä»æ§ã®æ¦è¦ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASPã«ã¼ãã«ã®ä»æ§æ¦è¦ãã
+åç
+§ãããã¨ï¼ã¾ãï¼ASPã«ã¼ãã«ãå«ãTOPPERSæ°ä¸ä»£ã«ã¼ãã«ã®ä»æ§ã®è©³ç´°
+ã«ã¤ãã¦ã¯ï¼å¥éPDFãã¡ã¤ã«ã®å½¢ã§é
+å¸ãã¦ãããTOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±
+åä»æ§æ¸ï¼Release 1.7.1ï¼ããåç
+§ãããã¨ï¼
+
+1.3 ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ã
+
+å¾æ¥ã®TOPPERSã«ã¼ãã«ãä»ã®Î¼ITRON4.0ä»æ§æºæ ã®ã«ã¼ãã«ããï¼TOPPERSæ°
+ä¸ä»£ã«ã¼ãã«ã«ç§»è¡ããããã®æ¹æ³ï¼ã¾ãã¯ãã³ãï¼ãèª¬æãããTOPPERSæ°ä¸
+ä»£ã«ã¼ãã«ã¸ã®ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ãããï¼å¥éPDFãã¡ã¤ã«ã®å½¢ã§é
+å¸ãã¦
+ããï¼å¿
+è¦ã«å¿ãã¦åç
+§ãããã¨ï¼
+
+1.4 æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ã
+
+TOPPERS/ASPã«ã¼ãã«ãï¼æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ããããã®æ¹æ³ï¼ã¾ãã¯ãã³
+ãï¼ãèª¬æãããæ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ãããç¨æãã¦ããï¼æ¡å¼µãã
+ã±ã¼ã¸ã®ä½¿ç¨æ¹æ³ã¯ï¼ãæ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ããã«å«ã¾ãã¦ããï¼å¿
+
+è¦ã«å¿ãã¦åç
+§ãããã¨ï¼
+
+1.5 æ¢ç¥ã®åé¡
+
+å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
+é ­çªå°ï¼ATT_ISRã®isrï¼ï¼å²è¾¼ã¿ãã³ãã©ã®å
+é ­
+çªå°ï¼DEF_INHã®inthdrï¼ï¼CPUä¾å¤ãã³ãã©ã®å
+é ­çªå°ï¼DEF_EXCã®exchdrï¼ï¼
+åæåã«ã¼ãã³ã®å
+é ­çªå°ï¼ATT_INIã®inirtnï¼ï¼çµäºå¦çã«ã¼ãã³ã®å
+é ­çªå°
+ï¼ATT_TERã®terrtnï¼ããã­ã°ã©ã ã®éå§çªå°ã¨ãã¦æ­£ãããªãå ´åã®ã¨ã©ã¼ã¯ï¼
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«æ¤åºãããªãå ´åãããï¼ã¿ã¼ã²ããã«ä¾å­ï¼ï¼
+
+kernel_cfg.cï¼ããã³cfg1_out.cï¼ã¯ï¼ã«ã¼ãã«ï¼ã·ã¹ãã ãµã¼ãã¹ï¼ã¢ããª
+ã±ã¼ã·ã§ã³ã®ãããã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ããï¼ãããã®ã·ã³
+ãã«ãåç
+§ããå¯è½æ§ãããï¼ãã®ããï¼ã«ã¼ãã«ï¼ã·ã¹ãã ãµã¼ãã¹ï¼ã¢ã
+ãªã±ã¼ã·ã§ã³ã§ã·ã³ãã«ç­ãè¡çªãã¦ããå ´åãï¼ã³ã³ãã¤ã«ãªãã·ã§ã³ãé£
+ãéã£ã¦ããå ´åã«ï¼kernel_cfg.cï¼ããã³cfg1_out.cï¼ãæ­£ããã³ã³ãã¤ã«
+ã§ããªããªãå ´åãèããããï¼ã«ã¼ãã«ã®ã·ã³ãã«ããªãã¼ã ãããªã©ã®æ¹
+æ³ã§è»½æ¸ããã¦ã¯ãããï¼åé¡ããªããªã£ã¦ããããã§ã¯ãªãï¼
+
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãã
+INCLUDEãã£ã¬ã¯ãã£ãã«ããä»ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼
+ããã¦ããå ´åã«ï¼ãã®ä¸­ã«å«ã¾ããCè¨èªããªãã­ã»ããµã®ã¤ã³ã¯ã«ã¼ããã£
+ã¬ã¯ãã£ãï¼#includeï¼ã§ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ç½®ããã¦ãã
+ãã£ã¬ã¯ããªãï¼ãã¡ã¤ã«ãæ¤ç´¢ãããã¹ã«ã¯ãããªãã¨ããåé¡ãããï¼ä¾
+ãã°ï¼syssvc/syslog.cfgã«ã#include "syslog.h"ãã¨è¨è¿°ã§ããªãã®ã¯ï¼ã
+ã®åé¡ãããããã§ããï¼
+
+ç¾æç¹ã§ã¯ï¼ã¢ãã¬ã¹ã64ãããã®ç°å¢ã«ã¯å¯¾å¿ãã¦ããªãï¼64ãããã¢ãã¬
+ã¹ç°å¢ããµãã¼ãããããã®æå¤§ã®èª²é¡ã¯ï¼ã¢ãã­ã¼ã©Sã¬ã³ã¼ããã©ã¼ããã
+ã64ãããã¢ãã¬ã¹ã«å¯¾å¿ãã¦ããªããã¨ã§ããï¼
+
+1.6 Cygwinç°å¢ã«ãããæ³¨æäºé 
+
+
+Cygwinç°å¢ã«ããã¦ã¯ï¼ãã£ã¬ã¯ããªã®æå®ãç¸å¯¾ãã¹ã§è¡ããã¨ãæ¨å¥¨ããï¼
+ããã¯ï¼Cygwinç°å¢ã®çµ¶å¯¾ãã¹ã¯ï¼Windowsãã¤ãã£ãã§ãã«ãããããã¼ã«ã¯
+è§£éã§ããªãããã§ããï¼
+
+
+ï¼ï¼ã¿ã¼ã²ããä¾å­é¨
+
+2.1 ã¿ã¼ã²ããä¾å­é¨ã®æ¦è¦
+
+ASPã«ã¼ãã«ã®ã¿ã¼ã²ããéä¾å­é¨ã¨ï¼åç¨®ã®ã¿ã¼ã²ããã·ã¹ãã ã«å¯¾å¿ããã
+ãã®ã¿ã¼ã²ããä¾å­é¨ã¯ï¼å¥ã
+ã«éçºããã¦ããï¼ãã®ããï¼ASPã«ã¼ãã«ãå¯¾
+å¿ãã¦ãããã¹ã¦ã®ã¿ã¼ã²ããä¾å­é¨ãï¼ãã¼ã¸ã§ã³ãæ´åããã¦ããã±ã¼ã¸
+åãããã¨ã¯å°é£ã§ããï¼ããã§ï¼ä¸»ã«åç´ã®ã¦ã¼ã¶ãå¯¾è±¡ã«ããç°¡æããã±ã¼
+ã¸ã¨ï¼ä¸ç´ã®ã¦ã¼ã¶ãã«ã¼ãã«éçºè
+ãå¯¾è±¡ã«ããåå¥ããã±ã¼ã¸ãç¨æãã¦
+ããï¼
+
+ASPã«ã¼ãã«ãæªãµãã¼ãã®ã¿ã¼ã²ããã·ã¹ãã ã¸ãã¼ãã£ã³ã°ããããã«å¿
+è¦
+ãªä½æ¥­ã¯ï¼éçºç°å¢ã®æ§ç¯ã¨æ¨æºã®éçºç°å¢ã¨ã®å·®ç°ã®å¸åï¼ã«ã¼ãã«èªèº«ã®
+ãã¼ãã£ã³ã°ï¼ã·ã¹ãã ãµã¼ãã¹ã®ãã¼ãã£ã³ã°ãªã©ãããªãï¼è©³ããã¯ï¼
+ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãããåç
+§ãããã¨ï¼
+
+2.2 ç°¡æããã±ã¼ã¸
+
+ç°¡æããã±ã¼ã¸ã¯ï¼ASPã«ã¼ãã«ãå¯¾å¿ãã¦ããã¿ã¼ã²ããã·ã¹ãã æ¯ã«ç¨æã
+ãï¼ãã®ã¿ã¼ã²ããã·ã¹ãã ä¸ã§ASPã«ã¼ãã«ãåä½ãããããã«å¿
+è¦ãªãã¡ã¤
+ã«ä¸å¼ãããã±ã¼ã¸åãããã®ã§ããï¼ç°¡æããã±ã¼ã¸ã«å«ã¾ãããã¡ã¤ã«ã¯ï¼
+ãã¼ã¸ã§ã³ãæ´åãã¦ãããã¨ãç¢ºèªããã¦ããï¼
+
+ç°¡æããã±ã¼ã¸ã®ãã¼ã¸ã§ã³çªå·ã¯ï¼ããã±ã¼ã¸åããæ¥ä»ã¨ãããã¨ãåå
+ã¨ãããï¼ã¿ã¼ã²ããã·ã¹ãã æ¯ã®äºæ
+ã«ãããã®ååã«å¾ããªãå ´åãããï¼
+
+ç°¡æããã±ã¼ã¸ã¯ï¼åºæ¬çã«ã¯ï¼æ¬¡ã«èª¬æããåå¥ããã±ã¼ã¸ãè¤æ°ã¾ã¨ãã
+ãã®ã§ããï¼ãã®ããï¼å¯¾è±¡ã¿ã¼ã²ããã·ã¹ãã ã«å¿
+è¦ã®ãªããã¡ã¤ã«ãå«ã¾
+ãã¦ããï¼ã¾ãï¼ç°¡æããã±ã¼ã¸ã«å«ã¾ãã¦ããåå¥ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³
+ã¯ï¼åå¥ããã±ã¼ã¸ã®MANIFESTãã¡ã¤ã«ãåç
+§ãããã¨ã§ç¥ããã¨ãã§ããï¼
+
+2.3 åå¥ããã±ã¼ã¸
+
+åå¥ããã±ã¼ã¸ã¯ï¼ASPã«ã¼ãã«ã®éçºåä½æ¯ã«ï¼ãã®éçºåä½ã§éçºãæ
+å½ã
+ã¦ãããã¡ã¤ã«ä¸å¼ãããã±ã¼ã¸åãããã®ã§ããï¼ASPã«ã¼ãã«ã®ã¿ã¼ã²ãã
+éä¾å­é¨ãï¼ä¸ã¤ã®åå¥ããã±ã¼ã¸ã¨ãã¦é
+å¸ãããï¼ããåå¥ããã±ã¼ã¸ã
+ä½¿ç¨ããããã«ã¯ï¼ä¸è¬ã«ã¯ï¼ä»ã®åå¥ããã±ã¼ã¸ãå¿
+è¦ã¨ãªãï¼ã¿ã¼ã²ãã
+ä¾å­é¨ã®åå¥ããã±ã¼ã¸ãä½¿ç¨ããããã«å¿
+è¦ã¨ãªãåå¥ããã±ã¼ã¸ã¨ãã®ãã¼
+ã¸ã§ã³ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãåç
+§ãããã¨ï¼
+ä½¿ç¨ããåå¥ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³ãæ´åããããã¨ã¯ï¼ã¦ã¼ã¶ã®è²¬ä»»ã§ã
+ãï¼
+
+åå¥ããã±ã¼ã¸ã®ãã¼ã¸ã§ã³çªå·ã¯ï¼X.Y.Zã®å½¢ã§è¡¨ç¾ãããï¼ã¿ã¼ã²ããéä¾
+å­é¨ã®ãã¼ã¸ã§ã³çªå·ãï¼ASPã«ã¼ãã«å
+¨ä½ã®ãªãªã¼ã¹çªå·ã¨ããï¼ã¿ã¼ã²ãã
+ä¾å­é¨ã®ãã¼ã¸ã§ã³çªå·ã¯ï¼Xã¨Yãï¼ãããä¾å­ããã¿ã¼ã²ããéä¾å­é¨ã¨ä¸
+è´ãã¦ããï¼ããã«å¯¾ãã¦ï¼Zã¯ä¸è´ãã¦ããã¨ã¯éããªãï¼ä¾ãã°ï¼ã¿ã¼ã²ã
+ãéä¾å­é¨ã®ãã¼ã¸ã§ã³1.1.0ã«å¯¾å¿ããã¿ã¼ã²ããä¾å­é¨ã¯ï¼ãã¼ã¸ã§ã³
+1.1.Zã®å½¢ã¨ãªãï¼ã¿ã¼ã²ããä¾å­é¨ã®ã¿ããã¼ã¸ã§ã³ã¢ããããå ´åã«ã¯ï¼Z
+ãå¤æ´ãããï¼
+
+ä½¿ç¨ããåå¥ããã±ã¼ã¸ã¯ï¼æ¬¡ã®ä¾ã®ããã«ï¼ã¿ã¼ã²ããéä¾å­é¨ã®åå¥ãã
+ã±ã¼ã¸ãå±éããã®ã¨åããã£ã¬ã¯ããªã§å±éããï¼
+
+	% tar xvfz asp-1.1.0.tar.gz
+	% tar xvfz asp_arch_arm_gcc_1.1.2.tar.gz
+
+ã¿ã¼ã²ããéä¾å­é¨ã®åå¥ããã±ã¼ã¸ã«ã¯ï¼ä»¥ä¸ã®ã¿ã¼ã²ããä¾å­é¨ãå«ã¾ã
+ã¦ãããï¼ãããã¯ä»ã®ã¿ã¼ã²ããã·ã¹ãã ã«ãã¼ãã£ã³ã°ããéã®åèã«ã
+ãããã«ç¨æãã¦ãããã®ã§ããï¼ãã®åä½ã«ã¤ãã¦ã¯æªæ¤è¨¼ã§ããï¼
+
+	target/dve68k_gcc	DVE-68K/40ï¼GNUéçºç°å¢ï¼ç¨ã¿ã¼ã²ããä¾å­é¨
+	arch/m68k_gcc		M68040ï¼GNUéçºç°å¢ï¼ç¨ãã­ã»ããµä¾å­é¨
+	pdic/upd72001		Î¼PD72001ç¨ ç°¡æSIOãã©ã¤ã
+
+
+ï¼ï¼ã¯ã¤ãã¯ã¹ã¿ã¼ãã¬ã¤ã
+
+ããã§ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ãç¨æããã¦ããã¿ã¼ã²ããã·ã¹ãã ä¸ã§ï¼ASPã«ã¼
+ãã«ä¸ã§åä½ãããµã³ãã«ãã­ã°ã©ã ãæ§ç¯ã»åä½ãããã¾ã§ã®æé ãç¤ºãï¼
+
+3.1 éçºç°å¢ã®æºå
+
+ASPã«ã¼ãã«ãç¨ããã·ã¹ãã æ§ç¯ã«ã¯ï¼ä»¥ä¸ã®ãã¼ã«ãå¿
+è¦ã§ããï¼
+
+	ãã¹ãã·ã¹ãã ç¨ã®ãã¼ã«
+		perl		åä½ç¢ºèªï¼5.10.0
+		GNU Make	åä½ç¢ºèªï¼3.81
+
+	TOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
+		cfg			åä½ç¢ºèªï¼1.9.4
+					â» 1.5ä»¥åã®ãã¼ã¸ã§ã³ã§ã¯åä½ããªãï¼
+
+	ã¿ã¼ã²ããã·ã¹ãã ç¨ã®ãã¼ã«ï¼ã¯ã­ã¹éçºç°å¢ï¼
+		æ¨æºè¦æ ¼ã«æºæ ããCã³ã³ãã¤ã©
+		ã¢ã»ã³ãã©ï¼ãªã³ã«ï¼ã©ã¤ãã©ãªã¢ã³
+		ã·ã³ãã«ãã¡ã¤ã«åºåãã¼ã«ï¼ãã­ãµãã¡ã¤ã«åºåãã¼ã«
+		æ¨æºCã©ã¤ãã©ãªï¼å¿
+é ã§ã¯ãªãï¼
+
+ã¿ã¼ã²ããã·ã¹ãã ç¨ã®ãã¼ã«ã«GNUéçºç°å¢ãç¨ããå ´åã«ã¯ï¼ä»¥ä¸ã®ãã¼ã«
+ãå¿
+è¦ã§ããï¼
+
+	ã¿ã¼ã²ããã·ã¹ãã ç¨ã®GNUéçºç°å¢ãã¼ã«
+		BINUTILSï¼asï¼ldï¼arï¼nmï¼ranlibï¼objcopyï¼objdumpï¼
+		GCCã¾ãã¯GCC-COREï¼gccããã³ããããå¼ã³åºããããã¼ã«ï¼
+		NEWLIBï¼æ¨æºCã©ã¤ãã©ãªï¼å¿
+é ã§ã¯ãªãï¼
+
+åä½ç¢ºèªããã¦ããã¿ã¼ã²ããã·ã¹ãã ç¨ã®ãã¼ã«ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ããä¾
+å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãåç
+§ãããã¨ï¼
+
+ã¿ã¼ã²ããã·ã¹ãã ç¨ã®æ¨æºCã©ã¤ãã©ãªã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãæ¨æºCã©ã¤ã
+ã©ãªãä½¿ç¨ããªãå ´åã«ã¯ï¼å¿
+è¦ãªãï¼ãã ãï¼ã³ã³ãã¤ã©ãæ¨æºCã©ã¤ãã©ãª
+é¢æ°ï¼memcpyï¼memsetãªã©ï¼ãå¼ã³åºãã³ã¼ããçæããå ´åãããï¼ãã®å ´
+åã«ã¯æ¨æºCã©ã¤ãã©ãªãå¿
+è¦ã§ããï¼æ¨æºCã©ã¤ãã©ãªãç¨æããä»£ããã«ï¼
+çæããã³ã¼ããå¼ã³åºãé¢æ°ã®ã¿ãèªåã§ç¨æãã¦ãããï¼
+
+ä»¥ä¸ã§ã¯ï¼ãããã®ãã¼ã«ãç¨æã§ãã¦ãããã¨ãåæã«ï¼UNIXãã·ã³ä¸ã§ã®
+æ§ç¯æé ãèª¬æããï¼ã¾ãä»¥ä¸ã®èª¬æã§ã¯ï¼makeã³ãã³ããGNU Makeã§ããã
+ã®ã¨ããï¼ASPã«ã¼ãã«ã®ãµã³ãã«ã®Makefileã¯ï¼GNU Makeã®æ¡å¼µæ©è½ãç¨ãã¦
+ããï¼ï¼
+
+3.2 ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®æ§ç¯
+
+ã«ã¼ãã«ãæ§ç¯ããåã«ï¼ã¾ãï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
+ãæ§ç¯ããå¿
+è¦ãããï¼ç°¡æããã±ã¼ã¸ã«å«ã¾ãã¦ããå ´åãªã©ï¼ã³ã³ãã£ã®ã¥
+ã¬ã¼ã¿ãå®è¡ãã¡ã¤ã«å½¢å¼ã§å
+¥æããå ´åã«ã¯ï¼ãã®ã¹ãããã¯å¿
+è¦ãªãï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®æ§ç¯ã«ã¯ï¼ä»¥ä¸ã®ãã¼ã«ãå¿
+è¦ã§ããï¼
+
+	ãã¹ãã·ã¹ãã ç¨ã®ãã¼ã«ï¼ã»ã«ãéçºç°å¢ï¼
+		C++ã³ã³ãã¤ã©ï¼C++ã©ã¤ãã©ãª
+					åä½ç¢ºèªï¼Mac OS Xç°å¢ï¼ï¼GNU C++ 4.2.1
+		Boost		åä½ç¢ºèªï¼1.52.0
+		GNU Make	åä½ç¢ºèªï¼3.81
+
+æåã«ï¼ããã±ã¼ã¸ã«ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ã½ã¼ã¹ãã¡ã¤ã«ãå«ã¾ãã¦ããªã
+å ´åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ããã±ã¼ã¸ãï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«
+ãå±éãããã£ã¬ã¯ããªã®ä¸ã«å±éããï¼
+
+	% cd asp
+	% tar xvfz cfg-1.9.4.tar.gz
+
+ã¾ãã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ããã±ã¼ã¸ãä»ã®ãã£ã¬ã¯ããªã«å±éãï¼ASPã«ã¼
+ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬ã¯ããªããã·ã³ããªãã¯ãªã³ã¯ãã¯ã£
+ã¦ãããï¼
+
+ã½ã¼ã¹ãã¡ã¤ã«ãå±éã§ããã¨ï¼cfgãã£ã¬ã¯ããªã«ç§»åãï¼ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ã¹ã¯ãªããï¼configureï¼ã§Makefileã®ç°å¢ä¾å­é¨ï¼Makefile.configï¼
+ãçæããå¾ï¼makeã³ãã³ãã«ããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgãã­ã°ã©ã ï¼ãæ§
+ç¯ã§ããï¼
+
+	% cd cfg
+	% ./configure --without-xml
+	% make depend
+	% make
+
+ãã ãï¼Boostãã¤ã³ã¹ãã¼ã«ãããã£ã¬ã¯ããªããã³åç§°ãæ¨æºã§æ³å®ãã¦ã
+ããã®ã¨ã¯éãå ´åã«ã¯ï¼configureã®--with-headersããã³--with-libraries
+ãªãã·ã§ã³ã«ããï¼ããããã¡ã¤ã«ããã³ã©ã¤ãã©ãªã®ç½®ããããã£ã¬ã¯ããª
+ãæå®ããå¿
+è¦ãããï¼--without-xmlã¯ï¼AUTOSAR XMLãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿æ©
+è½ï¼ASPã«ã¼ãã«ç¨ã«ã¯å¿
+è¦ãªãï¼ãåãè¾¼ã¾ãªããã¨ãæå®ãããªãã·ã§ã³ã§
+ããï¼AUTOSAR XMLãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿æ©è½ãåãè¾¼ãã«ã¯ï¼Xerces-C++ XML
+Parserãå¿
+è¦ã«ãªãï¼ï¼
+
+ã¾ãï¼ãã¹ãã·ã¹ãã ã«ãã£ã¦ã¯ï¼æé©åã¬ãã«ãä¸ããã¨æ­£ããã³ã³ãã¤ã«
+ã§ããªããã¨ãç¥ããã¦ããï¼ãã®ãããªå ´åã«ã¯ï¼æé©åã¬ãã«ãä¸ãããï¼
+æé©åãææ­¢ããããã«ï¼Makefileãä¿®æ­£ããå¿
+è¦ãããï¼
+
+ãªãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä½¿ç¨æ¹æ³ã«ã¤ãã¦ã¯ï¼ãï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
+ã®ä½¿ãæ¹ãã®ç« ã§èª¬æããï¼
+
+3.3 ãµã³ãã«ãã­ã°ã©ã ã®æ§ç¯ã¨å®è¡
+
+æ¬¡ã«ï¼ASPã«ã¼ãã«ä¸ã§åä½ãããµã³ãã«ãã­ã°ã©ã ãæ§ç¯ããæ¹æ³ãèª¬æããï¼
+
+ã¾ãï¼ãµã³ãã«ãã­ã°ã©ã ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªãä½æ
+ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããå®è¡ããï¼ä¾ãã°ï¼ãªãã¸ã§ã¯ããã¡
+ã¤ã«ãç½®ããã£ã¬ã¯ããªãï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬
+ã¯ããªã®ä¸ã®OBJã¨ããåç§°ã®ãã£ã¬ã¯ããªã«ããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ãã
+å®è¡ããï¼ãã£ã¬ã¯ããªã®å ´æã¨åç§°ã¯ä»»æã«æ±ºãã¦ããï¼ï¼
+
+	% cd asp
+	% mkdir OBJ
+	% cd OBJ
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°>
+
+ããã§ï¼<ã¿ã¼ã²ããç¥ç§°>ã¯ï¼targetãã£ã¬ã¯ããªã®ä¸ã«ç½®ããã¦ããã¿ã¼ã²ã
+ãä¾å­é¨ãã£ã¬ã¯ããªã®åç§°ã§ããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãª
+ãã·ã§ã³ã«ã¤ãã¦ã¯ï¼ãï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ä½¿ãæ¹ãã®
+ç« ã§èª¬æããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ã«ããï¼ã«ã¬ã³ããã£ã¬ã¯ããªã«ã¯ï¼
+ãµã³ãã«ãã­ã°ã©ã ãæ§ç¯ããããã®Makefileï¼ãµã³ãã«ãã­ã°ã©ã ç¨ã®ã³ã³
+ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼sample1.cfgï¼ï¼ãµã³ãã«ãã­ã°ã©ã æ¬ä½
+ï¼sample1.hããã³sample1.cï¼ãçæãããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡å¾ï¼å¿
+è¦ã§ããã°Makefileãä¿®æ­£ã
+ãï¼Makefileã®ä¿®æ­£æ¹æ³ã«ã¤ãã¦ã¯ï¼ãï¼ï¼Makefileã®ä¿®æ­£æ¹æ³ãã®ç« ã§èª¬æ
+ããï¼
+
+ãã®å¾ï¼make dependã§ä¾å­é¢ä¿ãã¡ã¤ã«ï¼Makefile.dependï¼ãçæããå¾ï¼
+makeã³ãã³ãã«ãããµã³ãã«ãã­ã°ã©ã ã®ã­ã¼ãã¢ã¸ã¥ã¼ã«ï¼aspã¾ãã¯
+asp.exeï¼ãçæã§ããï¼ä¾å­é¢ä¿ãã¡ã¤ã«ã®çæã«ã¯è¥å¹²æéããããï¼
+
+	% make depend
+	% make
+
+ããã§æ§ç¯ãããµã³ãã«ãã­ã°ã©ã ï¼sample1.hï¼sample1.cï¼sample1.cfgï¼
+ã¯ï¼ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãã®ã§ããï¼ãã®ãã­ã°ã©
+ã ã®æ¦è¦èª¬æã¯ï¼sample1.cã®å
+é ­ã®ã³ã¡ã³ãã«ããï¼
+
+3.4 ã«ã¼ãã«ãé¢æ°åä½ã§ã©ã¤ãã©ãªåããæ¹æ³
+
+åç¯ã®æé ã§ã¯ï¼ã«ã¼ãã«ããã¡ã¤ã«åä½ã§ã³ã³ãã¤ã«ãï¼ã©ã¤ãã©ãªåãã¦
+ãããï¼ã«ã¼ãã«ã®ã³ã¼ããµã¤ãºãç¸®å°ããããã«ã¯ï¼ä½¿ç¨ããªããµã¼ãã¹ã³ã¼
+ã«ã¯ãªã³ã¯ããªãæ¹ãæã¾ããï¼ããã§ASPã«ã¼ãã«ã§ã¯ï¼ã«ã¼ãã«ãé¢æ°åä½
+ã§ã³ã³ãã¤ã«ãï¼ã©ã¤ãã©ãªåããæ¹æ³ãç¨æãã¦ããï¼
+
+ãã®æ¹æ³ã§ãµã³ãã«ãã­ã°ã©ã ãæ§ç¯ããã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯
+ãªããã«ï¼ãããæç¤ºãããªãã·ã§ã³ï¼-fï¼ãä»å ããã ãã§ããï¼
+
+	% mkdir OBJ_LIB
+	% cd OBJ_LIB
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -f
+
+ããã§ï¼OBJ_LIBã¨ãããã£ã¬ã¯ããªã®å ´æã¨åç§°ã¯ï¼ä»»æã«æ±ºãã¦ããï¼ãã
+ä»¥éã®æé ã¯ï¼åç¯ã¨åãã§ããï¼
+
+3.5 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥ã
+ã«æ§ç¯ããæ¹æ³
+
+åç¯ã§èª¬æããæ¹æ³ã§ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãåæã«çæããããï¼
+ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã«éå¸¸ã«å¤ãã®ãã¡ã¤ã«ãä½æãã
+ã¦ï¼æ±ãã«ãããªãï¼ããã§ï¼ã«ã¼ãã«ãä¿®æ­£ããé »åº¦ãä½ãå ´åã«ã¯ï¼ã«ã¼
+ãã«ã¯äºåã«æ§ç¯ãã¦ããï¼å¾ã§ã¢ããªã±ã¼ã·ã§ã³ã ããæ§ç¯ããæ¹æ³ãç¨æ
+ãã¦ããï¼ä»¥ä¸ã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ãæ§ç¯ãä¾ã«ï¼ãã®æé ã«ã¤ãã¦èª¬
+æããï¼
+
+ã¾ãï¼ã«ã¼ãã«ãæ§ç¯ãããã£ã¬ã¯ããªãä½æãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹
+ã¯ãªãããå®è¡ããï¼ä¾ãã°ï¼ã«ã¼ãã«ãæ§ç¯ãããã£ã¬ã¯ããªãï¼ASPã«ã¼
+ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬ã¯ããªã®ä¸ã®KERNEL_LIBã¨ããåç§°ã®
+ãã£ã¬ã¯ããªã«ããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããï¼ãã£ã¬ã¯ããªã®å ´æ
+ã¨åç§°ã¯ä»»æã«æ±ºãã¦ããï¼ï¼
+
+	% mkdir KERNEL_LIB
+	% cd KERNEL_LIB
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -f
+
+ããã«ããï¼ã«ã¼ãã«ãæ§ç¯ãããã£ã¬ã¯ããªã«ï¼Makefileï¼sample1.cfgï¼
+sample1.hï¼sample1.cãçæããããï¼Makefileä»¥å¤ã¯å®è³ªçã«ã¯ä½¿ç¨ããªãï¼
+
+make dependã§ä¾å­é¢ä¿ãã¡ã¤ã«ï¼Makefile.dependï¼ãçæããå¾ï¼make
+libkernel.aã«ããã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ãçæã§ããï¼
+
+	% make depend
+	% make libkernel.a
+
+æ¬¡ã«ï¼ã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ãããã£ã¬ã¯ããªãä½æãï¼ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ã¹ã¯ãªãããå®è¡ããï¼ä¾ãã°ï¼ã¢ããªã±ã¼ã·ã§ã³ãæ§ç¯ãããã£ã¬ã¯
+ããªãï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬ã¯ããªã®ä¸ã®APLã¨ã
+ãåç§°ã®ãã£ã¬ã¯ããªã«ããå ´åã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããï¼ãã£ã¬ã¯ã
+ãªã®å ´æã¨åç§°ã¯ä»»æã«æ±ºãã¦ããï¼ï¼
+
+	% cd ..
+	% mkdir APL
+	% cd APL
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -L ../KERNEL_LIB
+
+ããã§-Lãªãã·ã§ã³ã«ã¯ï¼ã«ã¼ãã«ãæ§ç¯ãããã£ã¬ã¯ããªã®ãã¹ãæå®ããï¼
+
+æå¾ã«ï¼make dependã§ä¾å­é¢ä¿ãã¡ã¤ã«ï¼Makefile.dependï¼ãçæããå¾ï¼
+makeã³ãã³ãã«ãããµã³ãã«ãã­ã°ã©ã ã®ã­ã¼ãã¢ã¸ã¥ã¼ã«ï¼aspã¾ãã¯
+asp.exeï¼ãçæã§ããï¼
+
+	% make depend
+	% make
+
+ãã®æé ã§ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³æ§ç¯æã«ã¯ã«ã¼ãã«ã®åæ§ç¯ãå¿
+è¦ããã§ã
+ã¯ããªãããï¼ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼ããä¿®æ­£ããå ´åã«ã¯ï¼ã«ã¼ãã«ãæ§ç¯
+ãããã£ã¬ã¯ããªã§make libkernel.aãåå®è¡ããå¿
+è¦ãããï¼
+
+ä»¥ä¸ã§ã¯ï¼ã«ã¼ãã«ã¨ã¢ããªã±ã¼ã·ã§ã³ãå¥ã
+ã®ãã£ã¬ã¯ããªã§æ§ç¯ãããï¼
+-Lãªãã·ã§ã³ã«ã«ã¬ã³ããã£ã¬ã¯ããªï¼ãã ãï¼"."ã¨ããè¨è¿°ã§ã¯ä¸å¯ï¼ãæ
+å®ãããã¨ã§ï¼ã«ã¼ãã«ã¨ã¢ããªã±ã¼ã·ã§ã³ãåããã£ã¬ã¯ããªã§å¥ã
+ã«æ§ç¯
+ãããã¨ãã§ããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®æé ã¨ãªãï¼
+
+	% mkdir OBJ
+	% cd OBJ
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -L ../OBJ
+	% make depend
+	% make libkernel.a
+	% make cleankernel
+	% make
+
+ããã§ï¼make cleankernelã¯ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãçæããããã®ä¸­éãã¡
+ã¤ã«ãåé¤ãããã®ã§ããï¼ãã®æé ã§ã¯ï¼make dependã«ããã«ã¼ãã«ã©ã¤
+ãã©ãªã«é¢ããä¾å­é¢ä¿ãçæããªãããï¼ã«ã¼ãã«ã®ã½ã¼ã¹ã³ã¼ããä¿®æ­£ã
+ãå ´åã«ã¯ï¼å¿
+ãmake cleankernelï¼ã¾ãã¯ï¼make cleanï¼ãã¦ããï¼make
+libkernel.aããå¿
+è¦ãããã®ã§æ³¨æãããã¨ï¼
+
+ãªãï¼make realcleanããã¨ï¼make dependã¨makeã«ããçæãããã¡ã¤ã«ãã
+ã¹ã¦åé¤ããï¼ããã«å¯¾ãã¦ï¼make cleanã§ã¯ï¼make dependã«ããçæããä¾
+å­é¢ä¿ãã¡ã¤ã«ã¯åé¤ããªãï¼
+
+
+ï¼ï¼ãã£ã¬ã¯ããªæ§æã»ãã¡ã¤ã«æ§æ
+
+4.1 é
+å¸ããã±ã¼ã¸ã®ãã£ã¬ã¯ããªæ§æ
+
+	include/		ã¢ããªã±ã¼ã·ã§ã³åãããããã¡ã¤ã«
+	kernel/			ã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«
+	syssvc/			ã·ã¹ãã ãµã¼ãã¹ã®ããããã¡ã¤ã«ï¼ã½ã¼ã¹ãã¡ã¤ã«
+	library/		ãµãã¼ãã©ã¤ãã©ãªã®ã½ã¼ã¹ãã¡ã¤ã«
+	target/			ã¿ã¼ã²ããä¾å­é¨
+	arch/			ã¿ã¼ã²ããä¾å­é¨ã®å
+±éé¨å
+		gcc/		GCCéçºç°å¢ä¾å­é¨
+		logtrace/	ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ã
+	pdic/			PDICï¼ããã¤ã¹ãã©ã¤ãã®OSéä¾å­é¨åï¼
+	utils/			ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã 
+	sample/			ãµã³ãã«ãã­ã°ã©ã ã¨Makefile
+	doc/			ãã­ã¥ã¡ã³ã
+	test/			ãã¹ããã­ã°ã©ã 
+	extension/		æ¡å¼µããã±ã¼ã¸
+
+4.2 ã¿ã¼ã²ããéä¾å­é¨ã®ãã¡ã¤ã«æ§æ
+
+ã¿ã¼ã²ããéä¾å­é¨ï¼ãã¹ããã­ã°ã©ã ã¨æ¡å¼µããã±ã¼ã¸ã¯é¤ãï¼ã®åãã¡ã¤
+ã«ã®æ¦è¦ã¯æ¬¡ã®éãï¼
+
+	README.txt			TOPPERS/ASPã«ã¼ãã«ã®ç°¡åãªç´¹ä»
+	configure			ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããï¼GNUéçºç°å¢ç¨ï¼
+	MANIFEST			åå¥ããã±ã¼ã¸ã®ãã¡ã¤ã«ãªã¹ã
+
+	include/
+		kernel.h		ASPã«ã¼ãã«ãä½¿ç¨ããããã®å®ç¾©
+		sil.h			ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ãä½¿ç¨ããããã®å®ç¾©
+		t_stddef.h		TOPPERSå
+±éããããã¡ã¤ã«
+		itron.h			ITRONä»æ§å
+±éè¦å®ã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+		t_syslog.h		ã·ã¹ãã ã­ã°åºåãè¡ãããã®å®ç¾©
+		t_stdlib.h		åºæ¬çãªã©ã¤ãã©ãªé¢æ°ãä½¿ç¨ããããã®å®ç¾©
+		queue.h			ã­ã¥ã¼æä½ã©ã¤ãã©ãªãä½¿ç¨ããããã®å®ç¾©
+		test_lib.h		ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãªãä½¿ç¨ããããã®å®ç¾©
+		histogram.h		å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ãä½¿ç¨ããããã®å®ç¾©
+		log_output.h	ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºåãä½¿ç¨ããããã®å®ç¾©
+
+	kernel/
+		Makefile.kernel		ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+		kernel_impl.h		ã«ã¼ãã«å®è£
+ç¨æ¨æºããããã¡ã¤ã«
+		kernel_int.h		kernel_cfg.cç¨ã®ããããã¡ã¤ã«
+		kernel_rename.def	ã«ã¼ãã«ã®å
+é¨è­å¥åã®ãªãã¼ã å®ç¾©
+		kernel_rename.h		ã«ã¼ãã«ã®å
+é¨è­å¥åã®ãªãã¼ã 
+		kernel_unrename.h	ã«ã¼ãã«ã®å
+é¨è­å¥åã®ãªãã¼ã è§£é¤	
+		kernel_api.csv		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®éçAPIãã¼ãã«
+		kernel_def.csv		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®å¤åå¾ã·ã³ãã«ãã¼ãã«
+		kernel.tf			ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«
+		kernel_check.tf		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«
+		genoffset.tf		ãªãã»ãããã¡ã¤ã«çæç¨ã®ãã³ãã¬ã¼ããã¡ã¤ã«
+		allfunc.h		ãã¹ã¦ã®é¢æ°ãã³ã³ãã¤ã«ããããã®å®ç¾©
+		check.h			ã¨ã©ã¼ãã§ãã¯ç¨ãã¯ã­
+		startup.c		ã«ã¼ãã«ã®åæåã¨çµäºå¦ç
+		task.h			ã¿ã¹ã¯æä½ã«ã¼ãã³é¢é£ã®å®ç¾©
+		task.c			ã¿ã¹ã¯æä½ã«ã¼ãã³
+		wait.h			å¾
+ã¡ç¶æ
+æä½ã«ã¼ãã³é¢é£ã®å®ç¾©
+		wait.c			å¾
+ã¡ç¶æ
+æä½ã«ã¼ãã³
+		time_event.h	ã¿ã¤ã ã¤ãã³ãç®¡çé¢é£ã®å®ç¾©
+		time_event.c	ã¿ã¤ã ã¤ãã³ãç®¡ç
+		task_manage.c	ã¿ã¹ã¯ç®¡çæ©è½
+		task_refer.c	ã¿ã¹ã¯ç¶æ
+åç
+§æ©è½
+		task_sync.c		ã¿ã¹ã¯ä»å±åææ©è½
+		task_except.c	ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+		semaphore.h		ã»ããã©æ©è½é¢é£ã®å®ç¾©
+		semaphore.c		ã»ããã©æ©è½
+		eventflag.h		ã¤ãã³ããã©ã°æ©è½é¢é£ã®å®ç¾©
+		eventflag.c		ã¤ãã³ããã©ã°æ©è½
+		dataqueue.h		ãã¼ã¿ã­ã¥ã¼æ©è½é¢é£ã®å®ç¾©
+		dataqueue.c		ãã¼ã¿ã­ã¥ã¼æ©è½
+		pridataq.h		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½é¢é£ã®å®ç¾©
+		pridataq.c		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½
+		mailbox.h		ã¡ã¼ã«ããã¯ã¹æ©è½é¢é£ã®å®ç¾©
+		mailbox.c		ã¡ã¼ã«ããã¯ã¹æ©è½
+		mempfix.h		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½é¢é£ã®å®ç¾©
+		mempfix.c		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½
+		time_manage.c	ã·ã¹ãã æå»ç®¡çæ©è½
+		cyclic.h		å¨æãã³ãã©æ©è½é¢é£ã®å®ç¾©
+		cyclic.c		å¨æãã³ãã©æ©è½
+		alarm.h			ã¢ã©ã¼ã ãã³ãã©æ©è½é¢é£ã®å®ç¾©
+		alarm.c			ã¢ã©ã¼ã ãã³ãã©æ©è½
+		sys_manage.c	ã·ã¹ãã ç¶æ
+ç®¡çæ©è½
+		interrupt.h		å²è¾¼ã¿ç®¡çæ©è½é¢é£ã®å®ç¾©
+		interrupt.c		å²è¾¼ã¿ç®¡çæ©è½
+		exception.h		CPUä¾å¤ç®¡çæ©è½é¢é£ã®å®ç¾©
+		exception.c		CPUä¾å¤ç®¡çæ©è½
+
+	syssvc/
+		banner.h		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ããã®å®ç¾©
+		banner.c		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+		banner.cfg		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã³ã³ãã£ã®ã¥ã¬ã¼
+						ã·ã§ã³ãã¡ã¤ã«
+		logtask.h		ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãä½¿ç¨ããããã®å®ç¾©
+		logtask.c		ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+		logtask.cfg		ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+		serial.h		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããä½¿ç¨ããããã®å®ç¾©
+		serial.c		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+		serial.cfg		ã·ãªã¢ã«ãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+		syslog.h		ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããããã®å®ç¾©
+		syslog.c		ã·ã¹ãã ã­ã°æ©è½
+		syslog.cfg		ã·ã¹ãã ã­ã°æ©è½ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+
+	library/
+		histogram.c		å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+		log_output.c	ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºå
+		strerror.c		ã¨ã©ã¼ã¡ãã»ã¼ã¸æå­åãè¿ãé¢æ°
+		t_perror.c		ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®åºå
+		test_lib.c		ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãª
+		vasyslog.c		å¯å¤æ°å¼æ°ã®ã·ã¹ãã ã­ã°ã©ã¤ãã©ãª
+
+	arch/gcc/
+		MANIFEST		åå¥ããã±ã¼ã¸ã®ãã¡ã¤ã«ãªã¹ã
+		tool_stddef.h	t_stddef.hã®éçºç°å¢ä¾å­é¨ï¼GCCç¨ï¼
+
+	arch/logtrace/
+		MANIFEST		åå¥ããã±ã¼ã¸ã®ãã¡ã¤ã«ãªã¹ã
+		trace_config.h	ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+		trace_config.c	ãã¬ã¼ã¹ã­ã°æ©è½
+		trace_dump.c	ãã¬ã¼ã¹ã­ã°ã®ãã³ã
+
+	utils/
+		applyrename		ãã¡ã¤ã«ã«ãªãã¼ã ãé©ç¨
+		genoffset		offset.hã®çæï¼GNUéçºç°å¢ç¨ï¼
+		genrename		ãªãã¼ã ããããã¡ã¤ã«ã®çæ
+		gentest			ãã¹ããã­ã°ã©ã ã®çæ
+		makedep			ä¾å­é¢ä¿ãªã¹ãã®çæï¼GNUéçºç°å¢ç¨ï¼
+		makerelease		ãªãªã¼ã¹ããã±ã¼ã¸ã®çæ
+
+	sample/
+		Makefile		ãµã³ãã«ã®Makefileï¼GNUéçºç°å¢ç¨ï¼
+		sample1.h		ãµã³ãã«ãã­ã°ã©ã (1)ã«é¢ããå®ç¾©
+		sample1.c		ãµã³ãã«ãã­ã°ã©ã (1)
+		sample1.cfg		ãµã³ãã«ãã­ã°ã©ã (1)ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+
+	doc/
+		user.txt			ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«
+		asp_spec.txt		TOPPERS/ASPã«ã¼ãã«ã®ä»æ§æ¦è¦
+		extension.txt		æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ã
+		porting.txt			ã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ã
+		configurator.txt	ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ä»æ§
+		design.txt			è¨­è¨ã¡ã¢
+		version.txt			å¤æ´å±¥æ­´
+
+
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ä½¿ãæ¹
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããï¼configureï¼ã¯ï¼ASPã«ã¼ãã«ããã³ã¢ã
+ãªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãæ§ç¯ããããã«å¿
+è¦ãªåºæ¬çãªã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+ã³ãè¡ãããã®ãã­ã°ã©ã ã§ããï¼
+
+ASPã«ã¼ãã«ãç¨ãã¦ã¢ããªã±ã¼ã·ã§ã³ãä½æããå ´åã«ã¯ï¼ã¾ããªãã¸ã§ã¯ã
+ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªãä½æãï¼ãã®ãã£ã¬ã¯ããªã§ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ã¹ã¯ãªãããå®è¡ããï¼ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã®å ´
+æã¨åç§°ã¯ï¼ä»»æã«æ±ºãã¦ããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãããªãã·ã§ã³ã¯æ¬¡ã®éãï¼
+
+	-T <ã¿ã¼ã²ããç¥ç§°>
+		ã¿ã¼ã²ããã·ã¹ãã ã®åç§°ãï¼targetãã£ã¬ã¯ããªã®ä¸ã«ç½®ããã¦ã
+		ãã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®åç§°ã§æå®ããï¼å¿
+é ï¼ï¼
+
+	-A <ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã å>
+		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®åç§°ãæå®ããï¼çç¥ããå ´åã«ã¯ï¼
+		ãµã³ãã«ãã­ã°ã©ã ï¼sample1ï¼ã¨ãªãï¼
+
+	-a <ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªå>
+		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ã½ã¼ã¹ãã¡ã¤ã«ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥
+		ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ãé¤ãï¼ãç½®ãããã£ã¬ã¯ããªåãæå®ããï¼ç
+		ç¥ããå ´åã«ã¯ï¼ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã«ç½®ãã
+		ã¦ãããã¨ãä»®å®ããï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã¯ï¼
+		ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªã«ç½®ããã¨ï¼
+
+	-U <ãªãã¸ã§ã¯ããã¡ã¤ã«å>
+		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ã¡ã¤ã³ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼-A 
+		ã§æå®ããã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã åã«".o"ãä»å ãããã®ï¼ä»¥
+		å¤ã«ï¼ãªã³ã¯ãã¹ããªãã¸ã§ã¯ããã¡ã¤ã«ã®åç§°ãï¼".o"ãä»å ãã
+		å½¢ã§æå®ããï¼""ã§å²ããã¨ã«ãã£ã¦ï¼è¤æ°ã®ãã¡ã¤ã«ãæå®ããã
+		ã¨ãå¯è½ã§ããï¼-Uãªãã·ã§ã³ãè¤æ°ä½¿ã£ã¦ã¯ãªããªãï¼ï¼
+
+	-L <ã«ã¼ãã«ã©ã¤ãã©ãªã®ãã£ã¬ã¯ããªå>
+		äºåã«æ§ç¯ããã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ãç¨ãã¦ï¼ã¢ããª
+		ã±ã¼ã·ã§ã³ã®ã¿ãæ§ç¯ããå ´åã«ã¯ï¼ãã®ãªãã·ã§ã³ã«ã«ã¼ãã«ã©ã¤
+		ãã©ãªã®ç½®ããããã£ã¬ã¯ããªåãæå®ããï¼ãã®ãªãã·ã§ã³ã®ä½¿ç¨
+		ä¾ã«ã¤ãã¦ã¯ï¼ã3.5 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥ã
+ã«æ§ç¯ãã
+		æ¹æ³ãã®ç¯ãåç
+§ãããã¨ï¼
+
+	-f
+		ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãã©ã¤ãã©ãªåããå ´åã«ï¼ãã®ãª
+		ãã·ã§ã³ãæå®ããï¼ãã®ãªãã·ã§ã³ã®ä½¿ç¨ä¾ã«ã¤ãã¦ã¯ï¼ã3.4 ã«ã¼
+		ãã«ãé¢æ°åä½ã§ã©ã¤ãã©ãªåããæ¹æ³ãã®ç¯ãåç
+§ãããã¨ï¼
+
+	-D <ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã£ã¬ã¯ããªå>
+		ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãç½®ãããã£ã¬ã¯ããªåãæå®ããï¼ç
+		ç¥ããå ´åã«ã¯ï¼configureã®ç½®ããã¦ãããã£ã¬ã¯ããªã¨ãªãï¼
+
+	-l <ãã­ã°ã©ãã³ã°è¨èª>
+		ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ãã­ã°ã©ãã³ã°è¨èªãæå®ããï¼ç¾æ
+		ç¹ã§ã¯ï¼cã¨c++ã®ã¿ããµãã¼ããã¦ããï¼
+
+	-t <ãã³ãã¬ã¼ããã£ã¬ã¯ããªå>
+		Makefileããµã³ãã«ãã­ã°ã©ã ã®ãã³ãã¬ã¼ãã®ç½®ããããã£ã¬ã¯ã
+		ãªåãæå®ããï¼çç¥ããå ´åã«ã¯ï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ã
+		ç½®ãããã£ã¬ã¯ããªã®ä¸ã®sampleãã£ã¬ã¯ããªã¨ãªãï¼
+
+	-m <ãã³ãã¬ã¼ãMakefileå>
+		Makefileã®ãã³ãã¬ã¼ãã¨ãããã¡ã¤ã«åãæå®ããï¼çç¥ããå ´å
+		ã«ã¯ï¼Makefileã¨ãªãï¼
+
+	-d <å®è¡ç°å¢å>
+		ã¿ã¼ã²ããã·ã¹ãã ä¸ã§ã®ãã­ã°ã©ã ã®å®è¡ç°å¢ï¼ãªããã¯ï¼ããã
+		ã°ç°å¢ï¼ã®åç§°ãæå®ããï¼ãã®ãªãã·ã§ã³ãæå®ããã¨ï¼å®è¡ç°å¢
+		ãæå®ããã·ã³ãã«ï¼TOPPERS_<ãããã°ç°å¢å>ï¼ããã¯ã­å®ç¾©ãã
+		ãï¼çç¥ããå ´åã«ã¯ï¼å®è¡ç°å¢ãæå®ããã·ã³ãã«ã¯ãã¯ã­å®ç¾©ã
+		ããªãï¼
+
+	-r
+		ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããæå¹ã«ããå ´åã«ï¼ãã®ãªãã·ã§
+		ã³ãæå®ããï¼ãã®ãªãã·ã§ã³ã®ä½¿ç¨ä¾ã«ã¤ãã¦ã¯ï¼ã11.6 ãã¬ã¼ã¹
+		ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³ãã®ç¯ãåç
+§ãããã¨ï¼
+
+	-p <perlã®ãã¹å>
+		perlã®ãã¹åãæå®ããï¼çç¥ããå ´åã«ã¯ï¼/usr/local/binã¨
+		/usr/binãæ¢ç´¢ãï¼perlã®ãã¹åãæ±ºå®ããï¼
+
+	-g <ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹å>
+		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹åãæå®ããï¼çç¥ããå ´åã«ã¯ï¼
+		ããã©ã«ãã®ãã¹åï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã£ã¬ã¯ããªã®ä¸ã®
+		cfg/cfg/cfgï¼ã¨ãªãï¼
+
+	-o <ãªãã·ã§ã³æå­å>
+		ã³ã³ãã¤ã©ã«ä¸ãããªãã·ã§ã³æå­åã§ï¼ã·ã³ãã«å®ç¾©ä»¥å¤ã®ãã®ï¼
+		ã·ã³ãã«å®ç¾©ã®ãªãã·ã§ã³ã¯ï¼-Oãªãã·ã§ã³ãä½¿ç¨ããï¼ãªãã·ã§ã³
+		æå­åã«ã¹ãã¼ã¹ãå«ã¾ããå ´åã«ã¯ï¼"-O2 -Wall"ã®ããã«ï¼""ã§å²
+		ãã§è¨è¿°ããå¿
+è¦ãããï¼
+
+	-O <ãªãã·ã§ã³æå­å>
+		ã³ã³ãã¤ã©ã«ä¸ããã·ã³ãã«å®ç¾©ã®ããã®ãªãã·ã§ã³æå­åï¼ãªãã·ã§
+		ã³æå­åã«ã¹ãã¼ã¹ãå«ã¾ããå ´åã«ã¯ï¼"-DTEST -DPERF"ã®ããã«ï¼
+		""ã§å²ãã§è¨è¿°ããå¿
+è¦ãããï¼
+
+	-k <ãªãã·ã§ã³æå­å>
+		ãªã³ã«ã«ä¸ãããªãã·ã§ã³æå­åï¼ãªãã·ã§ã³æå­åã«ã¹ãã¼ã¹ãå«
+		ã¾ããå ´åã«ã¯ï¼""ã§å²ãã§è¨è¿°ããå¿
+è¦ãããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããè¡ãå¦çã¯æ¬¡ã®éãã§ããï¼
+
+(1) Makefileã®çæ
+
+ãã³ãã¬ã¼ããã£ã¬ã¯ããªï¼ããã©ã«ãã§ã¯ï¼sampleï¼ããé©åãªMakefileã
+é¸æãï¼å¿
+è¦ãªç®æãæ¸ãæãã¦ï¼Makefileãçæããï¼
+
+(2) ãµã³ãã«ãã­ã°ã©ã ã®çæ
+
+æå®ããã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ããã³ãã¬ã¼ããã£ã¬ã¯ããªã«ããå ´åï¼
+é©åãªã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ã½ã¼ã¹ãã¡ã¤ã«ãé¸æãï¼å¿
+è¦ãªç®æã
+æ¸ãæãã¦ï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ã½ã¼ã¹ãã¡ã¤ã«ï¼ä¾ãã°ï¼
+sample1.hï¼sample1.cï¼sample1.cfgï¼ãçæããï¼
+
+(3) ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãç¨æã§ãã¦ãããã®ãã§ãã¯
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®å®è¡ãã¡ã¤ã«ãããããã§ãã¯ãï¼ãã¡ã¤ã«ããª
+ãå ´åã«ã¯ï¼ãã®æ¨ãåºåããï¼
+
+
+ï¼ï¼Makefileã®ä¿®æ­£æ¹æ³
+
+åã®ç« ã§èª¬æããããã«ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«ä¸ãããªãã·ã§
+ã³ç­ããMakefileãçæããããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã§å¯¾å¿
+ã§ããªãå ´åã«ã¯ï¼Makefileãç´æ¥ä¿®æ­£ããå¿
+è¦ãããï¼ããã§ã¯ï¼Makefile
+ã®ä¸­ã§ï¼ä¿®æ­£ãå¿
+è¦ã¨ãªãå¯è½æ§ã®é«ãç®æã«ã¤ãã¦èª¬æããï¼
+
+ãªãï¼Makefileãä¿®æ­£ããå¾ã«ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããåå®è¡ã
+ãã¨ï¼ä¿®æ­£ããMakefileãä¸æ¸ãããã¦ãã¾ãã®ã§æ³¨æãããã¨ï¼å¤ããã®ã
+Makefile.bakã«ä¿å­ãããï¼ï¼
+
+6.1 Makefileã®å¤æ°å®ç¾©
+
+(A) ã¿ã¼ã²ããç¥ç§°
+
+TARGETã«ã¯ï¼ã¿ã¼ã²ããã·ã¹ãã ã®åç§°ãï¼targetãã£ã¬ã¯ããªã®ä¸ã«ç½®ãã
+ã¦ããã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªã®åç§°ã§æå®ããï¼ãã®å®ç¾©ã¯ï¼éå¸¸ã¯ï¼
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãã-Tãªãã·ã§ã³ã«ããè¡ãï¼
+
+(B) ãªãã¸ã§ã¯ããã¡ã¤ã«ã®æ¡å¼µå­
+
+Cygwinç°å¢ã§ã³ã³ãã¤ã«ããæã«ã¯ï¼OBJEXTã"exe"ã«å®ç¾©ããå¿
+è¦ãããï¼ã
+ãã¯ï¼Cygwinç°å¢ã§ã¯ï¼ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®ãã¡ã¤ã«åã«æ¡å¼µå­".exe"ãä»å 
+ãããã®ã«å¯¾å¿ããããã®ãã®ã§ããï¼Cygwinç°å¢ã§ãããã¨ãå¤å®ã§ããã°ï¼
+ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããããã®å®ç¾©ãè¡ãï¼
+
+(C) å®è¡ç°å¢ï¼ã¿ã¼ã²ããä¾å­ï¼
+
+ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼å®è¡ç°å¢ã«å¯¾å¿ãã¦ã¿ã¼ã²ããä¾å­é¨ã®ã³ã¼ããå·®ã
+æããå ´åãããï¼ãããå¯è½ã«ããããã«ï¼å®è¡ç°å¢ã®åç§°ãDBGENVã«å®ç¾©
+ãã¦ããï¼ãã®å®ç¾©ã¯ï¼éå¸¸ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ã
+ã-Dãªãã·ã§ã³ã«ããè¡ãï¼ã©ã®ã¿ã¼ã²ãããã©ã®å®è¡ç°å¢ã«å¯¾å¿ãã¦ããã
+ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãåç
+§ãããã¨ï¼
+
+(D) ã«ã¼ãã«ã©ã¤ãã©ãªã®ãã£ã¬ã¯ããªå
+
+KERNEL_LIBã«ã¯ï¼ã«ã¼ãã«ã©ã¤ãã©ãªã®ç½®ããããã£ã¬ã¯ããªåãå®ç¾©ããï¼
+ãã®å®ç¾©ã¯ï¼éå¸¸ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãã-Lãªãã·ã§
+ã³ã«ããè¡ãï¼
+
+(E) ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ãã
+
+KERNEL_FUNCOBJSã¯ï¼ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ããå ´åã«ã¯trueã«å®ç¾©
+ãï¼ãã¡ã¤ã«åä½ã§ã³ã³ãã¤ã«ããå ´åã«ã¯æªå®ç¾©ã¨ããï¼ãã®å®ç¾©ã¯ï¼éå¸¸
+ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãã-fãªãã·ã§ã³ã«ããè¡ãï¼
+
+(F) å
+±éã³ã³ãã¤ã«ãªãã·ã§ã³
+
+ãã¹ã¦ã®ãã­ã°ã©ã ã«å
+±éããã³ã³ãã¤ã«ãªãã·ã§ã³ã®è¿½å ãå¿
+è¦ãªå ´åã«ã¯ï¼
+ä¸ã®å¤æ°ã®å®ç¾©ãå¤æ´ããï¼ãã®ã³ã³ãã¤ã«ãªãã·ã§ã³ãï¼ç¹å®ã®ã¿ã¼ã²ãã
+ã§å¸¸ã«å¿
+è¦ãªå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­ã®å®ç¾©ãå
+¥ããMakefile.targetç­ãä¿®
+æ­£ãã¹ãã§ããï¼
+
+	CDEFS		ã³ã³ãã¤ã©ã«å¯¾ãã-Dãªãã·ã§ã³ãè¨è¿°ããï¼
+	INCLUDES	ã³ã³ãã¤ã©ã«å¯¾ãã-Iãªãã·ã§ã³ãè¨è¿°ããï¼
+	COPTS		ã³ã³ãã¤ã©ã«å¯¾ãããã®ä»ã®ãªãã·ã§ã³ãè¨è¿°ããï¼
+	LDFLAGS		ãªã³ã«ã«å¯¾ãããªãã·ã§ã³ãè¨è¿°ããï¼
+	LIBS		ã©ã¤ãã©ãªãªã³ã¯ã®ããã®ãªãã·ã§ã³ãè¨è¿°ããï¼
+
+è¿½å ã®å¯è½æ§ã®ããã³ã³ãã¤ã«ãªãã·ã§ã³ã«ã¤ãã¦ã¯ï¼ã6.2 ã³ã³ãã¤ã«ãªã
+ã·ã§ã³ãã®ç¯ãåç
+§ã®ãã¨ï¼
+
+(G) ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã å
+
+APPLNAMEã«ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã åãå®ç¾©ããï¼ã·ã¹ãã ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«åã¯ï¼APPLNAMEã«å®ç¾©ããååã«æ¡å¼µå­".cfg"ãä»å 
+ããååã¨ããï¼ã¾ãï¼ã¢ããªã±ã¼ã·ã§ã³ã®ã¡ã¤ã³ãã¡ã¤ã«ã¯ï¼APPLNAMEã«å®
+ç¾©ããååã«æ¡å¼µå­".c"ãä»å ããååã¨ããï¼ãã®å®ç¾©ã¯ï¼éå¸¸ã¯ï¼ã³ã³ãã£
+ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãã-Aãªãã·ã§ã³ã«ããè¡ãï¼
+
+(H) ã¢ããªã±ã¼ã·ã§ã³ã®ãã£ã¬ã¯ããªå
+
+ã¢ããªã±ã¼ã·ã§ã³ã®ã½ã¼ã¹ãã¡ã¤ã«ãï¼ãªãã¸ã§ã¯ããã¡ã¤ã«ãç½®ãã®ã¨ã¯å¥
+ã®ãã£ã¬ã¯ããªã«ç½®ãå ´åã«ã¯ï¼APPLDIRã«ãã®ãã£ã¬ã¯ããªåãå®ç¾©ããï¼ã
+ã®å®ç¾©ã¯ï¼éå¸¸ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«å¯¾ãã-aãªãã·ã§ã³
+ã«ããè¡ãï¼ã¢ããªã±ã¼ã·ã§ã³ã®ã½ã¼ã¹ãã¡ã¤ã«ãç½®ããã£ã¬ã¯ããªãè¤æ°ã
+ãå ´åã«ã¯ï¼APPL_DIRã®å®ç¾©ãå¤æ´ãããã¨ã§å¯¾å¿ããï¼
+
+(I) ã¢ããªã±ã¼ã·ã§ã³ã®ãã­ã°ã©ã ãã¡ã¤ã«å
+
+ã¢ããªã±ã¼ã·ã§ã³ãè¤æ°ã®ã½ã¼ã¹ãã¡ã¤ã«ã§æ§æãããå ´åã«ã¯ï¼ãã®ãªãã¸ã§
+ã¯ããã¡ã¤ã«åãï¼APPL_ASMOBJSï¼APPL_COBJSï¼APPL_CXXOBJSã«åæããï¼
+
+(J) ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ãã¤ã«ãªãã·ã§ã³
+
+ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ãã¤ã«ã«å¿
+è¦ãªã³ã³ãã¤ã«ãªãã·ã§ã³ãï¼ã¢ããªã±ã¼
+ã·ã§ã³ãã©ã¤ãã©ãªãå¿
+è¦ã¨ããå ´åã«ã¯ï¼APPL_CFLAGSããã³APPL_LIBSã«å®
+ç¾©ããï¼
+
+(K) ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®ãã¡ã¤ã«å
+
+æ¨æºã®ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®ãã¡ã¤ã«åãOBJNAMEã«å®ç¾©ããï¼ããã©ã«ãã¯asp
+ã§ããï¼
+
+(L) ã¿ã¼ã²ãããã¡ã¤ã«ã®å®ç¾©
+
+ã¿ã¼ã²ãã"all"ã®ä¾å­ãã¡ã¤ã«ã¨ãã¦ï¼ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®å½¢å¼ãæå®ããï¼
+å
+·ä½çã«ã¯ï¼ELFå½¢å¼ã®æã¯$(OBJFILE)ï¼ãã¤ããªå½¢å¼ã®æã¯$(OBJNAME).binï¼
+ã¢ãã­ã¼ã© Så½¢å¼ã®æã¯$(OBJNAME).srecãæå®ããï¼$(OBJFILE)ã¯ï¼Cygwin
+ç°å¢ã§OBJEXTã"exe"ã«å®ç¾©ããæã«ã¯$(OBJNAME).exeï¼ããã§ãªãå ´åã«ã¯
+$(OBJNAME)ã¨ãªãï¼
+
+(M) makedepã®ãªãã·ã§ã³ã®å®ç¾©
+
+Cygwinç°å¢ã§ã«ã¼ããã£ã¬ã¯ããªã"cygdrive"ã§ãªãå ´åã«ã¯ï¼makedepã®-Rãª
+ãã·ã§ã³ã§ã«ã¼ããã£ã¬ã¯ããªåãä¸ããå¿
+è¦ãããï¼ã¾ãï¼Makefileã®ã¿ã¼
+ã²ããé¨ï¼":"ã®å·¦å´ï¼ã«è¤æ°ã®ãã¡ã¤ã«åãè¨è¿°ããã¨ï¼ã«ã¼ãã«ãé¢æ°åä½
+ã§ã©ã¤ãã©ãªåããå ´åã«ï¼ãã®ãããªè¨è¿°ãçæãããï¼æ­£ããåä½ããªã
+å ´åã«ã¯ï¼Cygwinç°å¢ã®GNU Makeã§ãã®ãããªå¶éãããã¨ããå ±åãããï¼ï¼
+makedepã«-Sãªãã·ã§ã³ãä»ä¸ããå¿
+è¦ãããï¼
+
+makedepã®ãªãã·ã§ã³ã¯ï¼æ¬¡ã®ä¾ã®ããã«ï¼MAKEDEP_OPTSã«å®ç¾©ããï¼
+
+MAKEDEP_OPTS = -R cygdrive -S
+
+6.2 ã³ã³ãã¤ã«ãªãã·ã§ã³
+
+ASPã«ã¼ãã«ã®ã³ã¼ãä¸­ã«ã¯ï¼assertãã¯ã­ãä½¿ããã¦ããï¼assertãã¯ã­ã¯ï¼
+NDEBUGãå®ç¾©ãããã¨ã§ï¼ãªãã¸ã§ã¯ãã³ã¼ãä¸­ããæ¶ããã¨ãã§ããï¼ã«ã¼
+ãã«ã®ãããã°ãçµäºããã°ï¼-DNDEBUGãæå®ãã¦ã³ã³ãã¤ã«ããæ¹ãå¹çã
+ãããªãï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã«ããã¦ï¼ã³ã³ãã¤ã«ãªãã·ã§ã³ã«-Werrorï¼è­¦åãã¨ã©ã¼æ±
+ãããï¼ãæå®ãã¦ããå ´åãããï¼ãã®ãããªã¿ã¼ã²ããã«ããã¦ï¼ã¢ããª
+ã±ã¼ã·ã§ã³ã§è­¦åãé¿ããããªãå ´åã«ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ãä¿®æ­£ãã¦ã³ã³
+ãã¤ã«ãªãã·ã§ã³ãåé¤ããå¿
+è¦ãããï¼
+
+ã¾ãï¼TOPPERS_OMIT_SYSLOGãå®ç¾©ãã¦ã³ã³ãã¤ã«ãããã¨ã§ï¼ã·ã¹ãã ã­ã°åº
+åãææ­¢ãããã¨ãã§ããï¼
+
+
+ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä½¿ãæ¹
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã¯ï¼TOPPERSæ°ä¸ä»£ã«ã¼ãã«çµ±åä»æ§æ¸ã®2.12.5ç¯
+ã®è¨è¿°ã®éãï¼3ã¤ã®ãã¹ã§æ§æãããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«åããã©ã¡ã¼
+ã¿ã«åãï¼ä»¥ä¸ã®ãªãã·ã§ã³ãæã¤ï¼éè¦ãªãã®ã®ã¿ï¼ï¼
+
+	--help
+		ãªãã·ã§ã³ã®ãªã¹ãã¨èª¬æãè¡¨ç¤ºããï¼
+
+	-vï¼»--versionï¼½
+		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¼ã¸ã§ã³ãè¡¨ç¤ºããï¼
+
+	-kï¼»--kernelï¼½<ã«ã¼ãã«å>
+		ã«ã¼ãã«ã®åç§°ãæå®ããï¼ããã©ã«ãã¯aspï¼
+
+	-pï¼»--passï¼½<ãã¹çªå·>
+		ãã¹çªå·ãæå®ããï¼1ï½3ã®ããããï¼
+
+	-Iï¼»--include-pathï¼½<ã¤ã³ã¯ã«ã¼ããã¹å>
+		INCLUDEãã£ã¬ã¯ãã£ãã«ããã¦ï¼ã¤ã³ã¯ã«ã¼ãããã³ã³ãã£ã®ã¥ã¬ã¼
+		ã·ã§ã³ãã¡ã¤ã«ãæ¢ããã¹åãæå®ããï¼
+
+	-Tï¼»--template-fileï¼½<ãã³ãã¬ã¼ããã¡ã¤ã«å>
+		ãã³ãã¬ã¼ããã¡ã¤ã«ã®åç§°ãæå®ããï¼ãã¹2ã¨ãã¹3ã§æå¹ï¼
+
+	--api-table <éçAPIãã¼ãã«ãã¡ã¤ã«å>
+		éçAPIãã¼ãã«ã®ãã¡ã¤ã«åãæå®ããï¼
+
+	--cfg1-def-table <å¤åå¾ã·ã³ãã«ãã¼ãã«ãã¡ã¤ã«å>
+		å¤åå¾ã·ã³ãã«ãã¼ãã«ã®ãã¡ã¤ã«åãæå®ããï¼
+
+	-rï¼»--rom-imageï¼½<ã­ã¼ãã¢ã¸ã¥ã¼ã«å>
+		ã­ã¼ãã¢ã¸ã¥ã¼ã«ãSã¬ã³ã¼ããã©ã¼ãããã®å½¢ã«å¤æãããã¡ã¤ã«ã®
+		åç§°ãæå®ããï¼ãã¹3ã§ã®ã¿æå¹ï¼
+
+	-s [--symbol-table] <ã·ã³ãã«ãã¡ã¤ã«å>
+		ã­ã¼ãã¢ã¸ã¥ã¼ã«ä¸­ã®åã·ã³ãã«ã¨ã¢ãã¬ã¹ã®å¯¾å¿è¡¨ãå«ãã·ã³ãã«
+		ãã¡ã¤ã«ã®åç§°ãæå®ããï¼ãã¹3ã§ã®ã¿æå¹ï¼
+
+	--id-output-file <IDçªå·åºåãã¡ã¤ã«å>
+		ãªãã¸ã§ã¯ãã®IDçªå·ã®å²ä»ãçµæãï¼æå®ããååã®ãã¡ã¤ã«ã«æ¸
+		ãåºãï¼ãã¹2ã§ã®ã¿æå¹ï¼
+
+	--id-input-file <IDçªå·å
+¥åãã¡ã¤ã«å>
+		ãªãã¸ã§ã¯ãã®IDçªå·ã®å²ä»ããï¼æå®ããååã®ãã¡ã¤ã«ããåã
+		è¾¼ãï¼ãã¹2ã§ã®ã¿æå¹ï¼
+
+	--external-id
+		ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°ã®å®ç¾©ãçæããï¼ãã¹2ã§ã®ã¿
+		æå¹ï¼
+
+	-Mï¼»--print-dependenciesï¼½<ã¿ã¼ã²ããã·ã³ãã«>
+		ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ä¾å­é¢ä¿ãåºåããï¼
+		Makefileä¸­ã®ä¾å­é¢ä¿ãçæããéã«ç¨ããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è©³ç´°ä»æ§ã«ã¤ãã¦ã¯ï¼å¥éPDFãã¡ã¤ã«ã®å½¢ã§é
+å¸ãã¦ã
+ããTOPPERSæ°ä¸ä»£ã«ã¼ãã«ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ä»æ§ããåç
+§ãããã¨ï¼
+
+
+ï¼ï¼ã·ã¹ãã ãµã¼ãã¹
+
+8.1 ã·ã¹ãã ã­ã°æ©è½
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼ã«ã¼ãã«å
+ã§çºçããç°å¸¸äºè±¡ãã«ã¼ãã«ã®ãã¬ã¼ã¹ã­
+ã°ï¼ã·ã¹ãã ãµã¼ãã¹ãã¢ããªã±ã¼ã·ã§ã³ã§çºçããç°å¸¸äºè±¡ããã¬ã¼ã¹ã­ã°
+ãï¼ã­ã°æ
+å ±ã¨ãã¦è¨é²ããããã®æ©è½ã§ããï¼ã¾ãï¼è¨é²ããã­ã°æ
+å ±ãå
+ãåºãæ©è½ãæã¤ï¼
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã§syslog.cfg
+ãã¤ã³ã¯ã«ã¼ããããã¨ã§ï¼ã·ã¹ãã ã«çµã¿è¾¼ããã¨ãã§ããï¼ã·ã¹ãã ã­ã°
+åºåãè¡ãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼t_syslog.hãã¤ã³ã¯ã«ã¼ãããï¼ã¾ãï¼ã·ã¹
+ãã ã­ã°æ©è½ã®ãã®ä»ã®ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼
+syslog.hãã¤ã³ã¯ã«ã¼ãããï¼
+
+8.1.1 ã·ã¹ãã ã­ã°æ©è½ã®ä½ç½®ä»ã
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼ã«ã¼ãã«å
+ãããå¼ã³åºããã¨ãã§ããããï¼ã«ã¼ãã«
+ããä¸ã®éå±¤ã®ã¢ã¸ã¥ã¼ã«ã¨ä½ç½®ä»ãããã¨ãã§ããï¼ãã®æå³ã§ã¯ï¼ä»ã®ã·
+ã¹ãã ãµã¼ãã¹ã¨ã¯ä½ç½®ä»ããç°ãªãï¼
+
+ä¸æ¹ï¼ã­ã°æ
+å ±ãã·ã¹ãã å¤é¨ã«åºåããããã«ã¯ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹
+ãã©ã¤ããªã©ï¼ã«ã¼ãã«ä¸ã§åä½ããã·ã¹ãã ãµã¼ãã¹ãç¨ããå¿
+è¦ãããï¼
+ããã§ï¼ã­ã°æ
+å ±ãã·ã¹ãã å¤é¨ã«åºåããããã®ãµã¼ãã¹ï¼ãããï¼ã·ã¹ã
+ã ã­ã°ã¿ã¹ã¯ã¨å¼ã¶ï¼ã¯ï¼ã·ã¹ãã ã­ã°æ©è½ã¨ã¯åé¢ãã¦å®è£
+ãããã¨ã¨ãï¼
+ã·ã¹ãã ã­ã°æ©è½ã¯ã­ã°æ
+å ±ã®è¨é²ã»ååºãã®ããã®æ©è½ã«çµã£ã¦ããï¼
+
+ä»¥ä¸ã®ããã«ï¼ã·ã¹ãã ã­ã°æ©è½ã¯ã«ã¼ãã«ããä¸ã®éå±¤ã®ã¢ã¸ã¥ã¼ã«ã§ãã
+ãï¼ã·ã¹ãã ã­ã°æ©è½ã®ä¸­ã§ã­ã°æå»ãåãåºãããã«ï¼ã«ã¼ãã«ã®æ©è½ãå¿
+
+è¦ã¨ããï¼å®è£
+ä¸ã¯ï¼ã«ã¼ãã«ã®å
+é¨å¤æ°ãç´æ¥åç
+§ãã¦ããï¼ãã®ããï¼ã«ã¼
+ãã«ã®å®è¡éå§åãçµäºå¾ã¯ï¼ã­ã°æå»ã¯æ­£ããè¨é²ãããªãï¼
+
+8.1.2 ã­ã°ãããã¡ã¸ã®è¨é²ã¨ä½ã¬ãã«åºå
+
+ä¸è¿°ããããã«ï¼ã­ã°æ
+å ±ãã·ã¹ãã ã®å¤é¨ã«åºåããããã«ã¯ï¼ã«ã¼ãã«ä¸
+ã§åä½ããã·ã¹ãã ãµã¼ãã¹ãç¨ããå¿
+è¦ãããããï¼ã«ã¼ãã«ã®åä½ãç¶ç¶
+ã§ããªããããªéå¤§ãªç°å¸¸äºè±¡ãèµ·ãã£ãå ´åã«ã¯ï¼ã­ã°æ
+å ±ãåºåã§ããªã
+ãªãï¼ã¾ãï¼ãããã®ã·ã¹ãã ãµã¼ãã¹èªèº«ããããã°ããå ´åã«ãï¼ã­ã°æ
+
+å ±ã®åºåãã§ããªãï¼
+
+ããã§ï¼ã«ã¼ãã«ä¸ã§åä½ããã·ã¹ãã ãµã¼ãã¹ãä½¿ããªãå ´åã«ã§ãã­ã°æ
+
+å ±ãåºåããããã«ï¼ä½ã¬ãã«åºåæ©è½ãç¨æããï¼ä½ã¬ãã«åºåæ©è½ã¯ï¼ã¿ã¼
+ã²ããä¾å­ã«ç¨æããä½ã¬ãã«ã®æå­åºåé¢æ°ï¼target_fput_logï¼ãç¨ãã¦ã­
+ã°æ
+å ±ãåºåããæ©è½ã§ããï¼ä½ã¬ãã«ã®æå­åºåé¢æ°ã¯ï¼ã¿ã¼ã²ããä¾å­é¨
+ã§ç¨æãããã¨ã¨ãã¦ãããï¼æçµè£½åã«çµã¿è¾¼ã¾ããå ´åãªã©ã§ã¯ï¼æå­ã
+åºåããæ¹æ³ããªãç¶æ³ãèããããï¼ãã®ãããªå ´åï¼ä½ã¬ãã«ã®æå­åºå
+é¢æ°ã«éãããæå­ã¯ï¼ã¡ã¢ãªä¸ã«æ®ãã¦ãããï¼æ¨ã¦ã¦ãã¾ããããªãï¼
+
+ã­ã°æ
+å ±ãï¼ã­ã°ãããã¡ã¸è¨é²ãããä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããã
+ã®è¨­å®ã¯ï¼ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ï¼syslog_msk_logï¼ã«ãã£ã¦è¡
+ããã¨ãã§ããï¼syslog_msk_logã®ä½¿ãæ¹ã«ã¤ãã¦ã¯å¾è¿°ããï¼ããã©ã«ãã§
+ã¯ï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãåä½ãããï¼syslog_msk_logãå¼ã³åºããªãå ´åï¼ï¼
+ãã¹ã¦ã®ã­ã°æ
+å ±ãä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåãï¼ã­ã°ãããã¡ã«ã¯è¨é²
+ããªãï¼
+
+ä½ã¬ãã«åºåæ©è½ãç¨ããã¨ï¼ã­ã°ã¡ãã»ã¼ã¸ã®ä½æå¦çï¼printfç¸å½ã®å¦çï¼
+ã¨ä½ã¬ãã«ã®æå­åºåå¦çãã«ã¼ãã«å
+ã§è¡ãããã«ï¼ã«ã¼ãã«ã®å¿ç­æ§ãæª
+ããªããã¨ã«æ³¨æããªããã°ãªããªãï¼ç¹ã«ï¼ä½ã¬ãã«ã®æå­åºåå¦çã¯ãã
+ã¤ã¹ããã¼ãªã³ã°ããå½¢ã§å®è£
+ããã®ãéå¸¸ã§ï¼ãã®å ´åã«ã¯ï¼ã«ã¼ãã«ã®å¿
+ç­æ§ã¯å®ç¨çã¨è¨ããªãç¨ã«æªããªãï¼
+
+8.1.3 ã­ã°æ
+å ±ã®ç¨®å¥
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼ã­ã°æ
+å ±ã«ä»¥ä¸ã®ç¨®å¥ãè¨­ãã¦ããï¼
+
+		LOG_TYPE_COMMENT	ã³ã¡ã³ã
+		LOG_TYPE_ASSERT		ã¢ãµã¼ã·ã§ã³ã®å¤±æ
+		LOG_TYPE_INH		å²è¾¼ã¿ãã³ãã©
+		LOG_TYPE_ISR		å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³
+		LOG_TYPE_CYC		å¨æãã³ãã©
+		LOG_TYPE_ALM		ã¢ã©ã¼ã ãã³ãã©
+		LOG_TYPE_OVR		ãªã¼ãã©ã³ãã³ãã©
+		LOG_TYPE_EXC		CPUä¾å¤ãã³ãã©
+		LOG_TYPE_TEX		ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+		LOG_TYPE_TSKSTAT	ã¿ã¹ã¯ç¶æ
+å¤å
+		LOG_TYPE_DSP		ãã£ã¹ãããã£
+		LOG_TYPE_SVC		ãµã¼ãã¹ã³ã¼ã«
+
+ã­ã°æ
+å ±ã®ç¨®å¥ã®ä¸­ã§ï¼LOG_TYPE_COMMENTã¨LOG_TYPE_ASSERTä»¥å¤ã¯ï¼ã«ã¼ãã«
+ã®ãã¬ã¼ã¹ã­ã°ã«ç¨ããããã®ãã®ã§ãããï¼ä½¿ç¨ãããã©ããã¯ã¿ã¼ã²ãã
+ä¾å­é¨ã«ä»»ããã¦ããï¼
+
+8.1.4 ã­ã°æ
+å ±ã®éè¦åº¦
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼ã­ã°æ
+å ±ãåºåããéã«æå®ããéè¦åº¦ã«åºã¥ãã¦ï¼å®
+éã«åºåããã­ã°æ
+å ±ãåçã«è¨­å®ãããã¨ãã§ããï¼ããã¯ï¼UNIXã®ã·ã¹ã
+ã ã­ã°æ©è½ãã¾ã­ããã®ã§ï¼ã­ã°ã®éè¦åº¦ã®ç¨®é¡ãæå®æ¹æ³ãUNIXã®APIãåè
+ã«ãã¦ããï¼ã¾ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããã­ã°æ
+å ±ãï¼éè¦åº¦ã«
+åºã¥ãã¦åçã«è¨­å®ãããã¨ãã§ããï¼
+
+å
+·ä½çã«ã¯ï¼ã­ã°ã®éè¦åº¦ã¨ãã¦æ¬¡ã®8æ®µéãç¨æãã¦ããï¼
+
+		LOG_EMERG		ã«ã¼ãã«ã®åä½ãç¶ç¶ã§ããªãã¨ã©ã¼
+		LOG_ALERT
+		LOG_CRIT
+		LOG_ERROR		éè¦æ§ã®ä½ãã·ã¹ãã ã¨ã©ã¼
+		LOG_WARNING		è­¦åã¡ãã»ã¼ã¸ï¼ã·ã¹ãã ã¯å®å
+¨ã«ç¶ç¶åä½ã§ãã
+		LOG_NOTICE
+		LOG_INFO
+		LOG_DEBUG		ãããã°ã®ããã®ã¡ãã»ã¼ã¸
+
+ã©ã®éè¦åº¦ã®ã­ã°æ
+å ±ãã­ã°ãããã¡ã«è¨é²ãããã¨ï¼ã©ã®éè¦åº¦ã®ã­ã°æ
+å ±
+ãä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåãããã¯ï¼ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼
+ã«ï¼syslog_msk_logï¼ã«ãã£ã¦è¨­å®ãããã¨ãã§ããï¼
+
+8.1.5 ã­ã°æ
+å ±ã®ãã¼ã¿æ§é 
+
+ã­ã°æ
+å ±ãæ ¼ç´ããããã®ãã¼ã¿åã¨ãã¦ï¼SYSLOGæ§é ä½ãç¨æãã¦ããï¼
+SYSLOGæ§é ä½ã«ã¯ï¼ã­ã°æ
+å ±ã®ç¨®å¥ï¼logtypeãã£ã¼ã«ãï¼ï¼ã­ã°æå»
+ï¼logtimãã£ã¼ã«ãï¼ï¼ãã®ä»ã®ã­ã°æ
+å ±ï¼loginfoãã£ã¼ã«ãï¼ãå«ã¾ããï¼
+
+SYSLOGæ§é ä½ã«æ ¼ç´ãããã­ã°æ
+å ±ãåºåããå ´åã«ã¯ï¼ã­ã°æå»ã¯åºåé¢æ°
+ï¼syslog_wri_logï¼ã«ãã£ã¦æ¸ãè¾¼ã¾ããããï¼åºåé¢æ°ãå¼ã¶å´ã§æ¸ãè¾¼ã
+å¿
+è¦ã¯ãªãï¼
+
+8.1.6 ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«
+
+ã·ã¹ãã ã­ã°æ©è½ã®æä¾ãããµã¼ãã¹ã³ã¼ã«ã¯æ¬¡ã®éãã§ããï¼ãããã®ãµã¼
+ãã¹ã³ã¼ã«ãå¼ã³åºãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼syslog.hãã¤ã³ã¯ã«ã¼ãããå¿
+è¦
+ãããï¼
+
+(1) ER syslog_wri_log(uint_t prio, const SYSLOG *p_syslog)
+
+ã·ã¹ãã ã­ã°æ©è½ã«ï¼p_syslogã§æå®ãããã­ã°æ
+å ±ãï¼prioã§æå®ãããé
+è¦åº¦ã§åºåããï¼ã­ã°ãããã¡ã¸è¨é²ãããä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåã
+ãï¼ï¼
+
+ãã­ãã¿ã¤ãå®£è¨ã«ããã¦ï¼*p_syslogã«constæå®ãããã¦ãããï¼å®éã«ã¯ï¼
+ãã®é¢æ°ã®ä¸­ã§ï¼*p_syslogã®logtimãã£ã¼ã«ãã«ã·ã¹ãã æå»ãæ¸ãè¾¼ãã§ã
+ãï¼
+
+(2) ER_UINT syslog_rea_log(SYSLOG *p_syslog)
+
+ã­ã°ãããã¡ããã­ã°æ
+å ±ã1ã¤åãåºãï¼ã­ã°ãããã¡ãç©ºã®æã¯E_OBJï¼ã
+ãã§ãªãå ´åã¯ï¼ã­ã°ãããã¡ã®ãªã¼ããã­ã¼ã«ããå¤±ãããã­ã°æ
+å ±ã®æ°
+ï¼ã­ã°æ
+å ±ãå¤±ããã¦ããªãå ´åã¯0ï¼ãè¿ãï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãç¨ããã
+ã¨ãæ³å®ãã¦ããï¼
+
+(3) ER syslog_msk_log(uint_t logmask, uint_t lowmask)
+
+ã­ã°ãããã¡ã«è¨é²ãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ã®ç¤ºãããããããï¼logmaskï¼ã¨ï¼
+ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ãç¤ºããããããã
+ï¼lowmaskï¼ãè¨­å®ããï¼ãããããããä½ãããã®ãã¯ã­ã¨ãã¦ï¼LOG_MASKã¨
+LOG_UPTOãç¨æãã¦ããï¼
+
+(4) ER syslog_ref_log(T_SYSLOG_RLOG *pk_rlog)
+
+ã·ã¹ãã ã­ã°æ©è½ã®ç¶æ
+ãåç
+§ããï¼å
+·ä½çã«ã¯ï¼ã­ã°ãããã¡ã«è¨é²ããã¦
+ããã­ã°æ
+å ±ã®æ°ï¼T_SYSLOG_RLOGæ§é ä½ã®countãã£ã¼ã«ãï¼ï¼ã­ã°ãããã¡
+ã®ãªã¼ããã­ã¼ã«ããå¤±ãããã­ã°æ
+å ±ã®æ°ï¼lostãã£ã¼ã«ãï¼ï¼ã­ã°ãããã¡
+ã«è¨é²ãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ã®ç¤ºãããããããï¼logmaskãã£ã¼ã«ãï¼ï¼ä½
+ã¬ãã«åºåæ©è½ãç¨ãã¦åºåãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ãç¤ºããããããã
+ï¼lowmaskãã£ã¼ã«ãï¼ãåç
+§ãããã¨ãã§ããï¼
+
+8.1.7 ã·ã¹ãã ã­ã°æ©è½ã®ããã®ã©ã¤ãã©ãªé¢æ°ã¨ãã¯ã­
+
+ã·ã¹ãã ã­ã°åºåã®ããã®ã©ã¤ãã©ãªé¢æ°ã¨ãã¯ã­ã¯æ¬¡ã®éãã§ããï¼ããã
+ã ããå¼ã³åºãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼t_syslog.hãã¤ã³ã¯ã«ã¼ãããã°ããï¼
+
+(1) void _syslog_n(uint_t prio, uint_t type, intptr_t arg1, ..., intptr_t argn)
+    â» nã¯0ï½6ã®ããããï¼
+
+ã­ã°ç¨®å¥ãtypeï¼ãã©ã¡ã¼ã¿ãarg1ï½argnã®ã­ã°æ
+å ±ãï¼éè¦åº¦prioã§åºåã
+ãããã®é¢æ°ï¼
+
+(2) void syslog_n(uint_t prio, const char *format, arg1, ..., argn)
+    â» nã¯0ï½5ã®ããããï¼
+
+formatæå­åããã³ããã«ç¶ãå¼æ°ããä½æãããã¡ãã»ã¼ã¸ãï¼ã­ã°ç¨®å¥ã
+LOG_TYPE_COMMENTã®ã­ã°æ
+å ±ã¨ãã¦ï¼éè¦åº¦prioã§åºåããããã®ãã¯ã­ï¼
+
+formatã¯ã¡ãã»ã¼ã¸ã®ãã©ã¼ãããè¨è¿°ï¼arg1ï½argnã¯ãã©ã¼ãããè¨è¿°ä¸­ã§
+åç
+§ãããå¤ã§ï¼printfã®ãã©ã¼ãããè¨è¿°ã®ãµãã»ããã¨ãªã£ã¦ããï¼arg1ï½
+argnã¯ï¼ãã®ãã¯ã­ä¸­ã§intptr_tåã«ã­ã£ã¹ããããããï¼intptr_tåã«åå¤
+æã§ããä»»æã®åãæ¸¡ããã¨ãã§ãï¼åãã§ãã¯ã¯ãããªãï¼formatããã³
+arg1ï½argnã«ã¯ï¼æ¬¡ã®å¶éãããï¼
+
+ã»formatã®ãã©ã¼ãããè¨è¿°ã¯ï¼å®æ°æå­åãæ¸¡ããã¨ãæ³å®ãã¦ããï¼ãã®
+ãã¯ã­å¦çãçµããå¾ãå¤åãã¦ã¯ãªããªãï¼
+
+ã»formatä¸­ã«ä½¿ãããã©ã¼ãããæå®ã¯æ¬¡ã®éãï¼
+
+	%d		å¼æ°ãint_tåã¨ã¿ãªãï¼10é²æ°ã§è¡¨ç¤º
+	%u		å¼æ°ãuint_tåã¨ã¿ãªãï¼10é²æ°ã§è¡¨ç¤º
+	%x		å¼æ°ãuint_tåã¨ã¿ãªãï¼16é²æ°ï¼è±æå­ã¯å°æå­ï¼ã§è¡¨ç¤º
+	%X		å¼æ°ãuint_tåã¨ã¿ãªãï¼16é²æ°ï¼è±æå­ã¯å¤§æå­ï¼ã§è¡¨ç¤º
+	%p		å¼æ°ããã¤ã³ã¿ã¨ã¿ãªãï¼16é²æ°ï¼è±æå­ã¯å°æå­ï¼ã§è¡¨ç¤º
+	%c		å¼æ°ãæå­ã³ã¼ãã¨ã¿ãªãï¼æå­ãè¡¨ç¤º
+	%s		å¼æ°ãæå­åãç¤ºããã¤ã³ã¿ã¨ã¿ãªãï¼æå­åãè¡¨ç¤º
+	%%		'%'ãè¡¨ç¤ºï¼å¼æ°ã¯åããªãï¼
+
+%d, %u, %x, %Xã«ããã¦ã¯ï¼'%'ã®ç´å¾ã«è¡¨ç¤ºæ¡æ°ãæå®ãã10é²æ°å¤ãè¨è¿°ã
+ããã¨ãã§ããï¼ãã®å ´åï¼è¡¨ç¤ºãã¹ãæå­åãæå®ããæ¡æ°ã«æºããªãå ´å
+ã«ã¯ï¼æå®ããæ¡æ°å
+ã«å³è©°ãã§è¡¨ç¤ºããï¼10é²æ°å¤ã'0'ã§å§ã¾ãå ´åã«ã¯ï¼
+ãã®éã«'0'ãåããï¼
+
+ã¾ãï¼intptr_tåã®ãµã¤ãºãlongåã®ãµã¤ãºä»¥ä¸ã§ããç°å¢ã«ããã¦ã¯ï¼æ¬¡ã®
+ãã©ã¼ãããæå®ãä½¿ç¨ãããã¨ãã§ããï¼ãã®ä»ã®ãã©ã¼ãããæå®ã«'l'
+ãä»å ããå ´åã«ã¯ç¡è¦ããï¼%lcã¨%lsã«ã¯å¯¾å¿ãã¦ããªãï¼ï¼
+
+	%ld		å¼æ°ãlong_tåã¨ã¿ãªãï¼10é²æ°ã§è¡¨ç¤º
+	%lu		å¼æ°ãulong_tåã¨ã¿ãªãï¼10é²æ°ã§è¡¨ç¤º
+	%lx		å¼æ°ãulong_tåã¨ã¿ãªãï¼16é²æ°ï¼è±æå­ã¯å°æå­ï¼ã§è¡¨ç¤º
+	%lX		å¼æ°ãulong_tåã¨ã¿ãªãï¼16é²æ°ï¼è±æå­ã¯å¤§æå­ï¼ã§è¡¨ç¤º
+
+ã»arg1ï½argnã«ãã¤ã³ã¿ãæ¸¡ãå ´åï¼%sã«å¯¾å¿ããå¼æ°ã®å ´åï¼ã«ï¼ãã¤ã³ã¿
+ã®æããã¼ã¿ã¯ï¼ãã®ãã¯ã­å¦çãçµããå¾ãå¤åãã¦ã¯ãªããªãï¼å®æ°æå­
+åãæ¸¡ããã¨ãæ³å®ãã¦ããï¼
+
+(3) void syslog(uint_t prio, const char *format, ...)
+
+formatæå­åããã³ããã«ç¶ãå¼æ°ããä½æãããã¡ãã»ã¼ã¸ãï¼ã­ã°ç¨®å¥ã
+LOG_TYPE_COMMENTã®ã­ã°æ
+å ±ã¨ãã¦ï¼éè¦åº¦prioã§åºåããããã®é¢æ°ã§ï¼å¼
+æ°ã®æ°ãå¯å¤ã«ãããã®ï¼formatã«ç¶ãå¼æ°ã¯æå¤§5åã¾ã§ï¼formatããã³ãã
+ã«ç¶ãå¼æ°ã«ã¯ï¼syslog_nã¨åæ§ã®å¶éãããï¼
+
+ãã®ã©ã¤ãã©ãªé¢æ°ã¯ï¼å¯å¤æ°å¼æ°ãå¦çããããã«å
+é¨ã§æå­åãã¹ã­ã£ã³
+ããï¼ãã®ããï¼å®è¡æéãé·ããªãå¯è½æ§ãããï¼å²è¾¼ã¿ç¦æ­¢ç¶æ
+ã§å¼ã³åº
+ãã¹ãã§ã¯ãªãï¼ä¸»ã«ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãç¨ãããã¨ãæ³å®ãã¦ã
+ãï¼
+
+(4) UINT LOG_MASK(UINT prio)
+
+éè¦åº¦prioã®ã¿ã»ããããããããããããä½ããã¯ã­ï¼syslog_msk_logã«æ¸¡
+ãå¼æ°ãä½ãããã«ç¨ããï¼
+
+(5) UINT LOG_UPTO(UINT prio)
+
+éè¦åº¦prioä»¥ä¸ã®éè¦åº¦ããã¹ã¦ã»ããããããããããããä½ããã¯ã­ï¼
+syslog_msk_logã«æ¸¡ãå¼æ°ãä½ãããã«ç¨ããï¼
+
+8.1.8 ã·ã¹ãã ã­ã°æ©è½ã®ãã®ä»ã®ãµã¼ãã¹
+
+ã·ã¹ãã ã­ã°æ©è½ã¯ï¼åè¨ã®ãµã¼ãã¹ã³ã¼ã«ç­ã«å ãã¦ï¼åæåå¦çã®ããã®
+é¢æ°ãæã¤ï¼
+
+(1) void syslog_initialize(intptr_t exinf)
+
+ã·ã¹ãã ã­ã°æ©è½ãåæåããï¼ã­ã°ãããã¡ã«ã­ã°æ
+å ±ãè¨é²ããã¦ããå ´
+åã«ã¯ï¼æ¶å»ãããï¼syslog.cfgã«ãã£ã¦ï¼ã«ã¼ãã«ã«åæåã«ã¼ãã³ã¨ãã¦
+ç»é²ãããï¼exinfã¯ç¡è¦ãããï¼
+
+8.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ã·ãªã¢ã«ãã¼ããæ±ãããã®ãã©ã¤ãã§
+ããï¼
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤
+ã«ã§serial.cfgãã¤ã³ã¯ã«ã¼ããããã¨ã§ï¼ã·ã¹ãã ã«çµã¿è¾¼ããã¨ãã§ããï¼
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼serial.hã
+ã¤ã³ã¯ã«ã¼ãããï¼
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼ãã¼ãæ¯ã«ã»ããã©ã2åãã¤ä½¿ç¨ããï¼
+ã»ããã©ãçæããéçAPIã¯ï¼serial.cfgã«å«ã¾ãã¦ããï¼
+
+8.2.1 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããå¼ã³åºããµã¼ãã¹ã³ã¼ã«ã®ä»æ§ã¯æ¬¡ã®éã
+ã§ããï¼ãã®ä¸­ã§ï¼ã·ãªã¢ã«ãã¼ãã®IDçªå·ï¼portidï¼ã®è§£éã¯ã¿ã¼ã²ããä¾
+å­ã¨ãªãï¼
+
+ãããã®ãµã¼ãã¹ã³ã¼ã«ã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãããå¼ã³åºããã¨ã¯ã§ããª
+ãï¼ã¾ãï¼serial_rea_datã¨serial_wri_datã¯ï¼ãã£ã¹ãããä¿çç¶æ
+ã§å¼ã³
+åºããã¨ã¯ã§ããªãï¼ããããï¼å¼ã³åºããå ´åã«ã¯E_CTXã¨ã©ã¼ã¨ãªãï¼
+
+(1) ER serial_opn_por(ID portid)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãããªã¼ãã³ãï¼åä¿¡ï¼éä¿¡ãå¯è½ãªç¶æ
+ã«
+ããï¼
+
+(2) ER serial_cls_por(ID portid)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ããã¯ã­ã¼ãºããï¼
+
+(3) ER_UINT serial_rea_dat(ID portid, char *buf, uint_t len)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãããï¼lenãã¤ãã®æå­åãåä¿¡ãï¼bufã
+ãã®é åã«å
+¥ããï¼lenãã¤ãåä¿¡ããã¾ã§ï¼å¾
+ã¡ç¶æ
+ã¨ãªãï¼åä¿¡ããæå­æ°
+ã¾ãã¯ã¨ã©ã¼ã³ã¼ããè¿ãï¼
+
+(4) ER_UINT serial_wri_dat(ID portid, const char *buf, uint_t len)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãã«ï¼bufããã®lenãã¤ãã®æå­åãéä¿¡ã
+ãï¼lenãã¤ãéä¿¡ãããã¡ã«å
+¥ããã¾ã§ï¼å¾
+ã¡ç¶æ
+ã¨ãªãï¼éä¿¡ããæå­æ°ã¾
+ãã¯ã¨ã©ã¼ã³ã¼ããè¿ãï¼
+
+(5) ER serial_ctl_por(ID portid, uint_t ioctl)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãã®å¶å¾¡æ
+å ±ãï¼ioctlã§ç¤ºãããå¤ã«è¨­å®ã
+ãï¼
+
+ioctlã«ã¯ï¼ä»¥ä¸ã®å¶å¾¡æ
+å ±ãè¡¨ãå®æ°ãï¼ãããæ¯ã«è«çåãã¨ã£ããã®ã
+æå®ããï¼
+
+	IOCTL_ECHOï¼ã¨ã³ã¼ããã¯ã¢ã¼ãï¼
+		ãã®ããããè¨­å®ããã¨ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããã¨ã³ã¼
+		ããã¯ãè¡ãï¼å
+·ä½çã«ã¯ï¼ãããã¡ããæå­ãåãåºãåº¦ã«ï¼ãã®
+		æå­ãæ¸ãåºãï¼
+
+	IOCTL_CRLFï¼æ¹è¡ã¢ã¼ãï¼
+		LFï¼line feedï¼ãæ¸ãåºãã¨ï¼CRï¼carriage returnï¼ï¼LFã«å¤æã
+		ã¦æ¸ãåºãï¼
+
+	IOCTL_FCSNDï¼éä¿¡ãã­ã¼å¶å¾¡ï¼
+		æå­ãéä¿¡ããå¦çã«å¯¾ãã¦ï¼XON/XOFFã«ãããã­ã¼å¶å¾¡ãè¡ãï¼
+		ããªãã¡ï¼STOPï¼ã³ã³ãã­ã¼ã«-Sï¼ãåä¿¡ããã¨éä¿¡ãåæ­¢ãï¼
+		STARTï¼ã³ã³ãã­ã¼ã«-Qï¼ãåä¿¡ããã¨éä¿¡ãåéããï¼
+
+	IOCTL_FCANYï¼éä¿¡ãã­ã¼å¶å¾¡ã§ä»»æã®æå­ã§éä¿¡åéï¼
+		IOCTL_FCSNDãæå®ãã¦ããæã«ï¼éä¿¡åæ­¢ä¸­ã«åä¿¡ããä»»æã®æå­
+		ã§éä¿¡ãåéããï¼
+
+	IOCTL_FCRCVï¼åä¿¡ãã­ã¼å¶å¾¡ï¼
+		æå­ãåä¿¡ããå¦çã«å¯¾ãã¦ï¼XON/XOFFã«ãããã­ã¼å¶å¾¡ãè¡ãï¼
+		ããªãã¡ï¼åä¿¡ãããã¡ã®æ®ãé åãå°ãªããªãã¨STOPï¼ã³ã³ãã­ã¼
+		ã«-Sï¼ãéåºãï¼æ®ãé åãå¢ããã°STARTï¼ã³ã³ãã­ã¼ã«-Qï¼ãé
+		åºããï¼
+
+ãªãï¼ãªã¼ãã³ç´å¾ã®ããã©ã«ãã®è¨­å®å¤ã¯(IOCTL_ECHO | IOCTL_CRLF |
+IOCTL_FCSND | IOCTL_FCRCV)ã§ããï¼
+
+(6) ER serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãã®ç¶æ
+ãåç
+§ãï¼pk_rporã§æå®ããããã±ã
+ãã«è¿ãï¼ãã±ããä¸­ã®reacntã«ã¯åä¿¡ãããã¡ä¸­ã®æå­æ°ãï¼wricntã«ã¯é
+ä¿¡ãããã¡ä¸­ã®æå­æ°ãè¿ãï¼
+
+8.2.2 ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãã®ä»ã®ãµã¼ãã¹
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã¯ï¼åè¨ã®ãµã¼ãã¹ã³ã¼ã«ã«å ãã¦ï¼åæå
+å¦çã¨æªéä¿¡æå­ã®ååºãå¦çãæã¤ï¼åæåå¦çã¯ï¼ã«ã¼ãã«ã«åæåã«ã¼
+ãã³ã¨ãã¦ç»é²ããï¼ã¾ãï¼ã¿ã¼ã²ããä¾å­ã§ï¼åæåå¦çï¼çµäºå¦çï¼å²è¾¼
+ã¿ãµã¼ãã¹ã«ã¼ãã³ãæã¤ï¼ãããã®ç»é²å¦çã¯serial.cfgã«å«ã¾ããï¼
+
+(1) void serial_initialize(intptr_t exinf)
+
+ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ããåæåããï¼ã«ã¼ãã«ã«åæåã«ã¼ãã³ã¨
+ãã¦ç»é²ããï¼exinfã¯ç¡è¦ããï¼
+
+(2) bool_t serial_get_chr(ID portid, char *p_c)
+
+portidã§æå®ãããã·ãªã¢ã«ãã¼ãã®éä¿¡ãããã¡ä¸­ã®æå­ãï¼p_cã®æãçªå°
+ã«åãåºãï¼trueãè¿ãé¢æ°ï¼æå­ããªãã£ãæã«ã¯ï¼falseãè¿ãï¼çµäºå¦ç
+ã«ã¼ãã³ä¸­ã§å¼ã³åºããã¨ãæ³å®ãã¦ããï¼
+
+8.3 ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ï¼ã·ã¹ãã ã­ã°æ©è½ããã­ã°æ
+å ±ãåãåºãï¼ãããã·
+ã¹ãã ã®å¤é¨ã«åºåããããã®ãµã¼ãã¹ã§ããï¼
+
+ASPã«ã¼ãã«ã®ãªãªã¼ã¹ããã±ã¼ã¸ã«å«ã¾ããã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«
+ãã¼ãã«ã­ã°æ
+å ±ãæå­åã®å½¢ã§åºåãããã®ã§ï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ä¸ä¾
+ã¨ããä½ç½®ä»ãã§æä¾ãã¦ããï¼
+
+ãã®ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã§
+logtask.cfgãã¤ã³ã¯ã«ã¼ããããã¨ã§ï¼ã·ã¹ãã ã«çµã¿è¾¼ããã¨ãã§ããï¼ã·
+ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãµã¼ãã¹ãå¼ã³åºãã½ã¼ã¹ãã¡ã¤ã«ã§ã¯ï¼logtask.hãã¤ã³
+ã¯ã«ã¼ãããï¼
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãå®è¡éå§ãããã¨ï¼éè¦åº¦ãLOG_EMERGã®ã­ã°æ
+å ±ãä½ã¬
+ãã«åºåæ©è½ãç¨ãã¦åºåãï¼éè¦åº¦ãLOG_NOTICEãããããé«ãã­ã°æ
+å ±ã
+ã­ã°ãããã¡ã«è¨é²ããããã«ï¼ã·ã¹ãã ã­ã°æ©è½ã®è¨­å®ãå¤æ´ãããï¼
+
+8.3.1 ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãµã¼ãã¹ã³ã¼ã«
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãµã¼ãã¹ãå¼ã³åºããµã¼ãã¹ã³ã¼ã«ã®ä»æ§ã¯æ¬¡ã®éãã§
+ããï¼
+
+(1) ER logtask_flush(uint_t count)
+
+ã·ã¹ãã ã­ã°æ©è½ã®ã­ã°ãããã¡ä¸­ã®ã­ã°æ
+å ±ã®æ°ãcountä»¥ä¸ã«ãªãã¾ã§å¾
+ã¤ï¼
+countã0ã®å ´åã«ã¯ï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®éä¿¡ãããã¡ãç©ºã«
+ãªãã®ãå¾
+ã¤ï¼
+
+8.3.2 ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ãã®ä»ã®ãµã¼ãã¹
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¯ï¼åè¨ã®ãµã¼ãã¹ã³ã¼ã«ã«å ãã¦ï¼ã¡ã¤ã³å¦çã¨çµäºå¦
+çãæã¤ï¼ã¡ã¤ã³å¦çã¯ã¿ã¹ã¯ã¨ãã¦ï¼çµäºå¦çã¯çµäºå¦çã«ã¼ãã³ã¨ãã¦ç»
+é²ããï¼ãããã®ç»é²å¦çã¯logtask.cfgã«å«ã¾ããï¼
+
+(1) void logtask_main(intptr_t exinf)
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¡ã¤ã³å¦çï¼exinfã«ã¯ï¼ã­ã°æ
+å ±ãåºåããã·ãªã¢ã«ãã¼
+ãã®IDçªå·ãæ¸¡ãï¼
+
+(2) void logtask_terminate(intptr_t exinf)
+
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦çï¼ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®éä¿¡ãã
+ãã¡ã«èç©ããããã¼ã¿ã¨ï¼ã­ã°ãããã¡ã«è¨é²ãããã­ã°æ
+å ±ãï¼ä½ã¬ãã«
+åºåæ©è½ãç¨ãã¦åºåããï¼åºåãã¹ãã­ã°æ
+å ±ãããå ´åã«ã¯ï¼ãããåºå
+ããåã«ï¼"-- buffered messages --"ã¨ããæå­åãåºåããï¼exinfã¯ç¡è¦
+ããï¼
+
+ãã®é¢æ°ãçµäºå¦çã«ã¼ãã³ã¨ãã¦ç»é²ãããã¨ã§ï¼ã«ã¼ãã«çµäºæç¹ã§æªåº
+åã®ã­ã°æ
+å ±ã®ã»ã¨ãã©ãåºåãããã¨ãã§ããï¼ãã ãï¼æªåºåã®ã­ã°æ
+å ±
+ã®å
+ï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã¡ã¤ã³å¦çãï¼ã­ã°ãããã¡ããåãåºãããï¼
+ã¾ã ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã«éä¿¡ãã¦ããªãæ
+å ±ã¯ï¼ãã®é¢æ°ã§ã¯
+åºåã§ããªãï¼
+
+8.4 ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+
+ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã¯ï¼ã«ã¼ãã«ã®èµ·åæã«ï¼ã«ã¼ãã«ã®åç§°ããã¼
+ã¸ã§ã³çªå·ï¼èä½æ¨©è¡¨ç¤ºãªã©ãåºåããããã®æ©è½ã§ããï¼
+
+ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã¯ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ã§banner.cfgãã¤ã³ã¯ã«ã¼ããããã¨ã§ï¼ã·ã¹ãã ã«çµã¿è¾¼ããã¨ãã§ããï¼
+
+ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã¯ï¼æ¬¡ã®é¢æ°ã§æ§æãããï¼
+
+(1) void print_banner(intptr_t exinf)
+
+ã·ã¹ãã ã­ã°æ©è½ãç¨ãã¦ï¼ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ãåºåããï¼banner.cfg
+ã«ãã£ã¦ï¼ã«ã¼ãã«ã«åæåã«ã¼ãã³ã¨ãã¦ç»é²ãããï¼exinfã¯ç¡è¦ãããï¼
+
+
+ï¼ï¼ãµãã¼ãã©ã¤ãã©ãª
+
+ãµãã¼ãã©ã¤ãã©ãªã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãã·ã¹ãã ãµã¼ãã¹ãä½æãããã
+ã«å©ç¨ã§ããã©ã¤ãã©ãªé¢æ°ç¾¤ã§ããï¼
+
+9.1 åºæ¬çãªã©ã¤ãã©ãªé¢æ°
+
+åºæ¬çãªã©ã¤ãã©ãªé¢æ°ãç¨ããå ´åã«ã¯ï¼t_stdlib.hãã¤ã³ã¯ã«ã¼ããï¼å¿
+
+è¦ã«å¿ãã¦strerror.cã¨t_perror.cãã³ã³ãã¤ã«ã»ãªã³ã¯ããï¼
+
+(1) const char *itron_strerror(ER ercd)
+
+ercdã§ç¤ºãããã¨ã©ã¼ã³ã¼ãã«å¯¾å¿ããã¡ã¤ã³ã¨ã©ã¼ã³ã¼ãã®æå­åãè¿ãï¼
+
+(2) void t_perror(uint_t prio, const char *file, int_t line,
+										const char *expr, ER ercd);
+
+ãµã¼ãã¹ã³ã¼ã«ãã¨ã©ã¼ãè¿ããå ´åã«ç¨ãããã¨ãæ³å®ããé¢æ°ã§ï¼ãã¡ã¤
+ã«åï¼è¡çªå·ï¼ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ãç­ãï¼éè¦åº¦prioã§ï¼ã·ã¹ãã ã­ã°æ©è½ã
+ç¨ãã¦åºåããï¼
+
+9.2 ã­ã¥ã¼æä½ã©ã¤ãã©ãªé¢æ°
+
+ã­ã¥ã¼æä½ã©ã¤ãã©ãªã¯ï¼ã­ã¥ã¼ããããå«ããªã³ã°æ§é ã®ããã«ãªã³ã¯ã­ã¥ã¼
+ãæ±ãã©ã¤ãã©ãªã§ããï¼ã­ã¥ã¼ãããã®æ¬¡ã¨ã³ããªã¯ã­ã¥ã¼ã®å
+é ­ã®ã¨ã³ã
+ãªï¼åã¨ã³ããªã¯ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã¨ããï¼ã¾ãï¼ã­ã¥ã¼ã®å
+é ­ã®ã¨ã³
+ããªã®åã¨ã³ããªã¨ï¼ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã®æ¬¡ã¨ã³ããªã¯ï¼ã­ã¥ã¼ããã
+ã¨ããï¼ç©ºã®ã­ã¥ã¼ã¯ï¼æ¬¡ã¨ã³ããªï¼åã¨ã³ããªã¨ãèªåèªèº«ãæãã­ã¥ã¼ãã
+ãã§ããããï¼
+
+ã­ã¥ã¼æä½ã©ã¤ãã©ãªé¢æ°ãç¨ããå ´åã«ã¯ï¼queue.hãã¤ã³ã¯ã«ã¼ãããï¼
+
+ã­ã¥ã¼ãããã¨ã¨ã³ããªã®ããã®ãã¼ã¿æ§é ã¨ãã¦ï¼QUEUEæ§é ä½ãç¨ããï¼
+QUEUEæ§é ä½ã®å®ç¾©ã¯æ¬¡ã®éãï¼
+
+	typedef struct queue {
+		struct queue *p_next;		/* æ¬¡ã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+		struct queue *p_prev;		/* åã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+	} QUEUE;
+
+ã­ã¥ã¼æä½ã®ããã«ç¨æãã¦ããé¢æ°ã¯æ¬¡ã®éãï¼
+
+(1) void queue_initialize(QUEUE *p_queue);
+
+ã­ã¥ã¼ãåæåããï¼p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+
+(2) void queue_insert_prev(QUEUE *p_queue, QUEUE *p_entry);
+
+p_queueã§æå®ããã¨ã³ããªã®åã«ï¼p_entryã§æå®ããã¨ã³ããªãæ¿å
+¥ããï¼
+p_queueã«ã­ã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ã­ã¥ã¼ã®æ«å°¾ã«p_entryã§æå®ã
+ãã¨ã³ããªãæ¿å
+¥ãããã¨ã«ãªãï¼
+
+(3) void queue_insert_next(QUEUE *p_queue, QUEUE *p_entry);
+
+p_queueã§æå®ããã¨ã³ããªã®æ¬¡ã«ï¼p_entryã§æå®ããã¨ã³ããªãæ¿å
+¥ããï¼
+p_queueã«ã­ã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ã­ã¥ã¼ã®å
+é ­ã«p_entryã§æå®ã
+ãã¨ã³ããªãæ¿å
+¥ãããã¨ã«ãªãï¼
+
+(4) void queue_delete(QUEUE *p_entry);
+
+p_entryã§æå®ããã¨ã³ããªãï¼ã­ã¥ã¼ããåé¤ããï¼
+
+(5) QUEUE *queue_delete_next(QUEUE *p_queue);
+
+p_queueã§æå®ããã¨ã³ããªã®æ¬¡ã®ã¨ã³ããªãã­ã¥ã¼ããåé¤ãï¼åé¤ããã¨ã³
+ããªãè¿ãï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ã­ã¥ã¼ã®å
+é ­ã®ã¨ã³
+ããªãåãåºããã¨ã«ãªãï¼p_queueã«ç©ºã®ã­ã¥ã¼ãæå®ãã¦å¼ã³åºãã¦ã¯ãªã
+ãªãï¼
+
+(6) bool_t queue_empty(QUEUE *p_queue);
+
+ã­ã¥ã¼ãç©ºã®å ´åã«ã¯trueï¼ããã§ãªãå ´åã«ã¯falseãè¿ãï¼p_queueã«ã¯
+ã­ã¥ã¼ããããæå®ããï¼
+
+9.3 ã·ã¹ãã ã­ã°åºåç¨ã©ã¤ãã©ãªé¢æ°
+
+ã·ã¹ãã ã­ã°åºåç¨ã©ã¤ãã©ãªé¢æ°ã¯ï¼ã­ã°æ
+å ±ããã©ã¼ãããåºåãããã
+ã«ï¼ã·ã¹ãã ã­ã°ã¿ã¹ã¯ããã³ã·ã¹ãã ã­ã°æ©è½ã§ç¨ããããã®é¢æ°ç¾¤ã§ããï¼
+
+ã·ã¹ãã ã­ã°åºåç¨ã©ã¤ãã©ãªé¢æ°ãç¨ããå ´åã«ã¯ï¼log_output.hãã¤ã³ã¯
+ã«ã¼ããï¼log_output.cãã³ã³ãã¤ã«ã»ãªã³ã¯ããï¼
+
+(1) void syslog_printf(const char *format, const intptr_t *p_args,
+												void (*putc)(char))
+
+formatã§æå®ããããã©ã¼ãããè¨è¿°ã¨p_argsã§æå®ãããå¼æ°åããä½æã
+ãã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcãç¨ãã¦åºåããï¼
+
+(2) void syslog_print(const SYSLOG *p_syslog, void (*putc)(char))
+
+p_syslogã§æå®ãããã­ã°æ
+å ±ãæå­åã«ç´ãï¼1æå­åºåé¢æ°putcãç¨ãã¦åº
+åããï¼
+
+(3) void syslog_lostmsg(uint_t lost, void (*putc)(char))
+
+loståã®ã­ã°æ
+å ±ãå¤±ãããæ¨ã®ã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcãç¨ãã¦åº
+åããï¼
+
+9.4 å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+
+å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã¯ï¼ã·ã¹ãã ã®ãªã¢ã«ã¿ã¤ã æ§è½ãè©ä¾¡ãããã
+ã«ï¼ãã­ã°ã©ã åºéã®å®è¡æéãè¨æ¸¬ãï¼ãã®åå¸ãéè¨ã»è¡¨ç¤ºããããã®ã©
+ã¤ãã©ãªé¢æ°ç¾¤ã§ããï¼
+
+å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ãç¨ããå ´åã«ã¯ï¼histogram.hãã¤ã³ã¯ã«ã¼ããï¼
+histogram.cãã³ã³ãã¤ã«ã»ãªã³ã¯ããï¼
+
+å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã¯ï¼è¤æ°ã®ãã­ã°ã©ã åºéã®å®è¡æéãè¨æ¸¬ã»é
+è¨ã»è¡¨ç¤ºãããã¨ãã§ããï¼ãã­ã°ã©ã åºéæ¯ã«ï¼å®è¡æéåå¸ãè¨é²ããã
+ãã®ãã¼ã¿æ§é ãæã¤ï¼ã©ã®ãã¼ã¿æ§é ãç¨ããããï¼IDçªå·ï¼histidï¼ã§æ
+å®ããï¼ä½¿ç¨ã§ãããã¼ã¿æ§é ã®æ°ã¯ï¼TNUM_HISTã§å®ç¾©ãããï¼ããªãã¡ï¼
+IDçªå·ã¨ãã¦ï¼1ï½TNUM_HISTãæå®ãããã¨ãã§ããï¼TNUM_HISTã¯ï¼ããã©ã«
+ãå¤ãhistgram.cã®ä¸­ã§å®ç¾©ããã¦ããï¼ã³ã³ãã¤ã«ãªãã·ã§ã³ãã¿ã¼ã²ãã
+ä¾å­é¨ï¼target_test.hã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ããå¤
+æ´ãããã¨ãã§ããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã§è¨­å®ãå¤æ´ãã¦ããªãå ´åï¼å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+ã¯ï¼ã«ã¼ãã«ã®æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåç
+§ããæ©è½ï¼get_utmï¼ãç¨ãã¦å®
+è¡æéãè¨æ¸¬ããï¼ãã®ããï¼å®è¡æéã¯ãã¤ã¯ã­ç§åä½ã§è¨é²ãããï¼ç²¾åº¦
+ã¯ã¿ã¼ã²ããä¾å­ï¼ï¼ã¾ãï¼è¨é²ãããæéã«ã¯ï¼è¨æ¸¬ã®ããã®ãªã¼ãããã
+ï¼get_utmã®å®è¡æéï¼Î±ï¼ãå«ã¾ããï¼
+
+ã¿ã¼ã²ããä¾å­é¨ã§è¨­å®ãå¤æ´ãã¦ããå ´åã®ä»æ§ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ããä¾
+å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ãåç
+§ãããã¨ï¼
+
+(1) void init_hist(ID histid, uint_t maxval, uint_t histarea[])
+
+histidã§æå®ããããã¼ã¿æ§é ãåæåããï¼maxvalã«ã¯è¨é²ããæå¤§æéãï¼
+histareaã«ã¯è¨é²é åã®å
+é ­çªå°ãæå®ããï¼histareaã§å§ã¾ãè¨æ¶é åã¯ï¼
+è¦ç´ æ°ãmaxvalã«æå®ããå¤+1ã®uint_tåã®é
+åã¨ãã¦ç¢ºä¿ããï¼ä¾ãã°ï¼
+maxvalã«1000ãæå®ããå ´åã«ã¯ï¼histareaã«ã¯è¦ç´ æ°ã1001ã®uint_tåã®é
+
+åã®å
+é ­çªå°ãæ¸¡ãï¼
+
+(2) void begin_measure(ID histid)
+
+å®è¡æéãè¨æ¸¬ãããã­ã°ã©ã åºéã®ç´åã«å¼ã³åºãé¢æ°ï¼histidã§æå®ãã
+ããã¼ã¿æ§é ã«ï¼ç¾å¨ã®ã·ã¹ãã æå»ãè¨é²ããï¼
+
+(3) void end_measure(ID histid)
+
+å®è¡æéãè¨æ¸¬ãããã­ã°ã©ã åºéã®ç´å¾ã«å¼ã³åºãé¢æ°ï¼ç¾å¨ã®ã·ã¹ãã æ
+å»ã¨ï¼histidã§æå®ããããã¼ã¿æ§é ã«è¨é²ãããéå§æå»ããï¼ãã­ã°ã©ã 
+åºéã®å®è¡æéãæ±ãï¼ãã®çµæãè¨é²ããï¼
+
+(4) void print_hist(ID histid)
+
+ã·ã¹ãã ã­ã°æ©è½ãç¨ãã¦ï¼å®è¡æéåå¸ã®è¨æ¸¬çµæãåºåããï¼
+
+
+ï¼ï¼ï¼ãã¹ããã­ã°ã©ã 
+
+ãã¹ããã­ã°ã©ã ã¯ï¼ã«ã¼ãã«ã®æ©è½ãã¹ãããã³æ§è½è©ä¾¡ãè¡ãããã®ãã­
+ã°ã©ã ç¾¤ã§ããï¼
+
+10.1 ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãª
+
+ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãªã¯ï¼ãã­ã°ã©ã ä¸­ã®ãã§ãã¯ãã¤ã³ããæ­£ãã
+é åºã§å®è¡ããããã¨ãªã©ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ãããã¨ããã§ãã¯
+ããããã®é¢æ°ç¾¤ã§ããï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªããã¨ãæ¤åºãã
+å ´åã«ã¯ï¼ãã­ã°ã©ã ãçµäºãããï¼
+
+ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãªé¢æ°ãç¨ããå ´åã«ã¯ï¼test_lib.hãã¤ã³ã¯ã«ã¼
+ããï¼test_lib.cãã³ã³ãã¤ã«ã»ãªã³ã¯ããï¼
+
+(1) void check_point(uint_t count)
+
+ãã§ãã¯ãã¤ã³ããééããéã«å¼ã³åºãé¢æ°ï¼countã«ã¯ï¼ä½çªç®ã®ãã§ãã¯
+ãã¤ã³ãã§ããããæå®ããï¼æåã®ãã§ãã¯ãã¤ã³ãã§ã¯1ãæå®ããï¼ï¼
+countã®å¤ãï¼æåã®ãã§ãã¯ãã¤ã³ãã«ããã¦ã¯1ã§ãªãå ´åã«ï¼ããä»¥éã®
+ãã§ãã¯ãã¤ã³ãã«ããã¦ã¯ï¼åã®ãã§ãã¯ãã¤ã³ãééæã«countã«æå®ãã
+å¤ã«1ãå ããå¤ã§ãªãå ´åã«ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªãã¨è¦ãªãï¼
+ãã­ã°ã©ã ãçµäºãããï¼
+
+(2) void check_finish(uint_t count)
+
+æå¾ã®ãã§ãã¯ãã¤ã³ãã«å°éããéã«å¼ã³åºãé¢æ°ï¼countã«ã¯ï¼ä½çªç®ã®
+ãã§ãã¯ãã¤ã³ãã§ããããæå®ããï¼æåã®ãã§ãã¯ãã¤ã³ãã§ã¯1ãæå®ã
+ãï¼ï¼countã®å¤ãï¼åã®ãã§ãã¯ãã¤ã³ãééæã«countã«æå®ããå¤ã«1ãå 
+ããå¤ã§ãªãå ´åã«ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªãã¨è¦ãªãï¼ãã®é¢æ°
+ã¯ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããï¼ããªãã«é¢ãããï¼ãã­ã°ã©ã ãçµäº
+ãããï¼
+
+(3) void check_assert(bool_t exp)
+
+expãçã§ãããã¨ããã§ãã¯ãããå ´åã«å¼ã³åºãé¢æ°ï¼expãå½ã§ããå ´å
+ã«ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªãã¨è¦ãªãï¼ãã­ã°ã©ã ãçµäºãããï¼
+
+(4) void check_ercd(ER ercd, ER expected_ercd)
+
+ercdãexpected_ercdã«ä¸è´ãã¦ãããã¨ããã§ãã¯ãããå ´åã«å¼ã³åºãé¢æ°ï¼
+ercdãexpected_ercdã«ä¸è´ãã¦ããªãå ´åã«ï¼ãã­ã°ã©ã ãæ­£ããåä½ãã¦ã
+ãªãã¨è¦ãªãï¼ãã­ã°ã©ã ãçµäºãããï¼
+
+(5) void check_state(bool_t ctx, bool_t loc, PRI ipm,
+						bool_t dsp, bool_t dpn, bool_t tex)
+
+ã¿ã¹ã¯ã³ã³ãã­ã¹ãã«ããã¦ï¼ã·ã¹ãã ç¶æ
+ãæå¾
+ãããã®ã«ãªã£ã¦ããã
+ãã§ãã¯ãããæã«å¼ã³åºãé¢æ°ï¼ctxï¼locï¼dspï¼dpnï¼texã«ã¯ãããã
+sns_ctx()ï¼sns_loc()ï¼sns_dsp()ï¼sns_dpn()ï¼sns_tex()ã®è¿å¤ã¨ãã¦æå¾
+ã
+ããå¤ãï¼ipmã«ã¯get_ipm()ã§åç
+§ã§ããå²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã¨ãã¦æå¾
+ãã
+ãå¤ãæå®ããï¼ãã®å
+ã®ãããããæå¾
+ãããå¤ã¨ä¸è´ãã¦ããªãå ´åã«ï¼
+ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªãã¨è¦ãªãï¼ãã­ã°ã©ã ãçµäºãããï¼
+
+(6) void check_state_i(bool_t ctx, bool_t loc,
+						bool_t dsp, bool_t dpn, bool_t tex)
+
+éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«ããã¦ï¼ã·ã¹ãã ç¶æ
+ãæå¾
+ãããã®ã«ãªã£ã¦ããã
+ãã§ãã¯ãããæã«å¼ã³åºãé¢æ°ï¼ctxï¼locï¼dspï¼dpnï¼texã«ã¯ãããã
+sns_ctx()ï¼sns_loc()ï¼sns_dsp()ï¼sns_dpn()ï¼sns_tex()ã®è¿å¤ã¨ãã¦æå¾
+ã
+ããå¤ãæå®ããï¼ãã®å
+ã®ãããããæå¾
+ãããå¤ã¨ä¸è´ãã¦ããªãå ´åã«ï¼
+ãã­ã°ã©ã ãæ­£ããåä½ãã¦ããªãã¨è¦ãªãï¼ãã­ã°ã©ã ãçµäºãããï¼
+
+(7) void set_bit_func(BIT_FUNC bit_func)
+
+ãã§ãã¯ãã¤ã³ãã«ããã¦å¼ã³åºãèªå·±è¨ºæ­é¢æ°ãè¨­å®ããããã®é¢æ°ï¼
+
+(8) void test_start(char *progname)
+
+ãã¹ãéå§æã«ï¼ãã¹ããã­ã°ã©ã åãåºåããããã®é¢æ°ï¼
+
+(9) void syslog_flush(void)
+
+ã·ã¹ãã ã­ã°æ©è½ã«è¨é²ãããã­ã°æ
+å ±ãï¼ä½ã¬ãã«åºåæ©è½ã«ç¨ããæå­åº
+åé¢æ°ã«ããåºåããï¼
+
+(10) void test_finish(void)
+
+ãã­ã°ã©ã ãçµäºãããé¢æ°ï¼ãã§ãã¯ãã¤ã³ããä½¿ç¨ããªãå ´åã«ï¼ãã®é¢
+æ°ãç¨ããï¼
+
+10.2 ã«ã¼ãã«ã®æ´åæ§æ¤æ»
+
+ãã§ãã¯ãã¤ã³ãã«ããã¦å¼ã³åºãèªå·±è¨ºæ­ã«ä½¿ãããã®ãã­ã°ã©ã ã¨ãã¦ï¼
+ã«ã¼ãã«ã®æ´åæ§æ¤æ»ãç¨æãã¦ããï¼ã«ã¼ãã«ã®æ´åæ§æ¤æ»ã¯ï¼ã«ã¼ãã«å
+
+ã®åãã¼ã¿æ§é ã®ä¸è²«æ§ãæ¤æ»ããï¼ç¾æç¹ã§ã¯æªå®æï¼ï¼
+
+ã«ã¼ãã«ã®æ´åæ§æ¤æ»ãç¨ããå ´åã«ã¯ï¼bit_kernel.cãã³ã³ãã¤ã«ã»ãªã³ã¯
+ããï¼
+
+(1) ER bit_kernel(void)
+
+ã«ã¼ãã«å
+ã®åãã¼ã¿æ§é ã®ä¸è²«æ§ãæ¤æ»ãï¼ä¸è²«æ§ãç¢ºèªã§ããå ´åã«E_OKï¼
+ã§ããªãã£ãå ´åã«E_SYSã¨ã©ã¼ãè¿ãé¢æ°ï¼E_SYSã¨ã©ã¼ãè¿ãéã®ãµãã¨ã©ã¼
+ã³ã¼ãã¨ãã¦ï¼ä¸è²«æ§ãç¢ºèªã§ããªãã£ãé 
+ç®ãç¤ºãã³ã¼ããè¿ãï¼
+
+10.3 æ©è½ãã¹ããã­ã°ã©ã 
+
+testãã£ã¬ã¯ããªã«ç½®ããã"test"ã§å§ã¾ããã­ã°ã©ã ã¯ï¼ã«ã¼ãã«ã®æ©è½ã
+ã¹ããè¡ãããã®ãã­ã°ã©ã ã§ããï¼
+
+æ©è½ãã¹ããã­ã°ã©ã ã¯ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãªãä½¿ç¨ãã¦ããããï¼
+æ§ç¯ããå ´åã«ã¯ï¼Makefileã®APPL_COBJSã«ï¼test_lib.oãè¿½å ããå¿
+è¦ãã
+ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããä½¿ç¨ããå ´åã«ã¯ï¼-Uãªãã·ã§ã³ã§
+test_lib.oãæå®ããï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããã°ããï¼æ§ç¯ç¨
+ã®ãã£ã¬ã¯ããªãï¼ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬ã¯ããªã®ç´
+ä¸ã«ããã¨ä»®å®ãã¦ããï¼ï¼
+
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -A <æ©è½ãã¹ããã­ã°ã©ã å> \
+											-a ../test -U test_lib.o
+
+ãã ãï¼CPUä¾å¤å¦çã®ãã¹ã(1)ï½(13)ã¯ï¼åä¸ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ãå
+±ç¨ãã¦ããããï¼test_cpuexc.cfgãæ¬¡ã®ããã«ã³ãã¼ãã¦ããå¿
+è¦
+ãããï¼
+
+	% cp ../test/test_cpuexc.cfg test_cpuexc<ãã¹ãçªå·>.cfg
+
+ç¾ãã¼ã¸ã§ã³ã§ç¨æãã¦ããæ©è½ãã¹ããã­ã°ã©ã ã¯æ¬¡ã®éãï¼
+
+(1) test_cpuexc1			CPUä¾å¤å¦çã®ãã¹ã(1)
+(2) test_cpuexc2			CPUä¾å¤å¦çã®ãã¹ã(2)
+(3) test_cpuexc3			CPUä¾å¤å¦çã®ãã¹ã(3)
+(4) test_cpuexc4			CPUä¾å¤å¦çã®ãã¹ã(4)
+(5) test_cpuexc5			CPUä¾å¤å¦çã®ãã¹ã(5)
+(6) test_cpuexc6			CPUä¾å¤å¦çã®ãã¹ã(6)
+(7) test_cpuexc7			CPUä¾å¤å¦çã®ãã¹ã(7)
+(8) test_cpuexc8			CPUä¾å¤å¦çã®ãã¹ã(8)
+(9) test_cpuexc9			CPUä¾å¤å¦çã®ãã¹ã(9)
+(10) test_cpuexc10			CPUä¾å¤å¦çã®ãã¹ã(10)
+(11) test_cpuexc11			CPUä¾å¤å¦çã®ãã¹ã(11)
+(12) test_cpuexc12			CPUä¾å¤å¦çã®ãã¹ã(12)
+(13) test_cpuexc13			CPUä¾å¤å¦çã®ãã¹ã(13)
+(14) test_dlynse			sil_dly_nseã«é¢ãããã¹ã
+(15) test_sem1				ã»ããã©æ©è½ã®ãã¹ã(1)
+(16) test_sem2				ã»ããã©æ©è½ã®ãã¹ã(2)
+(17) test_sysstat1			ã·ã¹ãã ç¶æ
+ã«é¢ãããã¹ã(1)
+(18) test_task1				ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®ãã¹ã(1)
+(19) test_tex1				ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(1)
+(20) test_tex2				ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(2)
+(21) test_utm1				get_utmã«é¢ãããã¹ã(1)
+
+CPUä¾å¤å¦çã®ãã¹ããã­ã°ã©ã ã®ä¸é¨ã¯ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ãã
+å ´åã«ï¼CPUä¾å¤ãçºçãããå½ä»¤ã®æ¬¡ããå®è¡ãç¶ç¶ããããã¨ãåæã«ä½æ
+ããã¦ããï¼ãã®åæãæãç«ããªãå ´åã«ã¯ï¼ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ã
+ãä¾å­å®ç¾©ã«ããã¦ï¼CANNOT_RETURN_CPUEXCããã¯ã­å®ç¾©ãããã¨ãå¿
+è¦ã§ã
+ãï¼è©³ããã¯ï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãããåç
+§ãããã¨ï¼
+
+10.4 æ§è½è©ä¾¡ãã­ã°ã©ã 
+
+testãã£ã¬ã¯ããªã«ç½®ããã"perf"ã§å§ã¾ããã­ã°ã©ã ã¯ï¼ã«ã¼ãã«ã®æ§è½è©
+ä¾¡ãè¡ãããã®ãã­ã°ã©ã ã§ããï¼
+
+æ§è½è©ä¾¡ãã­ã°ã©ã ã¯ï¼è¨æ¸¬å¯¾è±¡ã¨ãªãå¦çãç¹°ãè¿ãå®è¡ãï¼ãã®å®è¡æé
+ãè¨æ¸¬ãã¦ï¼å®è¡æéåå¸ãè¡¨ç¤ºããï¼
+
+è¨æ¸¬ããå®è¡æéã«ã¯ï¼æéè¨æ¸¬ã®ãªã¼ããããï¼æéè¨æ¸¬å¦çã®å®è¡ã«ãã
+ãæéï¼ãå«ã¾ããï¼è¨æ¸¬å¯¾è±¡ã®å¦çã®æ­£å³ã®å®è¡æéãæ±ããããã«ã¯ï¼è¨
+æ¸¬ãããæéããï¼æéè¨æ¸¬ã®ãªã¼ãããããè¨æ¸¬ããããã®ãã­ã°ã©ã 
+ï¼perf0ï¼ã§è¨æ¸¬ãããæéãæ¸ç®ããå¿
+è¦ãããï¼
+
+ã¾ãï¼å®è¡æéã®è¨æ¸¬ã¯ï¼å¥ã«è¨è¿°ããªãéãå²è¾¼ã¿ãè¨±å¯ããã¾ã¾è¡ãããï¼
+å²è¾¼ã¿ãã³ãã©ï¼å°ãªãã¨ãï¼ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ï¼ã®å¦çæéãå«ã¾ãã
+å®è¡çµæãè¨æ¸¬ãããï¼
+
+ã«ã¼ãã«ã®æ§è½è©ä¾¡ã«ããã£ã¦ã¯ï¼ãã¼ãã¦ã§ã¢ï¼ç¹ã«ã­ã£ãã·ã¥ï¼ã®è¨­å®ã«
+çæããå¿
+è¦ãããï¼
+
+æ§è½è©ä¾¡ãã­ã°ã©ã ã¯ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãªã¨å®è¡æéåå¸éè¨ã¢
+ã¸ã¥ã¼ã«ãä½¿ç¨ãã¦ããããï¼æ§ç¯ããå ´åã«ã¯ï¼Makefileã®APPL_COBJSã«ï¼
+test_lib.oã¨histogram.oãè¿½å ããå¿
+è¦ãããï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯
+ãªãããä½¿ç¨ããå ´åã«ã¯ï¼-Uãªãã·ã§ã³ã§test_lib.oã¨histgram.oãæå®ã
+ãï¼å
+·ä½çã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããã°ããï¼æ§ç¯ç¨ã®ãã£ã¬ã¯ããªãï¼
+ASPã«ã¼ãã«ã®ã½ã¼ã¹ãã¡ã¤ã«ãå±éãããã£ã¬ã¯ããªã®ç´ä¸ã«ããã¨ä»®å®ãã¦
+ããï¼ï¼
+
+	% perl ../configure -T <ã¿ã¼ã²ããç¥ç§°> -A <æ§è½è©ä¾¡ãã­ã°ã©ã å> \
+									-a ../test -U "test_lib.o histogram.o"
+
+ç¾ãã¼ã¸ã§ã³ã§ç¨æãã¦ããæ§è½è©ä¾¡ãã­ã°ã©ã ã¯æ¬¡ã®éãï¼
+
+(1) perf0		æéè¨æ¸¬ã®ãªã¼ããããã®è©ä¾¡
+
+æéè¨æ¸¬ã®ãªã¼ãããããè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼å
+·ä½çã«ã¯ï¼ç©ºã®ãã­
+ã°ã©ã ï¼begin_mearsureã¨end_measureãç¶ãã¦å¼ã³åºããã­ã°ã©ã ï¼ã®å®è¡æ
+éãè¨æ¸¬ããï¼
+
+ä»ã®æ§è½è©ä¾¡ãã­ã°ã©ã ã§è¨æ¸¬ãããæéããï¼ãã®ãã­ã°ã©ã ã§è¨æ¸¬ããã
+æéãæ¸ç®ããæéãï¼è¨æ¸¬å¯¾è±¡ã®å¦çã®æ­£å³ã®å®è¡æéã§ããï¼
+
+(2) perf1		slp_tskï¼wup_tskã«ããã¿ã¹ã¯åæãæéã®è©ä¾¡
+
+slp_tskï¼wup_tskã«ããã¿ã¹ã¯åæãæéãè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼å
+·ä½
+çã«ã¯ï¼é«ãåªå
+åº¦ã®ã¿ã¹ã¯ãèµ·åºå¾
+ã¡ç¶æ
+ã§ããæã«ï¼ä½ãåªå
+åº¦ã®ã¿ã¹ã¯
+ãwup_tskã«ããé«ãåªå
+åº¦ã®ã¿ã¹ã¯ãèµ·åºãï¼é«ãåªå
+åº¦ã®ã¿ã¹ã¯ã«åãæã
+ãã¾ã§ã®æéã¨ï¼é«ãåªå
+åº¦ã®ã¿ã¹ã¯ãslp_tskã«ããèµ·åºå¾
+ã¡ç¶æ
+ã¨ãªãï¼ä½
+ãåªå
+åº¦ã®ã¿ã¹ã¯ã«åãæããã¾ã§ã®æéãè¨æ¸¬ããï¼
+
+(3) perf2		snd_pdqã®å¦çæéã®è©ä¾¡
+
+åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«èç©ããã¦ãããã¼ã¿ã®æ°ã«ããï¼snd_pdqã®å¦çæéã
+ã©ã®ããã«å¤åããããè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼å
+·ä½çã«ã¯ï¼åªå
+åº¦ãã¼
+ã¿ã­ã¥ã¼ä¸­ã«é«ãåªå
+åº¦ã®ãã¼ã¿ãnåèç©ããã¦ããæã«ï¼snd_dtqã«ããä½
+ãåªå
+åº¦ã®ãã¼ã¿ãå
+¥ããã®ã«ãããæéãè¨æ¸¬ããï¼nã0ï¼10ï¼20ï¼30ï¼40ï¼
+50ï¼100ï¼200ï¼300ã¨å¤åããã¦è¨æ¸¬ããï¼
+
+(4) perf3		set_flgã®å¦çæéã®è©ä¾¡
+
+å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã®æ°ã«ããï¼set_flgã®å¦çæéãã©ã®ããã«å¤åãããã
+è¨æ¸¬ããããã®ãã­ã°ã©ã ï¼å
+·ä½çã«ã¯ï¼TA_WMULå±æ§ã®ã¤ãã³ããã©ã°ã«å¯¾ã
+ã¦ï¼nåã®ã¿ã¹ã¯ãå¾
+ã£ã¦ããæã«ï¼set_flgã«ãããã®ãã¹ã¦ãå¾
+ã¡è§£é¤ãã
+ã®ã«ãããæéãè¨æ¸¬ããï¼nã0ï¼1ï¼2ï¼3ï¼4ï¼5ï¼10ï¼20ã¨å¤åããã¦è¨æ¸¬ã
+ãï¼
+
+(5) perf4		act_tskï¼iact_tskã®å¦çæéã¨ã¿ã¹ã¯åæãæéã®è©ä¾¡
+
+act_tskï¼iact_tskã®å¦çæéã¨ã¿ã¹ã¯åæãæéãè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼
+å
+·ä½çã«ã¯ï¼(1) ã¿ã¹ã¯åæããèµ·ãããªãact_tskã®å¦çæéï¼(2) ã¿ã¹ã¯å
+æããèµ·ããact_tskã®å¦çæéï¼ã¿ã¹ã¯åæãæéãå«ãï¼ï¼(3) ã¿ã¹ã¯åæ
+ããèµ·ããiact_tskã®å¦çæéï¼ã¿ã¹ã¯åæãæéã¨ã¿ã¤ãå²è¾¼ã¿ä¸­ã§å®è¡ã
+ããã·ã¹ãã æå»ã®æ´æ°å¦çæéãå«ãï¼ã®3ã¤ã®æéãè¨æ¸¬ããï¼
+
+ï¼ï¼ï¼ä½¿ç¨ä¸ã®æ³¨æã¨ãã³ã
+
+11.1 ã¿ã¤ããã©ã¤ãã®çµè¾¼ã¿
+
+ã¿ã¤ããã©ã¤ããã·ã¹ãã ã«çµã¿è¾¼ãããã«ï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+ã³ãã¡ã¤ã«ã®å
+é ­ã§target_timer.cfgãã¤ã³ã¯ã«ã¼ãããå¿
+è¦ãããï¼
+
+11.2 assertãã¯ã­ã®å¦ç
+
+ASPã«ã¼ãã«ã®ã³ã¼ãä¸­ã«ã¯ï¼assertãã¯ã­ãä½¿ããã¦ããï¼assertãã¯ã­ã®å®
+ç¾©ã¯t_stddef.hã«å«ã¾ãï¼assertãå¤±æããå ´åã®æå¾ã®å¦çï¼éå¸¸ã¯ï¼ãã­
+ã°ã©ã ãåæ­¢ãããå¦çï¼ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã®TOPPERS_assert_abortã§æ±º
+å®ãããï¼
+
+assertãå¤±æããå ´åï¼ã·ã¹ãã éçºä¸­ã¯ãããã¬ã«è½ã¨ãã®ãæã¾ãããï¼
+ã·ã¹ãã ç¨¼åæã®å¯¾å¦æ³ã¯ï¼ã·ã¹ãã ã«å¯¾ããè¦ä»¶ã«ä¾å­ããï¼ããã§ï¼ã¿ã¼
+ã²ããä¾å­é¨ã®TOPPERS_assert_abortãï¼ã·ã¹ãã è¦ä»¶ã«åè´ããé©åãªå¦ç
+ã«ç½®ãæããå¿
+è¦ãããï¼ã·ã¹ãã è¦ä»¶ã«ãã£ã¦ã¯ï¼NDEBUGãå®ç¾©ãã¦assert
+ãã¯ã­ã®å¦çããªãã¸ã§ã¯ãã³ã¼ãä¸­ããæ¶ãï¼ã6.2 ã³ã³ãã¤ã«ãªãã·ã§ã³ã
+ã®ç¯ãåç
+§ï¼æ¹æ³ãèããããï¼
+
+11.3 ã·ã¹ãã ã­ã°æ©è½ã®æ±ã
+
+TOPPERS/ASPã«ã¼ãã«ã§ã¯ï¼ã·ã¹ãã éçºæã®å©ä¾¿æ§ãèæ
+®ãï¼ã·ã¹ãã ã­ã°æ©
+è½ãçµã¿è¾¼ãè¨­å®ãããã©ã«ãã¨ãã¦ããï¼
+
+ããã«å¯¾ãã¦ï¼TOPPERS/ASPã«ã¼ãã«ãç¨ããã·ã¹ãã ãæ©å¨ã«çµã¿è¾¼ãå ´åã¯ï¼
+ã·ã¹ãã ã­ã°æ©è½ãæå³ããªãå ´åãå¤ãï¼æ©å¨ã¸ã®çµè¾¼ã¿ã«éãã¦ã®ã·ã¹ã
+ã ã­ã°æ©è½ã®è¨­å®æ¹æ³ã«ã¯ï¼ä»¥ä¸ã®æ¹æ³ãèããããï¼
+
+(1) ã·ã¹ãã ã­ã°æ©è½ãç¨ããªã
+
+ã·ã¹ãã ã­ã°æ©è½ãä¸åä½¿ç¨ããªãå ´åã«ã¯ï¼ã·ã¹ãã ã­ã°æ©è½ãã·ã¹ãã ã«
+çµã¿è¾¼ã¾ãï¼ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã§syslog.cfgãã¤ã³ã¯
+ã«ã¼ãããªãï¼ï¼ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã½ã¼ã¹ãã¡ã¤
+ã«ãTOPPERS_OMIT_SYSLOGãå®ç¾©ãã¦ã³ã³ãã¤ã«ããã°ããï¼
+
+(2) ã­ã°æ
+å ±ã®èç©ã®ã¿ãè¡ã
+
+æ©å¨ã«çµã¿è¾¼ãã ç¶æ
+ã§ï¼ã·ãªã¢ã«ãã¼ãç­ãä»ãã¦ã·ã¹ãã ãå¤é¨ã¨æ¥ç¶ã
+ããã¨ãã§ããå ´åã«ã¯ï¼ã·ã¹ãã ç¨¼åæã«ã¯ã­ã°æ
+å ±ã®èç©ã®ã¿ãè¡ãï¼ã·
+ã¹ãã ã«éå®³ãèµ·ããæãªã©ã«ã­ã°æ
+å ±ãåãåºããã¨ã§ï¼éå®³ã®åå åæã®
+å©ãã¨ãããã¨ãã§ããï¼
+
+å
+·ä½çãªè¨­å®æ¹æ³ã¨ãã¦ï¼æ¬¡ã®2ã¤ã®æ¹æ³ãèããããï¼
+
+(2-1) ä½ã¬ãã«åºåãã¡ã¢ãªã«èç©ãã
+
+å¿
+è¦ãªã­ã°æ
+å ±ãä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããããã«è¨­å®ãï¼ä½ã¬ãã«
+ã®æå­åºåé¢æ°ï¼target_fput_logï¼ã«éãããæå­ãã¡ã¢ãªï¼å
+¸åçã«ã¯ãªã³
+ã°ãããã¡ï¼ã«èç©ããããã«ããï¼ã·ã¹ãã ã®éå®³æã«ã¯ï¼ãã®ã¡ã¢ãªé å
+ãèª­ã¿åºãï¼
+
+(2-2) ã·ã¹ãã ã­ã°æ©è½ã®ã­ã°ãããã¡ã«èç©ãã
+
+å¿
+è¦ãªã­ã°æ
+å ±ãã·ã¹ãã ã­ã°æ©è½ã®ã­ã°ãããã¡ã«è¨é²ããããã«è¨­å®ããï¼
+ã·ã¹ãã ã­ã°ã¿ã¹ã¯ãåä½ãããªãã¨ï¼ã­ã°æ
+å ±ã¯ã­ã°ãããã¡ã«èç©ããã¦
+ããï¼ã·ã¹ãã ã®éå®³æã«ã¯ï¼ã­ã°ãããã¡ã®é åãèª­ã¿åºããï¼ã·ã¹ãã ã­
+ã°ã¿ã¹ã¯ãåä½ããã¦ã­ã°æ
+å ±ãåºåãããï¼
+
+(3) éçºæã®è¨­å®ã®ã¾ã¾ã¨ãã
+
+ã·ã¹ãã ã­ã°æ©è½ã®è¨­å®ãï¼ã·ã¹ãã éçºæã®ã¾ã¾å¤æ´ããï¼ã·ãªã¢ã«ãã¼ã
+ç­ã«ã­ã°æ
+å ±ãåãæµãæ¹æ³ãèããããï¼
+
+11.4 ãªãã¸ã§ã¯ãIDã®ç®¡ç
+
+TOPPERS/ASPã«ã¼ãã«ã§ã¯ï¼ãªãã¸ã§ã¯ãã®IDçªå·ãï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå²
+ãä»ããæ¹æ³ãåºæ¬ã¨ãªã£ã¦ããï¼
+
+ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ä¸­ã§ãªãã¸ã§ã¯ãã®IDçªå·ãåç
+§ããå ´åã«ã¯ï¼
+æ¬¡ã®2ã¤ã®æ¹æ³ãèããããï¼
+
+(1) ãªãã¸ã§ã¯ãè­å¥åãç¨ãã
+
+ãªãã¸ã§ã¯ãçæã®ããã®éçAPIï¼CRE_YYYï¼ã®ç¬¬1ãã©ã¡ã¼ã¿ã«è¨è¿°ãããªã
+ã¸ã§ã¯ãè­å¥åãï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ä¸­ã§ãç¨ããæ¹æ³ï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼ãªãã¸ã§ã¯ãè­å¥åãï¼å²ãä»ããIDçªå·ã«ãã¯ã­å®
+ç¾©ããCè¨èªããªãã­ã»ããµã®ãã£ã¬ã¯ãã£ãï¼#defineï¼ãkernel_cfg.hã«ç
+æããããï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ããkernel_cfg.hãã¤ã³ã¯ã«ã¼ãã
+ãå¿
+è¦ãããï¼
+
+ãã®æ¹æ³ã¯ï¼ãªãã¸ã§ã¯ãã³ã¼ãä¸­ã«IDçªå·ãç´æ¥åãè¾¼ã¾ããããã«å®è¡å¹
+çãè¯ãä¸æ¹ã§ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå®è¡ããã¦kernel_cfg.hãæ¸ãæãã
+åº¦ã«ï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®åã³ã³ãã¤ã«ãå¿
+è¦ã«ãªãã¨ããæ¬ ç¹ã
+ããï¼ãã®ããï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãæ§æãããã¡ã¤ã«ã®ä¸­ã§ï¼ä¸
+é¨ã®ãã¡ã¤ã«ã®ã¿ã§ãªãã¸ã§ã¯ãè­å¥åãåç
+§ããæ§æã«ããã¨ãã£ãå·¥å¤«ã
+ãããã¨ãæã¾ããï¼
+
+(2) ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°ãç¨ãã
+
+ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããconstå±æ§ãä»å ããå¤æ°ãç¨æãï¼ã¢ããªã±ã¼
+ã·ã§ã³ãã­ã°ã©ã ä¸­ã§ã¯ï¼ãã®å¤æ°ãç¨ããæ¹æ³ï¼
+
+ä¾ãã°ï¼TASK1ã¨ãããªãã¸ã§ã¯ãè­å¥åã®ã¿ã¹ã¯ã«å¯¾ãã¦ï¼æ¬¡ã®ãããªå¤æ°ã
+ç¨æããï¼
+
+const ID TASK1_id = TASK1;
+
+ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ä¸­ã§ã¯ï¼ãã®å¤æ°ï¼TASK1_idï¼ãç¨ãããã¨ã§ï¼
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå®è¡ããã¦kernel_cfg.hãæ¸ãæããåº¦ã«ï¼ä¸è¨ã®å¤æ°
+å®ç¾©ãå«ãã ãã¡ã¤ã«ã®ã¿ãåã³ã³ãã¤ã«ããã°ãããã¨ã«ãªãï¼
+
+ãã®æ¹æ³ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®åã³ã³ãã¤ã«ãæå°éã«ã§ããå©
+ç¹ãããä¸æ¹ã§ï¼å¤æ°ã®ããã®ã¡ã¢ãªé åãå¿
+è¦ã«ãªããã¨ã«å ãã¦ï¼ï¼ãã­
+ã»ããµã«ãã£ã¦ã¯ï¼å¤æ°ã¢ã¯ã»ã¹ã®ããã®ãªã¼ãããããçããã¨ããæ¬ ç¹ã
+ããï¼ã¾ãï¼å®æ°ã§ã¯ãªãå¤æ°ã§ãããã¨ããï¼ä»ã®å¤æ°ã®åæåã«ã¯ä½¿ããª
+ãã¨ããå¶éãããï¼
+
+ãªãï¼TOPPERS/ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼--external-idãªãã·ã§
+ã³ãä»å ãããã¨ã«ããï¼ä¸è¨ã®å¤æ°å®ç¾©ãkernel_cfg.cä¸­ã«çæããæ©è½ã
+æã£ã¦ããã®ã§ï¼ãã¹ã¦ã®ãªãã¸ã§ã¯ãIDããã®æ¹æ³ã§åç
+§ããå ´åã«ã¯ï¼ã
+ã®æ©è½ãç¨ãããã¨ãæ¨å¥¨ããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ããIDçªå·å²ä»ãã®ãã1ã¤ã®èª²é¡ã¨ãã¦ï¼ã³ã³ãã£ã®ã¥
+ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ä¿®æ­£ã«ããï¼ãªãã¸ã§ã¯ãIDã®å²ä»ããå¤ãã£ã¦ãã¾ã
+ãã¨ãæããããï¼ããã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ã½ããã¦ã§ã¢ã®è¨­è¨ä»æ§æ¸ã«ID
+çªå·ãè¨è¼ããã¦ããå ´åãï¼ãããã°ä½æ¥­ã«ããã¦IDçªå·ãç´æ¥æ±ã£ã¦ãã
+å ´åã«ï¼ä½æ¥­å¹çãä½ä¸ãããå¯è½æ§ãèããããï¼
+
+ãã®åé¡ã«å¯¾å¿ããããã«ï¼TOPPERS/ASPã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«ï¼
+IDçªå·ã®å²ä»ãçµæããã¡ã¤ã«ã«æ¸ãåºãæ©è½ï¼--id-output-fileãªãã·ã§ã³ï¼
+ã¨ï¼IDçªå·ã®å²ä»ãããã¡ã¤ã«ããåãè¾¼ãæ©è½ï¼--id-input-fileãªãã·ã§ã³ï¼
+ãç¨æãã¦ããï¼ãããã®æ©è½ãç¨ãã¦ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãå®è¡ããåº¦ã«ï¼
+ååã«å®è¡ããæã«ãã¡ã¤ã«ã«æ¸ãåºããIDçªå·ã®å²ä»ããåãè¾¼ããã¨ã§ï¼
+ååå®è¡æã¨åãå²ä»ããè¡ããã¨ãã§ããï¼ãã ãï¼TOPPERS/ASPã«ã¼ãã«ã§
+ã¯ï¼IDçªå·ã«æããããã®ã¯è¨±ãããªãããï¼ãªãã¸ã§ã¯ãã®æ°ãæ¸ã£ãå ´å
+ã«ã¯ï¼IDçªå·ãå¤§ããæ¹ã®ãªãã¸ã§ã¯ããæ¸ã£ãå ´åãé¤ãã¦ï¼ã¨ã©ã¼ã¨ãªãï¼
+ãã®å ´åã«ã¯ï¼ããã¼ã®ãªãã¸ã§ã¯ããçæããæ¹æ³ã§åé¿ãããããªãï¼
+
+11.5 ã«ã¼ãã«ã®å
+é¨ã·ã³ãã«ã®ãªãã¼ã 
+
+ASPã«ã¼ãã«ã§ã¯ï¼ã¢ã¸ã¥ã¼ã«å
+é¨ã®åç§°ãä»ã®ã¢ã¸ã¥ã¼ã«å
+é¨ã®åç§°ã¨è¡çªã
+ããã¨ãé¿ããããã«ï¼ã«ã¼ãã«ã®å
+é¨ã·ã³ãã«ã¯ï¼Cè¨èªã¬ãã«ã§ï¼å
+é ­ã
+"_kernel_"ã¾ãã¯"_KERNEL_"ã§ããåç§°ã¨ãã¦ããï¼
+
+ãããã½ã¼ã¹ã³ã¼ãã®å¯èª­æ§ã¨ä¸¡ç«ãããããã«ï¼ASPã«ã¼ãã«ã§ã¯ï¼ã½ã¼ã¹ã³ã¼
+ãã¯èªç¶ãªååãç¨ãã¦è¨è¿°ãï¼Cè¨èªããªãã­ã»ããµã®ãã¯ã­å®ç¾©ï¼#defineï¼
+ãç¨ãã¦ï¼ããã"_kernel_"ã¾ãã¯"_KERNEL_"ã§å§ã¾ãååï¼èªç¶ãªååã
+yyyyyã®å ´åã«ã¯ï¼_kernel_yyyyyï¼ã«ãªãã¼ã ããä»çµã¿ãç¨ãã¦ããï¼
+
+å
+·ä½çã«ã¯ï¼é¢é£ãããã£ã¬ã¯ããªã«xxx_rename.defãç½®ãï¼ãããããªãã¼
+ã ã®ããã®ããããã¡ã¤ã«ï¼xxx_rename.hããã³xxx_unrename.hï¼ãçæãã
+ãã¼ã«ï¼utils/genrenameï¼ãç¨æãã¦ããï¼
+
+ãã®ä»çµã¿ã¯ï¼ã½ã¼ã¹ã³ã¼ãã®å¯èª­æ§åä¸ã«å½¹ç«ã¤ä¸æ¹ã§ï¼å¼å®³ãããï¼ä¾ã
+ã°ï¼å¤ãã®ãããã¬ã§ï¼ã½ã¼ã¹ã³ã¼ãä¸­ã®åç§°ã¨ãªãã¸ã§ã¯ãã³ã¼ãä¸­ã®åç§°
+ãç°ãªãããã«ï¼ã½ã¼ã¹ã³ã¼ãä¸­ã®å¤æ°åãæå®ãã¦å¤ãèª­ãã ãï¼é¢æ°åã
+æå®ãã¦ãã¬ã¼ã¯ãã¤ã³ããç½®ãã¨ãã£ããã¨ãã§ããªãï¼
+
+ãã®ç¶æ³ã«å¯¾å¿ããããã«ï¼ASPã«ã¼ãã«ã§ã¯ï¼ã½ã¼ã¹ã³ã¼ãä¸­ã®è©²å½ããåç§°
+ããªãã¼ã ããããã®ã¦ã¼ãã£ãªãã£ï¼utils/applyrenameï¼ãç¨æãã¦ããï¼
+applyrenameã¦ã¼ãã£ãªãã£ã«ï¼ãªãã¼ã å®ç¾©ãã¡ã¤ã«ï¼xxx_rename.defï¼ã®ã
+ãªãã£ãã¯ã¹ï¼xxxã®é¨åï¼ã¨ï¼ãªãã¼ã ããããã¡ã¤ã«ãªã¹ããä¸ããã¨ï¼ãª
+ãã¼ã å¦çãè¡ãªãï¼ä¾ãã°ï¼kernelãã£ã¬ã¯ããªã®ãã¹ã¦ã®ãã¡ã¤ã«ã«å¯¾ã
+ã¦ï¼ã«ã¼ãã«ã®å
+é¨ã·ã³ãã«ããªãã¼ã ããã«ã¯ï¼æ¬¡ã®ã³ãã³ããå®è¡ããã°
+ããï¼
+
+	% cd kernel
+	% ../utils/applyrename kernel *
+
+ã¾ãï¼ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã®ãã¹ã¦ã®ãã¡ã¤ã«ã«å¯¾ãã¦ï¼ã«ã¼ã
+ã«ã®å
+é¨ã·ã³ãã«ããªãã¼ã ããã«ã¯ï¼æ¬¡ã®ãããªã³ãã³ããå®è¡ããã°ããï¼
+
+	% cd target/dve68k_gcc/
+	% ../../utils/applyrename target *
+	% ../../utils/applyrename ../../kernel/kernel *
+
+11.6 ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³
+
+ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããã¿ã¼ã²ããä¾å­é¨ã«çµã¿è¾¼ã¾ãã¦ããå ´
+åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã«ãããä½¿ç¨ãããã¨ãæç¤ºãã
+ãªãã·ã§ã³ï¼-rï¼ãä»å ãããã¨ã§ï¼ã¡ã¢ãªä¸ã«ãã¬ã¼ã¹ã­ã°ãè¨é²ããæ©è½
+ãæå¹ã«ãªãï¼
+
+ãã¬ã¼ã¹ã­ã°è¨é²ã®ä½¿ç¨æ¹æ³ã®ä¸ä¾ã¨ãã¦ï¼ã·ã¹ãã èµ·åæã«ãã¬ã¼ã¹ã­ã°ã®
+è¨é²ãéå§ãï¼ã·ã¹ãã çµäºæã«è¨é²ãããã¬ã¼ã¹ã­ã°ããã³ãããããã«ã¯ï¼
+ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«æ¬¡ã®ãããªè¨è¿°ãè¿½å ããï¼
+
+	#include "logtrace/trace_config.h"
+	ATT_INI({ TA_NULL, TRACE_AUTOSTOP, trace_initialize });
+	ATT_TER({ TA_NULL, target_fput_log, trace_dump });
+
+ããã§ï¼åæåã«ã¼ãã³ï¼trace_initializeï¼ã¸ã®å¼æ°ã¯ï¼åæåç´å¾ã®ãã¬ã¼
+ã¹ã­ã°ã®åä½ã¢ã¼ããæå®ãããã®ã§ããï¼æå®ã§ããåä½ã¢ã¼ãã«ã¤ãã¦ã¯ï¼
+arch/logtrace/trace_config.hä¸­ã®ã³ã¡ã³ãã«èª¬æãããï¼
+
+çµäºå¦çã«ã¼ãã³ï¼trace_dumpï¼ã¯ï¼è¨é²ããããã¬ã¼ã¹ã­ã°ãã¿ã¼ã²ããä¾
+å­ã®ä½ã¬ãã«åºåæ©è½ï¼target_fput_logï¼ãå©ç¨ãã¦ãã³ãããããã®ãã®ã§
+ããï¼ãã¬ã¼ã¹ã­ã°ãå¥ã®æ¹æ³ã§åãåºãå ´åã«ã¯ï¼çµäºå¦çã«ã¼ãã³ãç»é²
+ããå¿
+è¦ã¯ãªãï¼
+
+ä»¥ä¸ã®æ¹æ³ã§ã¯ï¼trace_initializeãåæåã«ã¼ãã³ã§ï¼trace_dumpãçµäºå¦
+çã«ã¼ãã³ã§å¼ã³åºãã¦ããããï¼åæåã«ã¼ãã³ãå¼ã³åºãåãçµäºå¦çã«ã¼
+ãã³ãå¼ã³åºããå¾ã«ã¯ï¼ãã¬ã¼ã¹ã­ã°è¨é²ã®æ©è½ãå©ç¨ã§ããªãï¼åæåã«ã¼
+ãã³ãå¼ã³åºãåãçµäºå¦çã«ã¼ãã³ãå¼ã³åºããå¾ã«å®è¡ãããå¦çï¼ä¾ã
+ã°ï¼ã«ã¼ãã«ãªãã¸ã§ã¯ãã®åæåå¦çãï¼trace_initializeãããå
+ã«ç»é²
+ããåæåã«ã¼ãã³ï¼trace_dumpãããå
+ã«ç»é²ããçµäºå¦çã«ã¼ãã³ï¼ã§ã
+ã¬ã¼ã¹ã­ã°è¨é²ã®æ©è½ãå©ç¨ããããã«ã¯ï¼trace_initializeã¨trace_dumpã
+é©åãªå ´æã§å¼ã¶ããã«ä¿®æ­£ãããã¨ãå¿
+è¦ã§ããï¼
+
+11.7 ã·ã¹ãã ã®èµ·åæã®åæåå¦ç
+
+ã·ã¹ãã ã®èµ·åæã«ã¢ããªã±ã¼ã·ã§ã³ã§å¿
+è¦ã¨ãªãåæåå¦çãè¡ãããã®æ©
+è½ã¨ãã¦åæåã«ã¼ãã³ãç¨æããã¦ãããï¼åæåã«ã¼ãã³ãå®è¡ãããã
+ããæ©ãã¿ã¤ãã³ã°ã§å®è¡ãããã¨ãå¿
+è¦ãªåæåå¦çãããå ´åãããï¼
+
+ãã®ãããªå ´åã«ç¨ããããã«ï¼æ¨æºçãªã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ããï¼ã¿ã¼
+ã²ããã·ã¹ãã ä¾å­ã®åæåããã¯ï¼hardware_init_hookï¼ãå¼ã³åºããã¨ã¨
+ãã¦ããï¼hardware_init_hookã¯ï¼ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã§ç¨æããã¦
+ããã®ãæ¨æºã§ãããï¼ãããã¢ããªã±ã¼ã·ã§ã³ã§ç¨æãããã®ã«ç½®ãæãï¼
+ãã®ä¸­ã§ã¢ããªã±ã¼ã·ã§ã³ã§å¿
+è¦ã¨ãªãåæåå¦çãè¡ããã¨ãã§ããï¼
+
+ãã ãï¼hardware_init_hookã®ä½æããå ´åã«ã¯ï¼bssã»ã¯ã·ã§ã³ã¨dataã»ã¯ã·ã§
+ã³ãåæåããã¦ããªããã¨ãï¼ã©ã¤ãã©ãªãåæåããã¦ããªããã¨ï¼Cè¨èª
+ã§è¨è¿°ã§ããã¨ã¯éããªããã¨ãªã©ã«æ³¨æãå¿
+è¦ã§ããï¼ä½æã«ããã£ã¦ã¯ï¼
+ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãããåç
+§ãããã¨ï¼
+
+ã«ã¼ãã«ã®ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ãhardware_init_hookãå¼ã³åºãããã«
+å®è£
+ããã¦ããªãå ´åã«ã¯ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ãã¢ããªã±ã¼ã·ã§ã³ã§
+ç¨æãããã®ã«ç½®ãæããæ¹æ³ãæ¨å¥¨ããï¼
+
+11.8 rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´å
+
+ä½ããã®çç±ã§rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åï¼dataã»ã¯ã·ã§ã³ã¨åæ§ã«ï¼
+ãã®åæå¤ã¯ROMã«ç½®ãï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã§RAMã«ã³ãã¼ããã®ãç´ 
+ç´ã§ããï¼ãããå®ç¾ããã«ã¯ï¼dataã»ã¯ã·ã§ã³ã®åæ±ããåèã«ï¼ãªã³ã«ã¹
+ã¯ãªããã¨ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ãä¿®æ­£ããå¿
+è¦ããããï¼ããã«å ãã¦ï¼
+ä»¥ä¸ã®æªç½®ãå¿
+è¦ã§ããï¼
+
+ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ï¼ãã¹1ã¨ãã¹3ã«ããã¦ï¼ã­ã¼ãã¢ã¸ã¥ã¼ã«ã®ã·ã³ãã«
+ãã¡ã¤ã«ãç¨ãã¦ï¼ã­ã¼ãã¢ã¸ã¥ã¼ã«å
+ã®rodataã»ã¯ã·ã§ã³ãèª­ã¿è¾¼ããã¨ã§ï¼
+åç¨®ã®å®æ°å¤ãåå¾ããï¼ãã®ããï¼rodataã»ã¯ã·ã§ã³ãdataã»ã¯ã·ã§ã³ã¨å
+æ§ã«æ±ãã¨ï¼ãã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ï¼RAMå
+ã®ã¢ãã¬ã¹ï¼VMAã¨å¼ã¶ï¼ã¨é
+ç½®ã¢
+ãã¬ã¹ï¼ROMå
+ã®ã¢ãã¬ã¹ï¼LMAã¨å¼ã¶ï¼ãä¸è´ããªããªãããã«ï¼å®æ°å¤ãå
+å¾ãããã¨ãã§ããï¼ã¨ã©ã¼ã¨ãªãï¼
+
+ãã¹1ã§ã®ã¨ã©ã¼ãåé¿ããããã«ã¯ï¼ãã¹1ã®ãªã³ã¯æï¼cfg1_outããªã³ã¯ã
+ãæï¼ã«ã¯ï¼rodataã»ã¯ã·ã§ã³ã®ã¢ã¯ã»ã¹ã¢ãã¬ã¹ã¨é
+ç½®ã¢ãã¬ã¹ãä¸è´ãã
+ããªã³ã«ã¹ã¯ãªããï¼æ¨æºã®ãªã³ã«ã¹ã¯ãªããã¯ãã®ããã«ãªã£ã¦ããï¼ãç¨
+ããï¼ãµã³ãã«ã®Makefileã§ã¯ï¼LDSCRIPTã«ãããªã³ã«ã¹ã¯ãªãããæå®ãã
+ã®ã§ã¯ãªãï¼LDFLAGSã¨CFG1_OUT_LDFLAGSã«ç°ãªããªã³ã«ã¹ã¯ãªãããç¨ãããª
+ãã·ã§ã³ãè¨­å®ããã°ããï¼
+
+ãã¹3ã§ã®ã¨ã©ã¼ãåé¿ããããã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®ãã³ãã¬ã¼
+ããã¡ã¤ã«ã«ããã¦ï¼rodataã»ã¯ã·ã§ã³ã®å
+å®¹ãï¼é
+ç½®ã¢ãã¬ã¹ããã¢ã¯ã»ã¹
+ã¢ãã¬ã¹ã«ã³ãã¼ããï¼ãã®ããã«ã¯ï¼ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ã
+ãä¾å­é¨ã§ï¼LMA.ORDER_LISTç­ã®ãã³ãã¬ã¼ããã¡ã¤ã«å¤æ°ãè¨­å®ããã°ããï¼
+å
+·ä½çãªæ¹æ³ã¯ï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãããåç
+§ãããã¨ï¼
+
+
+ï¼ï¼ï¼åèæ
+å ±
+
+12.1 å©ç¨æ¡ä»¶ã¨å©ç¨å ±å
+
+ASPã«ã¼ãã«ã®å©ç¨æ¡ä»¶ã¯ï¼åãã¡ã¤ã«ã®å
+é ­ã«è¡¨ç¤ºããã¦ããï¼èä½æ¨©ã¯ï¼å
+ãã¡ã¤ã«ã®å
+é ­ã«è¡¨ç¤ºããã¦ããèä½æ¨©è
+ãä¿æãã¦ããï¼
+
+å©ç¨æ¡ä»¶ã®(3)ã®(b)ã«ããã¦ï¼å©ç¨ã®å½¢æ
+ãTOPPERSãã­ã¸ã§ã¯ãã«å ±åããæ¹
+æ³ã¨ãã¦ã¯ï¼ASPã«ã¼ãã«ãå©ç¨ããè£½åã®åç§°ã¨å¿ç¨åéï¼è£½ååããä¼ç¤¾å
+ã¨æ¥­ç¨®ç­ã®æ
+å ±ãï¼ä»¥ä¸ã®URLã®ãã¼ã¸ããå ±åãããã®ã¨ããï¼
+
+	http://www.toppers.jp/report.html
+
+ã¾ããã®éã«ï¼ASPã«ã¼ãã«ãä½¿ç¨ãã¦ã®ã³ã¡ã³ãããæè¦ãããã ããã¨å¹¸ã
+ã§ããï¼
+
+12.2 ä¿è¨¼ã»é©ç¨æ§ã»ãµãã¼ã
+
+ASPã«ã¼ãã«ã¯ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼éçºè
+ããã³TOPPERSãã­
+ã¸ã§ã¯ãã¯ï¼ASPã«ã¼ãã«ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®çã«å¯¾ããé©åæ§ãå«ãã¦ï¼
+ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼ASPã«ã¼ãã«ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥ç
+ã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+
+éçºè
+ããã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼ASPã«ã¼ãã«ã«é¢ãããµãã¼ãã®ç´æã¯
+ãã¦ããªãï¼ASPã«ã¼ãã«ã«é¢ãã¦è³ªåãããå ´åã¯ï¼å¾è¿°ã®TOPPERSã¦ã¼ã¶ã¼
+ãºã¡ã¼ãªã³ã°ãªã¹ããå©ç¨ãã¦ããã ããã¨å¹¸ãã§ããï¼ç¢ºå®ãªãµãã¼ããå¿
+
+è¦ãªå ´åã«ã¯ï¼æåã§ãµãã¼ããµã¼ãã¹ãæä¾ãã¦ããä¼ç¤¾ã«ç¸è«ããããï¼
+
+12.3 ãã°ã¬ãã¼ã
+
+ASPã«ã¼ãã«ã«ãã°ãåé¡ç¹ãçºè¦ãããå ´åã«ã¯ï¼å¾è¿°ã®TOPPERSã¦ã¼ã¶ã¼ãº
+ã¡ã¼ãªã³ã°ãªã¹ãã«å ±åãã¦æ¬²ããï¼
+
+ã¡ã¼ãªã³ã°ãªã¹ãã«ãã°ãåé¡ç¹ãªã©ãå ±åããå ´åã«ã¯ï¼å¿
+è¦ã«å¿ãã¦æ¬¡ã®
+æ
+å ±ãç¥ããã¦æ¬²ããï¼
+
+	ä½¿ç¨ãã¦ããã«ã¼ãã«ã«é¢ããæ
+å ±
+		ã»ã¿ã¼ã²ããéä¾å­é¨ã®ãã¼ã¸ã§ã³
+		ã»ä½¿ç¨ãã¦ããã¿ã¼ã²ããä¾å­é¨ã¨ãã®ãã¼ã¸ã§ã³
+		ã»TOPPERSãã­ã¸ã§ã¯ãããã®ãªãªã¼ã¹ã«å¯¾ããæ¹é ç®æï¼ããã°ï¼
+
+	ã¿ã¼ã²ããã·ã¹ãã ã«é¢ããæ
+å ±
+		ã»ã¿ã¼ã²ãããã­ã»ããµã®ç¨®é¡
+		ã»ã¿ã¼ã²ãããã¼ãç­ã®ç¨®é¡
+
+	ãã¹ãã«é¢ããæ
+å ±
+		ã»OSã®ãã¼ã¸ã§ã³ï¼ãµã¼ãã¹ããã¯ã®é©ç¨ç¶æ³ãï¼
+		ã»ã³ã³ãã¤ã©ãªã©ã®éçºç°å¢ã®ãã¼ã¸ã§ã³ï¼Cygwinã®ãã¼ã¸ã§ã³ãï¼
+
+12.4 ã¦ã§ããµã¤ã
+
+TOPPERSãã­ã¸ã§ã¯ãã®ã¦ã§ããµã¤ãã¯ï¼ä»¥ä¸ã®URLã«ããï¼
+
+	http://www.toppers.jp/
+
+TOPPERSãã­ã¸ã§ã¯ããASPã«ã¼ãã«ã«é¢ããææ°æ
+å ±ã¯ï¼ãã®ã¦ã§ããµã¤ãã
+ãå¾ããã¨ãã§ããï¼ã¾ãï¼ASPã«ã¼ãã«ã®ææ°çã¯ï¼ãã®ã¦ã§ããµã¤ãããã
+ã¦ã³ã­ã¼ããããã¨ãã§ããï¼
+
+12.5 TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼ãªã³ã°ãªã¹ã
+
+ASPã«ã¼ãã«ãå«ãTOPPERSãã­ã¸ã§ã¯ãã®éçºææç©ã®ã¦ã¼ã¶ã«å¯¾ããæ
+å ±æ
+ä¾ããã³ã¦ã¼ã¶ç¸äºéã®æ
+å ±äº¤æãå®¹æã«ããããã«ï¼TOPPERSã¦ã¼ã¶ã¼ãºã¡ã¼
+ãªã³ã°ãªã¹ãï¼users@toppers.jpï¼ãç¨æãã¦ããï¼
+
+ãã®ã¡ã¼ãªã³ã°ãªã¹ãã«ã¯ï¼èª°ã§ãèªç±ã«ç»é²ãï¼ã¡ã¼ã«ãéä»ãããã¨ãã§
+ããï¼ç»é²è
+ä»¥å¤ã¯ã¡ã¼ã«ãéä»ã§ããªãï¼ï¼ã¾ãï¼éä»ãããã¡ã¼ã«ã¯ï¼èª°
+ã§ãèªç±ã«ã¦ã§ããµã¤ãã§èª­ããã¨ãã§ããï¼
+
+ã¡ã¼ãªã³ã°ãªã¹ãã¸ã®ç»é²æ¹æ³ã«ã¤ãã¦ã¯ï¼ä»¥ä¸ã®URLã®ãã¼ã¸ã«èª¬æãããï¼
+
+	http://www.toppers.jp/community.html
+
+12.6 TOPPERSãã­ã¸ã§ã¯ãã®ã¡ã³ãåãã®ãµã¼ãã¹
+
+TOPPERSãã­ã¸ã§ã¯ãã®ã¡ã³ãã«å¯¾ãã¦ã¯ï¼ä¸è¨ã«å ãã¦ï¼ASPã«ã¼ãã«ã«é¢é£
+ãã¦æ¬¡ã®ãµã¼ãã¹ãç¨æãã¦ããï¼
+
+(1) TOPPERSéçºè
+ã¡ã¼ãªã³ã°ãªã¹ã
+
+TOPPERSãã­ã¸ã§ã¯ãã®ã¡ã³ãã¯ï¼ASPã«ã¼ãã«ã«é¢ããè³ªåï¼ãã°ãåé¡ç¹ãª
+ã©ã®å ±åã«ï¼TOPPERSéçºè
+ã¡ã¼ãªã³ã°ãªã¹ãï¼dev@toppers.jpï¼ãå©ç¨ããã
+ã¨ãã§ããï¼
+
+(2) ASPã«ã¼ãã«ã®éçºæ¯æ´ãµã¤ã
+
+ASPã«ã¼ãã«ã®éçºæ¯æ´ã®ããã®TRACï¼ãã°ãã©ãã­ã³ã°ã·ã¹ãã ï¼ãï¼ä»¥ä¸ã®
+URLã«ããï¼TRACã¸ã®ã¢ã¯ã»ã¹ã«ã¯ï¼ä¼å¡ãã¹ã¯ã¼ããå¿
+è¦ã§ããï¼ï¼
+
+	http://dev.toppers.jp/trac/asp/
+
+TOPPERSãã­ã¸ã§ã¯ãã®ã¡ã³ãã¯ï¼ãã®ãµã¤ãããï¼ã¦ã§ãã¤ã³ã¿ãã§ã¼ã¹ãã
+ã³subversionãµã¼ãã«ããï¼ASPã«ã¼ãã«ã®éçºä¸­ã®ãã¼ã¸ã§ã³ãå¾ããã¨ãã§
+ããï¼ã¾ãï¼ãã°ãã©ãã­ã³ã°ãã¼ã¿ãã¼ã¹ã«ã¢ã¯ã»ã¹ãããã¨ãã§ãï¼éå»
+ã®ãã°å±¥æ­´ã¸ã®ã¢ã¯ã»ã¹ãï¼ãã°ã®ç»é²ããããã¨ãã§ããï¼
+
+12.7 TOPPERSãã­ã¸ã§ã¯ãã¸ã®åå 
+
+TOPPERSãã­ã¸ã§ã¯ãã§ã¯ï¼ä½ããã®å½¢ã§ãã­ã¸ã§ã¯ãã«è²¢ç®ãã¦ããã ããæ¹ï¼
+ãã­ã¸ã§ã¯ãã§éçºããã½ããã¦ã§ã¢ããä½¿ãã®æ¹ï¼ãã­ã¸ã§ã¯ãã«èå³ãã
+æã¡ã®æ¹ã®åå ãæ±ãã¦ããï¼TOPPERSãã­ã¸ã§ã¯ãã¸ã®åå æ¹æ³ã«ã¤ãã¦ã¯ï¼
+ä»¥ä¸ã®ãã¼ã¸ã«èª¬æãããï¼
+
+	http://www.toppers.jp/joinus.html
+
+
+ï¼ï¼ï¼ãªãã¡ã¬ã³ã¹
+
+13.1 ãµã¼ãã¹ã³ã¼ã«ä¸è¦§
+
+(1) ã¿ã¹ã¯ç®¡çæ©è½
+
+	ER ercd = act_tsk(ID tskid)
+	ER ercd = iact_tsk(ID tskid)
+	ER_UINT	actcnt = can_act(ID tskid)
+	ER ercd = ext_tsk(void)
+	ER ercd = ter_tsk(ID tskid)
+	ER ercd = chg_pri(ID tskid, PRI tskpri)
+	ER ercd = get_pri(ID tskid, PRI *p_tskpri)
+	ER ercd = get_inf(intptr_t *p_exinf)
+	ER ercd = ref_tsk(ID tskid, T_RTSK *pk_rtsk)
+
+(2) ã¿ã¹ã¯ä»å±åææ©è½
+
+	ER ercd = slp_tsk(void)
+	ER ercd = tslp_tsk(TMO tmout)
+	ER ercd = wup_tsk(ID tskid)
+	ER ercd = iwup_tsk(ID tskid)
+	ER_UINT wupcnt = can_wup(ID tskid)
+	ER ercd = rel_wai(ID tskid)
+	ER ercd = irel_wai(ID tskid)
+	ER ercd = sus_tsk(ID tskid)
+	ER ercd = rsm_tsk(ID tskid)
+	ER ercd = dly_tsk(RELTIM dlytim)
+
+(3) ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+
+	ER ercd = ras_tex(ID tskid, TEXPTN rasptn)
+	ER ercd = iras_tex(ID tskid, TEXPTN rasptn)
+	ER ercd = dis_tex(void)
+	ER ercd = ena_tex(void)
+	bool_t state = sns_tex(void)
+	ER ercd = ref_tex(ID tskid, T_RTEX *pk_rtex)
+
+(4) åæã»éä¿¡æ©è½
+
+	ER ercd = sig_sem(ID semid)
+	ER ercd = isig_sem(ID semid)
+	ER ercd = wai_sem(ID semid)
+	ER ercd = pol_sem(ID semid)
+	ER ercd = twai_sem(ID semid, TMO tmout)
+	ER ercd = ini_sem(ID semid)
+	ER ercd = ref_sem(ID semid, T_RSEM *pk_rsem)
+
+	ER ercd = set_flg(ID flgid, FLGPTN setptn)
+	ER ercd = iset_flg(ID flgid, FLGPTN setptn)
+	ER ercd = clr_flg(ID flgid, FLGPTN clrptn)
+	ER ercd = wai_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn)
+	ER ercd = pol_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn)
+	ER ercd = twai_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn, TMO tmout)
+	ER ercd = ini_flg(ID flgid)
+	ER ercd = ref_flg(ID flgid, T_RFLG *pk_rflg)
+
+	ER ercd = snd_dtq(ID dtqid, intptr_t data)
+	ER ercd = psnd_dtq(ID dtqid, intptr_t data)
+	ER ercd = ipsnd_dtq(ID dtqid, intptr_t data)
+	ER ercd = tsnd_dtq(ID dtqid, intptr_t data, TMO tmout)
+	ER ercd = fsnd_dtq(ID dtqid, intptr_t data)
+	ER ercd = ifsnd_dtq(ID dtqid, intptr_t data)
+	ER ercd = rcv_dtq(ID dtqid, intptr_t *p_data)
+	ER ercd = prcv_dtq(ID dtqid, intptr_t *p_data)
+	ER ercd = trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout)
+	ER ercd = ini_dtq(ID dtqid)
+	ER ercd = ref_dtq(ID dtqid, T_RDTQ *pk_rdtq)
+
+	ER ercd = snd_pdq(ID pdqid, intptr_t data, PRI datapri)
+	ER ercd = psnd_pdq(ID pdqid, intptr_t data, PRI datapri)
+	ER ercd = ipsnd_pdq(ID pdqid, intptr_t data, PRI datapri)
+	ER ercd = tsnd_pdq(ID pdqid, intptr_t data, PRI datapri, TMO tmout)
+	ER ercd = rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
+	ER ercd = prcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
+	ER ercd = trcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout)
+	ER ercd = ini_pdq(ID pdqid)
+	ER ercd = ref_pdq(ID pdqid, T_RPDQ *pk_rpdq)
+
+	ER ercd = snd_mbx(ID mbxid, T_MSG *pk_msg)
+	ER ercd = rcv_mbx(ID mbxid, T_MSG **ppk_msg)
+	ER ercd = prcv_mbx(ID mbxid, T_MSG **ppk_msg)
+	ER ercd = trcv_mbx(ID mbxid, T_MSG **ppk_msg, TMO tmout)
+	ER ercd = ini_mbx(ID mbxid)
+	ER ercd = ref_mbx(ID mbxid, T_RMBX *pk_rmbx)
+
+(5) ã¡ã¢ãªãã¼ã«ç®¡çæ©è½
+
+	ER ercd = get_mpf(ID mpfid, void **p_blk)
+	ER ercd = pget_mpf(ID mpfid, void **p_blk)
+	ER ercd = tget_mpf(ID mpfid, void **p_blk, TMO tmout)
+	ER ercd = rel_mpf(ID mpfid, void *blk)
+	ER ercd = ini_mpf(ID mpfid)
+	ER ercd = ref_mpf(ID mpfid, T_RMPF *pk_rmpf)
+
+(6) æéç®¡çæ©è½
+
+	ER ercd = get_tim(SYSTIM *p_systim)
+	ER ercd = get_utm(SYSUTM *p_sysutm)
+
+	ER ercd = sta_cyc(ID cycid)
+	ER ercd = stp_cyc(ID cycid)
+	ER ercd = ref_cyc(ID cycid, T_RCYC *pk_rcyc)
+
+	ER ercd = sta_alm(ID almid, RELTIM almtim)
+	ER ercd = ista_alm(ID almid, RELTIM almtim)
+	ER ercd = stp_alm(ID almid)
+	ER ercd = istp_alm(ID almid)
+	ER ercd = ref_alm(ID almid, T_RALM *pk_ralm)
+
+(7) ã·ã¹ãã ç¶æ
+ç®¡çæ©è½
+
+	ER ercd = rot_rdq(PRI tskpri)
+	ER ercd = irot_rdq(PRI tskpri)
+	ER ercd = get_tid(ID *p_tskid)
+	ER ercd = iget_tid(ID *p_tskid)
+	ER ercd = loc_cpu(void)
+	ER ercd = iloc_cpu(void)
+	ER ercd = unl_cpu(void)
+	ER ercd = iunl_cpu(void)
+	ER ercd = dis_dsp(void)
+	ER ercd = ena_dsp(void)
+	bool_t state = sns_ctx(void)
+	bool_t state = sns_loc(void)
+	bool_t state = sns_dsp(void)
+	bool_t state = sns_dpn(void)
+	bool_t state = sns_ker(void)
+	ER ercd = ext_ker(void)
+
+(8) å²è¾¼ã¿ç®¡çæ©è½
+
+	ER ercd = dis_int(INTNO intno)
+	ER ercd = ena_int(INTNO intno)
+	ER ercd = chg_ipm(PRI intpri)
+	ER ercd = get_ipm(PRI *p_intpri)
+
+(9) CPUä¾å¤ç®¡çæ©è½
+
+	bool_t stat = xsns_dpn(void *p_excinf)
+	bool_t stat = xsns_xpn(void *p_excinf)
+
+13.2 éçAPIä¸è¦§
+
+(1) ã¿ã¹ã¯ç®¡çæ©è½
+
+	CRE_TSK(ID tskid, { ATR tskatr, intptr_t exinf, TASK task,
+								PRI itskpri, SIZE stksz, STK_T *stk })
+
+(3) ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+
+	DEF_TEX(ID tskid, { ATR texatr, TEXRTN texrtn })
+
+(4) åæã»éä¿¡æ©è½
+
+	CRE_SEM(ID semid, { ATR sematr, uint_t isemcnt, uint_t maxsem })
+	CRE_FLG(ID flgid, { ATR flgatr, FLGPTN iflgptn })
+	CRE_DTQ(ID dtqid, { ATR dtqatr, uint_t dtqcnt, void *dtqmb })
+	CRE_PDQ(ID pdqid, { ATR pdqatr, uint_t pdqcnt, PRI maxdpri, void *pdqmb })
+	CRE_MBX(ID mbxid, { ATR mbxatr, PRI maxmpri, void *mprihd })
+
+(5) ã¡ã¢ãªãã¼ã«ç®¡çæ©è½
+
+	CRE_MPF(ID mpfid, { ATR mpfatr, uint_t blkcnt, uint_t blksz,
+										MPF_T *mpf, void *mpfmb })
+
+(6) æéç®¡çæ©è½
+
+	CRE_CYC(ID cycid, { ATR cycatr, intptr_t exinf, CYCHDR cychdr,
+								RELTIM cyctim, RELTIM cycphs })
+	CRE_ALM(ID almid, { ATR almatr, intptr_t exinf, ALMHDR almhdr })
+
+(8) å²è¾¼ã¿ç®¡çæ©è½
+
+	CFG_INT(INTNO intno, { ATR intatr, PRI intpri })
+	ATT_ISR({ ATR isratr, intptr_t exinf, INTNO intno, ISR isr, PRI isrpri })
+	DEF_INH(INHNO inhno, { ATR inhatr, INTHDR inthdr })
+
+(9) CPUä¾å¤ç®¡çæ©è½
+
+	DEF_EXC(EXCNO excno, { ATR excatr, EXCHDR exchdr })
+
+(10) ã·ã¹ãã æ§æç®¡çæ©è½
+
+	DEF_ICS({ SIZE istksz, STK_T *istk })
+	ATT_INI({ ATR iniatr, intptr_t exinf, INIRTN inirtn })
+	ATT_TER({ ATR teratr, intptr_t exinf, TERRTN terrtn })
+
+13.3 ãã¼ã¸ã§ã³å±¥æ­´
+
+	2006å¹´10æ29æ¥	Release	1.A.0		æåã®ãªãªã¼ã¹
+	2007å¹´2æ20æ¥	Release	1.A.1
+	2007å¹´2æ20æ¥	Release	1.A.2
+	2007å¹´7æ12æ¥	Release	1.B.0		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæ°ãã¼ã¸ã§ã³ã«
+	2007å¹´7æ12æ¥	Release	1.B.1		ã©ã¤ã»ã³ã¹æ¡ä»¶ã®å
+¥ãæã
+	2007å¹´7æ16æ¥	Release	1.B.2
+	2007å¹´7æ21æ¥	Release	1.B.3		ãã£ã¬ã¯ããªæ§æã®å¤æ´
+	2007å¹´8æ20æ¥	Release	1.B.4		æ¡å¼µããã±ã¼ã¸ã®è¿½å 
+	2007å¹´10æ16æ¥	Release 1.B.5
+	2007å¹´11æ15æ¥	Release 1.0.0		æ­£å¼çã®ãªãªã¼ã¹
+	2007å¹´12æ23æ¥	Release 1.1.0
+	2008å¹´3æ19æ¥	Release 1.2.0
+	2008å¹´3æ21æ¥	Release 1.2.1
+	2008å¹´4æ12æ¥	Release 1.3.0		ä¸è¬å
+¬éã«åãã¦ã®æçµä¿®æ­£
+	2008å¹´5æ13æ¥	Release 1.3.1		æåã®ä¸è¬å
+¬éç
+	2008å¹´8æ21æ¥	Release 1.3.2
+	2009å¹´5æ11æ¥	Release 1.4.0
+	2010å¹´6æ28æ¥	Release 1.5.0		æ¡å¼µããã±ã¼ã¸ãä¸è¬å
+¬é
+	2010å¹´8æ1æ¥	Release 1.6.0		cfg-1.6ã«å¯¾å¿
+	2011å¹´5æ8æ¥	Release 1.7.0		åççææ©è½æ¡å¼µããã±ã¼ã¸ç­ã®è¿½å 
+	2012å¹´12æ26æ¥	Release 1.8.0
+	2014å¹´1æ6æ¥	Release 1.9.0		ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µã®è¿½å 
+	2014å¹´11æ17æ¥	Release 1.9.1
+	2015å¹´5æ30æ¥	Release 1.9.2
+	2017å¹´4æ29æ¥	Release 1.9.3
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/doc/version.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/doc/version.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/doc/version.txt	(revision 313)
@@ -0,0 +1,1299 @@
+
+		TOPPERS/ASPã«ã¼ãã«
+		å¤æ´å±¥æ­´
+
+		å¯¾å¿ãã¼ã¸ã§ã³: Release 1.9.3
+		æçµæ´æ°: 2017å¹´4æ29æ¥
+
+ãã®ãã­ã¥ã¡ã³ãã¯ï¼TOPPERS/ASPã«ã¼ãã«ã®Release 1.0.0ä»¥éã®å¤æ´å±¥æ­´ãï¼
+æ°ããæ¹ããé ã«è¨è¿°ãããã®ã§ããï¼
+
+----------------------------------------------------------------------
+ TOPPERS/ASP Kernel
+     Toyohashi Open Platform for Embedded Real-Time Systems/
+     Advanced Standard Profile Kernel
+
+ Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
+             Graduate School of Information Science, Nagoya Univ., JAPAN
+ 
+ ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+     æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+     ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+     è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+     ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+     ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+     ã¨ï¼
+   (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+       ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+   (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+       å ±åãããã¨ï¼
+ (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+     å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+     ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+     ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+     å
+è²¬ãããã¨ï¼
+ 
+ æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ ã®è²¬ä»»ãè² ããªãï¼
+ 
+ $Id$
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.9.2 ãã 1.9.3 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»åççææ©è½æ¡å¼µããã±ã¼ã¸ã®ãã°ãã£ãã¯ã¹
+	- acre_tskã§ï¼åªå
+åº¦ã®é«ãã¿ã¹ã¯ãçæã»èµ·åãã¦ããã£ã¹ããããèµ·
+	  ãããªãä¸å
+·åãä¿®æ­£ï¼
+	- fsnd_dtqã¨ifsnd_dtqã§ï¼ã¨ã©ã¼ã³ã¼ãã«E_OKãä¸æ¸ããã¦ããä¸å
+·å
+	  ãä¿®æ­£ï¼
+	- acre_tskã§ï¼p_tinib->stkszã«æ ¼ç´ããå¤ï¼stkszï¼ãä¸¸ããå¤ã¨ãã
+	  ããã«ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- syslog_ref_logã®åºå£ã®ã­ã°åºåãã¯ã­ï¼LOG_SYSLOG_REF_LOG_LEAVEï¼
+	  ã®ãã©ã¡ã¼ã¿ã«ã¨ã©ã¼ã³ã¼ããè¿½å ï¼
+	- extension/dcre/kernel/kernel.tfã§ï¼ISRã«æ¸¡ãæ¡å¼µæ
+å ±ãintptr_tå
+	  ã¸ã®ã­ã£ã¹ãããããã«ä¿®æ­£ï¼
+	- sample/Makefileä¸­ã®ã³ã³ãã¤ã©ã«å¯¾ãã-Tãªãã·ã§ã³ãï¼-Wl,-Tãªã
+	  ã·ã§ã³ã«å¤æ´ï¼
+	- utils/genoffset.tfã«ï¼SIL_ENDIAN_BIT/LITTLEã®èª¤å®ç¾©ã®æ¤åºå¦çã
+	  è¿½å ï¼
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®ä¿®æ­£ï¼
+	- ãã³ãã¬ã¼ããã¡ã¤ã«ã®è¨è¿°ã¹ã¿ã¤ã«ã®ä¿®æ­£ï¼
+	- æ¡å¼µããã±ã¼ã¸ãï¼kernel.tfä¸­ã§ï¼ã¹ã¿ãã¯é åã®ç¢ºä¿ã«ALLOC_STACK
+	  ãä½¿ãããã«ä¿®æ­£ï¼éå»ã®ä¿®æ­£æã®æ¡å¼µããã±ã¼ã¸ã®ä¿®æ­£æ¼ãï¼ï¼
+	- TLSFã®init_memory_poolãè¿ãã¨ã©ã¼å¤ã®ãã§ãã¯æ¹æ³ãä¿®æ­£ãMac OS
+	  Xã¿ã¼ã²ããä¾å­é¨ãï¼
+
+ã»ãã­ã¥ã¡ã³ãã®ä¿®æ­£ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.9.1 ãã 1.9.2 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»åççææ©è½æ¡å¼µã®ãã°ãã£ãã¯ã¹
+	- acre_cycã§ï¼å¨æãã³ãã©ãéå§ããå¦çã®ãã°ãä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- test_cpuexc10.cã®ãã§ãã¯å¤ã®èª¤ãã®ä¿®æ­£ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®ä¿®æ­£ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.9.0 ãã 1.9.1 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µã®ä»æ§å¤æ´
+	- èªã¿ã¹ã¯ãã­ãã¯ãã¦ãããã¥ã¼ããã¯ã¹ãååº¦ã­ãã¯ãããã¨ããå ´
+	  åã¨ï¼èªã¿ã¹ã¯ãã­ãã¯ãã¦ããªããã¥ã¼ããã¯ã¹ãã­ãã¯è§£é¤ããã
+	  ã¨ããå ´åã®ã¨ã©ã¼ã³ã¼ããE_OBJã«å¤æ´ï¼
+
+ã»ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µã®ãã°ãã£ãã¯ã¹
+	- ã¿ã¹ã¯çµäºæã®ãã¥ã¼ããã¯ã¹ã®è§£æ¾é åºãéé ã«ï¼
+
+ã»åççææ©è½æ¡å¼µã®ãã°ãã£ãã¯ã¹
+	- ãªãã¸ã§ã¯ãæªç»é²ã¨ã©ã¼ã®ãã§ãã¯ã®æãããã³ãã°ãä¿®æ­£ï¼
+	- ãªãã¸ã§ã¯ãæªç»é²ã®å ´åã®ä»ã®ã¨ã©ã¼ã®ãã§ãã¯å ´æã®ä¿®æ­£ï¼
+
+ã»ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã®ãã°ãã£ãã¯ã¹
+	- ãªã¼ãã©ã³ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ã®èµ·åã¨ï¼ãªã¼ãã©ã³ã¿ã¤ãã®ååä½
+	  éå§ï¼åæ­¢ã¨ã®ç«¶åã®åé¡ãä¿®æ­£ï¼
+
+ã»ãã¹ããã­ã°ã©ã é¢ä¿ã®ä¿®æ­£
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- xsns_dpnã¨xsns_xpnã§ï¼kerflgããã§ãã¯ããããã«ä¿®æ­£ï¼å®å
+¨æ§ã®å
+	  ä¸ã®ããã®ä¿®æ­£ï¼ï¼
+	- kernel.tfä¸­ã§ï¼ã¹ã¿ãã¯é åã®ç¢ºä¿ã«ALLOC_STACKãä½¿ãããã«ä¿®æ­£ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.8.0 ãã 1.9.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ã¡ãã»ã¼ã¸ãããã¡æ©è½æ¡å¼µããã±ã¼ã¸ã®è¿½å 
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã«ï¼ã¿ã¼ã²ããä¾å­é¨ã§
+ãè¨­å®ããã»ã¯ã·ã§ã³ãï¼LMAããVMAã«ã³ãã¼ããå¦çãè¿½å 
+
+ã»ãµã³ãã«ã®Makefileã®ä¿®æ­£
+	- Cè¨èªã®æã«-lcãä»ããããã«ä¿®æ­£ï¼
+	- CFG_OBJSãï¼CFG_ASMOBJSã¨CFG_COBJSã«åé¢ï¼
+
+ã»å
+é ­çªå°ã®ãã§ãã¯ã³ã¼ãã®ä¿®æ­£
+	- å
+é ­çªå°ã®ãµã¤ãºãåºå®å¤ã«ãªã£ã¦ããã¨ãããï¼sizeof_FPã«ä¿®æ­£ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã«ããã¦ï¼ãªã¼ãã©ã³ãã³ãã©ã®å
+é ­çªå°
+	  ã®ãã§ãã¯ãè¿½å ï¼
+
+ã»éçAPIã«ãããã¨ã©ã¼ãã§ãã¯ã®è¿½å 
+	- ç¬¦å·ç¡ãã®ãã©ã¡ã¼ã¿ã«è² ã®å¤ãæå®ããå ´åã®ã¨ã©ã¼ãã§ãã¯ãè¿½å ï¼
+	- ã¤ãã³ããã©ã°ã®åæããããã¿ã¼ã³ã®ã¨ã©ã¼ãã§ãã¯ãè¿½å ï¼
+
+ã»ãã¹ããã­ã°ã©ã é¢ä¿ã®ä¿®æ­£
+	- ãã¹ãã©ã¤ãã©ãªã«ï¼test_startãè¿½å ï¼
+	- ãã¹ããã­ã°ã©ã ã®å
+é ­ã§ï¼ãã­ã°ã©ã åãè¡¨ç¤ºããããã«ä¿®æ­£ï¼
+	- gentestãæ¡å¼µï¼
+
+ã»åççææ©è½æ¡å¼µã®ãã°ãã£ãã¯ã¹
+	- ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãºã®ãã§ãã¯ã³ã¼ããä¿®æ­£ï¼
+	- DEF_KMMã®kmmszã0ä»¥ä¸ã®å ´åã®ã¨ã©ã¼ãã§ãã¯ãè¿½å ï¼
+	- ã«ã¼ãã«å
+é¨ã·ã³ãã«ã®ãªãã¼ã è¡¨ãä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- kernel_def.csvã«TARGET_MIN_ISTKSZãè¿½å ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã§ï¼ãªã¼ãã©ã³ãã³ãã©ããµãã¼ããã¦ã
+	  ãªãã¿ã¼ã²ããã§DEF_OVRãä½¿ç¨ããå ´åã«ã¯ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã§ã¨
+	  ã©ã¼ã¨ããããã«ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- reqdspãdspreqã«ï¼p_reqdspãp_dspreqã«ãªãã¼ã ï¼
+	- ã¹ã¿ãã¯é åã¨åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ãã¦ã¼ã¶ãæå®ãã
+	  å ´åã«ã¯ï¼kernel_cfg.cä¸­ã§(void *)åã«ã­ã£ã¹ãããããã«ä¿®æ­£ï¼å
+	  ççææ©è½æ¡å¼µã®ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
+é ­çªå°ãåæ§ï¼
+	- TNUM_PORTã5ä»¥ä¸ã®æã¯ï¼serial.cã§ã¨ã©ã¼ãå ±åããï¼
+	- makedepã¨makereleaseãæ¹åï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+	- ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«ã1.6 Cygwinç°å¢ã«ãããæ³¨æäºé 
+ããè¿½å ï¼
+	- ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«ã11.8 rodataã»ã¯ã·ã§ã³ãRAMã«ç½®ãå ´åãã
+	  è¿½å ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.8.0 â 1.9.0ï¼
+
+(1) CFG_OBJSãCFG_COBJSã«ãªãã¼ã 
+	- Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§CFG_OBJSãå®ç¾©ãã¦ããå ´åã«ã¯ï¼
+	  CFG_COBJSã«ãªãã¼ã ããï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.7.0 ãã 1.8.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»char_tåã®å»æ­¢
+
+ã»SILã®ã¡ã¢ãªç©ºéèª­åºãé¢æ°ã«æ¸¡ããã¤ã³ã¿ã®å±æ§ã®å¤æ´
+	- sil_r??_???ã«æ¸¡ããã¤ã³ã¿ã«ï¼constå±æ§ãè¿½å ï¼
+
+ã»éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®ãµã¤ãºãã§ãã¯ã®è¿½å 
+	- DEF_ICSã®istkszãã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_ISTKSZï¼ãã
+	  ãå°ããå ´åã«E_PARã¨ã©ã¼ã¨ããå¦çãè¿½å ï¼
+
+ã»vasyslog.cãlibraryãã£ã¬ã¯ããªã«ç§»å
+
+ã»MISRA-Cå¯¾å¿ã®ããã®ã³ã¼ãã®ä¿®æ­£
+	- æããã¯ã­å®ç¾©ãã¦ããç®æãdo{}while(false)ã§å²ãï¼
+	- ã³ã³ãæ¼ç®å­ã«ä½¿ç¨ãæå°éã«ï¼
+	- å¤éä»£å
+¥æããããï¼
+	- ç¬¦å·ç¡ãæ´æ°å®æ°ã«Uãã¤ããï¼
+	- æ¨æºçãªååãå¤æ°åã¨ãã¦ä½¿ããªãããã«ä¿®æ­£ï¼
+	- è¿å¤ãä½¿ããªãé¢æ°å¼åºãã(void)ã«ã­ã£ã¹ãããï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µã§ï¼ref_tskãTTW_MTXãè¿ãå¦çãè¿½å ï¼
+	- åççææ©è½æ¡å¼µã§ï¼acre_isrã®ã¨ã©ã¼ã³ã¼ããä¿®æ­£ï¼
+	- åççææ©è½æ¡å¼µã§ï¼ãªãã¸ã§ã¯ãã³ã³ãã­ã¼ã«ãã­ãã¯ããªãæã«
+	  acre_yyyãå¼ãã å ´åã®åé¡ãä¿®æ­£ï¼
+	- kernel_check.tfã§ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®åºåå¦çãä¿®æ­£ï¼
+	- æ¡å¼µã¢ã¸ã¥ã¼ã«ã®è¿½å¾ãã¹ã®ä¿®æ­£ï¼
+	- TOPPERS_SUPPORT_OVRTIMãTOPPERS_SUPPORT_OVRHDRã«ä¿®æ­£ï¼
+
+ã»ãµã³ãã«ã®Makefileã®ä¿®æ­£
+	- ã«ã¼ãã«ã©ã¤ãã©ãªãå¥ãã£ã¬ã¯ããªã§ä½æããæã«ï¼ã«ã¼ãã«ã©ã¤ã
+	  ã©ãªãæ´æ°ããããï¼ãªãã¸ã§ã¯ããã¡ã¤ã«ãåæ§ç¯ããããã«ä¿®æ­£ï¼
+	- CFG2_OUTãCFG2_OUT_SRCSã«ãªãã¼ã ï¼
+	- LDFLAGSã¯ï¼cfg1_out.cã®ãªã³ã¯æã«ã¯é©ç¨ãããªãããã«ä¿®æ­£ï¼
+	- log_output.oï¼vasyslog.oï¼t_perror.oï¼strerror.oãï¼SYS_COBJSãã
+	  APPL_COBJSã«ç§»åï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- semaphore.hç­ããwait.hãã¤ã³ã¯ã«ã¼ãããããã«ä¿®æ­£ï¼
+	- TOPPERS_EMPTY_LABELã®ããã©ã«ãã®å®ç¾©ãkernel_int.hã«ç§»åï¼
+	- __STDC_VERSION__ãå®ç¾©ããã¦ããªãå ´åã«å¯¾å¿ï¼
+	- test_lib.hã«å¤éã¤ã³ã¯ã«ã¼ãã®é²æ­¢ã³ã¼ããè¿½å ï¼
+	- ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ãæ°ããperlã«å¯¾å¿ããããã«ä¿®æ­£ï¼
+	- gentestãæ¡å¼µï¼CPUä¾å¤ãã³ãã©ã®çæï¼GOTOã«å¯¾å¿ãªã©ï¼ï¼
+	- configureã«ãªãã·ã§ã³ãè¿½å ï¼
+	- test_tex1ã«ãã¹ãã±ã¼ã¹1ä»¶ãè¿½å ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.7.0 â 1.8.0ï¼
+
+(1) char_tåãcharåã«ä¿®æ­£
+
+(2) TARGET_MIN_ISTKSZã®å®ç¾©ãè¿½å ï¼ãªãã·ã§ã³ï¼
+	- éã¿ã¹ã¯ã³ã³ãã­ã¹ãã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ããã§ãã¯ããå ´åã«
+	  ã¯ï¼æå°å¤ãTARGET_MIN_ISTKSZã«å®ç¾©ããï¼
+
+(3) CFG2_OUTãCFG2_OUT_SRCSã«ãªãã¼ã 
+	- Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§CFG2_OUTãå®ç¾©ãã¦ããå ´åã«ã¯ï¼
+	  CFG2_OUT_SRCSã«ãªãã¼ã ããï¼
+
+(4) CFG1_OUT_LDFLAGSã®å®ç¾©
+	- Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããLDFLAGSã¯ï¼cfg1_out.cããªã³ã¯
+	  ããéã«ã¯é©ç¨ãããªãããã«å¤æ´ããããï¼LDFLAGSã«å®ç¾©ãããªãã·ã§
+	  ã³ã§ï¼cfg1_out.cããªã³ã¯ããéã«ãå¿
+è¦ãªãã®ã¯ï¼CFG1_OUT_LDFLAGS
+	  ã«ãå®ç¾©ããããã«ä¿®æ­£ããï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.6.0 ãã 1.7.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»åççææ©è½æ¡å¼µããã±ã¼ã¸ï¼å¶ç´ã¿ã¹ã¯æ¡å¼µããã±ã¼ã¸ã®è¿½å 
+
+ã»ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡éå§æ¡ä»¶ã®å¤æ´
+	- ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®è¡ã«é¢ããã³ã¼ãã®ä¿®æ­£ï¼
+	- ipmflgãå°å
+¥ï¼
+	- exc_sense_unlockãå»æ­¢ï¼
+
+ã»ãã¼ã¿ã­ã¥ã¼ã®ã³ã¼ãã®ä¿®æ­£
+	- ãã¼ã¿ç®¡çãã­ãã¯ã®å°å
+¥ï¼ä»ã®ãªãã¸ã§ã¯ãã®å®è£
+ã¨æ´åãããï¼ï¼
+
+ã»SILã®ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°ã«æ¸¡ããã¤ã³ã¿ã®åã®å¤æ´
+	- void *ãæ¸¡ãã¦ããã¨ãããï¼ãµã¤ãºã«ãããã¦ï¼uint8_t *ãªã©ã«å¤æ´ï¼
+
+ã»åççææ©è½æ¡å¼µããã±ã¼ã¸ã«ããããä¿®æ­£
+	- t_stddef.hã«MB_Tåã®å®ç¾©ãè¿½å ï¼
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã³ãã¬ã¼ããã¡ã¤ã«ï¼ãã¹2ããã³3ï¼ã§å®ç¾©ã
+	  ã¦ããã¿ã¼ã²ããä¾å­æ
+å ±ãï¼ããããã¡ã¤ã«ã«ç§»åï¼
+	- kernel_def.csvã«ï¼ãããã®å¤ãåå¾ããããã®è¨è¿°ãè¿½å ï¼
+	- ãã¼ãã£ã³ã°ã¬ã¤ãã®ä¿®æ­£ï¼
+
+ã»ãªãã»ãããã¡ã¤ã«ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã§çæããæ¹æ³ãè¿½å 
+	- genoffset.tfãè¿½å ï¼
+	- kernel_def.csvã«ï¼SIL_ENDIAN_BIG/LITTLEãè¿½å ï¼
+	- sample/Makefileãä¿®æ­£ï¼
+	- m68kä¾å­é¨ãï¼ãã®æ¹æ³ã«å¯¾å¿ãããï¼
+	- ãã¼ãã£ã³ã°ã¬ã¤ãã®ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- CHECK_INTPRI_CHGIPMã®å®ç¾©ä¸­ã®typoãä¿®æ­£ï¼
+	- genoffsetã®Release 1.6.0ã«ããããã£ã°ã¬ã¼ããä¿®æ­£ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ¡å¼µæ©è½ã§ï¼ã¿ã¼ã²ããä¾å­é¨ããªã¼ãã©ã³ãã³ã
+	  ã©ããµãã¼ããã¦ããªãå ´åã«ã¯ï¼TCBä¸­ã®leftotmãå®ç¾©ããªãããã«
+	  ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- USE_TSKINICTXBããã¯ã­å®ç¾©ããå ´åã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ã®ãã§ã
+	  ã¯ã®ããã«ï¼GET_STK_TSKINICTXBãå°å
+¥ï¼
+	- kernel_cfg.cä¸­ã§ï¼ã¿ã¹ã¯ã®å
+é ­çªå°ãTASKåã«ã­ã£ã¹ãããããã«
+	  kernel.tfãä¿®æ­£ï¼
+	- ext_tskã®E_SYSã®è¿ãæ¹ãä¿®æ­£ï¼ext_kerãE_SYSãè¿ãã³ã¼ãã«ä¿®æ­£ï¼
+	- CFG_INTã¯ï¼æå¹ãªãã¹ã¦ã®å²è¾¼ã¿çªå·ã«å¯¾å¿ããæ¹éã«å¾ãï¼ã³ã³ãã£
+	  ã®ã¥ã¬ã¼ã¿ã®ã¨ã©ã¼æ¡ä»¶ãä¿®æ­£ï¼
+	- makedepã«-Sãªãã·ã§ã³ãè¿½å ï¼
+	- ã·ãªã¢ã«ãã©ã¤ãã§ãµãã¼ããããã¼ãæ°ãï¼æå¤§4ãã¼ãã«å¤æ´ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.6.0 â 1.7.0ï¼
+
+(1) ã¿ã¼ã²ããä¾å­é¨ã§ï¼calltexãå¼ã¶ä»£ããã«calltexã®å
+å®¹ãã¤ã³ã©ã¤ã³
+å±éãã¦ããå ´åã«ï¼call_texrtnãå¼ã³åºãæ¡ä»¶ã«ãipmflgãtrueããè¿½å ã
+ãããã«ä¿®æ­£ï¼
+
+(2) å²è¾¼ã¿åºå
+¥å£å¦çãæ­£ãããã®ç¢ºèªï¼
+	- ãã¼ãã£ã³ã°ã¬ã¤ãã®å²è¾¼ã¿åºå
+¥å£å¦çã«è¿½å ãããå²è¾¼ã¿åªå
+åº¦ãã¹
+	  ã¯ãï¼å
+¨è§£é¤ç¶æ
+ï¼TIPM_ENAALLï¼ã®å¤ã«è¨­å®ãã â¦ (*h)ãã®å¦çãå®
+	  ç¾ããã¦ããããç¢ºèªï¼
+	- ãã¼ãã£ã³ã°ã¬ã¤ãã®6.6.1ç¯ã®è¨è¿°ãç¢ºèªï¼(*g)(*i)ã®æ³¨è¨ãè¿½å ãã
+	  ãªã©ï¼è¨è¿°ãè©³ç´°åããï¼ï¼
+
+(3) exc_sense_unlockã®å®ç¾©ãåé¤ï¼
+
+(4) TARGET_TSKATRï¼TARGET_ISRATRï¼TARGET_INHATRï¼TARGET_INTATRï¼
+TARGET_EXCATRï¼TARGET_MIN_STKSZï¼CHECK_STKSZ_ALIGNã®å®ç¾©ãï¼ã¿ã¼ã²ãã
+ä¾å­é¨ã®ãã³ãã¬ã¼ããã¡ã¤ã«ï¼ãã¹2ï¼ããããããã¡ã¤ã«ã«ç§»åï¼
+
+(5) CHECK_FUNC_ALIGNï¼CHECK_FUNC_NONNULLï¼CHECK_STACK_ALIGNï¼
+CHECK_STACK_NONNULLï¼CHECK_MPF_ALIGNï¼CHECK_MPF_NONNULLã®å®ç¾©ãï¼ã¿ã¼ã²ã
+ãä¾å­é¨ã®ãã³ãã¬ã¼ããã¡ã¤ã«ï¼ãã¹3ï¼ããããããã¡ã¤ã«ã«ç§»åï¼
+
+(6) åççææ©è½æ¡å¼µããã±ã¼ã¸ã«å¯¾å¿ï¼
+	- CHECK_MB_ALIGNã®å®ç¾©ãè¿½å ï¼
+	- TSZ_PDQMBã®å®ç¾©ãè¿½å ï¼ããã©ã«ãã§ä¸é½åãªå ´åï¼ï¼
+	- VALID_INTNO_CREINTã®å®ç¾©ãè¿½å ï¼
+	- åçã¡ã¢ãªç®¡çã«é¢ããå®ç¾©ãè¿½å ï¼
+
+(7) ãªãã»ãããã¡ã¤ã«ãã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã§çæããæ¹æ³ã¸ã®å¯¾å¿ï¼å¿
+é 
+ã§ã¯ãªããï¼å¯¾å¿ãã¦ãããã¨ãæã¾ããï¼ï¼è©³ããã¯ï¼ãã¼ãã£ã³ã°ã¬ã¤ã
+ã®2.5ç¯ãåç
+§ãããã¨ï¼
+
+(8) USE_TSKINICTXBããã¯ã­å®ç¾©ãï¼CHECK_STACK_ALIGNã¨CHECK_STACK_NONNULL
+ã®ãããããå®ç¾©ãã¦ããå ´åã«ã¯ï¼TINIBããã¹ã¿ãã¯é åã®å
+é ­çªå°ãåã
+åºãããã®ãã³ãã¬ã¼ããã¡ã¤ã«é¢æ°GET_STK_TSKINICTXBãå®ç¾©ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.5.0 ãã 1.6.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»cfgã®æ°ãããã¼ã¸ã§ã³ï¼1.6ï¼ã«å¯¾å¿
+	- offsetof_TINIB_stkszã¨offsetof_TINIB_stkã®åå¾è¨è¿°ãã¿ã¼ã²ããé
+	  ä¾å­é¨ã«ç§»åï¼
+
+ã»ã¦ã¼ãã£ãªãã£ã®ä¿®æ­£
+	- genoffsetã«ï¼ã¨ã³ãã£ã¢ã³æå®ããã§ãã¯ããæ©è½ãè¿½å ï¼ãã®éã«ï¼
+	  ã³ã¼ããæ´çï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- TCBã®priorityãã£ã¼ã«ããï¼æ¡ä»¶ãããã°uint_8ã§å®ç¾©ããããã«ä¿®æ­£ï¼
+	- ã¿ã¼ã²ããä¾å­é¨ã§SIL_ENDIAN_BIGãSIL_ENDIAN_LITTLEãå®ç¾©ããã¦ã
+	  ãªãå ´åã«ï¼sil.hã§ã¨ã©ã¼ãæ¤åºããããã«ä¿®æ­£ï¼
+	- ã·ã¹ãã ã­ã°æ©è½ã®sysog_logmaskã¨syslog_lowmask_notã®åæå¤ãä¿®æ­£ï¼
+	- makereleaseãï¼ãã¡ã¤ã«ã®éè¤ããã§ãã¯ããããã«ä¿®æ­£ï¼
+	- test_utm1ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ãä¿®æ­£ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.5.0 â 1.6.0ï¼
+
+(1) makeoffset.cã®ä¿®æ­£
+	- makeoffset.cã«ï¼sil_endiané¢æ°ãè¿½å ããï¼ããã«ããï¼genoffsetã®
+	  ã¨ã³ãã£ã¢ã³æå®ããã§ãã¯ããæ©è½ãæå¹ã«ãªãï¼ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ¡å¼µããã±ã¼ã¸ã«å¯¾å¿ããå ´åã«ã¯ï¼leftotmãã£ã¼
+	  ã«ããå«ã¾ãã¦ããããç¢ºèªããï¼
+	- çæãããoffset.hã«å¤åããªããã¨ãç¢ºèªããï¼
+
+(2) å¤åå¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ä¿®æ­£
+	- ä»¥ä¸ã®2è¡ãtarget_def.csvï¼ã¾ãã¯ããã«ä»£ãããã¡ã¤ã«ï¼ããåé¤ããï¼
+		offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
+		offsetof_TINIB_stk,"offsetof(TINIB,stk)"
+	â» Release 1.5.0ã«ãããä¿®æ­£ãå
+ã«æ»ãï¼
+
+(3) target_fput_logã®å®è£
+å¶éã®ç¢ºèªï¼ä»æ§ãä¿®æ­£ãããããã§ã¯ãªãï¼
+	- target_fput_logå
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§å¼ã³åºããããã«ãªã£ã¦ãããç¢º
+	  èªããï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.4.0 ãã 1.5.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã¨CPUä¾å¤ã®æ±ãã®è¦ç´ã
+	- ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®è¨­å®æ¹æ³ãæ´çã»æ¡å¼µï¼
+	- ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã¯ï¼ã«ã¼ãã«å
+ã®åºå
+¥å£å¦çãçµç±ã
+	  ãªããã¨ãåºæ¬ã¨ããï¼ã¿ã¼ã²ããä¾å­ï¼ï¼
+	- CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã«ãããã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã®æ±ã
+	  ãè¦å®ï¼
+
+ã»chg_ipmã¨get_ipmã®ä»æ§å¤æ´
+	- chg_ipmã¨get_ipmã¯ï¼CPUã­ãã¯ç¶æ
+ã§ã¯å¼ã¹ãªããã®ã¨ããï¼
+	- ããã«ä¼´ã£ã¦ãã¹ããã­ã°ã©ã ãä¿®æ­£ï¼
+
+ã»ã¿ã¤ãå²è¾¼ã¿å¦çã§å¼ã³åºããialm_timã®åºæºæéã®å¤æ´
+	- current_timeã®æ´æ°å¾ã«ï¼ã¿ã¤ã ã¤ãã³ãã®å¦çãè¡ãããã«å¤æ´ï¼
+	- æå¹ãªæå°ã®ã·ã¹ãã æå»ã¨ãã¦min_timeãå°å
+¥ï¼
+	- pend_updateãå»æ­¢ï¼
+
+ã»ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãã§ãã¯ã®è¿½å 
+	- ã¹ã¿ãã¯ãµã¤ãºã0ã®å ´åã®ã¨ã©ã¼ãï¼ã¿ã¼ã²ããéä¾å­ã§æ¤åºï¼
+	- ã¿ã¼ã²ããä¾å­ã§ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãè¨­å®ã§ãããã
+	  ã«ããï¼
+
+ã»ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯ã®è¿½å 
+	- ã¿ã¼ã²ããä¾å­ã§ï¼ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯ï¼TSKINICTXBï¼
+	  ãä½¿ç¨ã§ããããã«ããï¼
+
+ã»ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããåç§°ã®ãªãã¼ã æ¹æ³ã®å¤æ´
+	- ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ãï¼ã¿ã¼ã²ããéä¾å­é¨ããåç
+§ããåç§°ã®ãª
+	  ãã¼ã è¨è¿°ãï¼ã¿ã¼ã²ããä¾å­é¨ã«ç§»åï¼
+
+ã»æ¡å¼µããã±ã¼ã¸ã®è¿½å 
+	- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µããã±ã¼ã¸ï¼ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µãã
+	  ã±ã¼ã¸ï¼ã¿ã¹ã¯åªå
+åº¦æ¡å¼µããã±ã¼ã¸ãï¼ä¸è¬å
+¬éãããã¡ã¤ã«ã«è¿½å ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã¸ã®å¯¾å¿æ¹æ³ãï¼ãã¼ãã£ã³ã°ã¬ã¤ãã«è¨è¼ï¼
+
+ã»ãµãã¼ãããæ©è½ãè­å¥ãããã¯ã­ã®å®ç¾©æ¹æ³ã®å¤æ´
+	- ã¿ã¼ã²ããä¾å­é¨ã§TOPPERS_TARGET_SUPPORT_XXXXXããã¯ã­å®ç¾©ããã¦
+	  ããã°ï¼kernel.hã§TOPPERS_SUPPORT_XXXXXããã¯ã­å®ç¾©ããæ¹æ³ã«å¤æ´ï¼
+
+ã»ã·ã¹ãã ã­ã°æ©è½ã®ä¿®æ­£
+	- syslog_initializeãå¼ã°ããåã®ã­ã°æ
+å ±ã®åºåã«å¯¾å¿ï¼
+	- sysog_logmaskã¨syslog_lowmask_notã®åæå¤ãä¿®æ­£ï¼
+
+ã»ãã¹ãã©ã¤ãã©ãªã®ä¿®æ­£
+	- test_lib.hã¨test_lib.cãï¼testãã£ã¬ã¯ããªããï¼ããããincludeã¨
+	  libraryãã£ã¬ã¯ããªã«ç§»åï¼
+	- syslog_flushé¢æ°ãè¿½å ï¼logtask_flushã®ä»£ããã«ä½¿ç¨ï¼
+	- test_finishé¢æ°ãè¿½å ï¼ãã¹ããã­ã°ã©ã ä¸­ã§ext_kerã®ä»£ããã«ä½¿ç¨ï¼
+	- ä»¥ä¸ã«ä¼´ã£ã¦ãã¹ããã­ã°ã©ã ãä¿®æ­£ï¼
+
+ã»configureã®æ¡å¼µ
+	- Makefileã®ãã³ãã¬ã¼ããæå®ããããã®ãªãã·ã§ã³ãè¿½å ï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- kernel_impl.hä¸­ã®ãã¯ã­åã®ä¿®æ­£ï¼
+	- kernel.tfä¸­ã®ææ³ãã¹ã®ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- CTXBåãTSKCTXBåã«åç§°å¤æ´ï¼
+	- ext_tskã§ï¼æ»ããªãã¯ãã®å¦çããæ»ã£ãå ´åã«ã¯ï¼E_SYSãè¿ãï¼
+	- call_texrtnããdispatchãå¼ã³åºãå¦çãæ¹åï¼
+	- make_non_waitãï¼wait.cããwait.hã«ç§»åï¼
+	- xsns_xpnä¸­ã®åé·ãªæ¡ä»¶å¼ãåé¤ï¼
+	- TA_DISINTã¨TA_LEVELãitron.hããåé¤ï¼
+	- LOG_TEX_LEAVEã®ç¬¬2ãã©ã¡ã¼ã¿ãåé¤ï¼
+	- ãµã³ãã«ã®Makefileã«ï¼OMIT_WARNING_ALLã¨OMIT_OPTIMIZATIONãè¿½å ï¼
+	- get_utmã«é¢ãããã¹ã(1)ï¼test_utm1ï¼ãè¿½å ï¼
+	- test_dlynse.cã®è¡¨ç¤ºãæ¹åï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+	- æ©è½æ¡å¼µã»ãã¥ã¼ãã³ã°ã¬ã¤ãã«é¢ãã¦ï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ï¼
+	- ã­ã¥ã¼æä½ã©ã¤ãã©ãªé¢æ°ã«é¢ãã¦ï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ï¼
+	- ã·ã¹ãã ã®èµ·åæã®åæåå¦çã«é¢ãã¦ï¼ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«è¨è¼ï¼
+	- è¨­è¨ã¡ã¢ãæ¡å
+
+ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå·ï¼ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.4.0 â 1.5.0ï¼
+
+(1) ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ã®æ±ãã®å¤æ´
+	- ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ãã³ãã©ã®å¼ã³åºãæ¹ã«ã¤ãã¦ï¼ããã¾ã§ã®è
+	  ãæ¹ãå¤æ´ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®6.6.7ç¯
+	  ã®è¨è¿°éãã«å®è£
+ããã¦ããããã§ãã¯ããï¼
+	- TA_NONKERNELãä½¿ç¨ã§ããããã«ããå ´åã«ã¯ï¼target.tfã§ï¼
+	  TARGET_INHATRã«TA_NONKERNELãè¨­å®ããï¼
+	- ãã¹2ã®ãã³ãã¬ã¼ããã¡ã¤ã«ã®ã¿ã¼ã²ããéä¾å­é¨ã«ï¼
+	  INTNO_FIX_KERNELï¼INHNO_FIX_KERNELï¼INTNO_FIX_NONKERNELï¼
+	  INHNO_FIX_NONKERNELï¼USE_INHINIB_TABLEï¼USE_INTINIB_TABLEã®ãµãã¼
+	  ããè¿½å ãããã®ã§ï¼ä½¿ç¨ã§ããå ´åã«ã¯ä½¿ç¨ããããã«ä¿®æ­£ããï¼
+	- ã«ã¼ãã«ç®¡çã®å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çã«ã¤ãã¦ï¼ãã¿ã¼ã²ããä¾
+	  å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®6.6.1ç¯ã®è¨è¿°éãã«å®è£
+ããã¦ãããã¨
+	  ãç¢ºèªããï¼
+
+(2) ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ã®æ±ãã®å¤æ´
+	- ã«ã¼ãã«ç®¡çå¤ã®CPUä¾å¤ãã³ãã©ã®å¼ã³åºãæ¹ã«ã¤ãã¦ï¼ããã¾ã§ã®è
+	  ãæ¹ãå¤æ´ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®6.7.1ç¯
+	  ã®è¨è¿°ãåç
+§ãã¦ï¼å®è£
+ãä¿®æ­£ããï¼
+
+(3) ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããåç§°ã®ãªãã¼ã ã®è¿½å 
+	- ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ãï¼ã¿ã¼ã²ããéä¾å­é¨ããåç
+§ããåç§°ã®ãª
+	  ãã¼ã è¨è¿°ãï¼ã¿ã¼ã²ããä¾å­é¨ã«è¿½å ããï¼ã¿ã¼ã²ããä¾å­é¨ã¨ãã
+	  ãä¾å­é¨ã®éã§ãåæ§ã®å¤æ´ãè¡ããã¨ãæã¾ããï¼ãã ãï¼
+	  arch/logtrace/trace_config.cã§å®ç¾©ãããåç§°ã«ã¤ãã¦ã¯ï¼ã¿ã¼ã²ã
+	  ãä¾å­é¨ã§ãªãã¼ã ããï¼
+
+(4) ã¿ã¼ã²ããä¾å­é¨ã§ãµãã¼ãããæ©è½ãç¤ºããã¯ã­ã®å¤æ´
+	- ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ãã¦ããTOPPERS_SUPPORT_DIS_INTã
+	  TOPPERS_TARGET_SUPPORT_DIS_INTã«ï¼TOPPERS_SUPPORT_ENA_INTã
+	  TOPPERS_TARGET_SUPPORT_ENA_INTã«ï¼TOPPERS_SUPPORT_GET_UTMã
+	  TOPPERS_TARGET_SUPPORT_GET_UTMã«ï¼ããããå¤æ´ããï¼
+
+(5) ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ã®ååã®å¤æ´
+	- CTXBåãTSKCTXBåã«åç§°å¤æ´ããï¼
+
+(6) å¤åå¾ã·ã³ãã«ãã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ä¿®æ­£
+	- ä»¥ä¸ã®2è¡ãtarget_def.csvï¼ã¾ãã¯ããã«ä»£ãããã¡ã¤ã«ï¼ã«å ããï¼
+		offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
+		offsetof_TINIB_stk,"offsetof(TINIB,stk)"
+	â» æ°è¨­ãããUSE_TSKINICTXBãä½¿ãå ´åã«ã¯å¿
+è¦ãªãï¼
+	â» Release 1.6ä»¥éãç¨ããå ´åã«ã¯ï¼ãã®ä¿®æ­£ã¯å¿
+è¦ã¯ãªãï¼
+
+(7) ã­ã°ãã¯ã­ã®ä¿®æ­£
+	- LOG_TEX_LEAVEã®ç¬¬2ãã©ã¡ã¼ã¿ãåé¤ãããã®ã§ï¼LOG_TEX_LEAVEãå®ç¾©
+	  ãã¦ããå ´åã«ã¯ï¼ãã®å®ç¾©ãå¤æ´ããï¼
+
+(8) ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã®ä¿®æ­£ï¼bssã»ã¯ã·ã§ã³ã®ã¯ãªã¢ãçç¥ãã¦ãã
+	å ´åã®ã¿ï¼
+	- ã·ã¹ãã ã­ã°æ©è½ãä½¿ç¨ããå ´åã«ã¯ï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«ï¼
+	  syslog_logmaskã¨syslog_lowmask_notã0ã«åæåããã³ã¼ããè¿½å ããï¼
+	- ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããçµã¿è¾¼ãã§ããå ´åã«ã¯ï¼ã¹ã¿ã¼
+      ãã¢ããã¢ã¸ã¥ã¼ã«ã«ï¼trace_modeã0ã«åæåããã³ã¼ããè¿½å ããï¼
+
+(9) ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ãã§ãã¯ã®è¨­å®ï¼ãªãã·ã§ã³ï¼
+	- ã¿ã¼ã²ããä¾å­ã«ï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®æå°å¤ããã§ãã¯ããå ´
+	  åã«ã¯ï¼æå°å¤ãTARGET_MIN_STKSZã«å®ç¾©ããï¼
+
+(10) ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µã¸ã®å¯¾å¿ï¼ãªãã·ã§ã³ï¼
+	- ãªã¼ãã©ã³ãã³ãã©æ©è½æ¡å¼µããã±ã¼ã¸ã«å¯¾å¿ããï¼å¯¾å¿æ¹æ³ã«ã¤ãã¦
+	  ã¯ï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããä¸­ã®ã#ifdef
+	  TOPPERS_SUPPORT_OVRHDRããããç®æã¨ï¼5.7ç¯ã¨6.14ç¯ãåç
+§ãããã¨ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.3.2 ãã 1.4.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»å¨æãã³ãã©ã®ä»æ§å¤æ´
+	- sta_cycãå¼ã³åºããå¾ï¼æåã«å¨æãã³ãã©ãèµ·åãããæå»ãï¼èµ·å
+	  å¨æå¾ããï¼èµ·åä½ç¸å¾ã«å¤æ´ï¼
+
+ã»TSZ_MPFã®å®ç¾©ãåé¤
+
+ã»call_atexitã®å»æ­¢
+	- ã¿ã¼ã²ããéä¾å­é¨ããcall_atexitãå¼ã³åºãã®ããããï¼
+	  call_atexitã§è¡ã£ã¦ããå¦çï¼æ¨æºçã«ã¯software_term_hookãå¼ã³åº
+	  ãå¦çï¼ã¯ï¼å¿
+è¦ã§ããã°target_exitã®å
+é ­ã§è¡ããã¨ã¨ããï¼
+
+ã»get_utmã®åé¡ã®ä¿®æ­£
+	- å¨æãã³ãã©ï¼ã¢ã©ã¼ã ãã³ãã©ã®ä¸­ã§get_utmãå¼ã¶ã¨ï¼æ­£ããæå»ã
+	  è¿ããªãåé¡ãä¿®æ­£ï¼
+
+ã»ã¹ã±ã¸ã¥ã¼ã©ã®ã¢ã¸ã¥ã¼ã«æ§åä¸
+	- ã¿ã¹ã¯ç¶æ
+ï¼tstatï¼ã®å¤æ´ãï¼make_runnableã§ã¯ãªãï¼ãããå¼ã¶å´
+	  ã®é¢æ°ã§è¡ãããã«ä¿®æ­£ï¼
+
+ã»ãã³ãã¬ã¼ãå¤æ°ã®å¤ã®èªååå¾
+	- OMIT_INITIALIZE_INTERRUPTã¨OMIT_INITIALIZE_EXCEPTIONã®2ã¤ã®ãã³ã
+	  ã¬ã¼ãå¤æ°ã®å¤ãï¼ããããã¡ã¤ã«ã®å®ç¾©ããèªååå¾ããããã«ä¿®æ­£ï¼
+
+ã»ãã¬ã¼ã¹ã­ã°æ©è½ã®æ¹å
+	- LOG_TEX_ENTERï¼LOG_TEX_LEAVEã®ãã©ã¡ã¼ã¿ã«ï¼p_runtskãè¿½å ï¼
+
+ã»å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã®ä¿®æ­£
+	- æå»åå¾ã®æ¹æ³ãã¿ã¼ã²ããä¾å­ã§å¤æ´ã§ããããã«ä¿®æ­£ï¼
+	- TNUM_HISTã®å®ç¾©ãï¼histgram.hããhistgram.cã«ç§»åï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®åé¢
+	- cfgã¯ï¼ASPã«ã¼ãã«ã¨ã¯ç¬ç«ããããã±ã¼ã¸ã¨ãã¦é
+å¸ãããã¨ã«ããï¼
+
+ã»ãã¤ã°ã¬ã¼ã·ã§ã³ã¬ã¤ãã®åé¢
+	- doc/migration.txtã¯ï¼å¥éPDFãã¡ã¤ã«ã§é
+å¸ãããã¨ã«ããï¼
+
+ã»ãã¹ããã­ã°ã©ã ï¼æ§è½è©ä¾¡ãã­ã°ã©ã ã®è¿½å 
+	- ã»ããã©æ©è½ã®ãã¹ã(2)ï¼test_sem2ï¼ãè¿½å ï¼
+	- act_tskï¼iact_tskã®å¦çæéã®è©ä¾¡ãã­ã°ã©ã ï¼perf4ï¼ãè¿½å ï¼
+
+ã»cleanæã«åé¤ãããã¡ã¤ã«
+	- cleanæã«åé¤ãããã¡ã¤ã«ãï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããããã®å¤æ°
+	  ï¼CLEAN_FILESï¼ãå°å
+¥ï¼
+
+ã»ã¦ã¼ãã£ãªãã£ã®ä¿®æ­£
+	- makereleaseãä½¿ããã£ã¬ã¯ããªåï¼aspï¼ãï¼ã«ã¬ã³ããã£ã¬ã¯ããªã
+	  ãæ±ºå®ããããã«ä¿®æ­£ï¼
+	- makedepã«ï¼Cygwinç°å¢ã«ãããã«ã¼ããã£ã¬ã¯ããªåãæå®ãããã
+	  ã®-Rãªãã·ã§ã³ãè¿½å ï¼Makefileã«MAKEDEP_OPTSå¤æ°ãè¿½å ï¼
+	- gentestãã¢ã©ã¼ã ãã³ãã©ã®è¤æ°åèµ·åã«å¯¾å¿ã§ããããã«æ¡å¼µï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- ãªãã¼ã ããã·ã³ãã«ãä¿®æ­£ï¼
+	- å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼åæåã«ã¼ãã³ï¼çµäºå¦çã«ã¼ãã³ã®å
+é ­çª
+	  å°ã«é¢æ°åä»¥å¤ãè¨è¿°ããå ´åã«ãåä½ããããã«ä¿®æ­£ï¼
+	- Makefile.dependããªãå ´åã®åé¡ãä¿®æ­£ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+	- åãã­ã¥ã¡ã³ãã«TOPPERSã©ã¤ã»ã³ã¹ã¨ç®æ¬¡ãè¿½å ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+	- ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå·ï¼ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå·ãæ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.3.2 â 1.4.0ï¼
+
+(1) call_atexitã®å»æ­¢
+	- call_atexitãå»æ­¢ããããï¼ã¿ã¼ã²ããä¾å­é¨ããå®ç¾©ãåé¤ããï¼
+	  call_atexitã§è¡ã£ã¦ããå¦çï¼æ¨æºçã«ã¯software_term_hookãå¼ã³åº
+	  ãå¦çï¼ã¯ï¼å¿
+è¦ã§ããã°target_exitã®å
+é ­ã§è¡ãï¼
+
+(2) ãã³ãã¬ã¼ãå¤æ°ã®å¤ã®è¨­å®ã®åé¤
+	- OMIT_INITIALIZE_INTERRUPTã¨OMIT_INITIALIZE_EXCEPTIONã®2ã¤ã®ãã³ã
+	  ã¬ã¼ãå¤æ°ã®å¤ãï¼ããããã¡ã¤ã«ã®å®ç¾©ããèªååå¾ããããã«ä¿®æ­£
+	  ããããï¼ã¿ã¼ã²ããä¾å­é¨ï¼target.tfã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãã
+	  ãããã¡ã¤ã«ï¼ã§å¤ãå®ç¾©ãã¦ããã°ï¼ãã®å®ç¾©ãåé¤ããï¼
+
+(3) makedepãå¼ã¶éã®ãªãã·ã§ã³ã®è¿½å 
+	- Makefileã®ã¿ã¼ã²ããä¾å­é¨ï¼Makefile.targetç­ï¼ã§makedepãå¼ãã§
+	  ããå ´åã«ã¯ï¼$(MAKEDEP_OPTS)ãè¿½å ããï¼
+
+	ä¾ï¼@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+			-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+(4) ç°¡æããã±ã¼ã¸ã¸ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®è¿½å 
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ãã¿ã¼ã²ããéä¾å­é¨ããåé¢ãããããï¼
+	  ç°¡æããã±ã¼ã¸ã«å
+¥ããå ´åã«ã¯ï¼E_PACKAGEã«cfgãå«ããããã®è¨è¿°
+	  ãè¿½å ããï¼
+
+	ä¾ï¼INCLUDE ../../cfg/MANIFEST
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.3.1 ãã 1.3.2 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»TMAX_RELTIMãã¦ã¼ã¶ããåç
+§ã§ãããã¯ã­ã«
+	- TMAX_RELTIMã®å®ç¾©ãï¼kernel/time_event.hããinclude/t_stddef.hã«
+	  ç§»åï¼
+
+ã»constæå®ã®è¿½å 
+	- syslog_printfï¼syslog_printï¼syslog_wri_logï¼serial_wri_datã®ãã©
+	  ã¡ã¼ã¿ã«constæå®ãè¿½å ï¼
+
+ã»TMIN_ISRPRIï¼TMAX_ISRPRIã®å°å
+¥
+
+ã»å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã§æéã®éè»¢ãçãããã±ã¼ã¹ã®æ±ã
+	- å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã§æéã®éè»¢ãçãããåº¦æ°ãè¨æ¸¬ããã
+	  ãã«ä¿®æ­£ï¼
+
+ã»ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦çã®ä¿®æ­£
+	- ã­ã°ãããã¡ã«æ®ã£ãã­ã°æ
+å ±ã§ãããã¨ãç¤ºãæå­åãåºåããããã«
+	  ä¿®æ­£ï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä¿®æ­£
+	- é åºä»ããªã¹ãã®è¦ç´ ã«å¼ãä½¿ããããã«å¤æ´ï¼
+	- éçAPIã®ãã©ã¡ã¼ã¿ã«åã­ã£ã¹ããå«ã¾ããã¨ãã¼ã¹ã§ããªããã°ã®ä¿®æ­£ï¼
+	- #pragma onceãç¨ããã¨è¡çªå·ãããããã°ã®ä¿®æ­£ï¼
+	- cfgãã¡ã¤ã«ãæå®ããªãã£ãå ´åã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®ä¿®æ­£ï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãkernel_cfg.cä»¥å¤ã®ãã¡ã¤ã«ãçæããå ´åã«å¯¾
+	  å¿ããããã®å¤æ°ï¼CFG_OBJSï¼CFG2_OUTï¼ãå°å
+¥ï¼
+
+ã»realcleanæã«åé¤ãããã¡ã¤ã«
+	- realcleanæã«åé¤ãããã¡ã¤ã«ãï¼ã¿ã¼ã²ããä¾å­é¨ã§å®ç¾©ããããã®
+	  å¤æ°ï¼REALCLEAN_FILESï¼ãå°å
+¥ï¼
+
+ã»ãã¹ããã­ã°ã©ã ã®è¿½å ã»æ¡å
+
+
+	- ã»ããã©æ©è½ã®ãã¹ã(1)ãè¿½å ï¼
+	- ã«ã¼ãã«ã®æ´åæ§æ¤æ»ã«ã»ããã©æ¯ã®æ¤æ»ãè¿½å ï¼
+
+ã»ãã°ãã£ãã¯ã¹
+	- éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã¹ã¿ãã¯ã®ç¢ºä¿æã®ãµã¤ãºã®èª¤ãï¼
+	- kernel.tfä¸­ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®èª¤ãï¼
+	- å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«ã«ãããæå¤§å¤ã®æ±ãã®ãã°ï¼
+	- Makefileä¸­ã®APPLDIRã«è¤æ°ã®ãã£ã¬ã¯ããªãå®ç¾©ããã¦ããæã®æ±ãï¼
+	- test/perf.cã§ï¼è¨æ¸¬åæ°ã10000åã«ãªãããã«ä¿®æ­£ï¼
+	- DVE68Kã¿ã¼ã²ããä¾å­é¨ã®target.tfä¸­ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®èª¤ãï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®ä¿®æ­£
+	- åãã­ã¥ã¡ã³ãã«TOPPERSã©ã¤ã»ã³ã¹ã¨ç®æ¬¡ãè¿½å ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.3.1 â 1.3.2ï¼
+
+ç¹ã«ãªã
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.3.0 ãã 1.3.1 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ã¹ã¿ãã¯ãµã¤ãºã®ã¨ã©ã¼ãã§ãã¯ãè¿½å 
+	- CRE_TSKã®stkï¼ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ï¼ãNULLã§ãªãå ´åã«ï¼
+	  stkszãé©åãªå¤ï¼ã¿ã¼ã²ããä¾å­ã®å¤ã®åæ°ï¼ã«ä¸¸ããå¦çãããï¼é©
+	  åãªå¤ã§ãªãå ´åã«ã¨ã©ã¼ã¨ããããã«ä¿®æ­£ï¼
+	- DEF_ICSã®istkï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ï¼ã
+	  NULLã§ãªãå ´åã«ï¼istkszãé©åãªå¤ï¼ã¿ã¼ã²ããä¾å­ã®å¤ã®åæ°ï¼ã§
+	  ãªãå ´åã®ã¨ã©ã¼ã®ãã§ãã¯ãè¿½å ï¼
+
+ã»å¼·å¶å¾
+ã¡è¦æ±ãã¹ãã®å»æ­¢ã«ä¼´ãè¿½å ä¿®æ­£
+	- TMAX_SUSCNTã®å®ç¾©ãï¼kernel.hããitron.hã«ç§»åï¼
+	- ref_tskã§åç
+§ã§ããæ
+å ±ï¼T_RTSKã®ãã£ã¼ã«ãï¼ããsuscntãåé¤ï¼
+
+ã»kernel_api.csvã®ä¿®æ­£
+	- åãªãã¸ã§ã¯ãã®å±æ§ã®ãã©ã¡ã¼ã¿ãï¼ç¬¦å·ç¡ãã«ä¿®æ­£ï¼
+
+ã»kernel_def.csvã®ä¿®æ­£
+	- ç¬¦å·ä»ãã®ã·ã³ãã«ã®å®ç¾©ã«",signed"ãä»å ï¼
+
+ã»itron.hã®ä¿®æ­£
+	- frsm_tskã®ã¿ã¤ããã¹ã®ä¿®æ­£ï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä¿®æ­£
+	- çµè¾¼ã¿é¢æ°DUMP, TRACE, NOOPãè¿½å ï¼
+	- $FOREACH$ã$IF$ç­ã®ä¸­èº«ãä½ããªãã¨ãã«ï¼internal errorã«ãªãä¸å
+·
+	  åãä¿®æ­£ï¼ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®é©ååï¼ï¼
+	- $INCLUDE$å½ä»¤ã§ã¤ã³ã¯ã«ã¼ãããtfã®è¡çªå·ããããä¸å
+·åãä¿®æ­£ï¼
+	- 64ãããæ´æ°ãå®ç¾©ããã¦ããªãã¨ï¼CSVãã¡ã¤ã«ã§sãã¤ããã¬ã³ã¼ã
+	  ãç¬¦å·ä»ãã¨æ±ãããªãä¸å
+·åã®ä¿®æ­£ï¼
+	- åã­ã£ã¹ãã®ãã¼ã¹å¦çã«é¢ããä¸å
+·åã®ä¿®æ­£ï¼
+	- ã¨ã©ã¼ã®èµ·ãã£ãè¡çªå·ãæ­£ãããªãä¸å
+·åã®ä¿®æ­£ï¼
+	- åãtskidã«å¯¾ãã¦DEF_TEXãè¤æ°ããã¨ã©ã¼ã®ãã§ãã¯ãè¡ãããã«ä¿®æ­£ï¼
+	- DEF_TEXãä½¿ç¨ããæã«ï¼TSK.TSKID[tskid]ã0ã«ãªãä¸å
+·åã®ä¿®æ­£ï¼
+	- DEF_INH,CFG_INT,DEF_EXCã§åããªãã¸ã§ã¯ãçªå·ã«å¯¾ããç»é²ãéè¤ã
+	  ãå ´åã®ã¨ã©ã¼ãã§ãã¯ãäºéã«è¡ã£ã¦ããåé¡ã®ä¿®æ­£ï¼
+
+ã»é
+å¸ãããã¡ã¤ã«ã®ä¿®æ­£
+	- doc/api_spec.txt, ngki_spec.txt, sysstat.txtãé¤å¤ï¼
+	- extensionãã£ã¬ã¯ããªãé¤å¤ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®ä¿®æ­£ï¼ã³ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.3.0 â 1.3.1ï¼
+
+(1) ã¹ã¿ãã¯ãµã¤ãºã®ã¨ã©ã¼ãã§ãã¯ã«é¢ããä¿®æ­£ç®æ
+	- target.tfã§kernel.tfãã¤ã³ã¯ã«ã¼ãããåã«ï¼CHECK_STKSZ_ALIGNãï¼
+	  ã¹ã¿ãã¯ãµã¤ãºãã©ã®å¤ã®åæ°ã«ãªã£ã¦ããªããã°ãªããªãããè¨­å®ã
+	  ãï¼
+		ä¾ï¼$CHECK_STKSZ_ALIGN = 4$
+
+(2) ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã«ã¤ãã¦
+	- ã¿ã¼ã²ããä¾å­é¨ã®ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ã®ãã¡ã¤ã«åã¨ï¼ãã®ãã¡ã¤
+	  ã«ã«è¨è¿°ãã¹ãå
+å®¹ãè¦å®ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤
+	  ããã®ã9.1 ãã­ã¥ã¡ã³ããã®ç¯ãåç
+§ãããã¨ï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.2.1 ãã 1.3.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»set_timï¼ã·ã¹ãã æå»ã®è¨­å®ï¼ã®å»æ­¢
+
+ã»å±æ§ã®å¤æ´
+	- TA_DISINTãå»æ­¢ãã¦ï¼TA_ENAINTãå¾©æ´»ï¼
+
+ã»æ¡å¼µæ©è½ã»ã¿ã¼ã²ããå®ç¾©æ©è½ã®æç¡ãå¤å¥ãããã¯ã­åã®å¤æ´
+	- TOPPERS_EXTENSION_MUTEXãTOPPERS_SUPPORT_MUTEXã«ï¼
+	- TOPPERS_EXTENSION_PRI_LEVELãTOPPERS_SUPPORT_PRI_LEVELã«ï¼
+	- SUPPORT_???_???ãTOPPERS_SUPPORT_???_???ã«å¤æ´ãï¼ã¿ã¼ã²ããä¾å­
+	  é¨ã§ã®å®ç¾©ãtarget_kernel.hã«ç§»åããï¼
+
+ã»ååã»å¤æ°åã»å®æ°åã®å¤æ´
+	- SYSUTIM â SYSUTMï¼sysutim â sysutmï¼p_sysutim â p_sysutm
+	- SIO_ERDY_SND â SIO_RDY_SNDï¼SIO_ERDY_RCV â SIO_RDY_RCV
+	- sio_ierdy_snd â sio_irdy_sndï¼sio_ierdy_rcv â sio_irdy_rcv
+
+ã»cfg1_out.cã®ã³ã³ãã¤ã«ï¼ãªã³ã¯æ¹æ³ã®å¤æ´
+	- cfg1_out.cããtarget_cfg1_out.hãã¤ã³ã¯ã«ã¼ãããããã«ï¼ã³ã³ãã£
+	  ã®ã¥ã¬ã¼ã¿ãå¤æ´ï¼
+	- ã¿ã¼ã²ããä¾å­é¨ã§target_cfg1_out.hãç¨æããï¼
+	- cfg1_out.cã®ãªã³ã¯ã¯ï¼ã«ã¼ãã«ã¨åãæ¹æ³ãã¨ãããã«å¤æ´ï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ä¿®æ­£
+	- cfg1_out.cã«çæããå
+å®¹ã®å¤æ´ï¼åè¨ã¨é¢é£ï¼ï¼
+	- boost 1.35.0ã«å¯¾å¿ï¼
+
+ã»ãµã³ãã«ãã­ã°ã©ã ã®ä¿®æ­£
+	- ã¿ã¹ã¯å
+ã§ã®ã«ã¼ãåæ°ãåºå®ããæ©è½ï¼TASK_LOOPï¼ãå°å
+¥ï¼
+
+ã»ãã°ãã£ãã¯ã¹
+	- åºå®é·ã¡ã¢ãªãã¼ã«é åã®ç¢ºä¿æ¹æ³ï¼
+	- DEF_TEXã®ã¨ã©ã¼ã§ï¼åé¡ã«ãªã£ãDEF_TEXã®è¡çªå·ãè¡¨ç¤ºããï¼
+
+ã»ç¨èªã®å¤æ´
+	-ãå²è¾¼ã¿ã­ãã¯ãâãå
+¨å²è¾¼ã¿ã­ãã¯ã
+
+ã»ãã­ã¥ã¡ã³ãã®ä¿®æ­£
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.2.1 â 1.3.0ï¼
+
+(1) TA_DISINTã®å»æ­¢ã»TA_ENAINTã®å¾©æ´»ã«ä¼´ãä¿®æ­£ç®æ
+	- TA_DISINTãä½¿ã£ãå¤å®ãTA_ENAINTãä½¿ã£ãå¤å®ã«å¤æ´ããï¼
+		ä¾ï¼((intatr & TA_DISINT) == 0U) â ((intatr & TA_ENAINT) != 0U)
+	- CFG_INTã®å²è¾¼ã¿å±æ§ã«TA_DISINTãè¨­å®ããã¦ããã°ï¼ãããæ¶ãï¼
+		ä¾ï¼CFG_INT(INTNO_SIO, { TA_DISINT | INTATR_SIO, INTPRI_SIO });
+		â CFG_INT(INTNO_SIO, { INTATR_SIO, INTPRI_SIO });
+	- CFG_INTã®å²è¾¼ã¿å±æ§ã«TA_DISINTãè¨­å®ããã¦ããªããã°ï¼TA_ENAINTã
+	  å ããï¼
+		ä¾ï¼CFG_INT(INTNO_TIMER, { INTATR_TIMER, INTPRI_TIMER });
+		â CFG_INT(INTNO_TIMER, { TA_ENAINT | INTATR_TIMER, INTPRI_TIMER });
+
+(2) æ¡å¼µæ©è½ã»ã¿ã¼ã²ããå®ç¾©æ©è½ã®æç¡ãå¤å¥ãããã¯ã­åã®å¤æ´ã«ä¼´ãä¿®æ­£ç®æ
+	- SUPPORT_???_???ãTOPPERS_SUPPORT_???_???ã«å¤æ´ãï¼ã¿ã¼ã²ããä¾å­
+	  é¨ã§ã®å®ç¾©ãtarget_kernel.hã«ç§»åããï¼
+		TOPPERS_SUPPORT_DIS_INT			dis_intããµãã¼ããã
+		TOPPERS_SUPPORT_ENA_INT			ena_intããµãã¼ããã
+		TOPPERS_SUPPORT_GET_UTM			get_utmããµãã¼ããã
+   - makeoffset.cã§ï¼TOPPERS_EXTENSION_MUTEXãåç
+§ãã¦ããå ´åã«ã¯ï¼
+     TOPPERS_SUPPORT_MUTEXã«å¤æ´ããï¼
+
+(3) ååã»å¤æ°åã»å®æ°åã®å¤æ´ã«ä¼´ãä¿®æ­£ç®æ
+	- SYSUTIM â SYSUTMï¼sysutim â sysutmï¼p_sysutim â p_sysutm
+	- SIO_ERDY_SND â SIO_RDY_SNDï¼SIO_ERDY_RCV â SIO_RDY_RCV
+	- sio_ierdy_snd â sio_irdy_sndï¼sio_ierdy_rcv â sio_irdy_rcv
+	â
+sysutimã¨erdyãå¤§æå­å°æå­ãåºå¥ããã«ãµã¼ãããã¨ããï¼
+
+(4) cfg1_out.cã®ã³ã³ãã¤ã«ï¼ãªã³ã¯æ¹æ³ã®å¤æ´ã«ä¼´ãä¿®æ­£ç®æ
+	- ã¿ã¼ã²ããä¾å­é¨ã§ï¼target_cfg1_out.hãç¨æããï¼è©³ããã¯ï¼ãã¿ã¼
+	  ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ããã®7.4ç¯ãåç
+§ï¼
+	- æ°ãã«ç¨æãããã¡ã¤ã«ãMANIFESTã«è¿½å ããï¼
+
+(5) è­¦åã¡ãã»ã¼ã¸ã¸ã®å¯¾å¦
+	- Makefile.targetã«ï¼ãCOPTS := $(COPTS) -Werrorããè¿½å ãããã¨ã
+	  æ¤è¨ããï¼ã«ã¼ãã«å
+ã§å³å¯ãªå¥åè¦åã«ããè­¦åã¡ãã»ã¼ã¸ãåºãå ´
+	  åã«ã¯ï¼ãKERNEL_CFLAGS := $(KERNEL_CFLAGS) -fno-strict-aliasingã
+	  ãè¿½å ãã¦ãããï¼
+
+(6) ã³ã¡ã³ãã®ä¿®æ­£
+	-ãå²è¾¼ã¿ã­ãã¯ãâãå
+¨å²è¾¼ã¿ã­ãã¯ã
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.2.0 ãã 1.2.1 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããçµã¿è¾¼ãæ¹æ³ã®å¤æ´
+	- configureã«-rãªãã·ã§ã³ãè¿½å ï¼
+	- sample/Makefileã®ä¿®æ­£ï¼
+
+ã»Makefileã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢é£é¨åã®å¤æ´
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ããã¿ã¼ã²ããä¾å­ã®ãªãã·ã§ã³ãï¼Makefile
+	  ã®ã¿ã¼ã²ããä¾å­é¨ã§è¨è¿°ããããã«å¤æ´ï¼
+	- ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®åãã¹ã®ã¿ã¼ã²ããä¾å­ã®ãã¡ã¤ã«ã¸ã®ä¾å­é¢ä¿
+	  ãï¼Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§è¨è¿°ããããã«å¤æ´ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.1.0 â 1.2.1ï¼
+
+(1) æ°ããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¸ã®å¯¾å¿
+
+ã»target.tfä¸­ã§ï¼ããããã¡ã¤ã«ã¨éè¤ããå®æ°å¤ã®å®ç¾©ãè¡ã£ã¦ããå ´åã«
+ãã¯ï¼target_def.cvsã«å¤æ°è¨è¿°ãè¡ãï¼éè¤ããå®ç¾©ãåé¤ããï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾ãããªãã·ã§ã³ã«ï¼target_def.cvsãèª­ã¿è¾¼ã¾ãã
+ãæå®ãè¿½å ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã2.4ç¯ã®
+ã(2-4-15) é 
+ãåç
+§ï¼
+
+ã»target_check.tfãä½æããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã
+ã7.3ç¯åç
+§ï¼
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®åãã¹ã«å¯¾ãã¦ï¼ã¿ã¼ã²ããä¾å­ã®ãã¡ã¤ã«ã¸ã®ä¾å­
+ãé¢ä¿ãå®ç¾©ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã2.7ç¯åç
+§ï¼
+
+(2) ãã¼ã¿åã¨å®æ°ã®å¤æ´ã»è¿½å 
+
+ã»BOOLãbool_tã«ï¼TRUEã¨FALSEãããããtrueã¨falseã«å¤æ´ããï¼ER_BOOLãª
+ãã©ãå¤æ´ããªãããã«æ³¨æãããã¨ï¼ã³ã¡ã³ãä¸­ã«è¨è¿°ããããããã®ãã¼
+ãã¿åã¨å®æ°ãå¤æ´ãããã¨ï¼
+
+ã»charãchar_tã«å¤æ´ããï¼ãã ãï¼æå­åå®æ°ãè¨è¿°ããããã¨ãå¤ãå¼æ°
+ãç­ã¯ï¼ã³ã³ãã¤ã©ã®è­¦åãé¿ããããã«ï¼char *ã®ã¾ã¾ã¨ããï¼ã¿ã¼ã²ãã
+ãä¾å­é¨ã§æä½éå¤æ´ããªããã°ãªããªãã®ã¯ï¼ä»¥ä¸ã®2ç®æï¼
+
+	- target_fput_logã®å¼æ°
+	- sio_snd_chrã®ç¬¬2å¼æ°
+
+ã»target_stddef.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ï¼ãµã¤ãº
+ãã®æå®ãããæµ®åå°æ°ç¹åï¼float32_tã¨double64_tï¼ï¼ãã®æå¤§å¤ã»æå°å¤
+ãã®ãã¯ã­ã®å®ç¾©ãè¿½å ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã3.4
+ãç¯åç
+§ï¼éçºç°å¢ãGCCã§arch/gcc/tool_stddef.hãç¨ãã¦ããï¼floatåã¨
+ãdoubleåãããããIEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ°ã¨åç²¾åº¦æµ®åå°æ°ç¹æ°
+ãã§ããå ´åã«ã¯ï¼arch/gcc/tool_stddef.hãã¤ã³ã¯ã«ã¼ãããåã«ï¼
+ãTOPPERS_STDFLOAT_TYPE1ããã¯ã­å®ç¾©ããã°ããï¼
+
+(3) ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®çµè¾¼ã¿ï¼ãªãã·ã§ã³ï¼
+
+ã»ã¿ã¼ã²ããä¾å­é¨ãï¼ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ããããã«
+ãä¿®æ­£ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã6.11.2ç¯åç
+§ï¼
+
+(4) TARGETDIRå¤æ°ã®ä½¿ç¨
+
+ã»Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªãåç
+§ãã¦
+ãããç®æã§ï¼$(SRCDIR)/target/$(TARGET)ãï¼$(TARGETDIR)ã«å¤æ´ããï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.1.0 ãã 1.2.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæ°ãããã¼ã¸ã§ã³ã«å·®ãæã
+	- ãã¹1ã¨ãã¹3ã«ãã¿ã¼ã²ããä¾å­æ©è½ãè¿½å ï¼
+	- FMPã«ã¼ãã«ã®ã¯ã©ã¹è¨è¿°ã«å¯¾å¿ï¼
+	- è¿½å ãã¡ã¤ã«ï¼ã¿ã¼ã²ããéä¾å­é¨ï¼cfgä»¥ä¸ãé¤ãï¼
+		kernel/kernel_api.csv, kernel_def.csv, kernel_check.tf
+	- è¿½å ãã¡ã¤ã«ï¼ã¿ã¼ã²ããä¾å­é¨ï¼
+		target_def.csv, target_check.tf
+	- sample/Makefileãæ°ããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã«å¯¾å¿ãããï¼
+	- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µã§ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®makeãä¸è¦ã«ï¼
+
+ã»ãã¼ã¿åã¨å®æ°ã®å¤æ´ã»è¿½å 
+	- BOOLåãbool_tåã«å¤æ´ï¼
+		BOOL â bool_tï¼TRUE â trueï¼FALSE â false
+		å¾æ¥ã®å®ç¾©ãitron.hã«è¿½å ï¼
+	- charåãchar_tåã«å¤æ´ï¼
+		ãã ãï¼æå­åå®æ°ãè¨è¿°ããããã¨ãå¤ãå¼æ°ç­ã¯ï¼ã³ã³ãã¤ã©ã®
+		è­¦åãé¿ããããã«ï¼char *ã®ã¾ã¾ã¨ããï¼
+	- float32_t, double64_tã®è¿½å ï¼
+
+ã»ãã¹ããã­ã°ã©ã ã®è¿½å ã»ä¿®æ­£
+	- ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ããã¤ã³ã¯ã«ã¼ãããã³ã³ãã£
+	  ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®æ´çï¼ããã ã¢ããé åºã«ï¼ï¼
+	- ãã¹ããã­ã°ã©ã ã®çæã¹ã¯ãªããï¼utils/gentestï¼ãä½æï¼
+	- ãã¥ã¼ããã¯ã¹æ©è½ã®ãã¹ããã­ã°ã©ã ãçæã¹ã¯ãªããå¯¾å¿ã«ï¼
+	- ãã¥ã¼ããã¯ã¹æ©è½æ¡å¼µã«test_mutex7ãè¿½å ï¼
+
+ã»ã·ã¹ãã ãµã¼ãã¹ã®ããããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ãè¨è¿°ã®æ´ç
+	- syssvcã®ä¸ã®ããããã¡ã¤ã«ã¯ï¼#include "syssvc/??????.h"ã§ã¤ã³ã¯
+      ã«ã¼ãããï¼??????.cããã¤ã³ã¯ã«ã¼ãããå ´åãé¤ãï¼ï¼
+	- Makefileããï¼-I$(SRCDIR)/syssvcãåé¤ï¼
+
+ã»ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåï¼bannerï¼æ©è½ã®ç¬ç«
+	- syssvc/banner.cfg, banner.hãä½æï¼
+	- syslog.cfgããé¢é£ããè¨è¿°ãåé¤ï¼
+
+ã»t_syslog.hã¨syslog.hã®å½¹å²ã®å¤æ´
+	- t_syslog.hã¯ï¼ã·ã¹ãã ã­ã°åºåãè¡ãããã®å®ç¾©ãå«ãããããã¡ã¤
+	  ã«ã¨ãï¼ã·ã¹ãã ã­ã°æ©è½ãæä½ããããã®å®ç¾©ã¯ï¼syslog.hã«ç§»ãï¼
+
+ã»ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãã©ãã·ã¥æ¹æ³ã®å¤æ´
+	- ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®å¼·å¶ãã©ãã·ã¥æ©è½ã¯å»æ­¢ãï¼æªé
+	  ä¿¡æå­ã®ååºãæ©è½ãæ°è¨­ï¼ãããç¨ããå¼·å¶ãã©ãã·ã¥å¦çã¯ï¼ã·ã¹
+	  ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦çã«ã¼ãã³å´ã§å®æ½ï¼
+
+ã»ã¿ã¹ã¯ãã£ã¹ãããã®è¦å¦ã®å¤å®æ¹æ³ã®å¤æ´
+	- ã¿ã¹ã¯ãã£ã¹ãããã®å¿
+è¦ãªç¶æ
+ã«ããé¢æ°ãï¼ãã¹ã¦ï¼ã¿ã¹ã¯ãã£ã¹
+	  ãããã®è¦å¦ãè¿ãããã«ãï¼p_runtskã¨p_schedtskã®æ¯è¼ã«ããå¤å®
+	  ããªãã¹ãä½¿ããªãããã«ä¿®æ­£ï¼
+
+ã»ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³ãè¦å®
+	- ãã¼ãã£ã³ã°ã¬ã¤ãã®6.11.2ç¯ã«ï¼ã¿ã¼ã²ããä¾å­é¨ã§ãã¬ã¼ã¹ã­ã°è¨
+	  é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ããæ¹æ³ãè¦å®ï¼
+	- DVE68Kã¿ã¼ã²ããä¾å­é¨ãããã«å¾ãããã«ä¿®æ­£ï¼
+
+ã»TARGETDIRå¤æ°ã®å°å
+¥
+	- sample/Makefileã§ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªãç¤ºãå¤æ°
+	  TARGETDIRãå®ç¾©ï¼
+	- ãããä½¿ãããã«ï¼ã¿ã¼ã²ããä¾å­é¨ãä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ãã°ãã£ãã¯ã¹
+	- kernel_rename.defï¼log_???_entry â log_???_enter
+
+ã»ãã®ä»ã®ä¿®æ­£
+	- T_RLOG â T_SYSLOG_RLOG
+	- syssvcã®ä¸ã®ããããã¡ã¤ã«ã«ãthrow()ãå
+¥ããï¼
+	- makereleaseï¼RELEAEãã£ã¬ã¯ããªããªããã°ä½ãï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®è¿½å ã»ä¿®æ­£ï¼
+	- doc/migration.txtãä½æï¼ç¾æç¹ã§ã¯æªå®æï¼ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®è¦ä¿®æ­£ç®æï¼1.1.0 â 1.2.0ï¼
+
+(1) æ°ããã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¸ã®å¯¾å¿
+
+ã»target.tfä¸­ã§ï¼ããããã¡ã¤ã«ã¨éè¤ããå®æ°å¤ã®å®ç¾©ãè¡ã£ã¦ããå ´åã«
+ãã¯ï¼target_def.cvsã«å¤æ°è¨è¿°ãè¡ãï¼éè¤ããå®ç¾©ãåé¤ããï¼
+
+ã»target_check.tfãä½æããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã
+ã7.3ç¯åç
+§ï¼
+
+(2) ãã¼ã¿åã¨å®æ°ã®å¤æ´ã»è¿½å 
+
+ã»BOOLãbool_tã«ï¼TRUEã¨FALSEãããããtrueã¨falseã«å¤æ´ããï¼ER_BOOLãª
+ãã©ãå¤æ´ããªãããã«æ³¨æãããã¨ï¼ã³ã¡ã³ãä¸­ã«è¨è¿°ããããããã®ãã¼
+ãã¿åã¨å®æ°ãå¤æ´ãããã¨ï¼
+
+ã»charãchar_tã«å¤æ´ããï¼ãã ãï¼æå­åå®æ°ãè¨è¿°ããããã¨ãå¤ãå¼æ°
+ãç­ã¯ï¼ã³ã³ãã¤ã©ã®è­¦åãé¿ããããã«ï¼char *ã®ã¾ã¾ã¨ããï¼ã¿ã¼ã²ãã
+ãä¾å­é¨ã§æä½éå¤æ´ããªããã°ãªããªãã®ã¯ï¼ä»¥ä¸ã®2ç®æï¼
+
+	- target_fput_logã®å¼æ°
+	- sio_snd_chrã®ç¬¬2å¼æ°
+
+ã»target_stddef.hï¼ã¾ãã¯ããããã¤ã³ã¯ã«ã¼ãããããã¡ã¤ã«ï¼ã«ï¼ãµã¤ãº
+ãã®æå®ãããæµ®åå°æ°ç¹åï¼float32_tã¨double64_tï¼ï¼ãã®æå¤§å¤ã»æå°å¤
+ãã®ãã¯ã­ã®å®ç¾©ãè¿½å ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã3.4
+ãç¯åç
+§ï¼éçºç°å¢ãGCCã§arch/gcc/tool_stddef.hãç¨ãã¦ããï¼floatåã¨
+ãdoubleåãããããIEEE754æºæ ã®åç²¾åº¦æµ®åå°æ°ç¹æ°ã¨åç²¾åº¦æµ®åå°æ°ç¹æ°
+ãã§ããå ´åã«ã¯ï¼arch/gcc/tool_stddef.hãã¤ã³ã¯ã«ã¼ãããåã«ï¼
+ãTOPPERS_STDFLOAT_TYPE1ããã¯ã­å®ç¾©ããã°ããï¼
+
+(3) ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã®ä½¿ç¨æ¹æ³ã«å¾ã£ãä¿®æ­£ï¼ãªãã·ã§ã³ï¼
+
+ã»ã¿ã¼ã²ããä¾å­é¨ãï¼ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ããä½¿ç¨ããããã«
+ãä¿®æ­£ããï¼ãã¿ã¼ã²ããä¾å­é¨ ãã¼ãã£ã³ã°ã¬ã¤ãã6.11.2ç¯åç
+§ï¼
+
+(4) TARGETDIRå¤æ°ã®ä½¿ç¨
+
+ã»Makefileã®ã¿ã¼ã²ããä¾å­é¨ã§ï¼ã¿ã¼ã²ããä¾å­é¨ãã£ã¬ã¯ããªãåç
+§ãã¦
+ãããç®æã§ï¼$(SRCDIR)/target/$(TARGET)ãï¼$(TARGETDIR)ã«å¤æ´ããï¼
+
+----------------------------------------------------------------------
+
+		TOPPERS/ASPã«ã¼ãã«
+		Release 1.0.0 ãã 1.1.0 ã¸ã®å¤æ´ç¹
+
+âå¤æ´ç¹ã®ãªã¹ã
+
+ã»frsm_tskãã«ã¼ãã«ããåé¤ï¼itron.hã«ãã¯ã­å®ç¾©ã¨ãã¦æ®ã
+
+ã»ã«ã¼ãã«ã®ãã¬ã¼ã¹ã­ã°æ©è½ã®æ¹ä¿®
+	- ãã¬ã¼ã¹ã­ã°ãã¯ã­ãä½¿ãå´ã®ãã¡ã¤ã«ã§ï¼ããã©ã«ãå®ç¾©ãä¸ããï¼
+	- nulltraceãå»æ­¢ï¼logtraceãä¿®æ­£ï¼
+	- ã¿ã¼ã²ããä¾å­é¨ã§ã®ãã¬ã¼ã¹ã­ã°åå¾æ¹æ³ãæ¨æºåï¼
+	- INTHDR_ENTRYã¨EXCHDR_ENTRYã«ãã©ã¡ã¼ã¿ãè¿½å ï¼
+	- target_putcãï¼target_fput_logã«ãªãã¼ã ï¼
+
+ã»ã·ã¹ãã ã­ã°æ©è½ãã«ã¼ãã«ããå¤ãã¦ï¼ã·ã¹ãã ãµã¼ãã¹ã®ä½ç½®ä»ãã«
+	- syslog.cï¼syslog.hï¼banner.cãï¼kernelããsyssvcã«ç§»åï¼
+	- ã·ã¹ãã ã­ã°æ©è½ã®ãµã¼ãã¹ã³ã¼ã«ã®åç§°ã«syslog_ãä»å ï¼
+
+ã»ã·ã¹ãã ãµã¼ãã¹ã®ãã£ã¬ã¯ããªã®ä½ç½®ä»ãã®æç¢ºå
+	- logtask.hã¨serial.hãï¼includeããsyssvcã«ç§»åï¼
+	- vasyslog.cãï¼libraryããsyssvcã«ç§»åï¼
+
+ã»ãªãªã¼ã¹ããã±ã¼ã¸ã®å½¢æ
+ãæ´å
+	- utils/makereleaseãä½æï¼utils/genmanifestãåé¤ï¼
+	- MANIFESTãã¡ã¤ã«ã«ï¼ããã±ã¼ã¸åã¨ãã¼ã¸ã§ã³çªå·ãè¨è¿°ï¼
+	- MANIFESTãã¡ã¤ã«ã®INCLUDEè¨è¿°ãå¤æ´ï¼
+
+ã»åºå
+¥å£å¦çã®çªå°ã®å¤æ°ï¼ãã£ã¼ã«ãåã®å¤æ´
+	- å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çªå°ï¼FPåï¼ã®å¤æ°ï¼
+	  ãã£ã¼ã«ãåãint_entryï¼exc_entryã«å¤æ´ï¼ã³ã¡ã³ããä¿®æ­£ï¼
+
+ã»DVE68Kï¼M68Kä¾å­é¨ã®ä¿®æ­£ï¼
+	- target.tfä¸­ã®ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®ä¿®æ­£ï¼
+	- logtraceãä½¿ãããã«ä¿®æ­£ï¼
+
+ã»ãã®ä»ã®ä¿®æ­£ï¼
+	- åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯ã®çæã«é¢ãããã°ãä¿®æ­£ï¼
+	- configureã§ï¼cfgãçæããã¦ãããã®ãã§ãã¯ãå³å¯åï¼
+	- sample/Makefileã«ããã¦ï¼ã©ã¤ãã©ãªã«é¢ããä¾å­è¨è¿°ã®ä¿®æ­£ï¼
+	- sample/sample1.cfgã«ããã¦ï¼ã·ã¹ãã ãµã¼ãã¹ã®å®ç¾©é ãå¤æ´ï¼
+	- extension/MANIFESTã«ï¼MANIFESTãè¿½å ï¼
+
+ã»ãã­ã¥ã¡ã³ãã®å
+
+å®ï¼ã³ã¡ã³ãã®è¿½å ã»ä¿®æ­£ï¼
+
+ã»ãã¼ã¸ã§ã³çªå·ã®æ´æ°ï¼
+
+âã¿ã¼ã²ããä¾å­é¨ã®ä¿®æ­£ç®æï¼1.0.0 â 1.1.0ï¼
+
+ã»ã«ã¼ãã«ã®ãã¬ã¼ã¹ã­ã°æ©è½ã®ä¸­ã§ï¼ã¿ã¼ã²ããä¾å­é¨ã§å®è£
+ããå¿
+è¦ãã
+ãããã®ãå®è£
+ããï¼è©³ããã¯ï¼porting.txtã®6.1.2ç¯ï¼6.5.2ç¯ï¼6.6.1ç¯ï¼
+ã6.7.1ç¯ãåç
+§ãããã¨ï¼
+
+ã»INTHDR_ENTRYã¨EXCHDR_ENTRYã«2çªç®ã®ãã©ã¡ã¼ã¿ãè¿½å ãããã®ã«å¯¾å¿ããï¼
+
+ã»TARGET_NAMEã¨COPYRIGHT_TARGETãï¼target_config.hããtarget_syssvc.hã«
+ãç§»åããï¼COPYRIGHT_TARGETã¯TARGET_COPYRIGHTã«ãªãã¼ã ããï¼
+
+ã»target_putcãtarget_fput_logã«ãªãã¼ã ãï¼ãã®å®£è¨ãtarget_config.hã
+ããtarget_syssvc.hã«ç§»åããï¼é¢æ°å®ç¾©ã¯ï¼target_config.cã«ç½®ããã¾ã¾
+ãã§ããï¼é¢æ°å®£è¨ã»å®ç¾©ã®ä¸ã®ã³ã¡ã³ããä¿®æ­£ããï¼
+
+ã»å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çã®çªå°ï¼FPåï¼ã®å¤æ°ï¼ãã£ã¼ã«ãåãinthdr
+ãããint_entryã«ï¼CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çªå°ï¼FPåï¼ã®å¤æ°ï¼
+ããã£ã¼ã«ãåãexchdrããexct_entryã«ï¼ããããå¤æ´ããï¼ããã«é¢é£ã
+ããx_define_inhã¨x_define_excã®ã³ã¡ã³ããä¿®æ­£ããï¼
+
+ã»ãã¬ã¼ã¹ã­ã°ãè¨é²ããªãå ´åã«ã¯ï¼target_config.hããã#include
+ã"nulltrace/trace_config.h"ããåé¤ããï¼
+
+ã»ãã¬ã¼ã¹ã­ã°ãè¨é²ããå ´åã«ã¯ï¼target_syssvc.hã«ã#include
+ã"logtrace/trace_config.h"ããè¿½å ããï¼ã¾ãï¼target_config.hä¸­ã®
+ãã#include "logtrace/trace_config.h"ãã®ä½ç½®ãåã®æ¹ã«ç§»åããï¼
+
+ã»MANIFESTã¨E_PACKAGEãä½æï¼ä¿®æ­£ããï¼MANIFESTä¸­ã«ï¼å¿
+è¦ã«å¿ãã¦ï¼
+ãPACKAGEãã£ã¬ã¯ãã£ãã¨VERSIONãã£ã¬ã¯ãã£ããè¿½å ããï¼ã¾ãï¼
+ãINCLUDEãã£ã¬ã¯ãã£ãã®ãã©ã¡ã¼ã¿ãï¼ãã£ã¬ã¯ããªåãããã¡ã¤ã«åã«å¤
+ãæ´ããï¼ã¿ã¼ã²ããã·ã¹ãã æ¯ã«ï¼E_PACKAGEãä½æããï¼è©³ããã¯ï¼
+ãuser.txtã®ï¼ç« ã¨porting.txtã®9.1ç¯ãåç
+§ãããã¨ï¼
+
+----------------------------------------------------------------------
Index: rubycfg_asp/trunk/asp_dcre/include/histogram.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/histogram.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/histogram.h	(revision 313)
@@ -0,0 +1,90 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+ */
+
+#ifndef TOPPERS_HISTOGRAM_H
+#define TOPPERS_HISTOGRAM_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ã®åæå
+ */
+extern void	init_hist(ID histid, uint_t maxval, uint_t histarea[]);
+
+/*
+ *  å®è¡æéè¨æ¸¬ã®éå§
+ */
+extern void	begin_measure(ID histid);
+
+/*
+ *  å®è¡æéè¨æ¸¬ã®çµäº
+ */
+extern void	end_measure(ID histid);
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤º
+ */
+extern void	print_hist(ID histid);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_HISTOGRAM_H */
Index: rubycfg_asp/trunk/asp_dcre/include/itron.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/itron.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/itron.h	(revision 313)
@@ -0,0 +1,164 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ITRONä»æ§å
+±éè¦å®ã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ *
+ *  ãã®ããããã¡ã¤ã«ã¯ï¼ITRONä»æ§å
+±éè¦å®ã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­ã®ä¸­
+ *  ã§ï¼TOPPERSå
+±éããããã¡ã¤ã«ã«å«ã¾ããªããã®ã®å®ç¾©ãå«ãï¼ITRONä»
+ *  æ§ã¨ã®äºææ§ãå¿
+è¦ã¨ããã¢ããªã±ã¼ã·ã§ã³ãã¤ã³ã¯ã«ã¼ããããã¨ãæ³
+ *  å®ãã¦ããï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
+ *  é¤ãããã«ãªã£ã¦ããï¼
+ */
+
+#ifndef TOPPERS_ITRON_H
+#define TOPPERS_ITRON_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  TOPPERSå
+±éããããã¡ã¤ã«
+ */
+#include "t_stddef.h"
+
+/*
+ *  ITRONä»æ§å
+±éãã¼ã¿å
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+#ifdef INT8_MAX
+typedef	int8_t			B;			/* ç¬¦å·ä»ã8ãããæ´æ° */
+#endif /* INT8_MAX */
+
+#ifdef UINT8_MAX
+typedef	uint8_t			UB;			/* ç¬¦å·ç¡ã8ãããæ´æ° */
+typedef	uint8_t			VB;			/* åãå®ã¾ããªã8ãããã®å¤ */
+#endif /* UINT8_MAX */
+
+typedef	int16_t			H;			/* ç¬¦å·ä»ã16ãããæ´æ° */
+typedef	uint16_t		UH;			/* ç¬¦å·ç¡ã16ãããæ´æ° */
+typedef	uint16_t		VH;			/* åãå®ã¾ããªã16ãããã®å¤ */
+
+typedef	int32_t			W;			/* ç¬¦å·ä»ã32ãããæ´æ° */
+typedef	uint32_t		UW;			/* ç¬¦å·ç¡ã32ãããæ´æ° */
+typedef	uint32_t		VW;			/* åãå®ã¾ããªã32ãããã®å¤ */
+
+#ifdef INT64_MAX
+typedef	int64_t			D;			/* ç¬¦å·ä»ã64ãããæ´æ° */
+#endif /* INT64_MAX */
+
+#ifdef UINT64_MAX
+typedef	uint64_t		UD;			/* ç¬¦å·ç¡ã64ãããæ´æ° */
+typedef	uint64_t		VD;			/* åãå®ã¾ããªã64ãããã®å¤ */
+#endif /* UINT64_MAX */
+
+typedef	void			*VP;		/* åãå®ã¾ããªããã®ã¸ã®ãã¤ã³ã¿ */
+
+typedef int_t			INT;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
+typedef uint_t			UINT;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+
+typedef bool_t			BOOL;		/* çå½å¤ */
+
+typedef	intptr_t		VP_INT;		/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ITRONä»æ§å
+±éå®æ°
+ */
+#define	TRUE		true			/* ç */
+#define	FALSE		false			/* å½ */
+
+/*
+ *  ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾©
+ */
+#define TA_HLNG			UINT_C(0x00)	/* é«ç´è¨èªç¨ã¤ã³ã¿ãã§ã¼ã¹ */
+#define TA_TFIFO		UINT_C(0x00)	/* ã¿ã¹ã¯ã®å¾
+ã¡è¡åãFIFOé ã« */
+#define TA_MFIFO		UINT_C(0x00)	/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ãFIFOé ã« */
+#define TA_WSGL			UINT_C(0x00)	/* å¾
+ã¡ã¿ã¹ã¯ã¯1ã¤ã®ã¿ */
+
+/*
+ *  ãã¹ãåæ°ã®æå¤§å¤
+ */
+#define TMAX_SUSCNT		UINT_C(1)		/* å¼·å¶å¾
+ã¡è¦æ±ãã¹ãæ°ã®æå¤§å¤ */
+
+/*
+ *  å¼·å¶å¾
+ã¡ç¶æ
+ããã®å¼·å¶åé
+ */
+#define frsm_tsk(tskid)		rsm_tsk(tskid)
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_ITRON_H */
Index: rubycfg_asp/trunk/asp_dcre/include/kernel.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/kernel.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/kernel.h	(revision 313)
@@ -0,0 +1,730 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		TOPPERS/ASPã«ã¼ãã« æ¨æºããããã¡ã¤ã«
+ *
+ *  TOPPERS/ASPã«ã¼ãã«ããµãã¼ããããµã¼ãã¹ã³ã¼ã«ã®å®£è¨ã¨ï¼å¿
+è¦ãªãã¼
+ *  ã¿åï¼å®æ°ï¼ãã¯ã­ã®å®ç¾©ãå«ãããããã¡ã¤ã«ï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
+ *  é¤ãããã«ãªã£ã¦ããï¼
+ *
+ *  ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããåã«ã¤ã³ã¯ã«ã¼ããã¦ããã¹ããã¡ã¤ã«
+ *  ã¯ãªãï¼
+ */
+
+#ifndef TOPPERS_KERNEL_H
+#define TOPPERS_KERNEL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *	TOPPERSå
+±éã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ */
+#include <t_stddef.h>
+
+/*
+ *  ã¿ã¼ã²ããä¾å­é¨
+ */
+#include "target_kernel.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ãã¼ã¿åã®å®ç¾©
+ */
+
+/*
+ *  ããããã¿ã¼ã³ããªãã¸ã§ã¯ãçªå·ã®åå®ç¾©
+ */
+typedef	uint_t		TEXPTN;		/* ã¿ã¹ã¯ä¾å¤è¦å ã®ããããã¿ã¼ã³ */
+typedef	uint_t		FLGPTN;		/* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³ */
+typedef	uint_t		INTNO;		/* å²è¾¼ã¿çªå· */
+typedef	uint_t		INHNO;		/* å²è¾¼ã¿ãã³ãã©çªå· */
+typedef	uint_t		EXCNO;		/* CPUä¾å¤ãã³ãã©çªå· */
+
+/*
+ *  å¦çåä½ã®åå®ç¾©
+ */
+typedef void	(*TASK)(intptr_t exinf);
+typedef void	(*TEXRTN)(TEXPTN texptn, intptr_t exinf);
+typedef void	(*CYCHDR)(intptr_t exinf);
+typedef void	(*ALMHDR)(intptr_t exinf);
+typedef void	(*ISR)(intptr_t exinf);
+typedef void	(*INTHDR)(void);
+typedef void	(*EXCHDR)(void *p_excinf);
+typedef void	(*INIRTN)(intptr_t exinf);
+typedef void	(*TERRTN)(intptr_t exinf);
+
+/*
+ *  ã¡ã¢ãªé åç¢ºä¿ã®ããã®åå®ç¾©
+ */
+#ifndef TOPPERS_STK_T
+#define TOPPERS_STK_T	intptr_t
+#endif /* TOPPERS_STK_T */
+typedef	TOPPERS_STK_T	STK_T;	/* ã¹ã¿ãã¯é åãç¢ºä¿ããããã®å */
+
+#ifndef TOPPERS_MPF_T
+#define TOPPERS_MPF_T	intptr_t
+#endif /* TOPPERS_MPF_T */
+typedef	TOPPERS_MPF_T	MPF_T;	/* åºå®é·ã¡ã¢ãªãã¼ã«é åãç¢ºä¿ããããã®å */
+
+/*
+ *  ã¡ãã»ã¼ã¸ãããã®åå®ç¾©
+ */
+typedef	struct t_msg {			/* ã¡ã¼ã«ããã¯ã¹ã®ã¡ãã»ã¼ã¸ããã */
+	struct t_msg	*pk_next;
+} T_MSG;
+
+typedef	struct t_msg_pri {		/* åªå
+åº¦ä»ãã¡ãã»ã¼ã¸ããã */
+	T_MSG	msgque;				/* ã¡ãã»ã¼ã¸ããã */
+	PRI		msgpri;				/* ã¡ãã»ã¼ã¸åªå
+åº¦ */
+} T_MSG_PRI;
+
+/*
+ *  ãã±ããå½¢å¼ã®å®ç¾©
+ */
+typedef struct t_ctsk {
+	ATR			tskatr;		/* ã¿ã¹ã¯å±æ§ */
+	intptr_t	exinf;		/* ã¿ã¹ã¯ã®æ¡å¼µæ
+å ± */
+	TASK		task;		/* ã¿ã¹ã¯ã®ã¡ã¤ã³ã«ã¼ãã³ã®å
+é ­çªå° */
+	PRI			itskpri;	/* ã¿ã¹ã¯ã®èµ·åæåªå
+åº¦ */
+	SIZE		stksz;		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®ãµã¤ãº */
+	STK_T 		*stk;		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å
+é ­çªå° */
+} T_CTSK;
+
+typedef struct t_rtsk {
+	STAT	tskstat;	/* ã¿ã¹ã¯ç¶æ
+ */
+	PRI		tskpri;		/* ã¿ã¹ã¯ã®ç¾å¨åªå
+åº¦ */
+	PRI		tskbpri;	/* ã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ */
+	STAT	tskwait;	/* å¾
+ã¡è¦å  */
+	ID		wobjid;		/* å¾
+ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®ID */
+	TMO		lefttmo;	/* ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æé */
+	uint_t	actcnt;		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ° */
+	uint_t	wupcnt;		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ° */
+} T_RTSK;
+
+typedef struct t_dtex {
+	ATR		texatr;		/* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å±æ§ */
+	TEXRTN	texrtn;		/* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å
+é ­çªå° */
+} T_DTEX;
+
+typedef struct t_rtex {
+	STAT	texstat;	/* ã¿ã¹ã¯ä¾å¤å¦çã®ç¶æ
+ */
+	TEXPTN	pndptn;		/* ä¿çä¾å¤è¦å  */
+} T_RTEX;
+
+typedef struct t_csem {
+	ATR		sematr;		/* ã»ããã©å±æ§ */
+	uint_t	isemcnt;	/* ã»ããã©ã®åæè³æºæ° */
+	uint_t	maxsem;		/* ã»ããã©ã®æå¤§è³æºæ° */
+} T_CSEM;
+
+typedef struct t_rsem {
+	ID		wtskid;		/* ã»ããã©ã®å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	uint_t	semcnt;		/* ã»ããã©ã®ç¾å¨ã®è³æºæ° */
+} T_RSEM;
+
+typedef struct t_cflg {
+	ATR		flgatr;		/* ã¤ãã³ããã©ã°å±æ§ */
+	FLGPTN	iflgptn;	/* ã¤ãã³ããã©ã°ã®åæããããã¿ã¼ã³ */
+} T_CFLG;
+
+typedef struct t_rflg {
+	ID		wtskid;		/* ã¤ãã³ããã©ã°ã®å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	FLGPTN	flgptn;		/* ã¤ãã³ããã©ã°ã®ç¾å¨ã®ããããã¿ã¼ã³ */
+} T_RFLG;
+
+typedef struct t_cdtq {
+	ATR		dtqatr;		/* ãã¼ã¿ã­ã¥ã¼å±æ§ */
+	uint_t	dtqcnt;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */
+	void 	*dtqmb;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
+é ­çªå° */
+} T_CDTQ;
+
+typedef struct t_rdtq {
+	ID		stskid;		/* ãã¼ã¿ã­ã¥ã¼ã®éä¿¡å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	ID		rtskid;		/* ãã¼ã¿ã­ã¥ã¼ã®åä¿¡å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	uint_t	sdtqcnt;	/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼ã¿ã®æ° */
+} T_RDTQ;
+
+typedef struct t_cpdq {
+	ATR		pdqatr;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å±æ§ */
+	uint_t	pdqcnt;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ã§ãããã¼ã¿æ° */
+	PRI		maxdpri;	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«éä¿¡ã§ãããã¼ã¿åªå
+åº¦ã®æ
+						   å¤§å¤ */
+	void 	*pdqmb;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
+é ­çªå° */
+} T_CPDQ;
+
+typedef struct t_rpdq {
+	ID		stskid;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®éä¿¡å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯
+						   ã®IDçªå· */
+	ID		rtskid;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®åä¿¡å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯
+						   ã®IDçªå· */
+	uint_t	spdqcnt;	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã«æ ¼ç´ããã¦ãããã¼
+						   ã¿ã®æ° */
+} T_RPDQ;
+
+typedef struct t_cmbx {
+	ATR		mbxatr;		/* ã¡ã¼ã«ããã¯ã¹å±æ§ */
+	PRI		maxmpri;	/* åªå
+åº¦ã¡ã¼ã«ããã¯ã¹ã«éä¿¡ã§ããã¡ãã»ã¼ã¸åªå
+
+						   åº¦ã®æå¤§å¤ */
+	void 	*mprihd;	/* åªå
+åº¦å¥ã®ã¡ãã»ã¼ã¸ã­ã¥ã¼ãããé åã®å
+é ­çªå° */
+} T_CMBX;
+
+typedef struct t_rmbx {
+	ID		wtskid;		/* ã¡ã¼ã«ããã¯ã¹ã®å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®IDçªå· */
+	T_MSG	*pk_msg;	/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ã®å
+é ­ã«ã¤ãªãããã¡ãã»ã¼ã¸
+						   ã®å
+é ­çªå° */
+} T_RMBX;
+
+typedef struct t_cmpf {
+	ATR		mpfatr;		/* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */
+	uint_t	blkcnt;		/* ç²å¾ã§ããåºå®é·ã¡ã¢ãªãã­ãã¯ã®æ° */
+	uint_t	blksz;		/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãº */
+	MPF_T 	*mpf;		/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå° */
+	void 	*mpfmb;		/* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å
+é ­çªå° */
+} T_CMPF;
+
+typedef struct t_rmpf {
+	ID		wtskid;		/* åºå®é·ã¡ã¢ãªãã¼ã«ã®å¾
+ã¡è¡åã®å
+é ­ã®ã¿ã¹ã¯ã®
+						   IDçªå· */
+	uint_t	fblkcnt;	/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®ç©ºãã¡ã¢ãªé åã«å²ã
+						   ä»ãããã¨ãã§ããåºå®é·ã¡ã¢ãªãã­ãã¯ã®æ° */
+} T_RMPF;
+
+typedef struct t_ccyc {
+	ATR			cycatr;		/* å¨æãã³ãã©å±æ§ */
+	intptr_t	exinf;		/* å¨æãã³ãã©ã®æ¡å¼µæ
+å ± */
+	CYCHDR		cychdr;		/* å¨æãã³ãã©ã®å
+é ­çªå° */
+	RELTIM		cyctim;		/* å¨æãã³ãã©ã®èµ·åå¨æ */
+	RELTIM		cycphs;		/* å¨æãã³ãã©ã®èµ·åä½ç¸ */
+} T_CCYC;
+
+typedef struct t_rcyc {
+	STAT	cycstat;	/* å¨æãã³ãã©ã®åä½ç¶æ
+ */
+	RELTIM	lefttim;	/* æ¬¡ã«å¨æãã³ãã©ãèµ·åããæå»ã¾ã§ã®ç¸å¯¾æé */
+} T_RCYC;
+
+typedef struct t_calm {
+	ATR			almatr;		/* ã¢ã©ã¼ã ãã³ãã©å±æ§ */
+	intptr_t	exinf;		/* ã¢ã©ã¼ã ãã³ãã©ã®æ¡å¼µæ
+å ± */
+	ALMHDR		almhdr;		/* ã¢ã©ã¼ã ãã³ãã©ã®å
+é ­çªå° */
+} T_CALM;
+
+typedef struct t_ralm {
+	STAT	almstat;	/* ã¢ã©ã¼ã ãã³ãã©ã®åä½ç¶æ
+ */
+	RELTIM	lefttim;	/* ã¢ã©ã¼ã ãã³ãã©ãèµ·åããæå»ã¾ã§ã®ç¸å¯¾æé */
+} T_RALM;
+
+typedef struct t_cisr {
+	ATR			isratr;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */
+	intptr_t	exinf;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ
+å ± */
+	INTNO		intno;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãç»é²ããå²è¾¼ã¿çªå· */
+	ISR			isr;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
+é ­çªå° */
+	PRI			isrpri;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ */
+} T_CISR;
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«ã®å®£è¨
+ */
+
+/*
+ *  ã¿ã¹ã¯ç®¡çæ©è½
+ */
+extern ER_UINT	acre_tsk(const T_CTSK *pk_ctsk) throw();
+extern ER		del_tsk(ID tskid) throw();
+extern ER		act_tsk(ID tskid) throw();
+extern ER		iact_tsk(ID tskid) throw();
+extern ER_UINT	can_act(ID tskid) throw();
+extern ER		ext_tsk(void) throw();
+extern ER		ter_tsk(ID tskid) throw();
+extern ER		chg_pri(ID tskid, PRI tskpri) throw();
+extern ER		get_pri(ID tskid, PRI *p_tskpri) throw();
+extern ER		get_inf(intptr_t *p_exinf) throw();
+extern ER		ref_tsk(ID tskid, T_RTSK *pk_rtsk) throw();
+
+/*
+ *  ã¿ã¹ã¯ä»å±åææ©è½
+ */
+extern ER		slp_tsk(void) throw();
+extern ER		tslp_tsk(TMO tmout) throw();
+extern ER		wup_tsk(ID tskid) throw();
+extern ER		iwup_tsk(ID tskid) throw();
+extern ER_UINT	can_wup(ID tskid) throw();
+extern ER		rel_wai(ID tskid) throw();
+extern ER		irel_wai(ID tskid) throw();
+extern ER		sus_tsk(ID tskid) throw();
+extern ER		rsm_tsk(ID tskid) throw();
+extern ER		dly_tsk(RELTIM dlytim) throw();
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+ */
+extern ER		def_tex(ID tskid, const T_DTEX *pk_dtex) throw();
+extern ER		ras_tex(ID tskid, TEXPTN rasptn) throw();
+extern ER		iras_tex(ID tskid, TEXPTN rasptn) throw();
+extern ER		dis_tex(void) throw();
+extern ER		ena_tex(void) throw();
+extern bool_t	sns_tex(void) throw();
+extern ER		ref_tex(ID tskid, T_RTEX *pk_rtex) throw();
+
+/*
+ *  åæã»éä¿¡æ©è½
+ */
+extern ER_ID	acre_sem(const T_CSEM *pk_csem) throw();
+extern ER		del_sem(ID semid) throw();
+extern ER		sig_sem(ID semid) throw();
+extern ER		isig_sem(ID semid) throw();
+extern ER		wai_sem(ID semid) throw();
+extern ER		pol_sem(ID semid) throw();
+extern ER		twai_sem(ID semid, TMO tmout) throw();
+extern ER		ini_sem(ID semid) throw();
+extern ER		ref_sem(ID semid, T_RSEM *pk_rsem) throw();
+
+extern ER_ID	acre_flg(const T_CFLG *pk_cflg) throw();
+extern ER		del_flg(ID flgid) throw();
+extern ER		set_flg(ID flgid, FLGPTN setptn) throw();
+extern ER		iset_flg(ID flgid, FLGPTN setptn) throw();
+extern ER		clr_flg(ID flgid, FLGPTN clrptn) throw();
+extern ER		wai_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn) throw();
+extern ER		pol_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn) throw();
+extern ER		twai_flg(ID flgid, FLGPTN waiptn,
+						MODE wfmode, FLGPTN *p_flgptn, TMO tmout) throw();
+extern ER		ini_flg(ID flgid) throw();
+extern ER		ref_flg(ID flgid, T_RFLG *pk_rflg) throw();
+
+extern ER_ID	acre_dtq(const T_CDTQ *pk_cdtq) throw();
+extern ER		del_dtq(ID dtqid) throw();
+extern ER		snd_dtq(ID dtqid, intptr_t data) throw();
+extern ER		psnd_dtq(ID dtqid, intptr_t data) throw();
+extern ER		ipsnd_dtq(ID dtqid, intptr_t data) throw();
+extern ER		tsnd_dtq(ID dtqid, intptr_t data, TMO tmout) throw();
+extern ER		fsnd_dtq(ID dtqid, intptr_t data) throw();
+extern ER		ifsnd_dtq(ID dtqid, intptr_t data) throw();
+extern ER		rcv_dtq(ID dtqid, intptr_t *p_data) throw();
+extern ER		prcv_dtq(ID dtqid, intptr_t *p_data) throw();
+extern ER		trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout) throw();
+extern ER		ini_dtq(ID dtqid) throw();
+extern ER		ref_dtq(ID dtqid, T_RDTQ *pk_rdtq) throw();
+
+extern ER_ID	acre_pdq(const T_CPDQ *pk_cpdq) throw();
+extern ER		del_pdq(ID pdqid) throw();
+extern ER		snd_pdq(ID pdqid, intptr_t data, PRI datapri) throw();
+extern ER		psnd_pdq(ID pdqid, intptr_t data, PRI datapri) throw();
+extern ER		ipsnd_pdq(ID pdqid, intptr_t data, PRI datapri) throw();
+extern ER		tsnd_pdq(ID pdqid, intptr_t data,
+										PRI datapri, TMO tmout) throw();
+extern ER		rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri) throw();
+extern ER		prcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri) throw();
+extern ER		trcv_pdq(ID pdqid, intptr_t *p_data,
+										PRI *p_datapri, TMO tmout) throw();
+extern ER		ini_pdq(ID pdqid) throw();
+extern ER		ref_pdq(ID pdqid, T_RPDQ *pk_rpdq) throw();
+
+extern ER_ID	acre_mbx(const T_CMBX *pk_cmbx) throw();
+extern ER		del_mbx(ID mbxid) throw();
+extern ER		snd_mbx(ID mbxid, T_MSG *pk_msg) throw();
+extern ER		rcv_mbx(ID mbxid, T_MSG **ppk_msg) throw();
+extern ER		prcv_mbx(ID mbxid, T_MSG **ppk_msg) throw();
+extern ER		trcv_mbx(ID mbxid, T_MSG **ppk_msg, TMO tmout) throw();
+extern ER		ini_mbx(ID mbxid) throw();
+extern ER		ref_mbx(ID mbxid, T_RMBX *pk_rmbx) throw();
+
+/*
+ *  ã¡ã¢ãªãã¼ã«ç®¡çæ©è½
+ */
+extern ER_ID	acre_mpf(const T_CMPF *pk_cmpf) throw();
+extern ER		del_mpf(ID mpfid) throw();
+extern ER		get_mpf(ID mpfid, void **p_blk) throw();
+extern ER		pget_mpf(ID mpfid, void **p_blk) throw();
+extern ER		tget_mpf(ID mpfid, void **p_blk, TMO tmout) throw();
+extern ER		rel_mpf(ID mpfid, void *blk) throw();
+extern ER		ini_mpf(ID mpfid) throw();
+extern ER		ref_mpf(ID mpfid, T_RMPF *pk_rmpf) throw();
+
+/*
+ *  æéç®¡çæ©è½
+ */
+extern ER		get_tim(SYSTIM *p_systim) throw();
+extern ER		get_utm(SYSUTM *p_sysutm) throw();
+
+extern ER_ID	acre_cyc(const T_CCYC *pk_ccyc) throw();
+extern ER		del_cyc(ID cycid) throw();
+extern ER		sta_cyc(ID cycid) throw();
+extern ER		stp_cyc(ID cycid) throw();
+extern ER		ref_cyc(ID cycid, T_RCYC *pk_rcyc) throw();
+
+extern ER_ID	acre_alm(const T_CALM *pk_calm) throw();
+extern ER		del_alm(ID almid) throw();
+extern ER		sta_alm(ID almid, RELTIM almtim) throw();
+extern ER		ista_alm(ID almid, RELTIM almtim) throw();
+extern ER		stp_alm(ID almid) throw();
+extern ER		istp_alm(ID almid) throw();
+extern ER		ref_alm(ID almid, T_RALM *pk_ralm) throw();
+
+/*
+ *  ã·ã¹ãã ç¶æ
+ç®¡çæ©è½
+ */
+extern ER		rot_rdq(PRI tskpri) throw();
+extern ER		irot_rdq(PRI tskpri) throw();
+extern ER		get_tid(ID *p_tskid) throw();
+extern ER		iget_tid(ID *p_tskid) throw();
+extern ER		loc_cpu(void) throw();
+extern ER		iloc_cpu(void) throw();
+extern ER		unl_cpu(void) throw();
+extern ER		iunl_cpu(void) throw();
+extern ER		dis_dsp(void) throw();
+extern ER		ena_dsp(void) throw();
+extern bool_t	sns_ctx(void) throw();
+extern bool_t	sns_loc(void) throw();
+extern bool_t	sns_dsp(void) throw();
+extern bool_t	sns_dpn(void) throw();
+extern bool_t	sns_ker(void) throw();
+extern ER		ext_ker(void) throw();
+
+/*
+ *  å²è¾¼ã¿ç®¡çæ©è½
+ */
+extern ER_ID	acre_isr(const T_CISR *pk_cisr) throw();
+extern ER		del_isr(ID isrid) throw();
+extern ER		dis_int(INTNO intno) throw();
+extern ER		ena_int(INTNO intno) throw();
+extern ER		chg_ipm(PRI intpri) throw();
+extern ER		get_ipm(PRI *p_intpri) throw();
+
+/*
+ *  CPUä¾å¤ç®¡çæ©è½
+ */
+extern bool_t	xsns_dpn(void *p_excinf) throw();
+extern bool_t	xsns_xpn(void *p_excinf) throw();
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  ãªãã¸ã§ã¯ãå±æ§ã®å®ç¾©
+ */
+#define TA_ACT			UINT_C(0x02)	/* ã¿ã¹ã¯ãèµ·åãããç¶æ
+ã§çæ */
+
+#define TA_TPRI			UINT_C(0x01)	/* ã¿ã¹ã¯ã®å¾
+ã¡è¡åãåªå
+åº¦é ã« */
+#define TA_MPRI			UINT_C(0x02)	/* ã¡ãã»ã¼ã¸ã­ã¥ã¼ãåªå
+åº¦é ã« */
+
+#define TA_WMUL			UINT_C(0x02)	/* è¤æ°ã®å¾
+ã¡ã¿ã¹ã¯ */
+#define TA_CLR			UINT_C(0x04)	/* ã¤ãã³ããã©ã°ã®ã¯ãªã¢æå® */
+
+#define TA_STA			UINT_C(0x02)	/* å¨æãã³ãã©ãåä½ç¶æ
+ã§çæ */
+
+#define TA_NONKERNEL	UINT_C(0x02)	/* ã«ã¼ãã«ç®¡çå¤ã®å²è¾¼ã¿ */
+
+#define TA_ENAINT		UINT_C(0x01)	/* å²è¾¼ã¿è¦æ±ç¦æ­¢ãã©ã°ãã¯ãªã¢ */
+#define TA_EDGE			UINT_C(0x02)	/* ã¨ãã¸ããªã¬ */
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ãã®å®ç¾©
+ */
+#define TWF_ORW			UINT_C(0x01)	/* ã¤ãã³ããã©ã°ã®ORå¾
+ã¡ */
+#define TWF_ANDW		UINT_C(0x02)	/* ã¤ãã³ããã©ã°ã®ANDå¾
+ã¡ */
+
+/*
+ *  ãªãã¸ã§ã¯ãã®ç¶æ
+ã®å®ç¾©
+ */
+#define TTS_RUN			UINT_C(0x01)	/* å®è¡ç¶æ
+ */
+#define TTS_RDY			UINT_C(0x02)	/* å®è¡å¯è½ç¶æ
+ */
+#define TTS_WAI			UINT_C(0x04)	/* å¾
+ã¡ç¶æ
+ */
+#define TTS_SUS			UINT_C(0x08)	/* å¼·å¶å¾
+ã¡ç¶æ
+ */
+#define TTS_WAS			UINT_C(0x0c)	/* äºéå¾
+ã¡ç¶æ
+ */
+#define TTS_DMT			UINT_C(0x10)	/* ä¼æ­¢ç¶æ
+ */
+
+#define TTW_SLP			UINT_C(0x0001)	/* èµ·åºå¾
+ã¡ */
+#define TTW_DLY			UINT_C(0x0002)	/* æéçµéå¾
+ã¡ */
+#define TTW_SEM			UINT_C(0x0004)	/* ã»ããã©ã®è³æºç²å¾å¾
+ã¡ */
+#define TTW_FLG			UINT_C(0x0008)	/* ã¤ãã³ããã©ã°å¾
+ã¡ */
+#define TTW_SDTQ		UINT_C(0x0010)	/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ */
+#define TTW_RDTQ		UINT_C(0x0020)	/* ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ */
+#define TTW_SPDQ		UINT_C(0x0100)	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ */
+#define TTW_RPDQ		UINT_C(0x0200)	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ */
+#define TTW_MBX			UINT_C(0x0040)	/* ã¡ã¼ã«ããã¯ã¹ããã®åä¿¡å¾
+ã¡ */
+#define TTW_MPF			UINT_C(0x2000)	/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾å¾
+ã¡ */
+
+#define TTEX_ENA		UINT_C(0x01)	/* ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ */
+#define TTEX_DIS		UINT_C(0x02)	/* ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ */
+
+#define TCYC_STP		UINT_C(0x01)	/* å¨æãã³ãã©ãåä½ãã¦ããªã */
+#define TCYC_STA		UINT_C(0x02)	/* å¨æãã³ãã©ãåä½ãã¦ãã */
+
+#define TALM_STP		UINT_C(0x01)	/* ã¢ã©ã¼ã ãã³ãã©ãåä½ãã¦ããªã */
+#define TALM_STA		UINT_C(0x02)	/* ã¢ã©ã¼ã ãã³ãã©ãåä½ãã¦ãã */
+
+/*
+ *  ãã®ä»ã®å®æ°ã®å®ç¾©
+ */
+#define TSK_SELF		0			/* èªã¿ã¹ã¯æå® */
+#define TSK_NONE		0			/* è©²å½ããã¿ã¹ã¯ããªã */
+
+#define TPRI_SELF		0			/* èªã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ */
+#define TPRI_INI		0			/* ã¿ã¹ã¯ã®èµ·åæåªå
+åº¦ */
+
+#define TIPM_ENAALL		0			/* å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ */
+
+/*
+ *  æ§æå®æ°ã¨ãã¯ã­
+ */
+
+/*
+ *  ãµãã¼ãããæ©è½
+ */
+#ifdef TOPPERS_TARGET_SUPPORT_DIS_INT
+#define TOPPERS_SUPPORT_DIS_INT			/* dis_intããµãã¼ãããã¦ãã */
+#endif /* TOPPERS_TARGET_SUPPORT_DIS_INT */
+
+#ifdef TOPPERS_TARGET_SUPPORT_ENA_INT
+#define TOPPERS_SUPPORT_ENA_INT			/* ena_intããµãã¼ãããã¦ãã */
+#endif /* TOPPERS_TARGET_SUPPORT_ENA_INT */
+
+#ifdef TOPPERS_TARGET_SUPPORT_GET_UTM
+#define TOPPERS_SUPPORT_GET_UTM			/* get_utmããµãã¼ãããã¦ãã */
+#endif /* TOPPERS_TARGET_SUPPORT_GET_UTM */
+
+#define TOPPERS_SUPPORT_DYNAMIC_CRE		/* åççææ©è½æ¡å¼µ */
+
+/*
+ *  åªå
+åº¦ã®ç¯å²
+ */
+#define TMIN_TPRI		1			/* ã¿ã¹ã¯åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
+#define TMAX_TPRI		16			/* ã¿ã¹ã¯åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
+#define TMIN_DPRI		1			/* ãã¼ã¿åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
+#define TMAX_DPRI		16			/* ãã¼ã¿åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
+#define TMIN_MPRI		1			/* ã¡ãã»ã¼ã¸åªå
+åº¦ã®æå°å¤ï¼æé«å¤ï¼*/
+#define TMAX_MPRI		16			/* ã¡ãã»ã¼ã¸åªå
+åº¦ã®æå¤§å¤ï¼æä½å¤ï¼*/
+#define TMIN_ISRPRI		1			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ã®æå°å¤ */
+#define TMAX_ISRPRI		16			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ã®æå¤§å¤ */
+
+/*
+ *  ãã¼ã¸ã§ã³æ
+å ±
+ */
+#define TKERNEL_MAKER	UINT_C(0x0118)	/* ã«ã¼ãã«ã®ã¡ã¼ã«ã¼ã³ã¼ã */
+#define TKERNEL_PRID	UINT_C(0x0007)	/* ã«ã¼ãã«ã®è­å¥çªå· */
+#define TKERNEL_SPVER	UINT_C(0xf517)	/* ã«ã¼ãã«ä»æ§ã®ãã¼ã¸ã§ã³çªå· */
+#define TKERNEL_PRVER	UINT_C(0x1093)	/* ã«ã¼ãã«ã®ãã¼ã¸ã§ã³çªå· */
+
+/*
+ *  ã­ã¥ã¼ã¤ã³ã°åæ°ã®æå¤§å¤
+ */
+#define TMAX_ACTCNT		UINT_C(1)		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */
+#define TMAX_WUPCNT		UINT_C(1)		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ */
+
+/*
+ *  ããããã¿ã¼ã³ã®ãããæ°
+ */
+#ifndef TBIT_TEXPTN					/* ã¿ã¹ã¯ä¾å¤è¦å ã®ãããæ° */
+#define TBIT_TEXPTN		(sizeof(TEXPTN) * CHAR_BIT)
+#endif /* TBIT_TEXPTN */
+
+#ifndef TBIT_FLGPTN					/* ã¤ãã³ããã©ã°ã®ãããæ° */
+#define TBIT_FLGPTN		(sizeof(FLGPTN) * CHAR_BIT)
+#endif /* TBIT_FLGPTN */
+
+/*
+ *  ã¡ã¢ãªé åç¢ºä¿ã®ããã®ãã¯ã­
+ *
+ *  ä»¥ä¸ã®TOPPERS_COUNT_SZã¨TOPPERS_ROUND_SZã®å®ç¾©ã¯ï¼unitã2ã®å·¾ä¹ã§ã
+ *  ããã¨ãä»®å®ãã¦ããï¼
+ */
+#ifndef TOPPERS_COUNT_SZ
+#define TOPPERS_COUNT_SZ(sz, unit)	(((sz) + (unit) - 1) / (unit))
+#endif /* TOPPERS_COUNT_SZ */
+#ifndef TOPPERS_ROUND_SZ
+#define TOPPERS_ROUND_SZ(sz, unit)	(((sz) + (unit) - 1) & ~((unit) - 1))
+#endif /* TOPPERS_ROUND_SZ */
+
+#define COUNT_STK_T(sz)		TOPPERS_COUNT_SZ(sz, sizeof(STK_T))
+#define ROUND_STK_T(sz)		TOPPERS_ROUND_SZ(sz, sizeof(STK_T))
+
+#define COUNT_MPF_T(blksz)	TOPPERS_COUNT_SZ(blksz, sizeof(MPF_T))
+#define ROUND_MPF_T(blksz)	TOPPERS_ROUND_SZ(blksz, sizeof(MPF_T))
+
+#define TSZ_DTQMB(dtqcnt)	(sizeof(intptr_t) * (dtqcnt))
+#define TCNT_DTQMB(dtqcnt)	TOPPERS_COUNT_SZ(TSZ_DTQMB(dtqcnt), sizeof(MB_T))
+
+#ifndef TSZ_PDQMB
+#define TSZ_PDQMB(pdqcnt)	(sizeof(intptr_t) * 3 * (pdqcnt))
+#endif /* TSZ_PDQMB */
+#define TCNT_PDQMB(pdqcnt)	TOPPERS_COUNT_SZ(TSZ_PDQMB(pdqcnt), sizeof(MB_T))
+
+#define TSZ_MPFMB(blkcnt)	(sizeof(uint_t) * (blkcnt))
+#define TCNT_MPFMB(blkcnt)	TOPPERS_COUNT_SZ(TSZ_MPFMB(blkcnt), sizeof(MB_T))
+
+/*
+ *  ãã®ä»ã®æ§æå®æ°
+ */
+#define TMAX_MAXSEM		UINT_MAX	/* ã»ããã©ã®æå¤§è³æºæ°ã®æå¤§å¤ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_KERNEL_H */
Index: rubycfg_asp/trunk/asp_dcre/include/log_output.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/log_output.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/log_output.h	(revision 313)
@@ -0,0 +1,103 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºå
+ */
+
+#ifndef TOPPERS_LOG_OUTPUT_H
+#define TOPPERS_LOG_OUTPUT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <t_syslog.h>
+
+/*
+ *  æå­åæ´å½¢åºå
+ *
+ *  formatã§æå®ããããã©ã¼ãããè¨è¿°ã¨p_argsã§æå®ãããå¼æ°åããä½
+ *  æããã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcãç¨ãã¦åºåããï¼
+ */
+extern void	syslog_printf(const char *format, const intptr_t *p_args,
+										void (*putc)(char)) throw();
+
+/*
+ *  ã­ã°æ
+å ±ã®åºå
+ *
+ *  p_syslogã§æå®ãããã­ã°æ
+å ±ãæå­åã«æ´å½¢ãï¼1æå­åºåé¢æ°putcãç¨
+ *  ãã¦åºåããï¼
+ */
+extern void	syslog_print(const SYSLOG *p_syslog, void (*putc)(char)) throw();
+
+/*
+ *  ã­ã°æ
+å ±åªå¤±ã¡ãã»ã¼ã¸æå­å
+ *
+ *  lostlogåã®ã­ã°æ
+å ±ãå¤±ãããæ¨ã®ã¡ãã»ã¼ã¸ãï¼1æå­åºåé¢æ°putcã
+ *  ç¨ãã¦åºåããï¼
+ */
+extern void	syslog_lostmsg(uint_t lostlog, void (*putc)(char)) throw();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_LOG_OUTPUT_H */
Index: rubycfg_asp/trunk/asp_dcre/include/queue.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/queue.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/queue.h	(revision 313)
@@ -0,0 +1,187 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2006-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã­ã¥ã¼æä½ã©ã¤ãã©ãª
+ *
+ *  ãã®ã­ã¥ã¼æä½ã©ã¤ãã©ãªã§ã¯ï¼ã­ã¥ã¼ããããå«ããªã³ã°æ§é ã®ããã«
+ *  ãªã³ã¯ã­ã¥ã¼ãæ±ãï¼å
+·ä½çã«ã¯ï¼ã­ã¥ã¼ãããã®æ¬¡ã¨ã³ããªã¯ã­ã¥ã¼ã®
+ *  å
+é ­ã®ã¨ã³ããªï¼åã¨ã³ããªã¯ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã¨ããï¼ã¾ãï¼ã­
+ *  ã¥ã¼ã®å
+é ­ã®ã¨ã³ããªã®åã¨ã³ããªã¨ï¼ã­ã¥ã¼ã®æ«å°¾ã®ã¨ã³ããªã®æ¬¡ã¨ã³
+ *  ããªã¯ï¼ã­ã¥ã¼ãããã¨ããï¼ç©ºã®ã­ã¥ã¼ã¯ï¼æ¬¡ã¨ã³ããªï¼åã¨ã³ããªã¨
+ *  ãèªåèªèº«ãæãã­ã¥ã¼ãããã§ããããï¼
+ */
+
+#ifndef	TOPPERS_QUEUE_H
+#define	TOPPERS_QUEUE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã­ã¥ã¼ã®ãã¼ã¿æ§é ã®å®ç¾©
+ */
+typedef struct queue {
+	struct queue *p_next;		/* æ¬¡ã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+	struct queue *p_prev;		/* åã¨ã³ããªã¸ã®ãã¤ã³ã¿ */
+} QUEUE;
+
+/*
+ *  ã­ã¥ã¼ã®åæå
+ *
+ *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ */
+Inline void
+queue_initialize(QUEUE *p_queue)
+{
+	p_queue->p_prev = p_queue;
+	p_queue->p_next = p_queue;
+}
+
+/*
+ *  ã­ã¥ã¼ã®åã¨ã³ããªã¸ã®æ¿å
+¥
+ *
+ *  p_queueã®åã«p_entryãæ¿å
+¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
+ *  åã«ã¯ï¼ã­ã¥ã¼ã®æ«å°¾ã«p_entryãæ¿å
+¥ãããã¨ã«ãªãï¼
+ */
+Inline void
+queue_insert_prev(QUEUE *p_queue, QUEUE *p_entry)
+{
+	p_entry->p_prev = p_queue->p_prev;
+	p_entry->p_next = p_queue;
+	p_queue->p_prev->p_next = p_entry;
+	p_queue->p_prev = p_entry;
+}
+
+/*
+ *  ã­ã¥ã¼ã®æ¬¡ã¨ã³ããªã¸ã®æ¿å
+¥
+ *
+ *  p_queueã®æ¬¡ã«p_entryãæ¿å
+¥ããï¼p_queueã«ã­ã¥ã¼ããããæå®ããå ´
+ *  åã«ã¯ï¼ã­ã¥ã¼ã®å
+é ­ã«p_entryãæ¿å
+¥ãããã¨ã«ãªãï¼
+ */
+Inline void
+queue_insert_next(QUEUE *p_queue, QUEUE *p_entry)
+{
+	p_entry->p_prev = p_queue;
+	p_entry->p_next = p_queue->p_next;
+	p_queue->p_next->p_prev = p_entry;
+	p_queue->p_next = p_entry;
+}
+
+/*
+ *  ã¨ã³ããªã®åé¤
+ *
+ *  p_entryãã­ã¥ã¼ããåé¤ããï¼
+ */
+Inline void
+queue_delete(QUEUE *p_entry)
+{
+	p_entry->p_prev->p_next = p_entry->p_next;
+	p_entry->p_next->p_prev = p_entry->p_prev;
+}
+
+/*
+ *  ã­ã¥ã¼ã®æ¬¡ã¨ã³ããªã®ååºã
+ *
+ *  p_queueã®æ¬¡ã¨ã³ããªãã­ã¥ã¼ããåé¤ãï¼åé¤ããã¨ã³ããªãè¿ãï¼
+ *  p_queueã«ã­ã¥ã¼ããããæå®ããå ´åã«ã¯ï¼ã­ã¥ã¼ã®å
+é ­ã®ã¨ã³ããªã
+ *  åãåºããã¨ã«ãªãï¼p_queueã«ç©ºã®ã­ã¥ã¼ãæå®ãã¦å¼ã³åºãã¦ã¯ãªã
+ *  ãªãï¼
+ */
+Inline QUEUE *
+queue_delete_next(QUEUE *p_queue)
+{
+	QUEUE	*p_entry;
+
+	assert(p_queue->p_next != p_queue);
+	p_entry = p_queue->p_next;
+	p_queue->p_next = p_entry->p_next;
+	p_entry->p_next->p_prev = p_queue;
+	return(p_entry);
+}
+
+/*
+ *  ã­ã¥ã¼ãç©ºãã©ããã®ãã§ãã¯
+ *
+ *  p_queueã«ã¯ã­ã¥ã¼ããããæå®ããï¼
+ */
+Inline bool_t
+queue_empty(QUEUE *p_queue)
+{
+	if (p_queue->p_next == p_queue) {
+		assert(p_queue->p_prev == p_queue);
+		return(true);
+	}
+	return(false);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_QUEUE_H */
Index: rubycfg_asp/trunk/asp_dcre/include/sil.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/sil.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/sil.h	(revision 313)
@@ -0,0 +1,306 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤
+ *
+ *  ã·ã¹ãã ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¤ã¤ã®ãµã¼ãã¹ã³ã¼ã«ã®å®ç¾©ã»å®£è¨ã¨ãã¯ã­ãª
+ *  ã©ã®å®ç¾©ãå«ãããããã¡ã¤ã«ï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ãããã¨ã§ï¼ãã¯ã­å®ç¾©ä»¥å¤ã®è¨è¿°ã
+ *  é¤ããã¨ãã§ããï¼
+ *
+ *  ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããåã«ã¤ã³ã¯ã«ã¼ããã¦ããã¹ããã¡ã¤ã«
+ *  ã¯ãªãï¼
+ */
+
+#ifndef TOPPERS_SIL_H
+#define TOPPERS_SIL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *	TOPPERSå
+±éã®ãã¼ã¿åã»å®æ°ã»ãã¯ã­
+ */
+#include <t_stddef.h>
+
+/*
+ *  ã¿ã¼ã²ããä¾å­é¨
+ */
+#include "target_sil.h"
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  å
+¨å²è¾¼ã¿ã­ãã¯ç¶æ
+ã®å¶å¾¡
+ *
+ *  SIL_PRE_LOCï¼SIL_LOC_INT()ï¼SIL_UNL_INT()ã¯ï¼ã¿ã¼ã²ããä¾å­é¨ã§ç¨
+ *  æããï¼ããã©ã«ãã®å®ç¾©ã¯ç¨æãã¦ããªãï¼
+ */
+
+/*
+ *  å¾®å°æéå¾
+ã¡
+ */
+extern void	sil_dly_nse(ulong_t dlytim) throw();
+
+/*
+ *  ã¨ã³ãã£ã¢ã³ã®åè»¢
+ */
+#ifndef TOPPERS_SIL_REV_ENDIAN_UINT16
+#define	TOPPERS_SIL_REV_ENDIAN_UINT16(data) \
+				((((data) & 0xffU) << 8) | (((data) >> 8) & 0xffU))
+#endif /* TOPPERS_SIL_REV_ENDIAN_UINT16 */
+
+#ifndef TOPPERS_SIL_REV_ENDIAN_UINT32
+#define	TOPPERS_SIL_REV_ENDIAN_UINT32(data) \
+				((((data) & 0xffU) << 24) | (((data) & 0xff00U) << 8) \
+					| (((data) >> 8) & 0xff00U) | (((data) >> 24) & 0xffU))
+#endif /* TOPPERS_SIL_REV_ENDIAN_UINT32 */
+
+/*
+ *  ã¡ã¢ãªç©ºéã¢ã¯ã»ã¹é¢æ°
+ */
+#ifndef TOPPERS_OMIT_SIL_ACCESS
+
+/*
+ *  8ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+#ifdef UINT8_MAX
+
+Inline uint8_t
+sil_reb_mem(const uint8_t *mem)
+{
+	uint8_t	data;
+
+	data = *((const volatile uint8_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrb_mem(uint8_t *mem, uint8_t data)
+{
+	*((volatile uint8_t *) mem) = data;
+}
+
+#endif /* UINT8_MAX */
+
+/*
+ *  16ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint16_t
+sil_reh_mem(const uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrh_mem(uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_bem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_bem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_LEM
+
+Inline uint16_t
+sil_reh_lem(const uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_LEM
+
+Inline void
+sil_wrh_lem(uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_LEM */
+#else /* SIL_ENDIAN_BIG */
+#ifdef SIL_ENDIAN_LITTLE		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_reh_lem(mem)		sil_reh_mem(mem)
+#define	sil_wrh_lem(mem, data)	sil_wrh_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REH_BEM
+
+Inline uint16_t
+sil_reh_bem(const uint16_t *mem)
+{
+	uint16_t	data;
+
+	data = *((const volatile uint16_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT16(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REH_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRH_BEM
+
+Inline void
+sil_wrh_bem(uint16_t *mem, uint16_t data)
+{
+	*((volatile uint16_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT16(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRH_BEM */
+#else /* SIL_ENDIAN_LITTLE */
+
+#error Neither SIL_ENDIAN_BIG nor SIL_ENDIAN_LITTLE is defined.
+
+#endif /* SIL_ENDIAN_LITTLE */
+#endif /* SIL_ENDIAN_BIG */
+
+/*
+ *  32ãããåä½ã®èª­åºãï¼æ¸è¾¼ã¿
+ */
+
+Inline uint32_t
+sil_rew_mem(const uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(data);
+}
+
+Inline void
+sil_wrw_mem(uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = data;
+}
+
+#ifdef SIL_ENDIAN_BIG			/* ããã°ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_bem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_bem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_LEM
+
+Inline uint32_t
+sil_rew_lem(const uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_LEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_LEM
+
+Inline void
+sil_wrw_lem(uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_LEM */
+#else /* SIL_ENDIAN_BIG */		/* ãªãã«ã¨ã³ãã£ã¢ã³ãã­ã»ããµ */
+
+#define	sil_rew_lem(mem)		sil_rew_mem(mem)
+#define	sil_wrw_lem(mem, data)	sil_wrw_mem(mem, data)
+
+#ifndef TOPPERS_OMIT_SIL_REW_BEM
+
+Inline uint32_t
+sil_rew_bem(const uint32_t *mem)
+{
+	uint32_t	data;
+
+	data = *((const volatile uint32_t *) mem);
+	return(TOPPERS_SIL_REV_ENDIAN_UINT32(data));
+}
+
+#endif /* TOPPERS_OMIT_SIL_REW_BEM */
+#ifndef TOPPERS_OMIT_SIL_WRW_BEM
+
+Inline void
+sil_wrw_bem(uint32_t *mem, uint32_t data)
+{
+	*((volatile uint32_t *) mem) = TOPPERS_SIL_REV_ENDIAN_UINT32(data);
+}
+
+#endif /* TOPPERS_OMIT_SIL_WRW_BEM */
+#endif /* SIL_ENDIAN_BIG */
+#endif /* TOPPERS_OMIT_SIL_ACCESS */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_SIL_H */
Index: rubycfg_asp/trunk/asp_dcre/include/t_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/t_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/t_stddef.h	(revision 313)
@@ -0,0 +1,317 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		TOPPERSå
+±éããããã¡ã¤ã«
+ *
+ *  TOPPERSé¢é£ã®ãã¹ã¦ã®ã½ã¼ã¹ãã¡ã¤ã«ã§ã¤ã³ã¯ã«ã¼ããã¹ãããããã¡ã¤
+ *  ã«ï¼åç¨®ã®ã«ã¼ãã«ãã½ããã¦ã§ã¢é¨åã§å
+±éã«ç¨ãããã¨ãæ³å®ãã¦ã
+ *  ãï¼TOPPERSã®åç¨®ã®ã«ã¼ãã«ãã½ããã¦ã§ã¢é¨åã§å
+±éã«ç¨ãããã¼ã¿åï¼
+ *  å®æ°ï¼ãã¯ã­ã®å®ç¾©ãªã©ãå«ãï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
+ *  é¤ãããã«ãªã£ã¦ããï¼
+ *
+ *  ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããåã«ã¤ã³ã¯ã«ã¼ããã¦ããã¹ããã¡ã¤ã«
+ *  ã¯ãªãï¼
+ */
+
+#ifndef TOPPERS_T_STDDEF_H
+#define TOPPERS_T_STDDEF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã¿ã¼ã²ããä¾å­é¨
+ */
+#include "target_stddef.h"
+
+/*
+ *  Cè¨èª/EC++ã§throw()ã«å¯¾å¦ããããã®å®ç¾©
+ */
+#if !defined(__cplusplus) || defined(__embedded_cplusplus)
+#define throw()
+#endif
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®ãã¼ã¿åã®ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef TOPPERS_bool
+#define TOPPERS_bool	int				/* ãã¼ã«å */
+#endif /* TOPPERS_bool */
+
+#ifndef TOPPERS_size
+#define TOPPERS_size	uintptr_t		/* ãµã¤ãºå */
+#endif /* TOPPERS_size */
+
+#ifndef TOPPERS_fp
+struct TOPPERS_dummy_t { int TOPPERS_dummy_field; };
+typedef	void			(*TOPPERS_fp_t)(struct TOPPERS_dummy_t);
+#define TOPPERS_fp		TOPPERS_fp_t	/* ãã­ã°ã©ã ã®èµ·åçªå° */
+#endif /* TOPPERS_fp */
+
+/*
+ *  å
+±éãã¼ã¿å
+ */
+typedef TOPPERS_bool	bool_t;		/* çå½å¤ */
+
+typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
+typedef unsigned int	uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+
+typedef signed long		long_t;		/* é·ãã®ãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
+typedef unsigned long	ulong_t;	/* é·ãã®ãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+
+typedef int_t			FN;			/* æ©è½ã³ã¼ã */
+typedef	int_t			ER;			/* ã¨ã©ã¼ã³ã¼ã */
+typedef	int_t			ID;			/* ãªãã¸ã§ã¯ãã®IDçªå· */
+typedef	uint_t			ATR;		/* ãªãã¸ã§ã¯ãã®å±æ§ */
+typedef	uint_t			STAT;		/* ãªãã¸ã§ã¯ãã®ç¶æ
+ */
+typedef	uint_t			MODE;		/* ãµã¼ãã¹ã³ã¼ã«ã®åä½ã¢ã¼ã */
+typedef	int_t			PRI;		/* åªå
+åº¦ */
+typedef	TOPPERS_size	SIZE;		/* ã¡ã¢ãªé åã®ãµã¤ãº */
+
+typedef	int_t			TMO;		/* ã¿ã¤ã ã¢ã¦ãæå® */
+typedef	uint_t			RELTIM;		/* ç¸å¯¾æé */
+typedef	ulong_t			SYSTIM;		/* ã·ã¹ãã æå» */
+typedef	ulong_t			SYSUTM;		/* æ§è½è©ä¾¡ç¨ã·ã¹ãã æå» */
+
+typedef	TOPPERS_fp		FP;			/* ãã­ã°ã©ã ã®èµ·åçªå° */
+
+typedef	int_t			ER_BOOL;	/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯çå½å¤ */
+typedef	int_t			ER_ID;		/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯IDçªå· */
+typedef	int_t			ER_UINT;	/* ã¨ã©ã¼ã³ã¼ãã¾ãã¯ç¬¦å·ç¡ãæ´æ° */
+
+typedef uintptr_t		MB_T;		/* ç®¡çé åãç¢ºä¿ããããã®ãã¼ã¿å */
+
+typedef	uint32_t		ACPTN;		/* ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+typedef	struct acvct {				/* ã¢ã¯ã»ã¹è¨±å¯ãã¯ã¿ */
+	ACPTN		acptn1;				/* éå¸¸æä½1ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+	ACPTN		acptn2;				/* éå¸¸æä½2ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+	ACPTN		acptn3;				/* ç®¡çæä½ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+	ACPTN		acptn4;				/* åç
+§æä½ã®ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³ */
+} ACVCT;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+/*
+ *  æ´æ°å®æ°ãä½ããã¯ã­
+ */
+#ifndef UINT_C
+#define UINT_C(val)		(val ## U)		/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#endif /* UINT_C */
+
+#ifndef ULONG_C
+#define ULONG_C(val)	(val ## UL)		/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#endif /* ULONG_C */
+
+/*
+ *  ä¸è¬å®æ°
+ */
+#ifndef NULL
+#define NULL		0			/* ç¡å¹ãã¤ã³ã¿ */
+#endif /* NULL */
+
+#ifndef true
+#define true		1			/* ç */
+#endif /* true */
+
+#ifndef false
+#define false		0			/* å½ */
+#endif /* false */
+
+#define E_OK		0			/* æ­£å¸¸çµäº */
+
+/*
+ *  ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ã
+ */
+#define E_SYS		(-5)		/* ã·ã¹ãã ã¨ã©ã¼ */
+#define E_NOSPT		(-9)		/* æªãµãã¼ãæ©è½ */
+#define E_RSFN		(-10)		/* äºç´æ©è½ã³ã¼ã */
+#define E_RSATR		(-11)		/* äºç´å±æ§ */
+#define E_PAR		(-17)		/* ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+#define E_ID		(-18)		/* ä¸æ­£IDçªå· */
+#define E_CTX		(-25)		/* ã³ã³ãã­ã¹ãã¨ã©ã¼ */
+#define E_MACV		(-26)		/* ã¡ã¢ãªã¢ã¯ã»ã¹éå */
+#define E_OACV		(-27)		/* ãªãã¸ã§ã¯ãã¢ã¯ã»ã¹éå */
+#define E_ILUSE		(-28)		/* ãµã¼ãã¹ã³ã¼ã«ä¸æ­£ä½¿ç¨ */
+#define E_NOMEM		(-33)		/* ã¡ã¢ãªä¸è¶³ */
+#define E_NOID		(-34)		/* IDçªå·ä¸è¶³ */
+#define E_NORES		(-35)		/* è³æºä¸è¶³ */
+#define E_OBJ		(-41)		/* ãªãã¸ã§ã¯ãç¶æ
+ã¨ã©ã¼ */
+#define E_NOEXS		(-42)		/* ãªãã¸ã§ã¯ãæªçæ */
+#define E_QOVR		(-43)		/* ã­ã¥ã¼ã¤ã³ã°ãªã¼ãã¼ãã­ã¼ */
+#define E_RLWAI		(-49)		/* å¾
+ã¡ç¶æ
+ã®å¼·å¶è§£é¤ */
+#define E_TMOUT		(-50)		/* ãã¼ãªã³ã°å¤±æã¾ãã¯ã¿ã¤ã ã¢ã¦ã */
+#define E_DLT		(-51)		/* å¾
+ã¡ãªãã¸ã§ã¯ãã®åé¤ */
+#define E_CLS		(-52)		/* å¾
+ã¡ãªãã¸ã§ã¯ãã®ç¶æ
+å¤å */
+#define E_WBLK		(-57)		/* ãã³ãã­ãã­ã³ã°åä»ã */
+#define E_BOVR		(-58)		/* ãããã¡ãªã¼ãã¼ãã­ã¼ */
+
+/*
+ *  ãªãã¸ã§ã¯ãå±æ§
+ */
+#define TA_NULL		UINT_C(0)	/* ãªãã¸ã§ã¯ãå±æ§ãæå®ããªã */
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãæå®
+ */
+#define TMO_POL		0			/* ãã¼ãªã³ã° */
+#define TMO_FEVR	(-1)		/* æ°¸ä¹
+å¾
+ã¡ */
+#define TMO_NBLK	(-2)		/* ãã³ãã­ãã­ã³ã° */
+
+/*
+ *  ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³
+ */
+#define TACP_KERNEL		(0U)	/* ã«ã¼ãã«ãã¡ã¤ã³ã ãã«ã¢ã¯ã»ã¹ãè¨±å¯ */
+#define TACP_SHARED		(~0U)	/* ãã¹ã¦ã®ãã¡ã¤ã³ããã¢ã¯ã»ã¹ãè¨±å¯ */
+
+/*
+ *  åã«é¢ããæ
+å ±ãåãåºãããã®ãã¯ã­
+ *
+ *  ä»¥ä¸ã®ALIGN_TYPEã®å®ç¾©ã¯ï¼ã¢ã©ã¤ã³ã¡ã³ãã®åä½ã2ã®å·¾ä¹ã§ãããã¨ã
+ *  ä»®å®ãã¦ããï¼
+ */
+#ifndef offsetof
+#define	offsetof(structure, field)	((uintptr_t) &(((structure *) 0)->field))
+#endif /* offsetof */
+
+#ifndef alignof
+#define alignof(type)	offsetof(struct { char field1; type field2; }, field2)
+#endif /* alignof */
+
+#ifndef ALIGN_TYPE				/* ã¢ã©ã¤ã³ã¡ã³ãã®ãã§ãã¯ */
+#define ALIGN_TYPE(addr, type) \
+						((((uintptr_t)(addr)) & (alignof(type) - 1)) == 0U)
+#endif /* ALIGN_TYPE */
+
+/*
+ *  assertãã¯ã­
+ */
+#undef assert
+#ifndef NDEBUG
+#define assert(exp)		((void)((exp) ? 0 : (TOPPERS_assert_fail(#exp, \
+							__FILE__, __LINE__), TOPPERS_assert_abort(), 0)))
+#else /* NDEBUG */
+#define assert(exp)		((void) 0)
+#endif /* NDEBUG */
+
+#ifdef __cplusplus
+}
+#endif
+
+/*
+ *  ã¨ã©ã¼ã³ã¼ãçæã»åè§£ãã¯ã­
+ *
+ *  ä»¥ä¸ã®ãã¯ã­å®ç¾©ã¯ï¼ç¬¦å·ä»ãæ´æ°ã2ã®è£æ°ã§è¡¨ç¾ããã¦ããï¼å³ã·ãã
+ *  æ¼ç®å­ï¼>>ï¼ãç®è¡ã·ããããããã¨ãä»®å®ãã¦ããï¼ããã§ãªãéçºç°
+ *  å¢ã§ã¯ï¼target_stddef.hã§ãããã®å®ç¾©ãä¸æ¸ãããªããã°ãªããªãï¼
+ *
+ *  MERCDãã¯ã­ã®å®ç¾©ã¯ï¼ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ããè² ã§ãããã¨ãä»®å®ãã¦ããï¼
+ *  ããã§ãªãå ´åï¼2ã¤ã®å®ç¾©ãä¸è´ããªããªãï¼
+ */
+#ifndef ERCD
+#define ERCD(mercd, sercd) \
+				((ER)((((uint_t)(sercd)) << 8) | (((uint_t)(mercd)) & 0xffU)))
+#endif /* ERCD */
+
+#ifndef MERCD
+#ifdef INT8_MAX
+#define MERCD(ercd)		((ER)((int8_t)(ercd)))
+#else /* INT8_MAX */
+#define MERCD(ercd)		((ER)(((uint_t) ercd) | ~0xffU))
+#endif /* INT8_MAX */
+#endif /* MERCD */
+
+#ifndef SERCD
+#define SERCD(ercd)		((ER)((ercd) >> 8))
+#endif /* SERCD */
+
+/*
+ *  ã¢ã¯ã»ã¹è¨±å¯ãã¿ã¼ã³çæãã¯ã­
+ */
+#define TACP(domid)		(1U << ((domid) - 1))	/* domidã ãã«ã¢ã¯ã»ã¹ãè¨±å¯ */
+
+/*
+ *  ç¸å¯¾æéï¼RELTIMï¼ã«æå®ã§ããæå¤§å¤
+ */
+#if UINT_MAX < LONG_MAX
+#define TMAX_RELTIM		((RELTIM) UINT_MAX)
+#else /* UINT_MAX < LONG_MAX */
+#define TMAX_RELTIM		((RELTIM) LONG_MAX)
+#endif /* UINT_MAX < LONG_MAX */
+
+#endif /* TOPPERS_T_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/include/t_stdlib.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/t_stdlib.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/t_stdlib.h	(revision 313)
@@ -0,0 +1,89 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		åºæ¬çãªã©ã¤ãã©ãªé¢æ°
+ */
+
+#ifndef TOPPERS_T_STDLIB_H
+#define TOPPERS_T_STDLIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã¨ã©ã¼ã¡ãã»ã¼ã¸æå­åãè¿ãé¢æ°
+ *
+ *  ercdã§æå®ãããã¨ã©ã¼ã³ã¼ãã®ã¡ã¤ã³ã¨ã©ã¼ã³ã¼ãã®åç§°ï¼E_PARï¼
+ *  E_OBJãªã©ï¼ã®æå­åãè¿ãé¢æ°ï¼
+ */
+extern const char	*itron_strerror(ER ercd) throw();
+
+/*
+ *  ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®ã­ã°åºå
+ *
+ *  ãµã¼ãã¹ã³ã¼ã«ãã¨ã©ã¼ãè¿ããå ´åã«ï¼ãã®ãã¡ã¤ã«åï¼è¡çªå·ï¼ã¡ã¤
+ *  ã³ã¨ã©ã¼ã³ã¼ãç­ãè¡¨ç¤ºããããã®é¢æ°ï¼
+ */
+extern void		t_perror(uint_t prio, const char *file, int_t line,
+									const char *expr, ER ercd) throw();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_T_STDLIB_H */
Index: rubycfg_asp/trunk/asp_dcre/include/t_syslog.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/t_syslog.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/t_syslog.h	(revision 313)
@@ -0,0 +1,372 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°åºåãè¡ãããã®å®ç¾©
+ *
+ *  ã·ã¹ãã ã­ã°ãµã¼ãã¹ã¯ï¼ã·ã¹ãã ã®ã­ã°æ
+å ±ãåºåããããã®ãµã¼ãã¹
+ *  ã§ããï¼ã«ã¼ãã«ããã®ã­ã°æ
+å ±ã®åºåã«ãç¨ããããï¼å
+é¨ã§å¾
+ã¡ç¶æ
+
+ *  ã«ã¯ãããã¨ã¯ãªãï¼
+ *
+ *  ã­ã°æ
+å ±ã¯ï¼ã«ã¼ãã«å
+ã®ã­ã°ãããã¡ã«æ¸ãè¾¼ããï¼ä½ã¬ãã«ã®æå­åº
+ *  åé¢æ°ãç¨ãã¦åºåããï¼ã©ã¡ããä½¿ããã¯ï¼æ¡å¼µãµã¼ãã¹ã³ã¼ã«ã§åã
+ *  æãããã¨ãã§ããï¼
+ *
+ *  ã­ã°ãããã¡é åããªã¼ããã­ã¼ããå ´åã«ã¯ï¼å¤ãã­ã°æ
+å ±ãæ¶ãã¦ä¸
+ *  æ¸ãããï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ãããã¨ã§ï¼ãã¯ã­å®ç¾©ä»¥å¤ã®è¨è¿°ã
+ *  é¤ããã¨ãã§ããï¼
+ *
+ *  ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããåã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããã¦ã
+ *  ããã¨ãå¿
+è¦ã§ããï¼
+ */
+
+#ifndef TOPPERS_T_SYSLOG_H
+#define TOPPERS_T_SYSLOG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã­ã°æ
+å ±ã®ç¨®å¥ã®å®ç¾©
+ */
+#define LOG_TYPE_COMMENT	UINT_C(0x01)	/* ã³ã¡ã³ã */
+#define LOG_TYPE_ASSERT		UINT_C(0x02)	/* ã¢ãµã¼ã·ã§ã³ã®å¤±æ */
+
+#define LOG_TYPE_INH		UINT_C(0x11)	/* å²è¾¼ã¿ãã³ãã© */
+#define LOG_TYPE_ISR		UINT_C(0x12)	/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ */
+#define LOG_TYPE_CYC		UINT_C(0x13)	/* å¨æãã³ãã© */
+#define LOG_TYPE_ALM		UINT_C(0x14)	/* ã¢ã©ã¼ã ãã³ãã© */
+#define LOG_TYPE_OVR		UINT_C(0x15)	/* ãªã¼ãã©ã³ãã³ãã© */
+#define LOG_TYPE_EXC		UINT_C(0x16)	/* CPUä¾å¤ãã³ãã© */
+#define LOG_TYPE_TEX		UINT_C(0x17)	/* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ */
+#define LOG_TYPE_TSKSTAT	UINT_C(0x18)	/* ã¿ã¹ã¯ç¶æ
+å¤å */
+#define LOG_TYPE_DSP		UINT_C(0x19)	/* ãã£ã¹ãããã£ */
+#define LOG_TYPE_SVC		UINT_C(0x1a)	/* ãµã¼ãã¹ã³ã¼ã« */
+
+#define LOG_ENTER			UINT_C(0x00)	/* å
+¥å£ï¼éå§ */
+#define LOG_LEAVE			UINT_C(0x80)	/* åºå£ï¼çµäº */
+
+/*
+ *  ã­ã°æ
+å ±ã®éè¦åº¦ã®å®ç¾©
+ */
+#define LOG_EMERG			UINT_C(0)		/* ã·ã£ãããã¦ã³ã«å¤ããã¨ã©ã¼ */
+#define LOG_ALERT			UINT_C(1)
+#define LOG_CRIT			UINT_C(2)
+#define LOG_ERROR			UINT_C(3)		/* ã·ã¹ãã ã¨ã©ã¼ */
+#define LOG_WARNING			UINT_C(4)		/* è­¦åã¡ãã»ã¼ã¸ */
+#define LOG_NOTICE			UINT_C(5)
+#define LOG_INFO			UINT_C(6)
+#define LOG_DEBUG			UINT_C(7)		/* ãããã°ç¨ã¡ãã»ã¼ã¸ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã­ã°æ
+å ±ã®ãã¼ã¿æ§é 
+ */
+
+#define TMAX_LOGINFO	6
+
+typedef struct {
+	uint_t		logtype;				/* ã­ã°æ
+å ±ã®ç¨®å¥ */
+	SYSTIM		logtim;					/* ã­ã°æå» */
+	intptr_t	loginfo[TMAX_LOGINFO];	/* ãã®ä»ã®ã­ã°æ
+å ± */
+} SYSLOG;
+
+/*
+ *  ã­ã°æ
+å ±ã®éè¦åº¦ã®ãããããããä½ãããã®ãã¯ã­
+ */
+#define LOG_MASK(prio)		(1U << (prio))
+#define LOG_UPTO(prio)		((1U << ((prio) + 1)) - 1)
+
+/*
+ *  ãã±ããå½¢å¼ã®å®ç¾©
+ */
+typedef struct t_syslog_rlog {
+	uint_t	count;		/* ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
+	uint_t	lost;		/* å¤±ãããã­ã°ã®æ° */
+	uint_t	logmask;	/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+	uint_t	lowmask;	/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ */
+} T_SYSLOG_RLOG;
+
+/*
+ *  ã­ã°æ
+å ±ãåºåããããã®ã©ã¤ãã©ãªé¢æ°
+ */
+
+#ifndef TOPPERS_OMIT_SYSLOG
+
+extern ER	syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
+
+Inline void
+_syslog_0(uint_t prio, uint_t type)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	logbuf.loginfo[1] = arg2;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+														intptr_t arg3)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	logbuf.loginfo[1] = arg2;
+	logbuf.loginfo[2] = arg3;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+										intptr_t arg3, intptr_t arg4)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	logbuf.loginfo[1] = arg2;
+	logbuf.loginfo[2] = arg3;
+	logbuf.loginfo[3] = arg4;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+							intptr_t arg3, intptr_t arg4, intptr_t arg5)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	logbuf.loginfo[1] = arg2;
+	logbuf.loginfo[2] = arg3;
+	logbuf.loginfo[3] = arg4;
+	logbuf.loginfo[4] = arg5;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+Inline void
+_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+				intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
+{
+	SYSLOG	logbuf;
+
+	logbuf.logtype = type;
+	logbuf.loginfo[0] = arg1;
+	logbuf.loginfo[1] = arg2;
+	logbuf.loginfo[2] = arg3;
+	logbuf.loginfo[3] = arg4;
+	logbuf.loginfo[4] = arg5;
+	logbuf.loginfo[5] = arg6;
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+/*
+ *  ã­ã°æ
+å ±ï¼ã³ã¡ã³ãï¼ãåºåããããã®ã©ã¤ãã©ãªé¢æ°ï¼vasyslog.cï¼
+ */
+extern void	syslog(uint_t prio, const char *format, ...) throw();
+
+#else /* TOPPERS_OMIT_SYSLOG */
+
+/*
+ *  ã·ã¹ãã ã­ã°åºåãææ­¢ããå ´å
+ */
+
+Inline void
+_syslog_0(uint_t prio, uint_t type)
+{
+}
+
+Inline void
+_syslog_1(uint_t prio, uint_t type, intptr_t arg1)
+{
+}
+
+Inline void
+_syslog_2(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2)
+{
+}
+
+Inline void
+_syslog_3(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+														intptr_t arg3)
+{
+}
+
+Inline void
+_syslog_4(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+										intptr_t arg3, intptr_t arg4)
+{
+}
+
+Inline void
+_syslog_5(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+							intptr_t arg3, intptr_t arg4, intptr_t arg5)
+{
+}
+
+Inline void
+_syslog_6(uint_t prio, uint_t type, intptr_t arg1, intptr_t arg2,
+				intptr_t arg3, intptr_t arg4, intptr_t arg5, intptr_t arg6)
+{
+}
+
+Inline void
+syslog(uint_t prio, const char *format, ...)
+{
+}
+
+#endif /* TOPPERS_OMIT_SYSLOG */
+
+/*
+ *  ã­ã°æ
+å ±ï¼ã³ã¡ã³ãï¼ãåºåããããã®ãã¯ã­
+ *
+ *  formatããã³å¾ç¶ã®å¼æ°ããä½æããã¡ãã»ã¼ã¸ãï¼éå¤§åº¦prioã§ã­ã°æ
+
+ *  å ±ã¨ãã¦åºåããããã®ãã¯ã­ï¼arg1ï½argnã¯intptr_tåã«ã­ã£ã¹ããã
+ *  ããï¼intptr_tåã«åå¤æã§ããä»»æã®åã§ããï¼
+ */
+
+#define syslog_0(prio, format) \
+				_syslog_1(prio, LOG_TYPE_COMMENT, (intptr_t)(format))
+
+#define syslog_1(prio, format, arg1) \
+				_syslog_2(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
+														(intptr_t)(arg1))
+
+#define syslog_2(prio, format, arg1, arg2) \
+				_syslog_3(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
+										(intptr_t)(arg1), (intptr_t)(arg2))
+
+#define syslog_3(prio, format, arg1, arg2, arg3) \
+				_syslog_4(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
+						(intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3))
+
+#define syslog_4(prio, format, arg1, arg2, arg3, arg4) \
+				_syslog_5(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
+						(intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
+														(intptr_t)(arg4))
+
+#define syslog_5(prio, format, arg1, arg2, arg3, arg4, arg5) \
+				_syslog_6(prio, LOG_TYPE_COMMENT, (intptr_t)(format), \
+						(intptr_t)(arg1), (intptr_t)(arg2), (intptr_t)(arg3), \
+										(intptr_t)(arg4), (intptr_t)(arg5))
+
+/*
+ *  ã­ã°æ
+å ±ï¼ã¢ãµã¼ã·ã§ã³ã®å¤±æï¼ãåºåããããã®ãã¯ã­
+ */
+#ifndef TOPPERS_assert_fail
+#define TOPPERS_assert_fail(exp, file, line) \
+				_syslog_3(LOG_EMERG, LOG_TYPE_ASSERT, (intptr_t)(file), \
+										(intptr_t)(line), (intptr_t)(exp))
+#endif /* TOPPERS_assert_fail */
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_T_SYSLOG_H */
Index: rubycfg_asp/trunk/asp_dcre/include/test_lib.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/include/test_lib.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/include/test_lib.h	(revision 313)
@@ -0,0 +1,168 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãª
+ */
+
+#ifndef TOPPERS_TEST_LIB_H
+#define TOPPERS_TEST_LIB_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <t_stddef.h>
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *	èªå·±è¨ºæ­é¢æ°ã®å
+ */
+typedef ER (*BIT_FUNC)(void);
+
+/*
+ *	èªå·±è¨ºæ­é¢æ°ã®è¨­å®
+ */
+extern void	set_bit_func(BIT_FUNC bit_func);
+
+/*
+ *  ãã¹ããã­ã°ã©ã ã®éå§
+ */
+extern void	test_start(char *progname);
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®åºåå¦ç
+ */
+extern void	syslog_flush(void);
+
+/*
+ *	ãã¹ããã­ã°ã©ã ã®çµäº
+ */
+extern void	test_finish(void);
+
+/*
+ *	ãã§ãã¯ãã¤ã³ã
+ */
+extern void	check_point(uint_t count);
+
+/*
+ *	å®äºãã§ãã¯ãã¤ã³ã
+ */
+extern void	check_finish(uint_t count);
+
+/*
+ *	æ¡ä»¶ãã§ãã¯
+ */
+extern void	_check_assert(const char *expr, const char *file, int_t line);
+#define check_assert(exp) \
+	((void)(!(exp) ? (_check_assert(#exp, __FILE__, __LINE__), 0) : 0))
+
+/*
+ *	ã¨ã©ã¼ã³ã¼ããã§ãã¯
+ */
+extern void	_check_ercd(ER ercd, const char *file, int_t line);
+#define check_ercd(ercd, expected_ercd) \
+	((void)((ercd) != (expected_ercd) ? \
+					(_check_ercd(ercd, __FILE__, __LINE__), 0) : 0))
+
+/*
+ *	ã·ã¹ãã ç¶æ
+ã®ãã§ãã¯
+ */
+Inline void
+check_state(bool_t ctx, bool_t loc, PRI ipm, bool_t dsp,
+										bool_t dpn, bool_t tex)
+{
+	PRI		intpri;
+	ER		ercd;
+
+	check_assert(sns_ctx() == ctx);
+	check_assert(sns_loc() == loc);
+	if (!loc) {
+		/*
+		 *  IPMã®ãã§ãã¯ã¯ï¼CPUã­ãã¯è§£é¤ç¶æ
+ã®å ´åã«ã®ã¿è¡ãï¼
+		 */
+		ercd = get_ipm(&intpri);
+		check_ercd(ercd, E_OK);
+		check_assert(intpri == ipm);
+	}
+	check_assert(sns_dsp() == dsp);
+	check_assert(sns_dpn() == dpn);
+	check_assert(sns_tex() == tex);
+}
+
+/*
+ *	ã·ã¹ãã ç¶æ
+ã®ãã§ãã¯ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+Inline void
+check_state_i(bool_t ctx, bool_t loc, bool_t dsp, bool_t dpn, bool_t tex)
+{
+	check_assert(sns_ctx() == ctx);
+	check_assert(sns_loc() == loc);
+	check_assert(sns_dsp() == dsp);
+	check_assert(sns_dpn() == dpn);
+	check_assert(sns_tex() == tex);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_TEST_LIB_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/Makefile.kernel
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/Makefile.kernel	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/Makefile.kernel	(revision 313)
@@ -0,0 +1,155 @@
+#
+#  TOPPERS/ASP Kernel
+#      Toyohashi Open Platform for Embedded Real-Time Systems/
+#      Advanced Standard Profile Kernel
+# 
+#  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  @(#) $Id: Makefile.kernel 2414 2012-09-05 21:32:05Z ertl-hiro $
+# 
+
+#
+#		ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#
+
+#
+#  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãçæããããã«ä½
+#  æãããã½ã¼ã¹ãã¡ã¤ã«ã®ãªã¹ã
+#
+KERNEL_FCSRCS = startup.c task.c wait.c time_event.c \
+				task_manage.c task_refer.c task_sync.c task_except.c \
+				semaphore.c eventflag.c dataqueue.c pridataq.c mailbox.c \
+				mempfix.c time_manage.c cyclic.c alarm.c \
+				sys_manage.c interrupt.c exception.c
+
+#
+#  åã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ã®ãªã¹ã
+#
+startup = sta_ker.o ext_ker.o kermem.o
+
+task = tskini.o tsksched.o tskrun.o tsknrun.o \
+		tskdmt.o tskact.o tskpri.o tskrot.o tsktex.o
+
+wait = waimake.o waicmp.o waitmo.o waitmook.o \
+		wairel.o wobjwai.o wobjwaitmo.o iniwque.o
+
+time_event = tmeini.o tmeup.o tmedown.o tmeins.o tmedel.o tmeltim.o sigtim.o
+
+task_manage = acre_tsk.o del_tsk.o act_tsk.o iact_tsk.o can_act.o \
+		ext_tsk.o ter_tsk.o chg_pri.o get_pri.o get_inf.o
+
+task_refer = ref_tsk.o
+
+task_sync = slp_tsk.o tslp_tsk.o wup_tsk.o iwup_tsk.o can_wup.o \
+		rel_wai.o irel_wai.o sus_tsk.o rsm_tsk.o dly_tsk.o
+
+task_except = def_tex.o ras_tex.o iras_tex.o dis_tex.o ena_tex.o \
+		sns_tex.o ref_tex.o
+
+semaphore = semini.o acre_sem.o del_sem.o sig_sem.o isig_sem.o \
+		wai_sem.o pol_sem.o twai_sem.o ini_sem.o ref_sem.o
+
+eventflag = flgini.o flgcnd.o acre_flg.o del_flg.o set_flg.o iset_flg.o \
+		clr_flg.o wai_flg.o pol_flg.o twai_flg.o ini_flg.o ref_flg.o
+
+dataqueue = dtqini.o dtqenq.o dtqfenq.o dtqdeq.o dtqsnd.o dtqfsnd.o dtqrcv.o \
+		acre_dtq.o del_dtq.o snd_dtq.o psnd_dtq.o ipsnd_dtq.o tsnd_dtq.o \
+		fsnd_dtq.o ifsnd_dtq.o rcv_dtq.o prcv_dtq.o trcv_dtq.o ini_dtq.o \
+		ref_dtq.o
+
+pridataq = pdqini.o pdqenq.o pdqdeq.o pdqsnd.o pdqrcv.o \
+		acre_pdq.o del_pdq.o snd_pdq.o psnd_pdq.o ipsnd_pdq.o tsnd_pdq.o \
+		rcv_pdq.o prcv_pdq.o trcv_pdq.o ini_pdq.o ref_pdq.o
+
+mailbox = mbxini.o acre_mbx.o del_mbx.o snd_mbx.o rcv_mbx.o \
+		prcv_mbx.o trcv_mbx.o ini_mbx.o ref_mbx.o
+
+mempfix = mpfini.o mpfget.o acre_mpf.o del_mpf.o get_mpf.o \
+		pget_mpf.o tget_mpf.o rel_mpf.o ini_mpf.o ref_mpf.o
+
+time_manage = get_tim.o get_utm.o
+
+cyclic = cycini.o acre_cyc.o del_cyc.o sta_cyc.o stp_cyc.o ref_cyc.o cyccal.o
+
+alarm = almini.o acre_alm.o del_alm.o sta_alm.o ista_alm.o stp_alm.o \
+		istp_alm.o ref_alm.o almcal.o
+
+sys_manage = rot_rdq.o irot_rdq.o get_tid.o iget_tid.o \
+		loc_cpu.o iloc_cpu.o unl_cpu.o iunl_cpu.o dis_dsp.o ena_dsp.o \
+		sns_ctx.o sns_loc.o sns_dsp.o sns_dpn.o sns_ker.o
+
+interrupt = isrini.o isrcal.o acre_isr.o del_isr.o \
+		intini.o dis_int.o ena_int.o chg_ipm.o get_ipm.o
+
+exception = excini.o xsns_dpn.o xsns_xpn.o
+
+#
+#  çæããããªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾å­é¢ä¿ã®å®ç¾©
+#
+$(startup) $(startup:.o=.s) $(startup:.o=.d): startup.c
+$(task) $(task:.o=.s) $(task:.o=.d): task.c
+$(wait) $(wait:.o=.s) $(wait:.o=.d): wait.c
+$(time_event) $(time_event:.o=.s) $(time_event:.o=.d): time_event.c
+$(task_manage) $(task_manage:.o=.s) $(task_manage:.o=.d): task_manage.c
+$(task_refer) $(task_refer:.o=.s) $(task_refer:.o=.d): task_refer.c
+$(task_sync) $(task_sync:.o=.s) $(task_sync:.o=.d): task_sync.c
+$(task_except) $(task_except:.o=.s) $(task_except:.o=.d): task_except.c
+$(semaphore) $(semaphore:.o=.s) $(semaphore:.o=.d): semaphore.c
+$(eventflag) $(eventflag:.o=.s) $(eventflag:.o=.d): eventflag.c
+$(dataqueue) $(dataqueue:.o=.s) $(dataqueue:.o=.d): dataqueue.c
+$(pridataq) $(pridataq:.o=.s) $(pridataq:.o=.d): pridataq.c
+$(mailbox) $(mailbox:.o=.s) $(mailbox:.o=.d): mailbox.c
+$(mempfix) $(mempfix:.o=.s) $(mempfix:.o=.d): mempfix.c
+$(time_manage) $(time_manage:.o=.s) $(time_manage:.o=.d): time_manage.c
+$(cyclic) $(cyclic:.o=.s) $(cyclic:.o=.d): cyclic.c
+$(alarm) $(alarm:.o=.s) $(alarm:.o=.d): alarm.c
+$(sys_manage) $(sys_manage:.o=.s) $(sys_manage:.o=.d): sys_manage.c
+$(interrupt) $(interrupt:.o=.s) $(interrupt:.o=.d): interrupt.c
+$(exception) $(exception:.o=.s) $(exception:.o=.d): exception.c
Index: rubycfg_asp/trunk/asp_dcre/kernel/alarm.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/alarm.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/alarm.c	(revision 313)
@@ -0,0 +1,497 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¢ã©ã¼ã ãã³ãã©æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "alarm.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ALM_ENTER
+#define LOG_ALM_ENTER(p_almcb)
+#endif /* LOG_ALM_ENTER */
+
+#ifndef LOG_ALM_LEAVE
+#define LOG_ALM_LEAVE(p_almcb)
+#endif /* LOG_ALM_LEAVE */
+
+#ifndef LOG_ACRE_ALM_ENTER
+#define LOG_ACRE_ALM_ENTER(pk_calm)
+#endif /* LOG_ACRE_ALM_ENTER */
+
+#ifndef LOG_ACRE_ALM_LEAVE
+#define LOG_ACRE_ALM_LEAVE(ercd)
+#endif /* LOG_ACRE_ALM_LEAVE */
+
+#ifndef LOG_DEL_ALM_ENTER
+#define LOG_DEL_ALM_ENTER(almid)
+#endif /* LOG_DEL_ALM_ENTER */
+
+#ifndef LOG_DEL_ALM_LEAVE
+#define LOG_DEL_ALM_LEAVE(ercd)
+#endif /* LOG_DEL_ALM_LEAVE */
+
+#ifndef LOG_STA_ALM_ENTER
+#define LOG_STA_ALM_ENTER(almid, almtim)
+#endif /* LOG_STA_ALM_ENTER */
+
+#ifndef LOG_STA_ALM_LEAVE
+#define LOG_STA_ALM_LEAVE(ercd)
+#endif /* LOG_STA_ALM_LEAVE */
+
+#ifndef LOG_ISTA_ALM_ENTER
+#define LOG_ISTA_ALM_ENTER(almid, almtim)
+#endif /* LOG_ISTA_ALM_ENTER */
+
+#ifndef LOG_ISTA_ALM_LEAVE
+#define LOG_ISTA_ALM_LEAVE(ercd)
+#endif /* LOG_ISTA_ALM_LEAVE */
+
+#ifndef LOG_STP_ALM_ENTER
+#define LOG_STP_ALM_ENTER(almid)
+#endif /* LOG_STP_ALM_ENTER */
+
+#ifndef LOG_STP_ALM_LEAVE
+#define LOG_STP_ALM_LEAVE(ercd)
+#endif /* LOG_STP_ALM_LEAVE */
+
+#ifndef LOG_ISTP_ALM_ENTER
+#define LOG_ISTP_ALM_ENTER(almid)
+#endif /* LOG_ISTP_ALM_ENTER */
+
+#ifndef LOG_ISTP_ALM_LEAVE
+#define LOG_ISTP_ALM_LEAVE(ercd)
+#endif /* LOG_ISTP_ALM_LEAVE */
+
+#ifndef LOG_REF_ALM_ENTER
+#define LOG_REF_ALM_ENTER(almid, pk_ralm)
+#endif /* LOG_REF_ALM_ENTER */
+
+#ifndef LOG_REF_ALM_LEAVE
+#define LOG_REF_ALM_LEAVE(ercd, pk_ralm)
+#endif /* LOG_REF_ALM_LEAVE */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®æ°
+ */
+#define tnum_alm	((uint_t)(tmax_almid - TMIN_ALMID + 1))
+#define tnum_salm	((uint_t)(tmax_salmid - TMIN_ALMID + 1))
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©IDããã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_ALM(almid)	((uint_t)((almid) - TMIN_ALMID))
+#define get_almcb(almid)	(&(almcb_table[INDEX_ALM(almid)]))
+
+#ifdef TOPPERS_almini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ *
+ *  ã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ã®å
+é ­ã«ã¯ã­ã¥ã¼ã«ã¤ãªãããã®é åããª
+ *  ãããï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ï¼tmevtbï¼ã®é åãç¨ããï¼
+ */
+QUEUE	free_almcb;
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©æ©è½ã®åæå
+ */
+void
+initialize_alarm(void)
+{
+	uint_t	i, j;
+	ALMCB	*p_almcb;
+	ALMINIB	*p_alminib;
+
+	for (i = 0; i < tnum_salm; i++) {
+		p_almcb = &(almcb_table[i]);
+		p_almcb->p_alminib = &(alminib_table[i]);
+		p_almcb->almsta = false;
+	}
+	queue_initialize(&free_almcb);
+	for (j = 0; i < tnum_alm; i++, j++) {
+		p_almcb = &(almcb_table[i]);
+		p_alminib = &(aalminib_table[j]);
+		p_alminib->almatr = TA_NOEXS;
+		p_almcb->p_alminib = ((const ALMINIB *) p_alminib);
+		queue_insert_prev(&free_almcb, ((QUEUE *) &(p_almcb->tmevtb)));
+	}
+}
+
+#endif /* TOPPERS_almini */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®çæ
+ */
+#ifdef TOPPERS_acre_alm
+
+ER_UINT
+acre_alm(const T_CALM *pk_calm)
+{
+	ALMCB	*p_almcb;
+	ALMINIB	*p_alminib;
+	ER		ercd;
+
+	LOG_ACRE_ALM_ENTER(pk_calm);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_calm->almatr, TA_NULL);
+	CHECK_ALIGN_FUNC(pk_calm->almhdr);
+	CHECK_NONNULL_FUNC(pk_calm->almhdr);
+
+	t_lock_cpu();
+	if (tnum_alm == 0 || queue_empty(&free_almcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_almcb = ((ALMCB *)(((char *) queue_delete_next(&free_almcb))
+												- offsetof(ALMCB, tmevtb)));
+		p_alminib = (ALMINIB *)(p_almcb->p_alminib);
+		p_alminib->almatr = pk_calm->almatr;
+		p_alminib->exinf = pk_calm->exinf;
+		p_alminib->almhdr = pk_calm->almhdr;
+
+		p_almcb->almsta = false;
+		ercd = ALMID(p_almcb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®åé¤
+ */
+#ifdef TOPPERS_del_alm
+
+ER
+del_alm(ID almid)
+{
+	ALMCB	*p_almcb;
+	ALMINIB	*p_alminib;
+	ER		ercd;
+
+	LOG_DEL_ALM_ENTER(almid);
+	CHECK_TSKCTX_UNL();
+	CHECK_ALMID(almid);
+	p_almcb = get_almcb(almid);
+
+	t_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (ALMID(p_almcb) > tmax_salmid) {
+		if (p_almcb->almsta) {
+			p_almcb->almsta = false;
+			tmevtb_dequeue(&(p_almcb->tmevtb));
+		}
+
+		p_alminib = (ALMINIB *)(p_almcb->p_alminib);
+		p_alminib->almatr = TA_NOEXS;
+		queue_insert_prev(&free_almcb, ((QUEUE *) &(p_almcb->tmevtb)));
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®åä½éå§
+ */
+#ifdef TOPPERS_sta_alm
+
+ER
+sta_alm(ID almid, RELTIM almtim)
+{
+	ALMCB	*p_almcb;
+	ER		ercd;
+
+	LOG_STA_ALM_ENTER(almid, almtim);
+	CHECK_TSKCTX_UNL();
+	CHECK_ALMID(almid);
+	CHECK_PAR(almtim <= TMAX_RELTIM);
+	p_almcb = get_almcb(almid);
+
+	t_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_almcb->almsta) {
+			tmevtb_dequeue(&(p_almcb->tmevtb));
+		}
+		else {
+			p_almcb->almsta = true;
+		}
+		tmevtb_enqueue(&(p_almcb->tmevtb), almtim,
+									(CBACK) call_almhdr, (void *) p_almcb);
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_STA_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_sta_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®åä½éå§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_ista_alm
+
+ER
+ista_alm(ID almid, RELTIM almtim)
+{
+	ALMCB	*p_almcb;
+	ER		ercd;
+
+	LOG_ISTA_ALM_ENTER(almid, almtim);
+	CHECK_INTCTX_UNL();
+	CHECK_ALMID(almid);
+	CHECK_PAR(almtim <= TMAX_RELTIM);
+	p_almcb = get_almcb(almid);
+
+	i_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_almcb->almsta) {
+			tmevtb_dequeue(&(p_almcb->tmevtb));
+		}
+		else {
+			p_almcb->almsta = true;
+		}
+		tmevtb_enqueue(&(p_almcb->tmevtb), almtim,
+									(CBACK) call_almhdr, (void *) p_almcb);
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_ISTA_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ista_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®åä½åæ­¢
+ */
+#ifdef TOPPERS_stp_alm
+
+ER
+stp_alm(ID almid)
+{
+	ALMCB	*p_almcb;
+	ER		ercd;
+
+	LOG_STP_ALM_ENTER(almid);
+	CHECK_TSKCTX_UNL();
+	CHECK_ALMID(almid);
+	p_almcb = get_almcb(almid);
+
+	t_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_almcb->almsta) {
+			p_almcb->almsta = false;
+			tmevtb_dequeue(&(p_almcb->tmevtb));
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_STP_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_stp_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®åä½åæ­¢ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_istp_alm
+
+ER
+istp_alm(ID almid)
+{
+	ALMCB	*p_almcb;
+	ER		ercd;
+
+	LOG_ISTP_ALM_ENTER(almid);
+	CHECK_INTCTX_UNL();
+	CHECK_ALMID(almid);
+	p_almcb = get_almcb(almid);
+
+	i_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_almcb->almsta) {
+			p_almcb->almsta = false;
+			tmevtb_dequeue(&(p_almcb->tmevtb));
+		}
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_ISTP_ALM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_istp_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_alm
+
+ER
+ref_alm(ID almid, T_RALM *pk_ralm)
+{
+	ALMCB	*p_almcb;
+	ER		ercd;
+    
+	LOG_REF_ALM_ENTER(almid, pk_ralm);
+	CHECK_TSKCTX_UNL();
+	CHECK_ALMID(almid);
+	p_almcb = get_almcb(almid);
+
+	t_lock_cpu();
+	if (p_almcb->p_alminib->almatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_almcb->almsta) {
+			pk_ralm->almstat = TALM_STA;
+			pk_ralm->lefttim = tmevt_lefttim(&(p_almcb->tmevtb));
+		}
+		else {
+			pk_ralm->almstat = TALM_STP;
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_ALM_LEAVE(ercd, pk_ralm);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_alm */
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©èµ·åã«ã¼ãã³
+ */
+#ifdef TOPPERS_almcal
+
+void
+call_almhdr(ALMCB *p_almcb)
+{
+	PRI		saved_ipm;
+
+	/*
+	 *  ã¢ã©ã¼ã ãã³ãã©ãåæ­¢ç¶æ
+ã«ããï¼
+	 */
+	p_almcb->almsta = false;
+
+	/*
+	 *  ã¢ã©ã¼ã ãã³ãã©ãï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãï¼
+	 */
+	saved_ipm = i_get_ipm();
+	i_unlock_cpu();
+
+	LOG_ALM_ENTER(p_almcb);
+	(*((ALMHDR)(p_almcb->p_alminib->almhdr)))(p_almcb->p_alminib->exinf);
+	LOG_ALM_LEAVE(p_almcb);
+
+	if (!i_sense_lock()) {
+		i_lock_cpu();
+	}
+	i_set_ipm(saved_ipm);
+}
+
+#endif /* TOPPERS_almcal */
Index: rubycfg_asp/trunk/asp_dcre/kernel/alarm.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/alarm.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/alarm.h	(revision 313)
@@ -0,0 +1,126 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¢ã©ã¼ã ãã³ãã©æ©è½
+ */
+
+#ifndef TOPPERS_ALARM_H
+#define TOPPERS_ALARM_H
+
+#include <queue.h>
+#include "time_event.h"
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©åæåãã­ãã¯
+ */
+typedef struct alarm_handler_initialization_block {
+	ATR			almatr;			/* ã¢ã©ã¼ã ãã³ãã©å±æ§ */
+	intptr_t	exinf;			/* ã¢ã©ã¼ã ãã³ãã©ã®æ¡å¼µæ
+å ± */
+	ALMHDR		almhdr;			/* ã¢ã©ã¼ã ãã³ãã©ã®èµ·åçªå° */
+} ALMINIB;
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯
+ */
+typedef struct alarm_handler_control_block {
+	const ALMINIB *p_alminib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	bool_t		almsta;			/* ã¢ã©ã¼ã ãã³ãã©ã®åä½ç¶æ
+ */
+	TMEVTB		tmevtb;			/* ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+} ALMCB;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_almcb;
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_almid;
+extern const ID	tmax_salmid;
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const ALMINIB	alminib_table[];
+extern ALMINIB			aalminib_table[];
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern ALMCB	almcb_table[];
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©ç®¡çãã­ãã¯ããã¢ã©ã¼ã ãã³ãã©IDãåãåºãããã®
+ *  ãã¯ã­
+ */
+#define	ALMID(p_almcb)	((ID)(((p_almcb) - almcb_table) + TMIN_ALMID))
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©æ©è½ã®åæå
+ */
+extern void	initialize_alarm(void);
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©èµ·åã«ã¼ãã³
+ */
+extern void	call_almhdr(ALMCB *p_almcb);
+
+#endif /* TOPPERS_ALARM_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/alarm.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/alarm.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/alarm.trb	(revision 313)
@@ -0,0 +1,85 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: alarm.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+# 
+
+#
+#		ã¢ã©ã¼ã éç¥æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class AlarmObject < KernelObject
+  def initialize()
+    super("alm", "alarm")
+  end
+
+  def prepare(key, params)
+    # almatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2491ï¼½
+    #ï¼TA_STAä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:almatr] & ~($TA_STA)) != 0
+      error_illegal_id("E_RSATR", params, :almatr, :almid)
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:almatr]}), (intptr_t)(#{params[:almid].val - 1}), #{params[:almhdr]}")
+  end
+end
+
+#
+#  ã¢ã©ã¼ã éç¥ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Alarm Handler Functions")
+AlarmObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/allfunc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/allfunc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/allfunc.h	(revision 313)
@@ -0,0 +1,280 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¹ã¦ã®é¢æ°ãã³ã³ãã¤ã«ããããã®å®ç¾©
+ */
+
+#ifndef TOPPERS_ALLFUNC_H
+#define TOPPERS_ALLFUNC_H
+
+/* startup.c */
+#define TOPPERS_sta_ker
+#define TOPPERS_ext_ker
+#define TOPPERS_kermem
+
+/* task.c */
+#define TOPPERS_tskini
+#define TOPPERS_tsksched
+#define TOPPERS_tskrun
+#define TOPPERS_tsknrun
+#define TOPPERS_tskdmt
+#define TOPPERS_tskact
+#define TOPPERS_tskpri
+#define TOPPERS_tskrot
+#define TOPPERS_tsktex
+
+/* wait.c */
+#define TOPPERS_waimake
+#define TOPPERS_waicmp
+#define TOPPERS_waitmo
+#define TOPPERS_waitmook
+#define TOPPERS_wairel
+#define TOPPERS_wobjwai
+#define TOPPERS_wobjwaitmo
+#define TOPPERS_iniwque
+
+/* time_event.c */
+#define TOPPERS_tmeini
+#define TOPPERS_tmeup
+#define TOPPERS_tmedown
+#define TOPPERS_tmeins
+#define TOPPERS_tmedel
+#define TOPPERS_tmeltim
+#define TOPPERS_sigtim
+
+/* task_manage.c */
+#define TOPPERS_acre_tsk
+#define TOPPERS_del_tsk
+#define TOPPERS_act_tsk
+#define TOPPERS_iact_tsk
+#define TOPPERS_can_act
+#define TOPPERS_ext_tsk
+#define TOPPERS_ter_tsk
+#define TOPPERS_chg_pri
+#define TOPPERS_get_pri
+#define TOPPERS_get_inf
+
+/* task_refer.c */
+#define TOPPERS_ref_tsk
+
+/* task_sync.c */
+#define TOPPERS_slp_tsk
+#define TOPPERS_tslp_tsk
+#define TOPPERS_wup_tsk
+#define TOPPERS_iwup_tsk
+#define TOPPERS_can_wup
+#define TOPPERS_rel_wai
+#define TOPPERS_irel_wai
+#define TOPPERS_sus_tsk
+#define TOPPERS_rsm_tsk
+#define TOPPERS_dly_tsk
+
+/* task_except.c */
+#define TOPPERS_def_tex
+#define TOPPERS_ras_tex
+#define TOPPERS_iras_tex
+#define TOPPERS_dis_tex
+#define TOPPERS_ena_tex
+#define TOPPERS_sns_tex
+#define TOPPERS_ref_tex
+
+/* semaphore.c */
+#define TOPPERS_semini
+#define TOPPERS_acre_sem
+#define TOPPERS_del_sem
+#define TOPPERS_sig_sem
+#define TOPPERS_isig_sem
+#define TOPPERS_wai_sem
+#define TOPPERS_pol_sem
+#define TOPPERS_twai_sem
+#define TOPPERS_ini_sem
+#define TOPPERS_ref_sem
+
+/* eventflag.c */
+#define TOPPERS_flgini
+#define TOPPERS_flgcnd
+#define TOPPERS_acre_flg
+#define TOPPERS_del_flg
+#define TOPPERS_set_flg
+#define TOPPERS_iset_flg
+#define TOPPERS_clr_flg
+#define TOPPERS_wai_flg
+#define TOPPERS_pol_flg
+#define TOPPERS_twai_flg
+#define TOPPERS_ini_flg
+#define TOPPERS_ref_flg
+
+/* dataqueue.c */
+#define TOPPERS_dtqini
+#define TOPPERS_dtqenq
+#define TOPPERS_dtqfenq
+#define TOPPERS_dtqdeq
+#define TOPPERS_dtqsnd
+#define TOPPERS_dtqfsnd
+#define TOPPERS_dtqrcv
+#define TOPPERS_acre_dtq
+#define TOPPERS_del_dtq
+#define TOPPERS_snd_dtq
+#define TOPPERS_psnd_dtq
+#define TOPPERS_ipsnd_dtq
+#define TOPPERS_tsnd_dtq
+#define TOPPERS_fsnd_dtq
+#define TOPPERS_ifsnd_dtq
+#define TOPPERS_rcv_dtq
+#define TOPPERS_prcv_dtq
+#define TOPPERS_trcv_dtq
+#define TOPPERS_ini_dtq
+#define TOPPERS_ref_dtq
+
+/* pridataq.c */
+#define TOPPERS_pdqini
+#define TOPPERS_pdqenq
+#define TOPPERS_pdqdeq
+#define TOPPERS_pdqsnd
+#define TOPPERS_pdqrcv
+#define TOPPERS_acre_pdq
+#define TOPPERS_del_pdq
+#define TOPPERS_snd_pdq
+#define TOPPERS_psnd_pdq
+#define TOPPERS_ipsnd_pdq
+#define TOPPERS_tsnd_pdq
+#define TOPPERS_rcv_pdq
+#define TOPPERS_prcv_pdq
+#define TOPPERS_trcv_pdq
+#define TOPPERS_ini_pdq
+#define TOPPERS_ref_pdq
+
+/* mailbox.c */
+#define TOPPERS_mbxini
+#define TOPPERS_acre_mbx
+#define TOPPERS_del_mbx
+#define TOPPERS_snd_mbx
+#define TOPPERS_rcv_mbx
+#define TOPPERS_prcv_mbx
+#define TOPPERS_trcv_mbx
+#define TOPPERS_ini_mbx
+#define TOPPERS_ref_mbx
+
+/* mempfix.c */
+#define TOPPERS_mpfini
+#define TOPPERS_mpfget
+#define TOPPERS_acre_mpf
+#define TOPPERS_del_mpf
+#define TOPPERS_get_mpf
+#define TOPPERS_pget_mpf
+#define TOPPERS_tget_mpf
+#define TOPPERS_rel_mpf
+#define TOPPERS_ini_mpf
+#define TOPPERS_ref_mpf
+
+/* time_manage.c */
+#define TOPPERS_get_tim
+#define TOPPERS_get_utm
+
+/* cyclic.c */
+#define TOPPERS_cycini
+#define TOPPERS_acre_cyc
+#define TOPPERS_del_cyc
+#define TOPPERS_sta_cyc
+#define TOPPERS_stp_cyc
+#define TOPPERS_ref_cyc
+#define TOPPERS_cyccal
+
+/* alarm.c */
+#define TOPPERS_almini
+#define TOPPERS_acre_alm
+#define TOPPERS_del_alm
+#define TOPPERS_sta_alm
+#define TOPPERS_ista_alm
+#define TOPPERS_stp_alm
+#define TOPPERS_istp_alm
+#define TOPPERS_ref_alm
+#define TOPPERS_almcal
+
+/* sys_manage.c */
+#define TOPPERS_rot_rdq
+#define TOPPERS_irot_rdq
+#define TOPPERS_get_tid
+#define TOPPERS_iget_tid
+#define TOPPERS_loc_cpu
+#define TOPPERS_iloc_cpu
+#define TOPPERS_unl_cpu
+#define TOPPERS_iunl_cpu
+#define TOPPERS_dis_dsp
+#define TOPPERS_ena_dsp
+#define TOPPERS_sns_ctx
+#define TOPPERS_sns_loc
+#define TOPPERS_sns_dsp
+#define TOPPERS_sns_dpn
+#define TOPPERS_sns_ker
+
+/* interrupt.c */
+#define TOPPERS_isrini
+#define TOPPERS_isrcal
+#define TOPPERS_acre_isr
+#define TOPPERS_del_isr
+#define TOPPERS_intini
+#define TOPPERS_dis_int
+#define TOPPERS_ena_int
+#define TOPPERS_chg_ipm
+#define TOPPERS_get_ipm
+
+/* exception.c */
+#define TOPPERS_excini
+#define TOPPERS_xsns_dpn
+#define TOPPERS_xsns_xpn
+
+#endif /* TOPPERS_ALLFUNC_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/check.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/check.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/check.h	(revision 313)
@@ -0,0 +1,495 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¨ã©ã¼ãã§ãã¯ç¨ãã¯ã­
+ */
+
+#ifndef TOPPERS_CHECK_H
+#define TOPPERS_CHECK_H
+
+/*
+ *  äºç´å±æ§ã¨ã©ã¼ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_RSATR(atr, valid_atr) do {					\
+	if (((atr) & ~(valid_atr)) != 0U) {						\
+		ercd = E_RSATR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  åªå
+åº¦ã®ç¯å²ã®å¤å®
+ */
+#define VALID_TPRI(tpri)	(TMIN_TPRI <= (tpri) && (tpri) <= TMAX_TPRI)
+
+#define VALID_DPRI(dpri)	(TMIN_DPRI <= (dpri) && (dpri) <= TMAX_DPRI)
+
+#define VALID_MPRI(mpri)	(TMIN_MPRI <= (mpri) && (mpri) <= TMAX_MPRI)
+
+#define VALID_ISRPRI(isrpri) \
+				(TMIN_ISRPRI <= (isrpri) && (isrpri) <= TMAX_ISRPRI)
+
+#ifndef VALID_INTPRI_CHGIPM
+#define VALID_INTPRI_CHGIPM(intpri) \
+				(TMIN_INTPRI <= (intpri) && (intpri) <= TIPM_ENAALL)
+#endif /* VALID_INTPRI_CHGIPM */
+
+/*
+ *  ã¿ã¹ã¯åªå
+åº¦ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_TPRI(tpri) do {								\
+	if (!VALID_TPRI(tpri)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_TPRI_INI(tpri) do {							\
+	if (!(VALID_TPRI(tpri) || (tpri) == TPRI_INI)) {		\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_TPRI_SELF(tpri) do {							\
+	if (!(VALID_TPRI(tpri) || (tpri) == TPRI_SELF)) {		\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãã¼ã¿åªå
+åº¦ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_DPRI(dpri) do {								\
+	if (!VALID_DPRI(dpri)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ã¡ãã»ã¼ã¸åªå
+åº¦ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_MPRI(mpri) do {								\
+	if (!VALID_MPRI(mpri)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ISRPRI(isrpri) do {							\
+	if (!VALID_ISRPRI(isrpri)) {							\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãæå®å¤ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_TMOUT(tmout) do {								\
+	if (!(TMO_FEVR <= (tmout))) {							\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_INTPRI_CHGIPM(intpri) do {					\
+	if (!VALID_INTPRI_CHGIPM(intpri)) {						\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  å²è¾¼ã¿çªå·ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_INTNO_CREISR(intno) do {						\
+	if (!VALID_INTNO_CREISR(intno)) {						\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_INTNO_DISINT(intno) do {						\
+	if (!VALID_INTNO_DISINT(intno)) {						\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ã¢ã©ã¤ã³ãã¦ãããã®å¤å®
+ */
+#define ALIGNED(val, align)		((((uintptr_t)(val)) & ((align) - 1U)) == 0U)
+
+#ifdef CHECK_FUNC_ALIGN
+#define FUNC_ALIGNED(func)		ALIGNED(func, CHECK_FUNC_ALIGN)
+#else /* CHECK_FUNC_ALIGN */
+#define FUNC_ALIGNED(func)		true
+#endif /* CHECK_FUNC_ALIGN */
+
+#ifdef CHECK_STKSZ_ALIGN
+#define STKSZ_ALIGNED(stksz)	ALIGNED(stksz, CHECK_STKSZ_ALIGN)
+#else /* CHECK_STKSZ_ALIGN */
+#define STKSZ_ALIGNED(stksz)	true
+#endif /* CHECK_STKSZ_ALIGN */
+
+#ifdef CHECK_STACK_ALIGN
+#define STACK_ALIGNED(stack)	ALIGNED(stack, CHECK_STACK_ALIGN)
+#else /* CHECK_STACK_ALIGN */
+#define STACK_ALIGNED(stack)	true
+#endif /* CHECK_STACK_ALIGN */
+
+#ifdef CHECK_MPF_ALIGN
+#define MPF_ALIGNED(mpf)		ALIGNED(mpf, CHECK_MPF_ALIGN)
+#else /* CHECK_MPF_ALIGN */
+#define MPF_ALIGNED(mpf)		true
+#endif /* CHECK_MPF_ALIGN */
+
+#ifdef CHECK_MB_ALIGN
+#define MB_ALIGNED(mb)			ALIGNED(mb, CHECK_MB_ALIGN)
+#else /* CHECK_MB_ALIGN */
+#define MB_ALIGNED(mb)			true
+#endif /* CHECK_MB_ALIGN */
+
+/*
+ *  NULLã§ãªããã¨ã®ãã§ãã¯
+ */
+#ifdef CHECK_FUNC_NONNULL
+#define FUNC_NONNULL(func)		((func) != NULL)
+#else /* CHECK_FUNC_NONNULL */
+#define FUNC_NONNULL(func)		true
+#endif /* CHECK_FUNC_NONNULL */
+
+/*
+ *  é¢æ°ã®å
+é ­çªå°ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ALIGN_FUNC(func) do {							\
+	if (!FUNC_ALIGNED(func)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_NONNULL_FUNC(func) do {						\
+	if (!FUNC_NONNULL(func)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ã¹ã¿ãã¯ãµã¤ãºã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ALIGN_STKSZ(stksz) do {						\
+	if (!STKSZ_ALIGNED(stksz)) {							\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ã¹ã¿ãã¯ã®å
+é ­çªå°ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ALIGN_STACK(stack) do {						\
+	if (!STACK_ALIGNED(stack)) {							\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ALIGN_MPF(mpf) do {							\
+	if (!MPF_ALIGNED(mpf)) {								\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ç®¡çé åã®å
+é ­çªå°ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_ALIGN_MB(mb) do {								\
+	if (!MB_ALIGNED(mb)) {									\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãã®ä»ã®ãã©ã¡ã¼ã¿ã¨ã©ã¼ã®ãã§ãã¯ï¼E_PARï¼
+ */
+#define CHECK_PAR(exp) do {									\
+	if (!(exp)) {											\
+		ercd = E_PAR;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãªãã¸ã§ã¯ãIDã®ç¯å²ã®å¤å®
+ */
+#define VALID_TSKID(tskid)	(TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid)
+#define VALID_SEMID(semid)	(TMIN_SEMID <= (semid) && (semid) <= tmax_semid)
+#define VALID_FLGID(flgid)	(TMIN_FLGID <= (flgid) && (flgid) <= tmax_flgid)
+#define VALID_DTQID(dtqid)	(TMIN_DTQID <= (dtqid) && (dtqid) <= tmax_dtqid)
+#define VALID_PDQID(pdqid)	(TMIN_PDQID <= (pdqid) && (pdqid) <= tmax_pdqid)
+#define VALID_MBXID(mbxid)	(TMIN_MBXID <= (mbxid) && (mbxid) <= tmax_mbxid)
+#define VALID_MPFID(mpfid)	(TMIN_MPFID <= (mpfid) && (mpfid) <= tmax_mpfid)
+#define VALID_CYCID(cycid)	(TMIN_CYCID <= (cycid) && (cycid) <= tmax_cycid)
+#define VALID_ALMID(almid)	(TMIN_ALMID <= (almid) && (almid) <= tmax_almid)
+#define VALID_ISRID(isrid)	(TMIN_ISRID <= (isrid) && (isrid) <= tmax_isrid)
+
+/*
+ *  ãªãã¸ã§ã¯ãIDã®ãã§ãã¯ï¼E_IDï¼
+ */
+#define CHECK_TSKID(tskid) do {								\
+	if (!VALID_TSKID(tskid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_TSKID_SELF(tskid) do {						\
+	if (!(VALID_TSKID(tskid) || (tskid) == TSK_SELF)) {		\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_SEMID(semid) do {								\
+	if (!VALID_SEMID(semid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_FLGID(flgid) do {								\
+	if (!VALID_FLGID(flgid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_DTQID(dtqid) do {								\
+	if (!VALID_DTQID(dtqid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_PDQID(pdqid) do {								\
+	if (!VALID_PDQID(pdqid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_MBXID(mbxid) do {								\
+	if (!VALID_MBXID(mbxid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_MPFID(mpfid) do {								\
+	if (!VALID_MPFID(mpfid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_CYCID(cycid) do {								\
+	if (!VALID_CYCID(cycid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_ALMID(almid) do {								\
+	if (!VALID_ALMID(almid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_ISRID(isrid) do {								\
+	if (!VALID_ISRID(isrid)) {								\
+		ercd = E_ID;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  å¼åºãã³ã³ãã­ã¹ãã®ãã§ãã¯ï¼E_CTXï¼
+ */
+#define CHECK_TSKCTX() do {									\
+	if (sense_context()) {									\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_INTCTX() do {									\
+	if (!sense_context()) {									\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  å¼åºãã³ã³ãã­ã¹ãã¨CPUã­ãã¯ç¶æ
+ã®ãã§ãã¯ï¼E_CTXï¼
+ */
+#define CHECK_TSKCTX_UNL() do {								\
+	if (sense_context() || t_sense_lock()) {				\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#define CHECK_INTCTX_UNL() do {								\
+	if (!sense_context() || i_sense_lock()) {				\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãã£ã¹ãããä¿çç¶æ
+ã§ãªããã®ãã§ãã¯ï¼E_CTXï¼
+ */
+#define CHECK_DISPATCH() do {								\
+	if (sense_context() || t_sense_lock() || !dspflg) {		\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãã®ä»ã®ã³ã³ãã­ã¹ãã¨ã©ã¼ã®ãã§ãã¯ï¼E_CTXï¼
+ */
+#define CHECK_CTX(exp) do {									\
+	if (!(exp)) {											\
+		ercd = E_CTX;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  èªã¿ã¹ã¯ãæå®ãã¦ããªããã®ãã§ãã¯ï¼E_ILUSEï¼
+ */
+#define CHECK_NONSELF(p_tcb) do {							\
+	if ((p_tcb) == p_runtsk) {								\
+		ercd = E_ILUSE;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  ãã®ä»ã®ä¸æ­£ä½¿ç¨ã¨ã©ã¼ã®ãã§ãã¯ï¼E_ILUSEï¼
+ */
+#define CHECK_ILUSE(exp) do {								\
+	if (!(exp)) {											\
+		ercd = E_ILUSE;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  æªãµãã¼ãæ©è½ã¨ã©ã¼ã®ãã§ãã¯ï¼E_NOSPTï¼
+ */
+#define CHECK_NOSPT(exp) do {								\
+	if (!(exp)) {											\
+		ercd = E_NOSPT;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+/*
+ *  éçãªãªãã¸ã§ã¯ãç¶æ
+ã¨ã©ã¼ã®ãã§ãã¯ï¼E_OBJï¼
+ */
+#define CHECK_OBJ(exp) do {									\
+	if (!(exp)) {											\
+		ercd = E_OBJ;										\
+		goto error_exit;									\
+	}														\
+} while (false)
+
+#endif /* TOPPERS_CHECK_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/cyclic.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/cyclic.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/cyclic.c	(revision 313)
@@ -0,0 +1,433 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å¨æãã³ãã©æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "cyclic.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_CYC_ENTER
+#define LOG_CYC_ENTER(p_cyccb)
+#endif /* LOG_CYC_ENTER */
+
+#ifndef LOG_CYC_LEAVE
+#define LOG_CYC_LEAVE(p_cyccb)
+#endif /* LOG_CYC_LEAVE */
+
+#ifndef LOG_ACRE_CYC_ENTER
+#define LOG_ACRE_CYC_ENTER(pk_ccyc)
+#endif /* LOG_ACRE_CYC_ENTER */
+
+#ifndef LOG_ACRE_CYC_LEAVE
+#define LOG_ACRE_CYC_LEAVE(ercd)
+#endif /* LOG_ACRE_CYC_LEAVE */
+
+#ifndef LOG_DEL_CYC_ENTER
+#define LOG_DEL_CYC_ENTER(cycid)
+#endif /* LOG_DEL_CYC_ENTER */
+
+#ifndef LOG_DEL_CYC_LEAVE
+#define LOG_DEL_CYC_LEAVE(ercd)
+#endif /* LOG_DEL_CYC_LEAVE */
+
+#ifndef LOG_STA_CYC_ENTER
+#define LOG_STA_CYC_ENTER(cycid)
+#endif /* LOG_STA_CYC_ENTER */
+
+#ifndef LOG_STA_CYC_LEAVE
+#define LOG_STA_CYC_LEAVE(ercd)
+#endif /* LOG_STA_CYC_LEAVE */
+
+#ifndef LOG_STP_CYC_ENTER
+#define LOG_STP_CYC_ENTER(cycid)
+#endif /* LOG_STP_CYC_ENTER */
+
+#ifndef LOG_STP_CYC_LEAVE
+#define LOG_STP_CYC_LEAVE(ercd)
+#endif /* LOG_STP_CYC_LEAVE */
+
+#ifndef LOG_REF_CYC_ENTER
+#define LOG_REF_CYC_ENTER(cycid, pk_rcyc)
+#endif /* LOG_REF_CYC_ENTER */
+
+#ifndef LOG_REF_CYC_LEAVE
+#define LOG_REF_CYC_LEAVE(ercd, pk_rcyc)
+#endif /* LOG_REF_CYC_LEAVE */
+
+/*
+ *  å¨æãã³ãã©ã®æ°
+ */
+#define tnum_cyc	((uint_t)(tmax_cycid - TMIN_CYCID + 1))
+#define tnum_scyc	((uint_t)(tmax_scycid - TMIN_CYCID + 1))
+
+/*
+ *  å¨æãã³ãã©IDããå¨æãã³ãã©ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_CYC(cycid)	((uint_t)((cycid) - TMIN_CYCID))
+#define get_cyccb(cycid)	(&(cyccb_table[INDEX_CYC(cycid)]))
+
+/*
+ *  å¨æãã³ãã©èµ·åã®ããã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²
+ */
+Inline void
+tmevtb_enqueue_cyc(CYCCB *p_cyccb, EVTTIM evttim)
+{
+	tmevtb_enqueue_evttim(&(p_cyccb->tmevtb), evttim,
+								(CBACK) call_cychdr, (void *) p_cyccb);
+	p_cyccb->evttim = evttim;
+}
+
+#ifdef TOPPERS_cycini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãå¨æãã³ãã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ *
+ *  å¨æãã³ãã©ç®¡çãã­ãã¯ã®å
+é ­ã«ã¯ã­ã¥ã¼ã«ã¤ãªãããã®é åããªãã
+ *  ãï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ï¼tmevtbï¼ã®é åãç¨ããï¼
+ */
+QUEUE	free_cyccb;
+
+/*
+ *  å¨æãã³ãã©æ©è½ã®åæå
+ */
+void
+initialize_cyclic(void)
+{
+	uint_t	i, j;
+	CYCCB	*p_cyccb;
+	CYCINIB	*p_cycinib;
+
+	for (i = 0; i < tnum_scyc; i++) {
+		p_cyccb = &(cyccb_table[i]);
+		p_cyccb->p_cycinib = &(cycinib_table[i]);
+		if ((p_cyccb->p_cycinib->cycatr & TA_STA) != 0U) {
+			p_cyccb->cycsta = true;
+			tmevtb_enqueue_cyc(p_cyccb, (EVTTIM)(p_cyccb->p_cycinib->cycphs));
+		}
+		else {
+			p_cyccb->cycsta = false;
+		}
+	}
+	queue_initialize(&free_cyccb);
+	for (j = 0; i < tnum_cyc; i++, j++) {
+		p_cyccb = &(cyccb_table[i]);
+		p_cycinib = &(acycinib_table[j]);
+		p_cycinib->cycatr = TA_NOEXS;
+		p_cyccb->p_cycinib = ((const CYCINIB *) p_cycinib);
+		queue_insert_prev(&free_cyccb, ((QUEUE *) &(p_cyccb->tmevtb)));
+	}
+}
+
+#endif /* TOPPERS_cycini */
+
+/*
+ *  å¨æãã³ãã©ã®çæ
+ */
+#ifdef TOPPERS_acre_cyc
+
+ER_UINT
+acre_cyc(const T_CCYC *pk_ccyc)
+{
+	CYCCB	*p_cyccb;
+	CYCINIB	*p_cycinib;
+	ER		ercd;
+
+	LOG_ACRE_CYC_ENTER(pk_ccyc);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_ccyc->cycatr, TA_STA);
+	CHECK_ALIGN_FUNC(pk_ccyc->cychdr);
+	CHECK_NONNULL_FUNC(pk_ccyc->cychdr);
+	CHECK_PAR(0 < pk_ccyc->cyctim && pk_ccyc->cyctim <= TMAX_RELTIM);
+	CHECK_PAR(0 <= pk_ccyc->cycphs && pk_ccyc->cycphs <= TMAX_RELTIM);
+
+	t_lock_cpu();
+	if (tnum_cyc == 0 || queue_empty(&free_cyccb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_cyccb = ((CYCCB *)(((char *) queue_delete_next(&free_cyccb))
+												- offsetof(CYCCB, tmevtb)));
+		p_cycinib = (CYCINIB *)(p_cyccb->p_cycinib);
+		p_cycinib->cycatr = pk_ccyc->cycatr;
+		p_cycinib->exinf = pk_ccyc->exinf;
+		p_cycinib->cychdr = pk_ccyc->cychdr;
+		p_cycinib->cyctim = pk_ccyc->cyctim;
+		p_cycinib->cycphs = pk_ccyc->cycphs;
+
+		if ((p_cyccb->p_cycinib->cycatr & TA_STA) != 0U) {
+			p_cyccb->cycsta = true;
+			tmevtb_enqueue_cyc(p_cyccb,
+								base_time + p_cyccb->p_cycinib->cycphs);
+		}
+		else {
+			p_cyccb->cycsta = false;
+		}
+		ercd = CYCID(p_cyccb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_CYC_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_cyc */
+
+/*
+ *  å¨æãã³ãã©ã®åé¤
+ */
+#ifdef TOPPERS_del_cyc
+
+ER
+del_cyc(ID cycid)
+{
+	CYCCB	*p_cyccb;
+	CYCINIB	*p_cycinib;
+	ER		ercd;
+
+	LOG_DEL_CYC_ENTER(cycid);
+	CHECK_TSKCTX_UNL();
+	CHECK_CYCID(cycid);
+	p_cyccb = get_cyccb(cycid);
+
+	t_lock_cpu();
+	if (p_cyccb->p_cycinib->cycatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (CYCID(p_cyccb) > tmax_scycid) {
+		if (p_cyccb->cycsta) {
+			p_cyccb->cycsta = false;
+			tmevtb_dequeue(&(p_cyccb->tmevtb));
+		}
+
+		p_cycinib = (CYCINIB *)(p_cyccb->p_cycinib);
+		p_cycinib->cycatr = TA_NOEXS;
+		queue_insert_prev(&free_cyccb, ((QUEUE *) &(p_cyccb->tmevtb)));
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_CYC_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_cyc */
+
+/*
+ *  å¨æãã³ãã©ã®åä½éå§
+ */
+#ifdef TOPPERS_sta_cyc
+
+ER
+sta_cyc(ID cycid)
+{
+	CYCCB	*p_cyccb;
+	ER		ercd;
+
+	LOG_STA_CYC_ENTER(cycid);
+	CHECK_TSKCTX_UNL();
+	CHECK_CYCID(cycid);
+	p_cyccb = get_cyccb(cycid);
+
+	t_lock_cpu();
+	if (p_cyccb->p_cycinib->cycatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_cyccb->cycsta) {
+			tmevtb_dequeue(&(p_cyccb->tmevtb));
+		}
+		else {
+			p_cyccb->cycsta = true;
+		}
+		tmevtb_enqueue_cyc(p_cyccb, base_time + p_cyccb->p_cycinib->cycphs);
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_STA_CYC_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_sta_cyc */
+
+/*
+ *  å¨æãã³ãã©ã®åä½åæ­¢
+ */
+#ifdef TOPPERS_stp_cyc
+
+ER
+stp_cyc(ID cycid)
+{
+	CYCCB	*p_cyccb;
+	ER		ercd;
+
+	LOG_STP_CYC_ENTER(cycid);
+	CHECK_TSKCTX_UNL();
+	CHECK_CYCID(cycid);
+	p_cyccb = get_cyccb(cycid);
+
+	t_lock_cpu();
+	if (p_cyccb->p_cycinib->cycatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_cyccb->cycsta) {
+			p_cyccb->cycsta = false;
+			tmevtb_dequeue(&(p_cyccb->tmevtb));
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_STP_CYC_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_stp_cyc */
+
+/*
+ *  å¨æãã³ãã©ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_cyc
+
+ER
+ref_cyc(ID cycid, T_RCYC *pk_rcyc)
+{
+	CYCCB	*p_cyccb;
+	ER		ercd;
+    
+	LOG_REF_CYC_ENTER(cycid, pk_rcyc);
+	CHECK_TSKCTX_UNL();
+	CHECK_CYCID(cycid);
+	p_cyccb = get_cyccb(cycid);
+
+	t_lock_cpu();
+	if (p_cyccb->p_cycinib->cycatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		if (p_cyccb->cycsta) {
+			pk_rcyc->cycstat = TCYC_STA;
+			pk_rcyc->lefttim = tmevt_lefttim(&(p_cyccb->tmevtb));
+		}
+		else {
+			pk_rcyc->cycstat = TCYC_STP;
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_CYC_LEAVE(ercd, pk_rcyc);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_cyc */
+
+/*
+ *  å¨æãã³ãã©èµ·åã«ã¼ãã³
+ */
+#ifdef TOPPERS_cyccal
+
+void
+call_cychdr(CYCCB *p_cyccb)
+{
+	PRI		saved_ipm;
+
+	/*
+	 *  æ¬¡åã®èµ·åã®ããã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼
+	 *
+	 *  åãã¿ã¤ã ãã£ãã¯ã§å¨æãã³ãã©ãååº¦èµ·åãã¹ãå ´åã«ã¯ï¼ãã®
+	 *  é¢æ°ããsignal_timeã«æ»ã£ãå¾ã«ï¼ååº¦ãã®é¢æ°ãå¼ã°ãããã¨ã«ãª
+	 *  ãï¼
+	 */
+	tmevtb_enqueue_cyc(p_cyccb, p_cyccb->evttim + p_cyccb->p_cycinib->cyctim);
+
+	/*
+	 *  å¨æãã³ãã©ãï¼CPUã­ãã¯è§£é¤ç¶æ
+ã§å¼ã³åºãï¼
+	 */
+	saved_ipm = i_get_ipm();
+	i_unlock_cpu();
+
+	LOG_CYC_ENTER(p_cyccb);
+	(*((CYCHDR)(p_cyccb->p_cycinib->cychdr)))(p_cyccb->p_cycinib->exinf);
+	LOG_CYC_LEAVE(p_cyccb);
+
+	if (!i_sense_lock()) {
+		i_lock_cpu();
+	}
+	i_set_ipm(saved_ipm);
+}
+
+#endif /* TOPPERS_cyccal */
Index: rubycfg_asp/trunk/asp_dcre/kernel/cyclic.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/cyclic.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/cyclic.h	(revision 313)
@@ -0,0 +1,128 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å¨æãã³ãã©æ©è½
+ */
+
+#ifndef TOPPERS_CYCLIC_H
+#define TOPPERS_CYCLIC_H
+
+#include <queue.h>
+#include "time_event.h"
+
+/*
+ *  å¨æãã³ãã©åæåãã­ãã¯
+ */
+typedef struct cyclic_handler_initialization_block {
+	ATR			cycatr;			/* å¨æãã³ãã©å±æ§ */
+	intptr_t	exinf;			/* å¨æãã³ãã©ã®æ¡å¼µæ
+å ± */
+	CYCHDR		cychdr;			/* å¨æãã³ãã©ã®èµ·åçªå° */
+	RELTIM		cyctim;			/* å¨æãã³ãã©ã®èµ·åå¨æ */
+	RELTIM		cycphs;			/* å¨æãã³ãã©ã®èµ·åä½ç¸ */
+} CYCINIB;
+
+/*
+ *  å¨æãã³ãã©ç®¡çãã­ãã¯
+ */
+typedef struct cyclic_handler_control_block {
+	const CYCINIB *p_cycinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	bool_t		cycsta;			/* å¨æãã³ãã©ã®åä½ç¶æ
+ */
+	EVTTIM		evttim;			/* æ¬¡ã«å¨æãã³ãã©ãèµ·åããæå» */
+	TMEVTB		tmevtb;			/* ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+} CYCCB;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãå¨æãã³ãã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_cyccb;
+
+/*
+ *  å¨æãã³ãã©IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_cycid;
+extern const ID	tmax_scycid;
+
+/*
+ *  å¨æãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const CYCINIB	cycinib_table[];
+extern CYCINIB			acycinib_table[];
+
+/*
+ *  å¨æãã³ãã©ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern CYCCB	cyccb_table[];
+
+/*
+ *  å¨æãã³ãã©ç®¡çãã­ãã¯ããå¨æãã³ãã©IDãåãåºãããã®ãã¯ã­
+ */
+#define	CYCID(p_cyccb)	((ID)(((p_cyccb) - cyccb_table) + TMIN_CYCID))
+
+/*
+ *  å¨æãã³ãã©æ©è½ã®åæå
+ */
+extern void	initialize_cyclic(void);
+
+/*
+ *  å¨æãã³ãã©èµ·åã«ã¼ãã³
+ */
+extern void	call_cychdr(CYCCB *p_cyccb);
+
+#endif /* TOPPERS_CYCLIC_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/cyclic.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/cyclic.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/cyclic.trb	(revision 313)
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: cyclic.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+# 
+
+#
+#		å¨æéç¥æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class CyclicObject < KernelObject
+  def initialize()
+    super("cyc", "cyclic")
+  end
+
+  def prepare(key, params)
+    # cycatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2383ï¼½
+    #ï¼TA_STAä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:cycatr] & ~($TA_STA)) != 0
+      error_illegal_id("E_RSATR", params, :cycatr, :cycid)
+    end
+
+    # (0 < cyctim && cyctim <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI2397ï¼½
+    if !(0 < params[:cyctim] && params[:cyctim] <= $TMAX_RELTIM)
+      error_illegal_id("E_PAR", params, :cyctim, :cycid)
+    end
+
+    # (0 <= cycphs && cycphs <= TMAX_RELTIM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI2399ï¼½
+    if !(0 <= params[:cycphs] && params[:cycphs] <= $TMAX_RELTIM)
+      error_illegal_id("E_PAR", params, :cycphs, :cycid)
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:cycatr]}), (intptr_t)(#{params[:cycid].val - 1}), #{params[:cychdr]}, (#{params[:cyctim]}), (#{params[:cycphs]})")
+  end
+end
+
+#
+#  å¨æéç¥ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Cyclic Handler Functions")
+CyclicObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.c	(revision 313)
@@ -0,0 +1,949 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ãã¼ã¿ã­ã¥ã¼æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "dataqueue.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_DTQ_ENTER
+#define LOG_ACRE_DTQ_ENTER(pk_cdtq)
+#endif /* LOG_ACRE_DTQ_ENTER */
+
+#ifndef LOG_ACRE_DTQ_LEAVE
+#define LOG_ACRE_DTQ_LEAVE(ercd)
+#endif /* LOG_ACRE_DTQ_LEAVE */
+
+#ifndef LOG_DEL_DTQ_ENTER
+#define LOG_DEL_DTQ_ENTER(dtqid)
+#endif /* LOG_DEL_DTQ_ENTER */
+
+#ifndef LOG_DEL_DTQ_LEAVE
+#define LOG_DEL_DTQ_LEAVE(ercd)
+#endif /* LOG_DEL_DTQ_LEAVE */
+
+#ifndef LOG_SND_DTQ_ENTER
+#define LOG_SND_DTQ_ENTER(dtqid, data)
+#endif /* LOG_SND_DTQ_ENTER */
+
+#ifndef LOG_SND_DTQ_LEAVE
+#define LOG_SND_DTQ_LEAVE(ercd)
+#endif /* LOG_SND_DTQ_LEAVE */
+
+#ifndef LOG_PSND_DTQ_ENTER
+#define LOG_PSND_DTQ_ENTER(dtqid, data)
+#endif /* LOG_PSND_DTQ_ENTER */
+
+#ifndef LOG_PSND_DTQ_LEAVE
+#define LOG_PSND_DTQ_LEAVE(ercd)
+#endif /* LOG_PSND_DTQ_LEAVE */
+
+#ifndef LOG_IPSND_DTQ_ENTER
+#define LOG_IPSND_DTQ_ENTER(dtqid, data)
+#endif /* LOG_IPSND_DTQ_ENTER */
+
+#ifndef LOG_IPSND_DTQ_LEAVE
+#define LOG_IPSND_DTQ_LEAVE(ercd)
+#endif /* LOG_IPSND_DTQ_LEAVE */
+
+#ifndef LOG_TSND_DTQ_ENTER
+#define LOG_TSND_DTQ_ENTER(dtqid, data, tmout)
+#endif /* LOG_TSND_DTQ_ENTER */
+
+#ifndef LOG_TSND_DTQ_LEAVE
+#define LOG_TSND_DTQ_LEAVE(ercd)
+#endif /* LOG_TSND_DTQ_LEAVE */
+
+#ifndef LOG_FSND_DTQ_ENTER
+#define LOG_FSND_DTQ_ENTER(dtqid, data)
+#endif /* LOG_FSND_DTQ_ENTER */
+
+#ifndef LOG_FSND_DTQ_LEAVE
+#define LOG_FSND_DTQ_LEAVE(ercd)
+#endif /* LOG_FSND_DTQ_LEAVE */
+
+#ifndef LOG_IFSND_DTQ_ENTER
+#define LOG_IFSND_DTQ_ENTER(dtqid, data)
+#endif /* LOG_IFSND_DTQ_ENTER */
+
+#ifndef LOG_IFSND_DTQ_LEAVE
+#define LOG_IFSND_DTQ_LEAVE(ercd)
+#endif /* LOG_IFSND_DTQ_LEAVE */
+
+#ifndef LOG_RCV_DTQ_ENTER
+#define LOG_RCV_DTQ_ENTER(dtqid, p_data)
+#endif /* LOG_RCV_DTQ_ENTER */
+
+#ifndef LOG_RCV_DTQ_LEAVE
+#define LOG_RCV_DTQ_LEAVE(ercd, data)
+#endif /* LOG_RCV_DTQ_LEAVE */
+
+#ifndef LOG_PRCV_DTQ_ENTER
+#define LOG_PRCV_DTQ_ENTER(dtqid, p_data)
+#endif /* LOG_PRCV_DTQ_ENTER */
+
+#ifndef LOG_PRCV_DTQ_LEAVE
+#define LOG_PRCV_DTQ_LEAVE(ercd, data)
+#endif /* LOG_PRCV_DTQ_LEAVE */
+
+#ifndef LOG_TRCV_DTQ_ENTER
+#define LOG_TRCV_DTQ_ENTER(dtqid, p_data, tmout)
+#endif /* LOG_TRCV_DTQ_ENTER */
+
+#ifndef LOG_TRCV_DTQ_LEAVE
+#define LOG_TRCV_DTQ_LEAVE(ercd, data)
+#endif /* LOG_TRCV_DTQ_LEAVE */
+
+#ifndef LOG_INI_DTQ_ENTER
+#define LOG_INI_DTQ_ENTER(dtqid)
+#endif /* LOG_INI_DTQ_ENTER */
+
+#ifndef LOG_INI_DTQ_LEAVE
+#define LOG_INI_DTQ_LEAVE(ercd)
+#endif /* LOG_INI_DTQ_LEAVE */
+
+#ifndef LOG_REF_DTQ_ENTER
+#define LOG_REF_DTQ_ENTER(dtqid, pk_rdtq)
+#endif /* LOG_REF_DTQ_ENTER */
+
+#ifndef LOG_REF_DTQ_LEAVE
+#define LOG_REF_DTQ_LEAVE(ercd, pk_rdtq)
+#endif /* LOG_REF_DTQ_LEAVE */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã®æ°
+ */
+#define tnum_dtq	((uint_t)(tmax_dtqid - TMIN_DTQID + 1))
+#define tnum_sdtq	((uint_t)(tmax_sdtqid - TMIN_DTQID + 1))
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼IDãããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_DTQ(dtqid)	((uint_t)((dtqid) - TMIN_DTQID))
+#define get_dtqcb(dtqid)	(&(dtqcb_table[INDEX_DTQ(dtqid)]))
+
+#ifdef TOPPERS_dtqini
+
+/*
+ *  ä½¿ç¨ãã¦ããªããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_dtqcb;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ */
+void
+initialize_dataqueue(void)
+{
+	uint_t	i, j;
+	DTQCB	*p_dtqcb;
+	DTQINIB	*p_dtqinib;
+
+	for (i = 0; i < tnum_sdtq; i++) {
+		p_dtqcb = &(dtqcb_table[i]);
+		queue_initialize(&(p_dtqcb->swait_queue));
+		p_dtqcb->p_dtqinib = &(dtqinib_table[i]);
+		queue_initialize(&(p_dtqcb->rwait_queue));
+		p_dtqcb->count = 0U;
+		p_dtqcb->head = 0U;
+		p_dtqcb->tail = 0U;
+	}
+	queue_initialize(&free_dtqcb);
+	for (j = 0; i < tnum_dtq; i++, j++) {
+		p_dtqcb = &(dtqcb_table[i]);
+		p_dtqinib = &(adtqinib_table[j]);
+		p_dtqinib->dtqatr = TA_NOEXS;
+		p_dtqcb->p_dtqinib = ((const DTQINIB *) p_dtqinib);
+		queue_insert_prev(&free_dtqcb, &(p_dtqcb->swait_queue));
+	}
+}
+
+#endif /* TOPPERS_dtqini */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ */
+#ifdef TOPPERS_dtqenq
+
+void
+enqueue_data(DTQCB *p_dtqcb, intptr_t data)
+{
+	(p_dtqcb->p_dtqinib->p_dtqmb + p_dtqcb->tail)->data = data;
+	p_dtqcb->count++;
+	p_dtqcb->tail++;
+	if (p_dtqcb->tail >= p_dtqcb->p_dtqinib->dtqcnt) {
+		p_dtqcb->tail = 0U;
+	}
+}
+
+#endif /* TOPPERS_dtqenq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®å¼·å¶æ ¼ç´
+ */
+#ifdef TOPPERS_dtqfenq
+
+void
+force_enqueue_data(DTQCB *p_dtqcb, intptr_t data)
+{
+	(p_dtqcb->p_dtqinib->p_dtqmb + p_dtqcb->tail)->data = data;
+	p_dtqcb->tail++;
+	if (p_dtqcb->tail >= p_dtqcb->p_dtqinib->dtqcnt) {
+		p_dtqcb->tail = 0U;
+	}
+	if (p_dtqcb->count < p_dtqcb->p_dtqinib->dtqcnt) {
+		p_dtqcb->count++;
+	}
+	else {
+		p_dtqcb->head = p_dtqcb->tail;
+	}
+}
+
+#endif /* TOPPERS_dtqfenq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ */
+#ifdef TOPPERS_dtqdeq
+
+void
+dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data)
+{
+	*p_data = (p_dtqcb->p_dtqinib->p_dtqmb + p_dtqcb->head)->data;
+	p_dtqcb->count--;
+	p_dtqcb->head++;
+	if (p_dtqcb->head >= p_dtqcb->p_dtqinib->dtqcnt) {
+		p_dtqcb->head = 0U;
+	}
+}
+
+#endif /* TOPPERS_dtqdeq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ */
+#ifdef TOPPERS_dtqsnd
+
+bool_t
+send_data(DTQCB *p_dtqcb, intptr_t data, bool_t *p_dspreq)
+{
+	TCB		*p_tcb;
+
+	if (!queue_empty(&(p_dtqcb->rwait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_dtqcb->rwait_queue));
+		((WINFO_DTQ *)(p_tcb->p_winfo))->data = data;
+		*p_dspreq = wait_complete(p_tcb);
+		return(true);
+	}
+	else if (p_dtqcb->count < p_dtqcb->p_dtqinib->dtqcnt) {
+		enqueue_data(p_dtqcb, data);
+		*p_dspreq = false;
+		return(true);
+	}
+	else {
+		return(false);
+	}
+}
+
+#endif /* TOPPERS_dtqsnd */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿å¼·å¶éä¿¡
+ */
+#ifdef TOPPERS_dtqfsnd
+
+bool_t
+force_send_data(DTQCB *p_dtqcb, intptr_t data)
+{
+	TCB		*p_tcb;
+
+	if (!queue_empty(&(p_dtqcb->rwait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_dtqcb->rwait_queue));
+		((WINFO_DTQ *)(p_tcb->p_winfo))->data = data;
+		return(wait_complete(p_tcb));
+	}
+	else {
+		force_enqueue_data(p_dtqcb, data);
+		return(false);
+	}
+}
+
+#endif /* TOPPERS_dtqfsnd */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ */
+#ifdef TOPPERS_dtqrcv
+
+bool_t
+receive_data(DTQCB *p_dtqcb, intptr_t *p_data, bool_t *p_dspreq)
+{
+	TCB		*p_tcb;
+	intptr_t data;
+
+	if (p_dtqcb->count > 0U) {
+		dequeue_data(p_dtqcb, p_data);
+		if (!queue_empty(&(p_dtqcb->swait_queue))) {
+			p_tcb = (TCB *) queue_delete_next(&(p_dtqcb->swait_queue));
+			data = ((WINFO_DTQ *)(p_tcb->p_winfo))->data;
+			enqueue_data(p_dtqcb, data);
+			*p_dspreq = wait_complete(p_tcb);
+		}
+		else {
+			*p_dspreq = false;
+		}
+		return(true);
+	}
+	else if (!queue_empty(&(p_dtqcb->swait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_dtqcb->swait_queue));
+		*p_data = ((WINFO_DTQ *)(p_tcb->p_winfo))->data;
+		*p_dspreq = wait_complete(p_tcb);
+		return(true);
+	}
+	else {
+		return(false);
+	}
+}
+
+#endif /* TOPPERS_dtqrcv */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã®çæ
+ */
+#ifdef TOPPERS_acre_dtq
+
+ER_UINT
+acre_dtq(const T_CDTQ *pk_cdtq)
+{
+	DTQCB	*p_dtqcb;
+	DTQINIB	*p_dtqinib;
+	ATR		dtqatr;
+	DTQMB	*p_dtqmb;
+	ER		ercd;
+
+	LOG_ACRE_DTQ_ENTER(pk_cdtq);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cdtq->dtqatr, TA_TPRI);
+	if (pk_cdtq->dtqmb != NULL) {
+		CHECK_ALIGN_MB(pk_cdtq->dtqmb);
+	}
+	dtqatr = pk_cdtq->dtqatr;
+	p_dtqmb = pk_cdtq->dtqmb;
+
+	t_lock_cpu();
+	if (tnum_dtq == 0 || queue_empty(&free_dtqcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		if (pk_cdtq->dtqcnt != 0 && p_dtqmb == NULL) {
+			p_dtqmb = kernel_malloc(sizeof(DTQMB) * pk_cdtq->dtqcnt);
+			dtqatr |= TA_MBALLOC;
+		}
+		if (pk_cdtq->dtqcnt != 0 && p_dtqmb == NULL) {
+			ercd = E_NOMEM;
+		}
+		else {
+			p_dtqcb = ((DTQCB *) queue_delete_next(&free_dtqcb));
+			p_dtqinib = (DTQINIB *)(p_dtqcb->p_dtqinib);
+			p_dtqinib->dtqatr = dtqatr;
+			p_dtqinib->dtqcnt = pk_cdtq->dtqcnt;
+			p_dtqinib->p_dtqmb = p_dtqmb;
+
+			queue_initialize(&(p_dtqcb->swait_queue));
+			queue_initialize(&(p_dtqcb->rwait_queue));
+			p_dtqcb->count = 0U;
+			p_dtqcb->head = 0U;
+			p_dtqcb->tail = 0U;
+			ercd = DTQID(p_dtqcb);
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã®åé¤
+ */
+#ifdef TOPPERS_del_dtq
+
+ER
+del_dtq(ID dtqid)
+{
+	DTQCB	*p_dtqcb;
+	DTQINIB	*p_dtqinib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_DTQ_ENTER(dtqid);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (DTQID(p_dtqcb) > tmax_sdtqid) {
+		dspreq = init_wait_queue(&(p_dtqcb->swait_queue));
+		if (init_wait_queue(&(p_dtqcb->rwait_queue))) {
+			dspreq = true;
+		}
+		p_dtqinib = (DTQINIB *)(p_dtqcb->p_dtqinib);
+		if ((p_dtqinib->dtqatr & TA_MBALLOC) != 0U) {
+			kernel_free(p_dtqinib->p_dtqmb);
+		}
+		p_dtqinib->dtqatr = TA_NOEXS;
+		queue_insert_prev(&free_dtqcb, &(p_dtqcb->swait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ */
+#ifdef TOPPERS_snd_dtq
+
+ER
+snd_dtq(ID dtqid, intptr_t data)
+{
+	DTQCB	*p_dtqcb;
+	WINFO_DTQ winfo_dtq;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_SND_DTQ_ENTER(dtqid, data);
+	CHECK_DISPATCH();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (send_data(p_dtqcb, data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		winfo_dtq.data = data;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SDTQ);
+		wobj_make_wait((WOBJCB *) p_dtqcb, (WINFO_WOBJ *) &winfo_dtq);
+		dispatch();
+		ercd = winfo_dtq.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_snd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_psnd_dtq
+
+ER
+psnd_dtq(ID dtqid, intptr_t data)
+{
+	DTQCB	*p_dtqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_PSND_DTQ_ENTER(dtqid, data);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (send_data(p_dtqcb, data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PSND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_psnd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_ipsnd_dtq
+
+ER
+ipsnd_dtq(ID dtqid, intptr_t data)
+{
+	DTQCB	*p_dtqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_IPSND_DTQ_ENTER(dtqid, data);
+	CHECK_INTCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	i_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (send_data(p_dtqcb, data, &dspreq)) {
+		if (dspreq) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IPSND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ipsnd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_tsnd_dtq
+
+ER
+tsnd_dtq(ID dtqid, intptr_t data, TMO tmout)
+{
+	DTQCB	*p_dtqcb;
+	WINFO_DTQ winfo_dtq;
+	TMEVTB	tmevtb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_TSND_DTQ_ENTER(dtqid, data, tmout);
+	CHECK_DISPATCH();
+	CHECK_DTQID(dtqid);
+	CHECK_TMOUT(tmout);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (send_data(p_dtqcb, data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		winfo_dtq.data = data;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SDTQ);
+		wobj_make_wait_tmout((WOBJCB *) p_dtqcb, (WINFO_WOBJ *) &winfo_dtq,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_dtq.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TSND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_tsnd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®å¼·å¶éä¿¡
+ */
+#ifdef TOPPERS_fsnd_dtq
+
+ER
+fsnd_dtq(ID dtqid, intptr_t data)
+{
+	DTQCB	*p_dtqcb;	
+	ER		ercd;
+
+	LOG_FSND_DTQ_ENTER(dtqid, data);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(p_dtqcb->p_dtqinib->dtqcnt > 0U)) {
+		ercd = E_ILUSE;
+	}
+	else {
+		if (force_send_data(p_dtqcb, data)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_FSND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_fsnd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®å¼·å¶éä¿¡ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_ifsnd_dtq
+
+ER
+ifsnd_dtq(ID dtqid, intptr_t data)
+{
+	DTQCB	*p_dtqcb;
+	ER		ercd;
+
+	LOG_IFSND_DTQ_ENTER(dtqid, data);
+	CHECK_INTCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	i_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(p_dtqcb->p_dtqinib->dtqcnt > 0U)) {
+		ercd = E_ILUSE;
+	}
+	else {
+		if (force_send_data(p_dtqcb, data)) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IFSND_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ifsnd_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ */
+#ifdef TOPPERS_rcv_dtq
+
+ER
+rcv_dtq(ID dtqid, intptr_t *p_data)
+{
+	DTQCB	*p_dtqcb;
+	WINFO_DTQ winfo_dtq;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_RCV_DTQ_ENTER(dtqid, p_data);
+	CHECK_DISPATCH();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_data(p_dtqcb, p_data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_RDTQ);
+		make_wait(&(winfo_dtq.winfo));
+		queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue));
+		winfo_dtq.p_dtqcb = p_dtqcb;
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo_dtq.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_data = winfo_dtq.data;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_RCV_DTQ_LEAVE(ercd, *p_data);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rcv_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_prcv_dtq
+
+ER
+prcv_dtq(ID dtqid, intptr_t *p_data)
+{
+	DTQCB	*p_dtqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_PRCV_DTQ_ENTER(dtqid, p_data);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_data(p_dtqcb, p_data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PRCV_DTQ_LEAVE(ercd, *p_data);
+	return(ercd);
+}
+
+#endif /* TOPPERS_prcv_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_trcv_dtq
+
+ER
+trcv_dtq(ID dtqid, intptr_t *p_data, TMO tmout)
+{
+	DTQCB	*p_dtqcb;
+	WINFO_DTQ winfo_dtq;
+	TMEVTB	tmevtb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_TRCV_DTQ_ENTER(dtqid, p_data, tmout);
+	CHECK_DISPATCH();
+	CHECK_DTQID(dtqid);
+	CHECK_TMOUT(tmout);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_data(p_dtqcb, p_data, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_RDTQ);
+		make_wait_tmout(&(winfo_dtq.winfo), &tmevtb, tmout);
+		queue_insert_prev(&(p_dtqcb->rwait_queue), &(p_runtsk->task_queue));
+		winfo_dtq.p_dtqcb = p_dtqcb;
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo_dtq.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_data = winfo_dtq.data;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TRCV_DTQ_LEAVE(ercd, *p_data);
+	return(ercd);
+}
+
+#endif /* TOPPERS_trcv_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ */
+#ifdef TOPPERS_ini_dtq
+
+ER
+ini_dtq(ID dtqid)
+{
+	DTQCB	*p_dtqcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_DTQ_ENTER(dtqid);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_dtqcb->swait_queue));
+		if (init_wait_queue(&(p_dtqcb->rwait_queue))) {
+			dspreq = true;
+		}
+		p_dtqcb->count = 0U;
+		p_dtqcb->head = 0U;
+		p_dtqcb->tail = 0U;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_DTQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_dtq */
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_dtq
+
+ER
+ref_dtq(ID dtqid, T_RDTQ *pk_rdtq)
+{
+	DTQCB	*p_dtqcb;
+	ER		ercd;
+    
+	LOG_REF_DTQ_ENTER(dtqid, pk_rdtq);
+	CHECK_TSKCTX_UNL();
+	CHECK_DTQID(dtqid);
+	p_dtqcb = get_dtqcb(dtqid);
+
+	t_lock_cpu();
+	if (p_dtqcb->p_dtqinib->dtqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rdtq->stskid = wait_tskid(&(p_dtqcb->swait_queue));
+		pk_rdtq->rtskid = wait_tskid(&(p_dtqcb->rwait_queue));
+		pk_rdtq->sdtqcnt = p_dtqcb->count;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_DTQ_LEAVE(ercd, pk_rdtq);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_dtq */
Index: rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.h	(revision 313)
@@ -0,0 +1,201 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¼ã¿ã­ã¥ã¼æ©è½
+ */
+
+#ifndef TOPPERS_DATAQUEUE_H
+#define TOPPERS_DATAQUEUE_H
+
+#include "wait.h"
+
+/*
+ *  ãã¼ã¿ç®¡çãã­ãã¯
+ */
+typedef struct data_management_block {
+	intptr_t	data;			/* ãã¼ã¿æ¬ä½ */
+} DTQMB;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct dataqueue_initialization_block {
+	ATR			dtqatr;			/* ãã¼ã¿ã­ã¥ã¼å±æ§ */
+	uint_t		dtqcnt;			/* ãã¼ã¿ã­ã¥ã¼ã®å®¹é */
+	DTQMB		*p_dtqmb;		/* ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
+é ­çªå° */
+} DTQINIB;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct dataqueue_control_block {
+	QUEUE		swait_queue;	/* ãã¼ã¿ã­ã¥ã¼éä¿¡å¾
+ã¡ã­ã¥ã¼ */
+	const DTQINIB *p_dtqinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	QUEUE		rwait_queue;	/* ãã¼ã¿ã­ã¥ã¼åä¿¡å¾
+ã¡ã­ã¥ã¼ */
+	uint_t		count;			/* ãã¼ã¿ã­ã¥ã¼ä¸­ã®ãã¼ã¿ã®æ° */
+	uint_t		head;			/* æåã®ãã¼ã¿ã®æ ¼ç´å ´æ */
+	uint_t		tail;			/* æå¾ã®ãã¼ã¿ã®æ ¼ç´å ´æã®æ¬¡ */
+} DTQCB;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®2ã¤ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ã¨ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ã§ï¼åãå¾
+ã¡æ
+
+ *  å ±ãã­ãã¯ãä½¿ãï¼
+ */
+typedef struct dataqueue_waiting_information {
+	WINFO		winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	DTQCB		*p_dtqcb;		/* å¾
+ã£ã¦ãããã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯ */
+	intptr_t	data;			/* éåä¿¡ãã¼ã¿ */
+} WINFO_DTQ;
+
+/*
+ *  ä½¿ç¨ãã¦ããªããã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_dtqcb;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_dtqid;
+extern const ID	tmax_sdtqid;
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const DTQINIB	dtqinib_table[];
+extern DTQINIB			adtqinib_table[];
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern DTQCB	dtqcb_table[];
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãããã¼ã¿ã­ã¥ã¼IDãåãåºãããã®ãã¯ã­
+ */
+#define	DTQID(p_dtqcb)	((ID)(((p_dtqcb) - dtqcb_table) + TMIN_DTQID))
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ */
+extern void	initialize_dataqueue(void);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ */
+extern void	enqueue_data(DTQCB *p_dtqcb, intptr_t data);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®å¼·å¶æ ¼ç´
+ */
+extern void	force_enqueue_data(DTQCB *p_dtqcb, intptr_t data);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ */
+extern void	dequeue_data(DTQCB *p_dtqcb, intptr_t *p_data);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ */
+extern bool_t	send_data(DTQCB *p_dtqcb, intptr_t data, bool_t *p_dspreq);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿å¼·å¶éä¿¡
+ */
+extern bool_t	force_send_data(DTQCB *p_dtqcb, intptr_t data);
+
+/*
+ *  ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ */
+extern bool_t	receive_data(DTQCB *p_dtqcb, intptr_t *p_data,
+													bool_t *p_dspreq);
+
+#endif /* TOPPERS_DATAQUEUE_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/dataqueue.trb	(revision 313)
@@ -0,0 +1,103 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: dataqueue.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+# 
+
+#
+#		ãã¼ã¿ã­ã¥ã¼æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class DataqueueObject < KernelObject
+  def initialize()
+    super("dtq", "dataqueue")
+  end
+
+  def prepare(key, params)
+    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    params[:dtqmb] ||= "NULL"
+
+    # dtqatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1669ï¼½
+    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:dtqatr] & ~($TA_TPRI)) != 0
+      error_illegal_id("E_RSATR", params, :dtqatr, :dtqid)
+    end
+
+    # dtqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0132ï¼½
+    if params[:dtqmb] != "NULL"
+      error_illegal_id("E_NOSPT", params, :dtqmb, :dtqid)
+    end
+
+    # ãã¼ã¿ã­ã¥ã¼ç®¡çé å
+    if params[:dtqcnt] > 0
+      dtqmbName = "_kernel_dtqmb_#{params[:dtqid]}"
+      $kernelCfgC.add("static DTQMB #{dtqmbName}[#{params[:dtqcnt]}];")
+      params[:dtqinib_dtqmb] = dtqmbName
+    else
+      params[:dtqinib_dtqmb] = "NULL"
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:dtqatr]}), (#{params[:dtqcnt]}), " \
+										"#{params[:dtqinib_dtqmb]}")
+  end
+end
+
+#
+#  ãã¼ã¿ã­ã¥ã¼ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Dataqueue Functions")
+DataqueueObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/eventflag.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/eventflag.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/eventflag.c	(revision 313)
@@ -0,0 +1,666 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¤ãã³ããã©ã°æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "eventflag.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_FLG_ENTER
+#define LOG_ACRE_FLG_ENTER(pk_cflg)
+#endif /* LOG_ACRE_FLG_ENTER */
+
+#ifndef LOG_ACRE_FLG_LEAVE
+#define LOG_ACRE_FLG_LEAVE(ercd)
+#endif /* LOG_ACRE_FLG_LEAVE */
+
+#ifndef LOG_DEL_FLG_ENTER
+#define LOG_DEL_FLG_ENTER(flgid)
+#endif /* LOG_DEL_FLG_ENTER */
+
+#ifndef LOG_DEL_FLG_LEAVE
+#define LOG_DEL_FLG_LEAVE(ercd)
+#endif /* LOG_DEL_FLG_LEAVE */
+
+#ifndef LOG_SET_FLG_ENTER
+#define LOG_SET_FLG_ENTER(flgid, setptn)
+#endif /* LOG_SET_FLG_ENTER */
+
+#ifndef LOG_SET_FLG_LEAVE
+#define LOG_SET_FLG_LEAVE(ercd)
+#endif /* LOG_SET_FLG_LEAVE */
+
+#ifndef LOG_ISET_FLG_ENTER
+#define LOG_ISET_FLG_ENTER(flgid, setptn)
+#endif /* LOG_ISET_FLG_ENTER */
+
+#ifndef LOG_ISET_FLG_LEAVE
+#define LOG_ISET_FLG_LEAVE(ercd)
+#endif /* LOG_ISET_FLG_LEAVE */
+
+#ifndef LOG_CLR_FLG_ENTER
+#define LOG_CLR_FLG_ENTER(flgid, clrptn)
+#endif /* LOG_CLR_FLG_ENTER */
+
+#ifndef LOG_CLR_FLG_LEAVE
+#define LOG_CLR_FLG_LEAVE(ercd)
+#endif /* LOG_CLR_FLG_LEAVE */
+
+#ifndef LOG_WAI_FLG_ENTER
+#define LOG_WAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn)
+#endif /* LOG_WAI_FLG_ENTER */
+
+#ifndef LOG_WAI_FLG_LEAVE
+#define LOG_WAI_FLG_LEAVE(ercd, flgptn)
+#endif /* LOG_WAI_FLG_LEAVE */
+
+#ifndef LOG_POL_FLG_ENTER
+#define LOG_POL_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn)
+#endif /* LOG_POL_FLG_ENTER */
+
+#ifndef LOG_POL_FLG_LEAVE
+#define LOG_POL_FLG_LEAVE(ercd, flgptn)
+#endif /* LOG_POL_FLG_LEAVE */
+
+#ifndef LOG_TWAI_FLG_ENTER
+#define LOG_TWAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn, tmout)
+#endif /* LOG_TWAI_FLG_ENTER */
+
+#ifndef LOG_TWAI_FLG_LEAVE
+#define LOG_TWAI_FLG_LEAVE(ercd, flgptn)
+#endif /* LOG_TWAI_FLG_LEAVE */
+
+#ifndef LOG_INI_FLG_ENTER
+#define LOG_INI_FLG_ENTER(flgid)
+#endif /* LOG_INI_FLG_ENTER */
+
+#ifndef LOG_INI_FLG_LEAVE
+#define LOG_INI_FLG_LEAVE(ercd)
+#endif /* LOG_INI_FLG_LEAVE */
+
+#ifndef LOG_REF_FLG_ENTER
+#define LOG_REF_FLG_ENTER(flgid, pk_rflg)
+#endif /* LOG_REF_FLG_ENTER */
+
+#ifndef LOG_REF_FLG_LEAVE
+#define LOG_REF_FLG_LEAVE(ercd, pk_rflg)
+#endif /* LOG_REF_FLG_LEAVE */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®æ°
+ */
+#define tnum_flg	((uint_t)(tmax_flgid - TMIN_FLGID + 1))
+#define tnum_sflg	((uint_t)(tmax_sflgid - TMIN_FLGID + 1))
+
+/*
+ *  ã¤ãã³ããã©ã°IDããã¤ãã³ããã©ã°ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_FLG(flgid)	((uint_t)((flgid) - TMIN_FLGID))
+#define get_flgcb(flgid)	(&(flgcb_table[INDEX_FLG(flgid)]))
+
+#ifdef TOPPERS_flgini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_flgcb;
+
+/*
+ *  ã¤ãã³ããã©ã°æ©è½ã®åæå
+ */
+void
+initialize_eventflag(void)
+{
+	uint_t	i, j;
+	FLGCB	*p_flgcb;
+	FLGINIB	*p_flginib;
+
+	for (i = 0; i < tnum_sflg; i++) {
+		p_flgcb = &(flgcb_table[i]);
+		queue_initialize(&(p_flgcb->wait_queue));
+		p_flgcb->p_flginib = &(flginib_table[i]);
+		p_flgcb->flgptn = p_flgcb->p_flginib->iflgptn;
+	}
+	queue_initialize(&free_flgcb);
+	for (j = 0; i < tnum_flg; i++, j++) {
+		p_flgcb = &(flgcb_table[i]);
+		p_flginib = &(aflginib_table[j]);
+		p_flginib->flgatr = TA_NOEXS;
+		p_flgcb->p_flginib = ((const FLGINIB *) p_flginib);
+		queue_insert_prev(&free_flgcb, &(p_flgcb->wait_queue));
+	}
+}
+
+#endif /* TOPPERS_flgini */
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡è§£é¤æ¡ä»¶ã®ãã§ãã¯
+ */
+#ifdef TOPPERS_flgcnd
+
+bool_t
+check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn)
+{
+	if ((wfmode & TWF_ORW) != 0U ? (p_flgcb->flgptn & waiptn) != 0U
+									: (p_flgcb->flgptn & waiptn) == waiptn) {
+		*p_flgptn = p_flgcb->flgptn;
+		if ((p_flgcb->p_flginib->flgatr & TA_CLR) != 0U) {
+			p_flgcb->flgptn = 0U;
+		}
+		return(true);
+	}
+	return(false);
+}
+
+#endif /* TOPPERS_flgcnd */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®çæ
+ */
+#ifdef TOPPERS_acre_flg
+
+ER_UINT
+acre_flg(const T_CFLG *pk_cflg)
+{
+	FLGCB	*p_flgcb;
+	FLGINIB	*p_flginib;
+	ER		ercd;
+
+	LOG_ACRE_FLG_ENTER(pk_cflg);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cflg->flgatr, TA_TPRI|TA_WMUL|TA_CLR);
+
+	t_lock_cpu();
+	if (tnum_flg == 0 || queue_empty(&free_flgcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_flgcb = ((FLGCB *) queue_delete_next(&free_flgcb));
+		p_flginib = (FLGINIB *)(p_flgcb->p_flginib);
+		p_flginib->flgatr = pk_cflg->flgatr;
+		p_flginib->iflgptn = pk_cflg->iflgptn;
+
+		queue_initialize(&(p_flgcb->wait_queue));
+		p_flgcb->flgptn = p_flgcb->p_flginib->iflgptn;
+		ercd = FLGID(p_flgcb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®åé¤
+ */
+#ifdef TOPPERS_del_flg
+
+ER
+del_flg(ID flgid)
+{
+	FLGCB	*p_flgcb;
+	FLGINIB	*p_flginib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_FLG_ENTER(flgid);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (FLGID(p_flgcb) > tmax_sflgid) {
+		dspreq = init_wait_queue(&(p_flgcb->wait_queue));
+		p_flginib = (FLGINIB *)(p_flgcb->p_flginib);
+		p_flginib->flgatr = TA_NOEXS;
+		queue_insert_prev(&free_flgcb, &(p_flgcb->wait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®ã»ãã
+ */
+#ifdef TOPPERS_set_flg
+
+ER
+set_flg(ID flgid, FLGPTN setptn)
+{
+	FLGCB	*p_flgcb;
+	QUEUE	*p_queue;
+	TCB		*p_tcb;
+	WINFO_FLG *p_winfo_flg;
+	bool_t	dspreq = false;
+	ER		ercd;
+
+	LOG_SET_FLG_ENTER(flgid, setptn);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		p_flgcb->flgptn |= setptn;
+		p_queue = p_flgcb->wait_queue.p_next;
+		while (p_queue != &(p_flgcb->wait_queue)) {
+			p_tcb = (TCB *) p_queue;
+			p_queue = p_queue->p_next;
+			p_winfo_flg = (WINFO_FLG *)(p_tcb->p_winfo);
+			if (check_flg_cond(p_flgcb, p_winfo_flg->waiptn,
+							p_winfo_flg->wfmode, &(p_winfo_flg->flgptn))) {
+				queue_delete(&(p_tcb->task_queue));
+				if (wait_complete(p_tcb)) {
+					dspreq = true;
+				}
+				if ((p_flgcb->p_flginib->flgatr & TA_CLR) != 0U) {
+					break;
+				}
+			}
+		}
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SET_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_set_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®ã»ããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iset_flg
+
+ER
+iset_flg(ID flgid, FLGPTN setptn)
+{
+	FLGCB	*p_flgcb;
+	QUEUE	*p_queue;
+	TCB		*p_tcb;
+	WINFO_FLG *p_winfo_flg;
+	ER		ercd;
+
+	LOG_ISET_FLG_ENTER(flgid, setptn);
+	CHECK_INTCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	i_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		p_flgcb->flgptn |= setptn;
+		p_queue = p_flgcb->wait_queue.p_next;
+		while (p_queue != &(p_flgcb->wait_queue)) {
+			p_tcb = (TCB *) p_queue;
+			p_queue = p_queue->p_next;
+			p_winfo_flg = (WINFO_FLG *)(p_tcb->p_winfo);
+			if (check_flg_cond(p_flgcb, p_winfo_flg->waiptn,
+							p_winfo_flg->wfmode, &(p_winfo_flg->flgptn))) {
+				queue_delete(&(p_tcb->task_queue));
+				if (wait_complete(p_tcb)) {
+					reqflg = true;
+				}
+				if ((p_flgcb->p_flginib->flgatr & TA_CLR) != 0U) {
+					break;
+				}
+			}
+		}
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_ISET_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iset_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®ã¯ãªã¢
+ */
+#ifdef TOPPERS_clr_flg
+
+ER
+clr_flg(ID flgid, FLGPTN clrptn)
+{
+	FLGCB	*p_flgcb;
+	ER		ercd;
+
+	LOG_CLR_FLG_ENTER(flgid, clrptn);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		p_flgcb->flgptn &= clrptn; 
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_CLR_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_clr_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡
+ */
+#ifdef TOPPERS_wai_flg
+
+ER
+wai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn)
+{
+	FLGCB	*p_flgcb;
+	WINFO_FLG winfo_flg;
+	ER		ercd;
+
+	LOG_WAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn);
+	CHECK_DISPATCH();
+	CHECK_FLGID(flgid);
+	CHECK_PAR(waiptn != 0U);
+	CHECK_PAR(wfmode == TWF_ORW || wfmode == TWF_ANDW);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if ((p_flgcb->p_flginib->flgatr & TA_WMUL) == 0U
+					&& !queue_empty(&(p_flgcb->wait_queue))) {
+		ercd = E_ILUSE;
+	}
+	else if (check_flg_cond(p_flgcb, waiptn, wfmode, p_flgptn)) {
+		ercd = E_OK;
+	}
+	else {
+		winfo_flg.waiptn = waiptn;
+		winfo_flg.wfmode = wfmode;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_FLG);
+		wobj_make_wait((WOBJCB *) p_flgcb, (WINFO_WOBJ *) &winfo_flg);
+		dispatch();
+		ercd = winfo_flg.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_flgptn = winfo_flg.flgptn;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_WAI_FLG_LEAVE(ercd, *p_flgptn);
+	return(ercd);
+}
+
+#endif /* TOPPERS_wai_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_pol_flg
+
+ER
+pol_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn)
+{
+	FLGCB	*p_flgcb;
+	ER		ercd;
+
+	LOG_POL_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	CHECK_PAR(waiptn != 0U);
+	CHECK_PAR(wfmode == TWF_ORW || wfmode == TWF_ANDW);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if ((p_flgcb->p_flginib->flgatr & TA_WMUL) == 0U
+					&& !queue_empty(&(p_flgcb->wait_queue))) {
+		ercd = E_ILUSE;
+	}
+	else if (check_flg_cond(p_flgcb, waiptn, wfmode, p_flgptn)) {
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_POL_FLG_LEAVE(ercd, *p_flgptn);
+	return(ercd);
+}
+
+#endif /* TOPPERS_pol_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_twai_flg
+
+ER
+twai_flg(ID flgid, FLGPTN waiptn, MODE wfmode, FLGPTN *p_flgptn, TMO tmout)
+{
+	FLGCB	*p_flgcb;
+	WINFO_FLG winfo_flg;
+	TMEVTB	tmevtb;
+	ER		ercd;
+
+	LOG_TWAI_FLG_ENTER(flgid, waiptn, wfmode, p_flgptn, tmout);
+	CHECK_DISPATCH();
+	CHECK_FLGID(flgid);
+	CHECK_PAR(waiptn != 0U);
+	CHECK_PAR(wfmode == TWF_ORW || wfmode == TWF_ANDW);
+	CHECK_TMOUT(tmout);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if ((p_flgcb->p_flginib->flgatr & TA_WMUL) == 0U
+					&& !queue_empty(&(p_flgcb->wait_queue))) {
+		ercd = E_ILUSE;
+	}
+	else if (check_flg_cond(p_flgcb, waiptn, wfmode, p_flgptn)) {
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		winfo_flg.waiptn = waiptn;
+		winfo_flg.wfmode = wfmode;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_FLG);
+		wobj_make_wait_tmout((WOBJCB *) p_flgcb, (WINFO_WOBJ *) &winfo_flg,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_flg.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_flgptn = winfo_flg.flgptn;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TWAI_FLG_LEAVE(ercd, *p_flgptn);
+	return(ercd);
+}
+
+#endif /* TOPPERS_twai_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®ååæå
+ */
+#ifdef TOPPERS_ini_flg
+
+ER
+ini_flg(ID flgid)
+{
+	FLGCB	*p_flgcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_FLG_ENTER(flgid);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_flgcb->wait_queue));
+		p_flgcb->flgptn = p_flgcb->p_flginib->iflgptn;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_FLG_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_flg */
+
+/*
+ *  ã¤ãã³ããã©ã°ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_flg
+
+ER
+ref_flg(ID flgid, T_RFLG *pk_rflg)
+{
+	FLGCB	*p_flgcb;
+	ER		ercd;
+    
+	LOG_REF_FLG_ENTER(flgid, pk_rflg);
+	CHECK_TSKCTX_UNL();
+	CHECK_FLGID(flgid);
+	p_flgcb = get_flgcb(flgid);
+
+	t_lock_cpu();
+	if (p_flgcb->p_flginib->flgatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rflg->wtskid = wait_tskid(&(p_flgcb->wait_queue));
+		pk_rflg->flgptn = p_flgcb->flgptn;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_FLG_LEAVE(ercd, pk_rflg);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_flg */
Index: rubycfg_asp/trunk/asp_dcre/kernel/eventflag.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/eventflag.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/eventflag.h	(revision 313)
@@ -0,0 +1,167 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¤ãã³ããã©ã°æ©è½
+ */
+
+#ifndef TOPPERS_EVENTFLAG_H
+#define TOPPERS_EVENTFLAG_H
+
+#include "wait.h"
+
+/*
+ *  ã¤ãã³ããã©ã°åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct eventflag_initialization_block {
+	ATR			flgatr;			/* ã¤ãã³ããã©ã°å±æ§ */
+	FLGPTN		iflgptn;		/* ã¤ãã³ããã©ã°ã®ããããã¿ã¼ã³ã®åæå¤ */
+} FLGINIB;
+
+/*
+ *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct eventflag_control_block {
+	QUEUE		wait_queue;		/* ã¤ãã³ããã©ã°å¾
+ã¡ã­ã¥ã¼ */
+	const FLGINIB *p_flginib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	FLGPTN		flgptn;			/* ã¤ãã³ããã©ã°ç¾å¨ãã¿ã¼ã³ */
+} FLGCB;
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®2ã¤ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ *
+ *  flgptnã¯ï¼waiptnããã³wfmodeã¨åæã«ä½¿ããã¨ã¯ãªãããï¼å
+±ç¨ä½ãä½¿
+ *  ãã°ã¡ã¢ãªãç¯ç´ãããã¨ãå¯è½ã§ããï¼
+ */
+typedef struct eventflag_waiting_information {
+	WINFO		winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	FLGCB		*p_flgcb;		/* å¾
+ã£ã¦ããã¤ãã³ããã©ã°ã®ç®¡çãã­ãã¯ */
+	FLGPTN		waiptn;			/* å¾
+ã¡ãã¿ã¼ã³ */
+	MODE		wfmode;			/* å¾
+ã¡ã¢ã¼ã */
+	FLGPTN		flgptn;			/* å¾
+ã¡è§£é¤æã®ãã¿ã¼ã³ */
+} WINFO_FLG;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_flgcb;
+
+/*
+ *  ã¤ãã³ããã©ã°IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_flgid;
+extern const ID	tmax_sflgid;
+
+/*
+ *  ã¤ãã³ããã©ã°åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const FLGINIB	flginib_table[];
+extern FLGINIB			aflginib_table[];
+
+/*
+ *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern FLGCB	flgcb_table[];
+
+/*
+ *  ã¤ãã³ããã©ã°ç®¡çãã­ãã¯ããã¤ãã³ããã©ã°IDãåãåºãããã®ãã¯ã­
+ */
+#define	FLGID(p_flgcb)	((ID)(((p_flgcb) - flgcb_table) + TMIN_FLGID))
+
+/*
+ *  ã¤ãã³ããã©ã°æ©è½ã®åæå
+ */
+extern void	initialize_eventflag(void);
+
+/*
+ *  ã¤ãã³ããã©ã°å¾
+ã¡è§£é¤æ¡ä»¶ã®ãã§ãã¯
+ */
+extern bool_t	check_flg_cond(FLGCB *p_flgcb, FLGPTN waiptn,
+								MODE wfmode, FLGPTN *p_flgptn);
+
+#endif /* TOPPERS_EVENTFLAG_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/eventflag.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/eventflag.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/eventflag.trb	(revision 313)
@@ -0,0 +1,90 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: eventflag.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+# 
+
+#
+#		ã¤ãã³ããã©ã°æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class EventflagObject < KernelObject
+  def initialize()
+    super("flg", "eventflag")
+  end
+
+  def prepare(key, params)
+    # flgatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1562ï¼½
+    #ï¼TA_TPRIï¼TA_WMULï¼TA_CLRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:flgatr] & ~($TA_TPRI|$TA_WMUL|$TA_CLR)) != 0
+      error_illegal_id("E_RSATR", params, :flgatr, :flgid)
+    end
+
+    # iflgptnãFLGPTNã«æ ¼ç´ã§ããªãå ´åï¼E_PARï¼ï¼»NGKI3275ï¼½
+    if (params[:iflgptn] & ~((1 << $TBIT_FLGPTN) - 1)) != 0
+      error_wrong_id("E_PAR", params, :iflgptn, :flgid, "too large")
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:flgatr]}), (#{params[:iflgptn]})")
+  end
+end
+
+#
+#  ã¤ãã³ããã©ã°ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Eventflag Functions")
+EventflagObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/exception.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/exception.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/exception.c	(revision 313)
@@ -0,0 +1,160 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		CPUä¾å¤ç®¡çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "task.h"
+#include "exception.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_XSNS_DPN_ENTER
+#define LOG_XSNS_DPN_ENTER(p_excinf)
+#endif /* LOG_XSNS_DPN_ENTER */
+
+#ifndef LOG_XSNS_DPN_LEAVE
+#define LOG_XSNS_DPN_LEAVE(state)
+#endif /* LOG_XSNS_DPN_LEAVE */
+
+#ifndef LOG_XSNS_XPN_ENTER
+#define LOG_XSNS_XPN_ENTER(p_excinf)
+#endif /* LOG_XSNS_XPN_ENTER */
+
+#ifndef LOG_XSNS_XPN_LEAVE
+#define LOG_XSNS_XPN_LEAVE(state)
+#endif /* LOG_XSNS_XPN_LEAVE */
+
+/* 
+ *  CPUä¾å¤ãã³ãã©ç®¡çæ©è½ã®åæå
+ */
+#ifdef TOPPERS_excini
+#ifndef OMIT_INITIALIZE_EXCEPTION
+
+void
+initialize_exception(void)
+{
+	uint_t			i;
+	const EXCINIB	*p_excinib;
+
+	for (i = 0; i < tnum_excno; i++) {
+		p_excinib = &(excinib_table[i]);
+		x_define_exc(p_excinib->excno, p_excinib->exc_entry);
+	}
+}
+
+#endif /* OMIT_INITIALIZE_EXCEPTION */
+#endif /* TOPPERS_excini */
+
+/*
+ *  CPUä¾å¤ã®çºçããã³ã³ãã­ã¹ãã®åç
+§
+ */
+
+/*
+ *  CPUä¾å¤çºçæã®ãã£ã¹ãããä¿çç¶æ
+ã®åç
+§
+ *
+ *  CPUä¾å¤ãã³ãã©ä¸­ã§disdspãå¤åãããã¨ã¯ãªãããï¼CPUä¾å¤ãçºçã
+ *  ãæã®disdspãä¿å­ãã¦ããå¿
+è¦ã¯ãªãï¼
+ */
+#ifdef TOPPERS_xsns_dpn
+
+bool_t
+xsns_dpn(void *p_excinf)
+{
+	bool_t	state;
+
+	LOG_XSNS_DPN_ENTER(p_excinf);
+	state = (kerflg && exc_sense_intmask(p_excinf)
+									&& !disdsp) ? false : true;
+	LOG_XSNS_DPN_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_xsns_dpn */
+
+/*
+ *  CPUä¾å¤çºçæã®ã¿ã¹ã¯ä¾å¤å¦çä¿çç¶æ
+ã®åç
+§
+ *
+ *  CPUä¾å¤ãã³ãã©ä¸­ã§p_runtskã¨p_runtsk->enatexãå¤åãããã¨ã¯ãªã
+ *  ããï¼CPUä¾å¤ãçºçããæã®p_runtsk->enatexãä¿å­ãã¦ããå¿
+è¦ã¯ãª
+ *  ãï¼
+ */
+#ifdef TOPPERS_xsns_xpn
+
+bool_t
+xsns_xpn(void *p_excinf)
+{
+	bool_t	state;
+
+	LOG_XSNS_XPN_ENTER(p_excinf);
+	state = (kerflg && exc_sense_intmask(p_excinf)
+									&& p_runtsk->enatex) ? false : true;
+	LOG_XSNS_XPN_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_xsns_xpn */
Index: rubycfg_asp/trunk/asp_dcre/kernel/exception.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/exception.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/exception.h	(revision 313)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		CPUä¾å¤ç®¡çæ©è½
+ */
+
+#ifndef TOPPERS_EXCEPTION_H
+#define TOPPERS_EXCEPTION_H
+
+#ifndef OMIT_INITIALIZE_EXCEPTION
+
+/*
+ *  CPUä¾å¤ãã³ãã©åæåãã­ãã¯
+ */
+typedef struct cpu_exception_handler_initialization_block {
+	EXCNO		excno;			/* CPUä¾å¤ãã³ãã©çªå· */
+	ATR			excatr;			/* CPUä¾å¤ãã³ãã©å±æ§ */
+	FP			exc_entry;		/* CPUä¾å¤ãã³ãã©ã®åºå
+¥å£å¦çã®çªå° */
+} EXCINIB;
+
+/*
+ *  CPUä¾å¤ãã³ãã©çªå·ã®æ°ï¼kernel_cfg.cï¼
+ */
+extern const uint_t	tnum_excno;
+
+/*
+ *  CPUä¾å¤ãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const EXCINIB	excinib_table[];
+
+#endif /* OMIT_INITIALIZE_EXCEPTION */
+
+/*
+ *  CPUä¾å¤ãã³ãã©ç®¡çæ©è½ã®åæå
+ */
+extern void	initialize_exception(void);
+
+#endif /* TOPPERS_EXCEPTION_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/exception.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/exception.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/exception.trb	(revision 313)
@@ -0,0 +1,126 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: exception.trb 663 2016-02-27 04:45:50Z ertl-hiro $
+# 
+
+#
+#		CPUä¾å¤ç®¡çæ©è½ã®çæã¹ã¯ãªãã
+#
+
+#
+#  kernel_cfg.cã®çæ
+#
+$kernelCfgC.comment_header("CPU Exception Management Functions")
+
+#
+#  CPUä¾å¤ãã³ãã©ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:DEF_EXC].each do |key, params|
+  # excnoãCPUä¾å¤ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3134ï¼½
+  if $EXCNO_VALID.index(params[:excno]).nil?
+    error_illegal("E_PAR", params, :excno)
+  end
+
+  # excatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3131ï¼½
+  #ï¼TARGET_EXCATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  if (params[:excatr] & ~($TARGET_EXCATR)) != 0
+    error_illegal_sym("E_RSATR", params, :excatr, :excno)
+  end
+end
+
+#
+#  CPUä¾å¤ãã³ãã©ã®ããã®æ¨æºçãªåæåæ
+å ±ã®çæ
+#
+if !$OMIT_INITIALIZE_EXCEPTION
+  #
+  #  å®ç¾©ããCPUä¾å¤ãã³ãã©ã®æ°
+  #
+  $kernelCfgC.add(<<EOS)
+#define TNUM_EXCNO	#{$cfgData[:DEF_EXC].size}
+const uint_t _kernel_tnum_excno = TNUM_EXCNO;
+EOS
+
+  if $cfgData[:DEF_EXC].size != 0
+    #
+    #  CPUä¾å¤ãã³ãã©ã®ã¨ã³ããª
+    #
+    $cfgData[:DEF_EXC].each do |key, params|
+      $kernelCfgC.add("EXCHDR_ENTRY(#{params[:excno]}, " \
+						"#{params[:excno].val}, #{params[:exchdr]})")
+    end
+    $kernelCfgC.add("")
+
+    #
+    #  CPUä¾å¤ãã³ãã©åæåãã­ãã¯
+    #
+    $kernelCfgC.add("const EXCINIB _kernel_excinib_table[TNUM_EXCNO] = {")
+    $cfgData[:DEF_EXC].each_with_index do |(key, params), index|
+      $kernelCfgC.add(",") if index > 0
+      $kernelCfgC.append("\t{ (#{params[:excno]}), (#{params[:excatr]}), " \
+				"(FP)(EXC_ENTRY(#{params[:excno]}, #{params[:exchdr]})) }")
+    end
+    $kernelCfgC.add
+    $kernelCfgC.add2("};")
+  else
+    $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const EXCINIB, " \
+										"_kernel_excinib_table);")
+  end
+end
+
+#
+#  CPUä¾å¤ç®¡çæ©è½åæåé¢æ°ã®è¿½å 
+#
+$initializeFunctions.push("_kernel_initialize_exception();")
Index: rubycfg_asp/trunk/asp_dcre/kernel/genoffset.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/genoffset.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/genoffset.trb	(revision 313)
@@ -0,0 +1,164 @@
+# -*- coding: utf-8 -*-
+# 
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2011-2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+#  
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+#  
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: genoffset.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+# 
+
+#
+#		ãªãã»ãããã¡ã¤ã«çæç¨ã®çæã¹ã¯ãªãã
+#
+
+# 
+#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+# 
+$timeStampFileName = "offset.timestamp"
+
+# 
+#  offset.hã®å
+é ­é¨åã®çæ
+# 
+$offsetH = GenFile.new("offset.h")
+$offsetH.add2("/* offset.h */")
+
+# 
+#  #defineãã£ã¬ã¯ãã£ãã®çæ
+# 
+def GenerateDefine(symbol, value)
+  $offsetH.add("#define #{symbol}\t#{value}")
+end
+
+# 
+#  ãããã®ãµã¼ã
+# 
+def SearchBit(val)
+  (0..7).each do |valBit|
+    if (val & 1) != 0
+      return valBit
+    end
+    val >>= 1
+  end
+end
+
+# 
+#  ããããã£ã¼ã«ãã®ãªãã»ããã¨ãããä½ç½®ã®å®ç¾©ã®çæ
+# 
+def GenerateDefineBit(label, structSize, outputSize)
+  top = SYMBOL(label)
+  if top.nil?
+    error_exit("label `#{label}' not found")
+  else
+    val = 0
+    offset = 0
+    0.upto(structSize - 1).each do |i|
+      tmpVal = PEEK(top + i, 1)
+      if tmpVal != 0
+        val = tmpVal
+        offset = i
+        break
+      end
+    end
+
+    if val == 0
+      error_exit("bit not found in `#{label}'")
+    else
+      valBit = SearchBit(val)
+      case outputSize
+      when "W"
+        if $SIL_ENDIAN_BIG
+          valBit = valBit + 24 - ((offset & 0x03) << 3)
+        else
+          valBit = valBit + ((offset & 0x03) << 3)
+        end
+        offset &= ~0x03
+      when "H"
+        if $SIL_ENDIAN_BIG
+          valBit = valBit + 8 - ((offset & 0x01) << 3)
+        else
+          valBit = valBit + ((offset & 0x01) << 3)
+        end
+        offset &= ~0x01
+      end
+    end
+
+    $offsetH.add("#define #{label}\t#{offset}")
+    $offsetH.add("#define #{label}_bit\t#{valBit}")
+    $offsetH.add("#define #{label}_mask\t#{sprintf("0x%x", 1 << valBit)}")
+  end
+end
+
+# 
+#  ãã¤ãé
+ç½®ã®ãã§ãã¯
+# 
+def magicCheck(size, check)
+  label = "MAGIC_#{size}"
+  top = SYMBOL(label)
+  if top.nil?
+    error_exit("label `#{label}' not found")
+  else
+    1.upto(size).each do |offset|
+      if $SIL_ENDIAN_BIG
+        val = PEEK(top + offset - 1, 1)
+      else
+        val = PEEK(top + size - offset, 1)
+      end
+      if val != check.at(offset - 1)
+        error_exit("value check of `#{label}' failed")
+      end
+    end
+  end
+end
+
+magicCheck(1, [ 0x12 ])
+magicCheck(2, [ 0x12, 0x34 ])
+magicCheck(4, [ 0x12, 0x34, 0x56, 0x78 ])
Index: rubycfg_asp/trunk/asp_dcre/kernel/interrupt.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/interrupt.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/interrupt.c	(revision 313)
@@ -0,0 +1,513 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å²è¾¼ã¿ç®¡çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "interrupt.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ISR_ENTER
+#define LOG_ISR_ENTER(intno)
+#endif /* LOG_ISR_ENTER */
+
+#ifndef LOG_ISR_LEAVE
+#define LOG_ISR_LEAVE(intno)
+#endif /* LOG_ISR_LEAVE */
+
+#ifndef LOG_ACRE_ISR_ENTER
+#define LOG_ACRE_ISR_ENTER(pk_cisr)
+#endif /* LOG_ACRE_ISR_ENTER */
+
+#ifndef LOG_ACRE_ISR_LEAVE
+#define LOG_ACRE_ISR_LEAVE(ercd)
+#endif /* LOG_ACRE_ISR_LEAVE */
+
+#ifndef LOG_DEL_ISR_ENTER
+#define LOG_DEL_ISR_ENTER(isrid)
+#endif /* LOG_DEL_ISR_ENTER */
+
+#ifndef LOG_DEL_ISR_LEAVE
+#define LOG_DEL_ISR_LEAVE(ercd)
+#endif /* LOG_DEL_ISR_LEAVE */
+
+#ifndef LOG_DIS_INT_ENTER
+#define LOG_DIS_INT_ENTER(intno)
+#endif /* LOG_DIS_INT_ENTER */
+
+#ifndef LOG_DIS_INT_LEAVE
+#define LOG_DIS_INT_LEAVE(ercd)
+#endif /* LOG_DIS_INT_LEAVE */
+
+#ifndef LOG_ENA_INT_ENTER
+#define LOG_ENA_INT_ENTER(intno)
+#endif /* LOG_ENA_INT_ENTER */
+
+#ifndef LOG_ENA_INT_LEAVE
+#define LOG_ENA_INT_LEAVE(ercd)
+#endif /* LOG_ENA_INT_LEAVE */
+
+#ifndef LOG_CHG_IPM_ENTER
+#define LOG_CHG_IPM_ENTER(intpri)
+#endif /* LOG_CHG_IPM_ENTER */
+
+#ifndef LOG_CHG_IPM_LEAVE
+#define LOG_CHG_IPM_LEAVE(ercd)
+#endif /* LOG_CHG_IPM_LEAVE */
+
+#ifndef LOG_GET_IPM_ENTER
+#define LOG_GET_IPM_ENTER(p_intpri)
+#endif /* LOG_GET_IPM_ENTER */
+
+#ifndef LOG_GET_IPM_LEAVE
+#define LOG_GET_IPM_LEAVE(ercd, intpri)
+#endif /* LOG_GET_IPM_LEAVE */
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ°
+ */
+#define tnum_isr	((uint_t)(tmax_isrid - TMIN_ISRID + 1) + tnum_sisr)
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ãå
+ *  ãåºãããã®ãã¯ã­
+ */
+#define INDEX_ISR(isrid)	((uint_t)((isrid) - TMIN_ISRID) + tnum_sisr)
+#define get_isrcb(isrid)	(&(isrcb_table[INDEX_ISR(isrid)]))
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ã¸ã®ç»é²
+ */
+Inline void
+enqueue_isr(QUEUE *p_isr_queue, ISRCB *p_isrcb)
+{
+	QUEUE	*p_entry;
+	PRI		isrpri = p_isrcb->p_isrinib->isrpri;
+
+	for (p_entry = p_isr_queue->p_next; p_entry != p_isr_queue;
+											p_entry = p_entry->p_next) {
+		if (isrpri < ((ISRCB *) p_entry)->p_isrinib->isrpri) {
+			break;
+		}
+	}
+	queue_insert_prev(p_entry, &(p_isrcb->isr_queue));
+}
+
+#ifdef TOPPERS_isrini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_isrcb;
+
+/* 
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³æ©è½ã®åæå
+ */
+void
+initialize_isr(void)
+{
+	uint_t	i, j;
+	ISRCB	*p_isrcb;
+	ISRINIB	*p_isrinib;
+
+	for (i = 0; i < tnum_isr_queue; i++) {
+		queue_initialize(&(isr_queue_table[i]));
+	}
+	for (i = 0; i < tnum_sisr; i++) {
+		p_isrcb = &(isrcb_table[i]);
+		p_isrcb->p_isrinib = &(sisrinib_table[i]);
+		enqueue_isr(p_isrcb->p_isrinib->p_isr_queue, p_isrcb);
+	}
+	queue_initialize(&free_isrcb);
+	for (j = 0; i < tnum_isr; i++, j++) {
+		p_isrcb = &(isrcb_table[i]);
+		p_isrinib = &(aisrinib_table[j]);
+		p_isrinib->isratr = TA_NOEXS;
+		p_isrcb->p_isrinib = ((const ISRINIB *) p_isrinib);
+		queue_insert_prev(&free_isrcb, &(p_isrcb->isr_queue));
+	}
+}
+
+#endif /* TOPPERS_isrini */
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å¼åºã
+ */
+#ifdef TOPPERS_isrcal
+
+void
+call_isr(QUEUE *p_isr_queue)
+{
+	QUEUE	*p_queue;
+	ISRINIB	*p_isrinib;
+	PRI		saved_ipm;
+
+	saved_ipm = i_get_ipm();
+	for (p_queue = p_isr_queue->p_next; p_queue != p_isr_queue;
+											p_queue = p_queue->p_next) {
+		p_isrinib = (ISRINIB *)(((ISRCB *) p_queue)->p_isrinib);
+		LOG_ISR_ENTER(p_isrinib->intno);
+		(*(p_isrinib->isr))(p_isrinib->exinf);
+		LOG_ISR_LEAVE(p_isrinib->intno);
+
+		if (p_queue->p_next != p_isr_queue) {
+			/* ISRã®å¼åºãåã®ç¶æ
+ã«æ»ã */
+			if (i_sense_lock()) {
+				i_unlock_cpu();
+			}
+			i_set_ipm(saved_ipm);
+		}
+	}
+}
+
+#endif /* TOPPERS_isrcal */
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ã®æ¤ç´¢
+ */
+Inline QUEUE *
+search_isr_queue(INTNO intno)
+{
+	int_t	left, right, i;
+
+	if (tnum_isr_queue == 0) {
+		return(NULL);
+	}
+
+	left = 0;
+	right = tnum_isr_queue - 1;
+	while (left < right) {
+		i = (left + right + 1) / 2;
+		if (intno < isr_queue_list[i].intno) {
+			right = i - 1;
+		}
+		else {
+			left = i;
+		}
+	}
+	if (isr_queue_list[left].intno == intno) {
+		return(isr_queue_list[left].p_isr_queue);
+	}
+	else {
+		return(NULL);
+	}
+}
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®çæ
+ */
+#ifdef TOPPERS_acre_isr
+
+ER_UINT
+acre_isr(const T_CISR *pk_cisr)
+{
+	ISRCB	*p_isrcb;
+	ISRINIB	*p_isrinib;
+	QUEUE	*p_isr_queue;
+	ER		ercd;
+
+	LOG_ACRE_ISR_ENTER(pk_cisr);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cisr->isratr, TARGET_ISRATR);
+	CHECK_INTNO_CREISR(pk_cisr->intno);
+	CHECK_ALIGN_FUNC(pk_cisr->isr);
+	CHECK_NONNULL_FUNC(pk_cisr->isr);
+	CHECK_ISRPRI(pk_cisr->isrpri);
+
+	p_isr_queue = search_isr_queue(pk_cisr->intno);
+	CHECK_OBJ(p_isr_queue != NULL);
+
+	t_lock_cpu();
+	if (tnum_isr == 0 || queue_empty(&free_isrcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_isrcb = ((ISRCB *) queue_delete_next(&free_isrcb));
+		p_isrinib = (ISRINIB *)(p_isrcb->p_isrinib);
+		p_isrinib->isratr = pk_cisr->isratr;
+		p_isrinib->exinf = pk_cisr->exinf;
+		p_isrinib->intno = pk_cisr->intno;
+		p_isrinib->p_isr_queue = p_isr_queue;
+		p_isrinib->isr = pk_cisr->isr;
+		p_isrinib->isrpri = pk_cisr->isrpri;
+		enqueue_isr(p_isr_queue, p_isrcb);
+		ercd = ISRID(p_isrcb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_ISR_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_isr */
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®åé¤
+ */
+#ifdef TOPPERS_del_isr
+
+ER
+del_isr(ID isrid)
+{
+	ISRCB	*p_isrcb;
+	ISRINIB	*p_isrinib;
+	ER		ercd;
+
+	LOG_DEL_ISR_ENTER(isrid);
+	CHECK_TSKCTX_UNL();
+	CHECK_ISRID(isrid);
+	p_isrcb = get_isrcb(isrid);
+
+	t_lock_cpu();
+	if (p_isrcb->p_isrinib->isratr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		queue_delete(&(p_isrcb->isr_queue));
+		p_isrinib = (ISRINIB *)(p_isrcb->p_isrinib);
+		p_isrinib->isratr = TA_NOEXS;
+		queue_insert_prev(&free_isrcb, &(p_isrcb->isr_queue));
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_ISR_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_isr */
+
+/* 
+ *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ */
+#ifdef TOPPERS_intini
+#ifndef OMIT_INITIALIZE_INTERRUPT
+
+void
+initialize_interrupt(void)
+{
+	uint_t			i;
+	const INHINIB	*p_inhinib;
+	const INTINIB	*p_intinib;
+
+	for (i = 0; i < tnum_inhno; i++) {
+		p_inhinib = &(inhinib_table[i]);
+		x_define_inh(p_inhinib->inhno, p_inhinib->int_entry);
+	}
+	for (i = 0; i < tnum_intno; i++) {
+		p_intinib = &(intinib_table[i]);
+		x_config_int(p_intinib->intno, p_intinib->intatr, p_intinib->intpri);
+	}
+}
+
+#endif /* OMIT_INITIALIZE_INTERRUPT */
+#endif /* TOPPERS_intini */
+
+/*
+ *  å²è¾¼ã¿ã®ç¦æ­¢
+ */
+#ifdef TOPPERS_dis_int
+#ifdef TOPPERS_SUPPORT_DIS_INT
+
+ER
+dis_int(INTNO intno)
+{
+	bool_t	locked;
+	ER		ercd;
+
+	LOG_DIS_INT_ENTER(intno);
+	CHECK_TSKCTX();
+	CHECK_INTNO_DISINT(intno);
+
+	locked = t_sense_lock();
+	if (!locked) {
+		t_lock_cpu();
+	}
+	if (t_disable_int(intno)) {
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	if (!locked) {
+		t_unlock_cpu();
+	}
+
+  error_exit:
+	LOG_DIS_INT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_SUPPORT_DIS_INT */
+#endif /* TOPPERS_dis_int */
+
+/*
+ *  å²è¾¼ã¿ã®è¨±å¯
+ */
+#ifdef TOPPERS_ena_int
+#ifdef TOPPERS_SUPPORT_ENA_INT
+
+ER
+ena_int(INTNO intno)
+{
+	bool_t	locked;
+	ER		ercd;
+
+	LOG_ENA_INT_ENTER(intno);
+	CHECK_TSKCTX();
+	CHECK_INTNO_DISINT(intno);
+
+	locked = t_sense_lock();
+	if (!locked) {
+		t_lock_cpu();
+	}
+	if (t_enable_int(intno)) {
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	if (!locked) {
+		t_unlock_cpu();
+	}
+
+  error_exit:
+	LOG_ENA_INT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_SUPPORT_ENA_INT */
+#endif /* TOPPERS_ena_int */
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®å¤æ´
+ */
+#ifdef TOPPERS_chg_ipm
+
+ER
+chg_ipm(PRI intpri)
+{
+	ER		ercd;
+
+	LOG_CHG_IPM_ENTER(intpri);
+	CHECK_TSKCTX_UNL();
+	CHECK_INTPRI_CHGIPM(intpri);
+
+	t_lock_cpu();
+	t_set_ipm(intpri);
+	if (intpri == TIPM_ENAALL) {
+		ipmflg = true;
+		if (!disdsp) {
+			dspflg = true;
+			if (p_runtsk != p_schedtsk) {
+				dispatch();
+			}
+		}
+		if (p_runtsk->enatex && p_runtsk->texptn != 0U) {
+			call_texrtn();
+		}
+	}
+	else {
+		ipmflg = false;
+		dspflg = false;
+	}
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_CHG_IPM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_chg_ipm */
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ã®åç
+§
+ */
+#ifdef TOPPERS_get_ipm
+
+ER
+get_ipm(PRI *p_intpri)
+{
+	ER		ercd;
+
+	LOG_GET_IPM_ENTER(p_intpri);
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	*p_intpri = t_get_ipm();
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_IPM_LEAVE(ercd, *p_intpri);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_ipm */
Index: rubycfg_asp/trunk/asp_dcre/kernel/interrupt.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/interrupt.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/interrupt.h	(revision 313)
@@ -0,0 +1,207 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å²è¾¼ã¿ç®¡çæ©è½
+ */
+
+#ifndef TOPPERS_INTERRUPT_H
+#define TOPPERS_INTERRUPT_H
+
+#include <queue.h>
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åæåãã­ãã¯
+ */
+typedef struct isr_initialization_block {
+	ATR			isratr;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å±æ§ */
+	intptr_t	exinf;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ¡å¼µæ
+å ± */
+	INTNO		intno;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ãç»é²ããå²è¾¼ã¿çªå· */
+	QUEUE		*p_isr_queue;	/* ç»é²å
+å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ã®çªå° */
+	ISR			isr;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
+é ­çªå° */
+	PRI			isrpri;			/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åªå
+åº¦ */
+} ISRINIB;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯
+ */
+typedef struct isr_control_block {
+	QUEUE		isr_queue;		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ */
+	const ISRINIB *p_isrinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+} ISRCB;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ãæ¤ç´¢ããããã®ãã¼ã¿æ§é 
+ */
+typedef struct {
+	INTNO		intno;			/* å²è¾¼ã¿çªå· */
+	QUEUE		*p_isr_queue;	/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³å¼åºãã­ã¥ã¼ */
+} ISR_ENTRY;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ã®ã¨ã³ããªæ°ï¼kernel_cfg.cï¼
+ */
+extern const uint_t tnum_isr_queue;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ãªã¹ãï¼kernel_cfg.cï¼
+ */
+extern const ISR_ENTRY isr_queue_list[];
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã­ã¥ã¼ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern QUEUE isr_queue_table[];
+
+/*
+ *  ä½¿ç¨ãã¦ããªãå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_isrcb;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ *
+ *  éçã«çæãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã¯IDçªå·ãæããªãããï¼
+ *  tmax_isridã¯åçã«çæãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®IDçªå·ã®æå¤§å¤
+ *  ã§ããï¼éçã«çæãããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®æ°ã¯ï¼tnum_sisrã«ä¿
+ *  æããï¼
+ */
+extern const ID		tmax_isrid;
+extern const uint_t	tnum_sisr;
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const ISRINIB	sisrinib_table[];
+extern ISRINIB			aisrinib_table[];
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern ISRCB	isrcb_table[];
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç®¡çãã­ãã¯ããå²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDãå
+ *  ãåºãããã®ãã¯ã­
+ */
+#define	ISRID(p_isrcb)	((ID)(((p_isrcb) - isrcb_table) \
+										- tnum_sisr + TMIN_ISRID))
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³æ©è½ã®åæå
+ */
+extern void initialize_isr(void);
+
+/*
+ *  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å¼åºã
+ */
+extern void call_isr(QUEUE *p_isr_queue);
+
+#ifndef OMIT_INITIALIZE_INTERRUPT
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯
+ */
+typedef struct interrupt_handler_initialization_block {
+	INHNO		inhno;			/* å²è¾¼ã¿ãã³ãã©çªå· */
+	ATR			inhatr;			/* å²è¾¼ã¿ãã³ãã©å±æ§ */
+	FP			int_entry;		/* å²è¾¼ã¿ãã³ãã©ã®åºå
+¥å£å¦çã®çªå° */
+} INHINIB;
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯
+ */
+typedef struct interrupt_request_initialization_block {
+	INTNO		intno;			/* å²è¾¼ã¿çªå· */
+	ATR			intatr;			/* å²è¾¼ã¿å±æ§ */
+	PRI			intpri;			/* å²è¾¼ã¿åªå
+åº¦ */
+} INTINIB;
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©çªå·ã®æ°ï¼kernel_cfg.cï¼
+ */
+extern const uint_t	tnum_inhno;
+
+/*
+ *  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const INHINIB	inhinib_table[];
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°ï¼kernel_cfg.cï¼
+ */
+extern const uint_t	tnum_intno;
+
+/*
+ *  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const INTINIB	intinib_table[];
+
+#endif /* OMIT_INITIALIZE_INTERRUPT */
+
+/*
+ *  å²è¾¼ã¿ç®¡çæ©è½ã®åæå
+ */
+extern void	initialize_interrupt(void);
+
+#endif /* TOPPERS_INTERRUPT_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/interrupt.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/interrupt.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/interrupt.trb	(revision 313)
@@ -0,0 +1,530 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: interrupt.trb 678 2016-03-06 02:36:09Z ertl-hiro $
+# 
+
+#
+#		å²è¾¼ã¿ç®¡çæ©è½ã®çæã¹ã¯ãªãã
+#
+
+#
+#  kernel_cfg.cã®çæ
+#
+$kernelCfgC.comment_header("Interrupt Management Functions")
+
+#
+#  ATT_ISRã§ä½¿ç¨ã§ããå²è¾¼ã¿çªå·ã¨ããã«å¯¾å¿ããå²è¾¼ã¿ãã³ãã©çªå·ã®ã
+#  ãã©ã«ãå®ç¾©
+#
+if $INTNO_ATTISR_VALID.nil?
+  $INTNO_ATTISR_VALID = $INTNO_VALID
+end
+if $INHNO_ATTISR_VALID.nil?
+  $INHNO_ATTISR_VALID = $INHNO_VALID
+end
+
+#
+#  CFG_INTã§ä½¿ç¨ã§ããå²è¾¼ã¿åªå
+åº¦ã®ããã©ã«ãå®ç¾©
+# 
+if $INTPRI_CFGINT_VALID.nil?
+  $INTPRI_CFGINT_VALID = $TMIN_INTPRI.upto($TMAX_INTPRI).to_a
+end
+
+#
+#  å²è¾¼ã¿çªå·ã¨å²è¾¼ã¿ãã³ãã©çªå·ã®å¤æãã¼ãã«ã®ä½æ
+#
+if $INTNO_ATTISR_VALID.length != $INHNO_ATTISR_VALID.length
+  error_exit("length of `INTNO_ATTISR_VALID' is different from" \
+									" length of `INHNO_ATTISR_VALID'")
+end
+$toInhnoVal = {}
+$toIntnoVal = {}
+inhno_attisr_valid = $INHNO_ATTISR_VALID.dup
+$INTNO_ATTISR_VALID.each do |intnoVal|
+  inhnoVal = inhno_attisr_valid.shift
+  $toInhnoVal[intnoVal] = inhnoVal
+  $toIntnoVal[inhnoVal] = intnoVal
+end
+
+#
+#  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:CFG_INT].each do |key, params|
+  #	intnoãå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI2972ï¼½
+  if $INTNO_VALID.index(params[:intno]).nil?
+    error_illegal("E_PAR", params, :intno)
+  end
+
+  #	intatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2969ï¼½
+  #ï¼TA_ENAINTï¼TA_EDGEï¼TARGET_INTATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  if (params[:intatr] & ~($TA_ENAINT|$TA_EDGE|$TARGET_INTATR)) != 0
+    error_illegal_sym("E_RSATR", params, :intatr, :intno)
+  end
+
+  #	intpriãCFG_INTã«å¯¾ããå²è¾¼ã¿åªå
+åº¦ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+  #	ï¼»NGKI2973ï¼½
+  if $INTPRI_CFGINT_VALID.index(params[:intpri]).nil?
+    error_illegal_sym("E_OBJ", params, :intpri, :intno)
+  end
+
+  # ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIã
+  #	ããå°ããå¤ãæå®ãããªãã£ãå ´åï¼E_OBJï¼ï¼»NGKI2983ï¼½
+  if !$INTNO_FIX_NONKERNEL.nil?
+    if !$INTNO_FIX_NONKERNEL.index(params[:intno]).nil?
+      if params[:intpri] >= $TMIN_INTPRI
+        error_ercd("E_OBJ", params, "%%intno must have higher priority " \
+											"than TMIN_INTPRI in %apiname")
+      end
+    end
+  end
+
+  #	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããintnoã«å¯¾ãã¦ï¼intpriã«TMIN_INTPRIãã
+  #	ãå°ããå¤ãæå®ãããå ´åï¼E_OBJï¼ï¼»NGKI2984ï¼½
+  if !$INTNO_FIX_KERNEL.nil?
+    if !$INTNO_FIX_KERNEL.index(params[:intno]).nil?
+      if params[:intpri] < $TMIN_INTPRI
+        error_ercd("E_OBJ", params, "%%intno must have lower or equal " \
+									"priority to TMIN_INTPRI in %apiname")
+      end
+    end
+  end
+end
+
+#
+#  å²è¾¼ã¿ãã³ãã©ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:DEF_INH].each do |key, params|
+  # inhnoãå²è¾¼ã¿ãã³ãã©çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3055ï¼½
+  if $INHNO_VALID.index(params[:inhno]).nil?
+    error_illegal("E_PAR", params, :inhno)
+  end
+
+  # inhatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3052ï¼½
+  #ï¼TARGET_INHATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  if (params[:inhatr] & ~($TARGET_INHATR)) != 0
+    error_illegal_sym("E_RSATR", params, :inhatr, :inhno)
+  end
+
+  #	ã«ã¼ãã«ç®¡çå¤ã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELã
+  #	æå®ããã¦ããªãå ´åï¼E_RSATRï¼ï¼»NGKI3067ï¼½
+  if !$INHNO_FIX_NONKERNEL.nil?
+    if !$INHNO_FIX_NONKERNEL.index(params[:inhno]).nil?
+      if (params[:inhatr] & $TA_NONKERNEL) == 0
+        error_ercd("E_RSATR", params, "%%inhno must be " \
+								"non-kernel interrupt in %apiname")
+      end
+    end
+  end
+
+  #	ã«ã¼ãã«ç®¡çã«åºå®ããã¦ããinhnoã«å¯¾ãã¦ï¼inhatrã«TA_NONKERNELãæ
+  #	å®ããã¦ããå ´åï¼E_RSATRï¼ï¼»NGKI3068ï¼½
+  if !$INHNO_FIX_KERNEL.nil?
+    if !$INHNO_FIX_KERNEL.index(params[:inhno]).nil?
+      if (params[:inhatr] & $TA_NONKERNEL) != 0
+        error_ercd("E_RSATR", params, "%%inhno must not be " \
+								"non-kernel interrupt in %apiname")
+      end
+    end
+  end
+
+  if $toIntnoVal.has_key?(params[:inhno].val)
+    intnoVal = $toIntnoVal[params[:inhno].val]
+
+    # inhnoã«å¯¾å¿ããintnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼ï¼»NGKI3062ï¼½
+    if !$cfgData[:CFG_INT].has_key?(intnoVal)
+      error_ercd("E_OBJ", params, "intno `#{intnoVal}' corresponding to " \
+					"%%inhno in %apiname is not configured with CFG_INT")
+    else
+      intnoParams = $cfgData[:CFG_INT][intnoVal]
+      if (params[:inhatr] & $TA_NONKERNEL) == 0
+        # inhatrã«TA_NONKERNELãæå®ããã¦ãããï¼inhnoã«å¯¾å¿ããintno
+        # ã«å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIãããå°
+        # ããå ´åï¼E_OBJï¼ï¼»NGKI3065ï¼½
+        if intnoParams[:intpri] < $TMIN_INTPRI
+          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
+				"configured for %%inhno must be lower or equal to TMIN_INTPRI")
+        end
+      else
+        # inhatrã«TA_NONKERNELãæå®ããã¦ããï¼inhnoã«å¯¾å¿ããintnoã«
+        # å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIä»¥ä¸ã§ãã
+        # å ´åï¼E_OBJï¼ï¼»NGKI3066ï¼½
+        if intnoParams[:intpri] >= $TMIN_INTPRI
+          error_ercd("E_OBJ", params, "intpri `#{intnoParams[:intpri]}' " \
+					"configured for %%inhno must be higher than TMIN_INTPRI")
+        end
+      end
+    end
+  end
+end
+
+#
+#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ã«é¢ããã¨ã©ã¼ãã§ãã¯
+#
+$cfgData[:ATT_ISR].sort.each do |key, params|
+  #	isratrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2998ï¼½
+  #ï¼TARGET_ISRATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+  if (params[:isratr] & ~($TARGET_ISRATR)) != 0
+    error_illegal("E_RSATR", params, "isratr")
+  end
+
+  #	intnoãATT_ISRã«å¯¾ããå²è¾¼ã¿çªå·ã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼
+  #	ï¼»NGKI3003ï¼½
+  if $INTNO_ATTISR_VALID.index(params[:intno]).nil?
+    error_illegal("E_PAR", params, "intno")
+  end
+
+  #	(TMIN_ISRPRI <= isrpri && isrpri <= TMAX_ISRPRI)ã§ãªãå ´åï¼E_PARï¼
+  #	ï¼»NGKI3005ï¼½
+  if !($TMIN_ISRPRI <= params[:isrpri] && params[:isrpri] <= $TMAX_ISRPRI)
+    error_illegal("E_PAR", params, "isrpri")
+  end
+end
+
+$INTNO_ATTISR_VALID.each do |intnoVal|
+  # å²è¾¼ã¿çªå·intnoã«å¯¾ãã¦ç»é²ãããISRã®ãªã¹ãã®ä½æ
+  isrParamsList = []
+  $cfgData[:ATT_ISR].sort.each do |key, params|
+    if params[:intno] == intnoVal
+      isrParamsList.push(params)
+    end
+  end
+
+  #	å²è¾¼ã¿çªå·intnoã«å¯¾ãã¦ç»é²ãããISRãå­å¨ããå ´å
+  if isrParamsList.size > 0
+    inhnoVal = $toInhnoVal[intnoVal]
+
+    # intnoã«å¯¾å¿ããinhnoã«å¯¾ãã¦DEF_INHãããå ´åï¼E_OBJï¼ï¼»NGKI3013ï¼½
+    if $cfgData[:DEF_INH].has_key?(inhnoVal)
+      inhnoParams = $cfgData[:DEF_INH][inhnoVal]
+      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
+					"is duplicated with inhno #{inhnoParams[:inhno]}")
+    end
+
+    # intnoã«å¯¾ããCFG_INTããªãå ´åï¼E_OBJï¼ï¼»NGKI3012ï¼½
+    if !$cfgData[:CFG_INT].has_key?(intnoVal)
+      error_ercd("E_OBJ", isrParamsList[0], "%%intno in %apiname " \
+									"is not configured with CFG_INT")
+    else
+      intnoParams = $cfgData[:CFG_INT][intnoVal]
+
+      #	intnoã«å¯¾ãã¦CFG_INTã§è¨­å®ãããå²è¾¼ã¿åªå
+åº¦ãTMIN_INTPRIããã
+      #	å°ããå ´åï¼E_OBJï¼ï¼»NGKI3014ï¼½
+      if intnoParams[:intpri] < $TMIN_INTPRI
+        error_ercd("E_OBJ", isrParamsList[0],
+						"intpri `#{intnoParams[:intpri]}' configured for " \
+						"%%intno with CFG_INT in higher than TMIN_INTPRI")
+      end
+    end
+  end
+end
+
+#
+#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼ç®¡çã®ãã¼ã¿æ§é 
+#
+intnoIsrList = []
+$INTNO_ATTISR_VALID.each do |intnoVal|
+  inhnoVal = $toInhnoVal[intnoVal]
+  if $cfgData[:CFG_INT].has_key?(intnoVal) \
+							&& !$cfgData[:DEF_INH].has_key?(inhnoVal)
+    intnoIsrList.push(intnoVal)
+  end
+end
+
+intnoIsrList.sort!
+$isrQueueHeader = {}
+intnoIsrList.each_with_index do |intnoVal, index|
+  $isrQueueHeader[intnoVal] = "&(_kernel_isr_queue_table[#{index}])"
+end
+
+$kernelCfgC.add2("const uint_t _kernel_tnum_isr_queue = #{intnoIsrList.size};")
+
+if intnoIsrList.size > 0
+  $kernelCfgC.add("const ISR_ENTRY _kernel_isr_queue_list" \
+										"[#{intnoIsrList.size}] = {")
+  intnoIsrList.each_with_index do |intnoVal, index|
+    $kernelCfgC.add(",") if index > 0
+    $kernelCfgC.append("\t{ #{intnoVal}, #{$isrQueueHeader[intnoVal]} }")
+  end
+  $kernelCfgC.add
+  $kernelCfgC.add2("};")
+  $kernelCfgC.add2("QUEUE _kernel_isr_queue_table[#{intnoIsrList.size}];")
+else
+  $kernelCfgC.add("TOPPERS_EMPTY_LABEL(const ISR_ENTRY, " \
+											"_kernel_isr_queue_list);")
+  $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(QUEUE, _kernel_isr_queue_table);")
+end
+
+#
+#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ï¼ISRï¼å¼åºãã®ããã®å²è¾¼ã¿ãã³ãã©
+#
+intnoIsrList.each do |intnoVal|
+  inhnoVal = $toInhnoVal[intnoVal]
+
+  # æ¬¡ã®DEF_INHã«ç¸å½ãããã¼ã¿ãçæ
+  # DEF_INH(inhno, { TA_NULL, _kernel_inthdr_<intno> } );
+  $cfgData[:DEF_INH][inhnoVal] = {
+    inhno: NumStr.new(inhnoVal),
+    inhatr: NumStr.new($TA_NULL, "TA_NULL"),
+    inthdr: "_kernel_inthdr_#{intnoVal}"
+  }
+
+  # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ç¨ã®å²è¾¼ã¿ãã³ãã©
+  $kernelCfgC.add("void")
+  $kernelCfgC.add("_kernel_inthdr_#{intnoVal}(void)")
+  $kernelCfgC.add("{")
+  $kernelCfgC.add("\ti_begin_int(#{intnoVal});")
+  $kernelCfgC.add("\t_kernel_call_isr(#{$isrQueueHeader[intnoVal]});");
+  $kernelCfgC.add("\ti_end_int(#{intnoVal});")
+  $kernelCfgC.add2("}")
+end
+
+#
+#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ããä¸è¬çãªæ
+å ±ã®çæ
+#
+class IsrObject
+  def initialize()
+    @inibList = { "ISRINIB" => "aisrinib_table"}
+  end
+
+  def generate()
+    # AID_ISRã®å¦ç
+    numAutoObjid = 0
+    $cfgData[:AID_ISR].each do |key, params|
+      numAutoObjid += params["noisr".to_sym]
+    end
+    numObjid = $cfgData[:ATT_ISR].size + numAutoObjid
+
+    # kernel_cfg.hã®çæ
+    $kernelCfgH.add("#define TNUM_ISRID\t#{numAutoObjid}")
+
+    # ãªãã¸ã§ã¯ãã®IDçªå·ã®ãã¯ã­å®ç¾©ã®çæ
+    $cfgData[:ATT_ISR].sort.each do |key, params|
+      if params[:isrid]
+        $kernelCfgH.add("#define #{params[:isrid]}\t#{params[:isrid].val}")
+      end
+    end
+    $kernelCfgH.add()
+
+    # ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°
+    if $USE_EXTERNAL_ID
+      $cfgData[:ATT_ISR].sort.each do |key, params|
+        if params[:isrid]
+          $kernelCfgC.add("const ID #{params[:isrid]}_id" \
+										" = #{params[:isrid].val};")
+		end
+      end
+      $kernelCfgC.add()
+    end
+
+    # éçã«çæããããªãã¸ã§ã¯ãã®æ°
+    $kernelCfgC.add("#define TNUM_SISR\t#{$cfgData[:ATT_ISR].size}")
+    $kernelCfgC.add("#define TNUM_ISR\t#{numObjid}")
+
+    # ãªãã¸ã§ã¯ãIDçªå·ã®æå¤§å¤
+    $kernelCfgC.add("const ID _kernel_tmax_isrid" \
+							" = (TMIN_ISRID + TNUM_ISRID - 1);")
+    $kernelCfgC.add("const uint_t _kernel_tnum_sisr = TNUM_SISR;")
+
+    # ãã¼ã¿æ§é 
+    if $cfgData[:ATT_ISR].size > 0
+      # äºåæºåï¼ã¨ã©ã¼ãã§ãã¯ï¼ã¡ã¢ãªé åã®çæï¼
+      $cfgData[:ATT_ISR].sort.each do |key, params|
+        prepare(key, params)
+      end
+
+      # ãªãã¸ã§ã¯ãå
+¨ä½ã«å¯¾ãã¦å¿
+è¦ãªã¡ã¢ãªé åã®çæï¼ãªãã·ã§ã³ï¼
+      if respond_to?(:generateData)
+        generateData()
+      end
+
+      # ãªãã¸ã§ã¯ãåæåãã­ãã¯ã®çæ
+      $kernelCfgC.add("const ISRINIB _kernel_sisrinib_table" \
+													"[TNUM_SISR] = {")
+      $cfgData[:ATT_ISR].sort.each_with_index do |(key, params), index|
+        $kernelCfgC.add(",") if index > 0
+        $kernelCfgC.append("\t{ " + generateInib(key, params) + " }")
+      end
+      $kernelCfgC.add
+      $kernelCfgC.add2("};")
+    else
+      $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const ISRINIB, " \
+										"_kernel_sisrinib_table);")
+    end
+
+    # åççæãªãã¸ã§ã¯ãç¨ã®ãªãã¸ã§ã¯ãåæåãã­ãã¯
+    @inibList.each do |type, array|
+      if numAutoObjid > 0
+        $kernelCfgC.add2("#{type} _kernel_#{array}[#{numAutoObjid}];")
+      else
+        $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(#{type}, _kernel_#{array});")
+      end
+    end
+
+    if numObjid > 0
+      # ãªãã¸ã§ã¯ãç®¡çãã­ãã¯ã®çæ
+      $kernelCfgC.add2("ISRCB _kernel_isrcb_table" \
+													"[TNUM_ISR];")
+
+      # ãªãã¸ã§ã¯ãåæåé¢æ°ã®è¿½å 
+      $initializeFunctions.push("_kernel_initialize_isr();")
+    else
+      $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(ISRCB, " \
+										"_kernel_isrcb_table);")
+    end
+  end
+
+  def prepare(key, params)
+    # ã¨ã©ã¼ãã§ãã¯ã¯å®æ½æ¸ã¿ãªã®ã§ï¼ããã§ã®å¦çã¯ä¸è¦
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:isratr]}), (intptr_t)(#{params[:exinf]}), " \
+						"(#{params[:intno]}), " \
+						"(#{$isrQueueHeader[params[:intno].val]}), " \
+						"(ISR)(#{params[:isr]}), (#{params[:isrpri]})")
+  end
+end
+IsrObject.new.generate()
+
+#
+#  å²è¾¼ã¿ãã³ãã©ã®ããã®æ¨æºçãªåæåæ
+å ±ã®çæ
+#
+if !$OMIT_INITIALIZE_INTERRUPT || $USE_INHINIB_TABLE
+  #
+  #  å®ç¾©ããå²è¾¼ã¿ãã³ãã©ã®æ°
+  #
+  $kernelCfgC.add(<<EOS)
+#define TNUM_INHNO	#{$cfgData[:DEF_INH].size}
+const uint_t _kernel_tnum_inhno = TNUM_INHNO;
+EOS
+
+  if $cfgData[:DEF_INH].size != 0
+    #
+    #  å²è¾¼ã¿ãã³ãã©ã®ã¨ã³ããª
+    #
+    $cfgData[:DEF_INH].each do |key, params|
+      if (params[:inhatr] & $TA_NONKERNEL) == 0
+        $kernelCfgC.add("INTHDR_ENTRY(#{params[:inhno]}, " \
+						"#{params[:inhno].val}, #{params[:inthdr]})")
+      end
+    end
+    $kernelCfgC.add("")
+
+    #
+    #  å²è¾¼ã¿ãã³ãã©åæåãã­ãã¯
+    #
+    $kernelCfgC.add("const INHINIB _kernel_inhinib_table[TNUM_INHNO] = {")
+    $cfgData[:DEF_INH].each_with_index do |(key, params), index|
+      $kernelCfgC.add(",") if index > 0
+      if (params[:inhatr] & $TA_NONKERNEL) == 0
+        inthdr = "(FP)(INT_ENTRY(#{params[:inhno]}, #{params[:inthdr]}))"
+      else
+        inthdr = "(FP)(#{params[:inthdr]})"
+      end
+      $kernelCfgC.append("\t{ (#{params[:inhno]}), (#{params[:inhatr]}), " \
+															"#{inthdr} }")
+    end
+    $kernelCfgC.add
+    $kernelCfgC.add2("};")
+  else
+    $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const INHINIB, " \
+										"_kernel_inhinib_table);")
+  end
+end
+
+#
+#  å²è¾¼ã¿è¦æ±ã©ã¤ã³ã®ããã®æ¨æºçãªåæåæ
+å ±ã®çæ
+#
+if !$OMIT_INITIALIZE_INTERRUPT || $USE_INTINIB_TABLE
+  #
+  #  è¨­å®ããå²è¾¼ã¿è¦æ±ã©ã¤ã³ã®æ°
+  #
+  $kernelCfgC.add(<<EOS)
+#define TNUM_INTNO	#{$cfgData[:CFG_INT].size}
+const uint_t _kernel_tnum_intno = TNUM_INTNO;
+EOS
+
+  #
+  #  å²è¾¼ã¿è¦æ±ã©ã¤ã³åæåãã­ãã¯
+  #
+  if $cfgData[:CFG_INT].size != 0
+    $kernelCfgC.add("const INTINIB _kernel_intinib_table[TNUM_INTNO] = {")
+    $cfgData[:CFG_INT].each_with_index do |(key, params), index|
+      $kernelCfgC.add(",") if index > 0
+      $kernelCfgC.append("\t{ (#{params[:intno]}), (#{params[:intatr]}), " \
+													"(#{params[:intpri]}) }")
+    end
+    $kernelCfgC.add
+    $kernelCfgC.add2("};")
+  else
+    $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const INTINIB, " \
+										"_kernel_intinib_table);")
+  end
+end
+
+#
+#  å²è¾¼ã¿ç®¡çæ©è½åæåé¢æ°ã®è¿½å 
+#
+$initializeFunctions.push("_kernel_initialize_interrupt();")
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel.trb	(revision 313)
@@ -0,0 +1,423 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: kernel.trb 716 2016-03-31 06:16:23Z ertl-hiro $
+# 
+
+#
+#		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹2ã®çæã¹ã¯ãªãã
+#
+
+#
+#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+#
+$timeStampFileName = "kernel_cfg.timestamp"
+
+#
+#  kernel_cfg.hã®å
+é ­é¨åã®çæ
+#
+$kernelCfgH = GenFile.new("kernel_cfg.h")
+$kernelCfgH.add(<<EOS)
+/* kernel_cfg.h */
+#ifndef TOPPERS_KERNEL_CFG_H
+#define TOPPERS_KERNEL_CFG_H
+EOS
+
+#
+#  kernel_cfg.cã®å
+é ­é¨åã®çæ
+#
+$kernelCfgC = GenFile.new("kernel_cfg.c")
+$kernelCfgC.add(<<EOS)
+/* kernel_cfg.c */
+#include "kernel/kernel_int.h"
+#include "kernel_cfg.h"
+
+#if TKERNEL_PRID != 0x07u
+#error The kernel does not match this configuration file.
+#endif
+EOS
+
+#
+#  ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼
+#
+$kernelCfgC.comment_header("Include Directives (#include)")
+$includeFiles.each do |file|
+  $kernelCfgC.add("#include #{file}")
+end
+$kernelCfgC.add()
+
+#
+#  ã¹ã¿ãã¯é åã®ç¢ºä¿é¢æ°
+#
+#  ã¹ã¿ãã¯é åã®å®ç¾©åã¨ï¼ã¹ã¿ãã¯é åã®ãµã¤ãºè¨è¿°ãé
+åã§è¿ãï¼
+#
+unless defined? AllocStack()
+  def AllocStack(stack, size)
+    # å¤§ããæ¹ã«ä¸¸ãããµã¤ãºã§ç¢ºä¿ããï¼»NGKI1050ï¼½ï¼»NGKI3220ï¼½
+    $kernelCfgC.add("/*static*/ STK_T #{stack}[COUNT_STK_T(#{size})];")
+    return("ROUND_STK_T(#{size})")
+  end
+end
+
+#
+#  ã«ã¼ãã«ãªãã¸ã§ã¯ãã«é¢ããæ
+å ±ã®çæï¼ä»®æ³ã¯ã©ã¹ï¼
+#
+class KernelObject
+  def initialize(obj, object, obj_s = obj)
+    @obj = obj
+    @OBJ = obj.tr("a-z", "A-Z")
+    @object = object
+    @obj_s = obj_s
+    @OBJ_S = obj_s.tr("a-z", "A-Z")
+    @objid = (obj + "id").to_sym
+    @api = "CRE_#{@OBJ}".to_sym
+    @inibList = { "#{@OBJ_S}INIB" => "a#{@obj_s}inib_table"}
+  end
+
+  def generate()
+    # AID_@OBJã®å¦ç
+    numAutoObjid = 0
+    $cfgData["AID_#{@OBJ}".to_sym].each do |key, params|
+      numAutoObjid += params["no#{@obj}".to_sym]
+    end
+    numObjid = $cfgData[@api].size + numAutoObjid
+
+    # kernel_cfg.hã®çæ
+    $kernelCfgH.add("#define TNUM_#{@OBJ}ID\t#{numObjid}")
+
+    # ãªãã¸ã§ã¯ãã®IDçªå·ã®ãã¯ã­å®ç¾©ã®çæ
+    $cfgData[@api].sort.each do |key, params|
+      if params[@objid]
+        $kernelCfgH.add("#define #{params[@objid]}\t#{params[@objid].val}")
+      end
+    end
+    $kernelCfgH.add()
+
+    # ãªãã¸ã§ã¯ãã®IDçªå·ãä¿æããå¤æ°
+    if $USE_EXTERNAL_ID
+      $cfgData[@api].sort.each do |key, params|
+        if params[@objid]
+          $kernelCfgC.add("const ID #{params[@objid]}_id" \
+										" = #{params[@objid].val};")
+		end
+      end
+      $kernelCfgC.add()
+    end
+
+    # éçã«çæããããªãã¸ã§ã¯ãã®æ°
+    $kernelCfgC.add("#define TNUM_S#{@OBJ}ID\t#{$cfgData[@api].size}")
+
+    # ãªãã¸ã§ã¯ãIDçªå·ã®æå¤§å¤
+    $kernelCfgC.add("const ID _kernel_tmax_#{@obj}id" \
+							" = (TMIN_#{@OBJ}ID + TNUM_#{@OBJ}ID - 1);")
+    $kernelCfgC.add2("const ID _kernel_tmax_s#{@obj}id" \
+							" = (TMIN_#{@OBJ}ID + TNUM_S#{@OBJ}ID - 1);")
+
+    # ãã¼ã¿æ§é 
+    if $cfgData[@api].size > 0
+      # äºåæºåï¼ã¨ã©ã¼ãã§ãã¯ï¼ã¡ã¢ãªé åã®çæï¼
+      $cfgData[@api].sort.each do |key, params|
+        prepare(key, params)
+      end
+
+      # ãªãã¸ã§ã¯ãå
+¨ä½ã«å¯¾ãã¦å¿
+è¦ãªã¡ã¢ãªé åã®çæï¼ãªãã·ã§ã³ï¼
+      if respond_to?(:generateData)
+        generateData()
+      end
+
+      # ãªãã¸ã§ã¯ãåæåãã­ãã¯ã®çæ
+      $kernelCfgC.add("const #{@OBJ_S}INIB _kernel_#{@obj_s}inib_table" \
+													"[TNUM_S#{@OBJ}ID] = {")
+      $cfgData[@api].sort.each_with_index do |(key, params), index|
+        $kernelCfgC.add(",") if index > 0
+        $kernelCfgC.append("\t{ " + generateInib(key, params) + " }")
+      end
+      $kernelCfgC.add
+      $kernelCfgC.add2("};")
+    else
+      $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(const #{@OBJ_S}INIB, " \
+										"_kernel_#{@obj_s}inib_table);")
+    end
+
+    # åççæãªãã¸ã§ã¯ãç¨ã®ãªãã¸ã§ã¯ãåæåãã­ãã¯
+    @inibList.each do |type, array|
+      if numAutoObjid > 0
+        $kernelCfgC.add2("#{type} _kernel_#{array}[#{numAutoObjid}];")
+      else
+        $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(#{type}, _kernel_#{array});")
+      end
+    end
+
+    if numObjid > 0
+      # ãªãã¸ã§ã¯ãç®¡çãã­ãã¯ã®çæ
+      $kernelCfgC.add2("#{@OBJ_S}CB _kernel_#{@obj_s}cb_table" \
+													"[TNUM_#{@OBJ}ID];")
+
+      # ãªãã¸ã§ã¯ãåæåé¢æ°ã®è¿½å 
+      $initializeFunctions.push("_kernel_initialize_#{@object}();")
+    else
+      $kernelCfgC.add2("TOPPERS_EMPTY_LABEL(#{@OBJ_S}CB, " \
+										"_kernel_#{@obj_s}cb_table);")
+    end
+  end
+end
+
+#
+#  åæ©è½ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+#
+$initializeFunctions = []
+IncludeTrb("kernel/task.trb")
+IncludeTrb("kernel/semaphore.trb")
+IncludeTrb("kernel/eventflag.trb")
+IncludeTrb("kernel/dataqueue.trb")
+IncludeTrb("kernel/pridataq.trb")
+IncludeTrb("kernel/mailbox.trb")
+IncludeTrb("kernel/mempfix.trb")
+IncludeTrb("kernel/cyclic.trb")
+IncludeTrb("kernel/alarm.trb")
+IncludeTrb("kernel/interrupt.trb")
+IncludeTrb("kernel/exception.trb")
+
+#
+#  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é å
+#
+$kernelCfgC.comment_header("Stack Area for Non-task Context")
+
+if $cfgData[:DEF_ICS].size == 0
+  # DEF_ICSããªãå ´åã®ããã©ã«ãå¤ã®è¨­å®
+  if $DEFAULT_ISTK.nil?
+    # ã¹ã¿ãã¯é åã®èªåå²ä»ã
+    istksz = AllocStack("_kernel_istack", "DEFAULT_ISTKSZ")
+    istk = "_kernel_istack"
+  else
+    istksz = "DEFAULT_ISTKSZ"
+    istk = "DEFAULT_ISTK"
+  end
+else
+  # éçAPIãDEF_ICSããè¤æ°ããï¼E_OBJï¼ï¼»NGKI3216ï¼½
+  if $cfgData[:DEF_ICS].size > 1
+    error("E_OBJ: too many DEF_ICS")
+  end
+
+  # DEF_ICSãããå ´åã®å¦ç
+  params = $cfgData[:DEF_ICS][1]
+
+  # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+  params[:istk] ||= "NULL"
+
+  # istkszãã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_ISTKSZï¼æªå®ç¾©ã®å ´åã¯1ï¼
+  # ãããå°ããå ´åï¼E_PARï¼ï¼»NGKI3254ï¼½
+  if params[:istksz] < $TARGET_MIN_ISTKSZ
+    error_wrong("E_PAR", params, :istksz, "too small")
+  end
+
+  if params[:istk] == "NULL"
+    # ã¹ã¿ãã¯é åã®èªåå²ä»ã
+    istksz = AllocStack("_kernel_istack", params[:istksz])
+    istk = "_kernel_istack"
+  else
+    # istkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼E_PARï¼ï¼»NGKI3222ï¼½
+    if (params[:istksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
+      error_wrong("E_PAR", params, :istksz, "not aligned")
+    end
+
+    istksz = "(#{params[:istksz]})"
+    istk = "(void *)(#{params[:istk]})"
+  end
+end
+
+$kernelCfgC.add(<<EOS)
+const size_t _kernel_istksz = #{istksz};
+STK_T *const _kernel_istk = #{istk};
+
+#ifdef TOPPERS_ISTKPT
+STK_T *const _kernel_istkpt = TOPPERS_ISTKPT(#{istk}, #{istksz});
+#endif /* TOPPERS_ISTKPT */
+EOS
+
+#
+#  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé å
+#
+$kernelCfgC.comment_header("Memory Area Allocated by Kernel")
+
+if $cfgData[:DEF_KMM].size == 0
+  # DEF_KMMããªãå ´åã®ããã©ã«ãå¤ã®è¨­å®
+  kmmsz = "0"
+  kmm = "NULL"
+else
+  # éçAPIãDEF_KMMããè¤æ°ããï¼E_OBJï¼
+  if ($cfgData[:DEF_KMM].size > 1)
+    error("E_OBJ: too many DEF_KMM")
+  end
+
+  # DEF_KMMãããå ´åã®å¦ç
+  params = $cfgData[:DEF_KMM][1]
+
+  # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+  params[:kmm] ||= "NULL"
+
+  # kmmszã0ã®å ´åï¼E_PARï¼
+  if params[:kmmsz] == 0
+    error_wrong("E_PAR", params, :kmmsz, "zero")
+  end
+
+  if params[:kmm] == "NULL"
+    # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®èªåå²ä»ã
+    $kernelCfgC.add("static MB_T _kernel_memory" \
+					"[TOPPERS_COUNT_SZ(#{params[:kmmsz]}, sizeof(MB_T))];")
+    kmmsz = "TOPPERS_ROUND_SZ(#{params[:kmmsz]}, sizeof(MB_T))"
+    kmm = "_kernel_memory"
+  else
+    # kmmszãã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´å
+    # ï¼E_PARï¼
+    if (params[:kmmsz] & ($CHECK_MB_ALIGN - 1)) != 0
+      error_wrong("E_PAR", params, :kmmsz, "not aligned")
+    end
+
+    kmmsz = "(#{params[:kmmsz]})"
+    kmm = "(void *)(#{params[:kmm]})"
+  end
+end
+
+$kernelCfgC.add(<<EOS)
+const size_t _kernel_kmmsz = #{kmmsz};
+MB_T *const _kernel_kmm = #{kmm};
+EOS
+
+#
+#  ã¿ã¤ã ã¤ãã³ãç®¡ç
+#
+$kernelCfgC.comment_header("Time Event Management")
+$kernelCfgC.add(<<EOS)
+TMEVTN   _kernel_tmevt_heap[TNUM_TSKID + TNUM_CYCID + TNUM_ALMID];
+EOS
+
+#
+#  åã¢ã¸ã¥ã¼ã«ã®åæåé¢æ°
+#
+$kernelCfgC.comment_header("Module Initialization Function")
+$kernelCfgC.append(<<EOS)
+void
+_kernel_initialize_object(void)
+{
+EOS
+$initializeFunctions.each do |func|
+  $kernelCfgC.add("\t#{func}")
+end
+$kernelCfgC.add2("}")
+
+#
+#  åæåã«ã¼ãã³æ©è½
+#
+$kernelCfgC.comment_header("Initialization Routine")
+
+# ã¨ã©ã¼ãã§ãã¯
+$cfgData[:ATT_INI].each do |key, params|
+  # iniatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3241ï¼½
+  #ï¼TA_NULLã§ãªãå ´åï¼
+  if (params[:iniatr] != $TA_NULL)
+    error_illegal_sym("E_RSATR", params, :iniatr, :inirtn)
+  end
+end
+
+# åæåã«ã¼ãã³ã®å®è¡é¢æ°ã®çæ
+$kernelCfgC.append(<<EOS)
+void
+_kernel_call_inirtn(void)
+{
+EOS
+$cfgData[:ATT_INI].each do |key, params|
+  $kernelCfgC.add("\t((INIRTN)(#{params[:inirtn]}))" \
+								"((intptr_t)(#{params[:exinf]}));")
+end
+$kernelCfgC.add2("}")
+
+#
+#  çµäºå¦çã«ã¼ãã³æ©è½
+#
+$kernelCfgC.comment_header("Termination Routine")
+
+# ã¨ã©ã¼ãã§ãã¯
+$cfgData[:ATT_TER].each do |key, params|
+  # teratrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI3248ï¼½
+  #ï¼TA_NULLã§ãªãå ´åï¼
+  if (params[:teratr] != $TA_NULL)
+    error_illegal_sym("E_RSATR", params, :teratr, :terrtn)
+  end
+end
+
+# çµäºå¦çã«ã¼ãã³ã®å®è¡é¢æ°ã®çæ
+$kernelCfgC.append(<<EOS)
+void
+_kernel_call_terrtn(void)
+{
+EOS
+$cfgData[:ATT_TER].reverse_each do |key, params|
+  $kernelCfgC.add("\t((TERRTN)(#{params[:terrtn]}))" \
+								"((intptr_t)(#{params[:exinf]}));")
+end
+$kernelCfgC.add2("}")
+
+#
+#  kernel_cfg.hã®æ«å°¾é¨åã®çæ
+#
+$kernelCfgH.append(<<EOS)
+#endif /* TOPPERS_KERNEL_CFG_H */
+EOS
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_api.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_api.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_api.def	(revision 313)
@@ -0,0 +1,28 @@
+CRE_TSK #tskid* { .tskatr &exinf &task +itskpri .stksz &stk? }
+DEF_TEX %tskid* { .texatr &texrtn }
+AID_TSK .notsk
+CRE_SEM #semid* { .sematr .isemcnt .maxsem }
+AID_SEM .nosem
+CRE_FLG #flgid* { .flgatr .iflgptn }
+AID_FLG .noflg
+CRE_DTQ #dtqid* { .dtqatr .dtqcnt &dtqmb? }
+AID_DTQ .nodtq
+CRE_PDQ #pdqid* { .pdqatr .pdqcnt +maxdpri &pdqmb? }
+AID_PDQ .nopdq
+CRE_MBX #mbxid* { .mbxatr +maxmpri? &mprihd? }
+AID_MBX .nombx
+CRE_MPF #mpfid* { .mpfatr .blkcnt .blksz &mpf? &mpfmb? }
+AID_MPF .nompf
+CRE_CYC #cycid* { .cycatr &exinf &cychdr .cyctim .cycphs }
+AID_CYC .nocyc
+CRE_ALM #almid* { .almatr &exinf &almhdr }
+AID_ALM .noalm
+CFG_INT .intno* { .intatr +intpri }
+ATT_ISR { .isratr &exinf .intno &isr +isrpri }
+AID_ISR .noisr
+DEF_INH .inhno* { .inhatr &inthdr }
+DEF_EXC .excno* { .excatr &exchdr }
+DEF_ICS { .istksz &istk? }
+DEF_KMM { .kmmsz &kmm? }
+ATT_INI { .iniatr &exinf &inirtn }
+ATT_TER { .teratr &exinf &terrtn }
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_check.trb	(revision 313)
@@ -0,0 +1,237 @@
+# -*- coding: utf-8 -*-
+# 
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+#  
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+#  
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: kernel_check.trb 662 2016-02-27 02:33:51Z ertl-hiro $
+#  
+
+#
+#		ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã®ãã¹3ã®çæã¹ã¯ãªãã
+#
+
+# 
+#  ã¿ã¤ã ã¹ã¿ã³ããã¡ã¤ã«ã®æå®
+# 
+$timeStampFileName = "check.timestamp"
+
+#
+#  ãã¼ã¿ã»ã¯ã·ã§ã³ã®LMAããVMAã¸ã®ã³ãã¼
+#
+if !$lmaList.nil?
+  $lmaList.each do |lma|
+    startData = SYMBOL(lma[:START_DATA])
+    endData = SYMBOL(lma[:END_DATA])
+    startIdata = SYMBOL(lma[:START_IDATA])
+    if startData.nil?
+      error_exit("symbol `lma[:START_DATA]' not found")
+    elsif endData.nil?
+      error_exit("symbol `lma[:END_DATA]' not found")
+    elsif startIdata.nil?
+      error_exit("symbol `lma[:START_IDATA]' not found")
+    else
+      BCOPY(startIdata, startData, endData - startData)
+    end
+  end
+end
+
+#
+#  éç¥æ
+å ±ã®ãã§ãã¯é¢æ°
+#
+$tmax_tskid = $TMIN_TSKID + $cfgData[:CRE_TSK].size - 1
+$tmax_semid = $TMIN_SEMID + $cfgData[:CRE_SEM].size - 1
+$tmax_flgid = $TMIN_FLGID + $cfgData[:CRE_FLG].size - 1
+$tmax_dtqid = $TMIN_DTQID + $cfgData[:CRE_DTQ].size - 1
+$tmax_mbxid = $TMIN_MBXID + $cfgData[:CRE_MBX].size - 1
+
+# 
+#  ã¿ã¹ã¯ã«é¢ãããã§ãã¯
+# 
+tinib = SYMBOL("_kernel_tinib_table")
+$cfgData[:CRE_TSK].sort.each do |key, params|
+  task = PEEK(tinib + $offsetof_TINIB_task, $sizeof_TASK)
+
+  # ã¿ã¹ã¯ã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI1033ï¼½
+  if (task & ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :task, :tskid, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && task == 0
+    error_wrong_id("E_PAR", params, :task, :tskid, "null")
+  end
+
+  # ã¿ã¹ã¯ã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI1056ï¼½
+  if $USE_TSKINICTXB
+    stk = GetStackTskinictxb(key, params, tinib)
+  else
+    stk = PEEK(tinib + $offsetof_TINIB_stk, $sizeof_void_ptr)
+  end
+  if (stk & ($CHECK_STACK_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :stk, :tskid, "not aligned")
+  end
+  if $CHECK_STACK_NONNULL && stk == 0
+    error_wrong_id("E_PAR", params, :stk, :tskid, "null")
+  end
+
+  tinib += $sizeof_TINIB
+end
+
+# 
+#  åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ãããã§ãã¯
+# 
+mpfinib = SYMBOL("_kernel_mpfinib_table")
+$cfgData[:CRE_MPF].sort.each do |key, params|
+  mpf = PEEK(mpfinib + $offsetof_MPFINIB_mpf, $sizeof_void_ptr)
+
+  # åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI2249ï¼½
+  if (mpf & ($CHECK_MPF_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :mpf, :mpfid, "not aligned")
+  end
+  if $CHECK_MPF_NONNULL && mpf == 0
+    error_wrong_id("E_PAR", params, :mpf, :mpfid, "null")
+  end
+
+  mpfinib += $sizeof_MPFINIB
+end
+
+# 
+#  å¨æéç¥ã«é¢ãããã§ãã¯
+# 
+cycinib = SYMBOL("_kernel_cycinib_table")
+$cfgData[:CRE_CYC].sort.each do |key, params|
+  exinf = PEEK(cycinib + $offsetof_CYCINIB_exinf, $sizeof_intptr_t)
+  cychdr = PEEK(cycinib + $offsetof_CYCINIB_cychdr, $sizeof_CYCHDR)
+
+  # ãã³ãã©ã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI3135ï¼½
+  if (cychdr && ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :cychdr, :cycid, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && :cychdr == 0
+    error_wrong_id("E_PAR", params, :cychdr, :cycid, "null")
+  end
+
+  cycinib += $sizeof_CYCINIB
+end
+
+# 
+#  ã¢ã©ã¼ã éç¥ã«é¢ãããã§ãã¯
+# 
+alminib = SYMBOL("_kernel_alminib_table")
+$cfgData[:CRE_ALM].sort.each do |key, params|
+  exinf = PEEK(alminib + $offsetof_ALMINIB_exinf, $sizeof_intptr_t)
+  almhdr = PEEK(alminib + $offsetof_ALMINIB_almhdr, $sizeof_ALMHDR)
+
+  # ãã³ãã©ã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI3135ï¼½
+  if (almhdr && ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :almhdr, :almid, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && params[:almhdr] == 0
+    error_wrong_id("E_PAR", params, :almhdr, :almid, "null")
+  end
+
+  alminib += $sizeof_ALMINIB
+end
+
+#
+#  å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã«é¢ãããã§ãã¯
+#
+isrinib = SYMBOL("_kernel_sisrinib_table")
+$cfgData[:ATT_ISR].sort.each do |key, params|
+  isr = PEEK(isrinib + $offsetof_ISRINIB_isr, $sizeof_ISR)
+
+  # å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³ã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI3004ï¼½
+  if (isr & ($CHECK_FUNC_ALIGN - 1)) != 0
+    error_wrong_id("E_PAR", params, :isr, :isrid, "not aligned")
+  end
+  if $CHECK_FUNC_NONNULL && isr == 0
+    error_wrong_id("E_PAR", params, :isr, :isrid, "null")
+  end
+
+  isrinib += $sizeof_ISRINIB
+end
+
+# 
+#  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã«é¢ãããã§ãã¯
+# 
+istkAddr = SYMBOL("_kernel_istk")
+if !istkAddr.nil?
+  istk = PEEK(istkAddr, $sizeof_void_ptr)
+
+  # éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å
+é ­çªå°ã®ãã§ãã¯ï¼»NGKI3222ï¼½
+  if (istk & ($CHECK_STACK_ALIGN - 1)) != 0
+    error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "not aligned")
+  end
+  if $CHECK_STACK_NONNULL && istk == 0
+    error_wrong("E_PAR", $cfgData[:DEF_ICS][1], :istk, "null")
+  end
+end
+
+# 
+#  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã«é¢ãããã§ãã¯
+# 
+kmmAddr = SYMBOL("_kernel_kmm")
+if !kmmAddr.nil?
+  kmm = PEEK(kmmAddr, $sizeof_void_ptr)
+
+  # ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
+é ­çªå°ã®ãã§ãã¯
+  if (kmm & ($CHECK_MB_ALIGN - 1)) != 0
+    error_wrong("E_PAR", $cfgData[:DEF_KMM][1], :kmm, "not aligned")
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_impl.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_impl.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_impl.h	(revision 313)
@@ -0,0 +1,246 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		TOPPERS/ASPã«ã¼ãã«å
+é¨åãæ¨æºããããã¡ã¤ã«
+ *
+ *  ãã®ããããã¡ã¤ã«ã¯ï¼ã«ã¼ãã«ãæ§æãããã­ã°ã©ã ã®ã½ã¼ã¹ãã¡ã¤ã«
+ *  ã§å¿
+ãã¤ã³ã¯ã«ã¼ãããã¹ãæ¨æºããããã¡ã¤ã«ã§ããï¼
+ *
+ *  ã¢ã»ã³ããªè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ãããã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããæ
+ *  ã¯ï¼TOPPERS_MACRO_ONLYãå®ç¾©ãã¦ããï¼ããã«ããï¼ãã¯ã­å®ç¾©ä»¥å¤ã
+ *  é¤ãããã«ãªã£ã¦ããï¼
+ */
+
+#ifndef TOPPERS_KERNEL_IMPL_H
+#define TOPPERS_KERNEL_IMPL_H
+
+/*
+ *  ã«ã¼ãã«ã®å
+é¨è­å¥åã®ãªãã¼ã 
+ */
+#include "kernel_rename.h"
+
+/*
+ *  ã¢ããªã±ã¼ã·ã§ã³ã¨å
+±éã®ããããã¡ã¤ã«
+ */
+#include <kernel.h>
+
+/*
+ *  ã·ã¹ãã ã­ã°æ©è½ã®ããã®å®ç¾©
+ */
+#include <t_syslog.h>
+
+/*
+ *  åã­ã£ã¹ããè¡ããã¯ã­ã®å®ç¾©
+ */
+#ifndef CAST
+#define CAST(type, val)		((type)(val))
+#endif /* CAST */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­æ
+å ±ã®å®ç¾©
+ */
+#include "target_config.h"
+
+/*
+ *  ãã¹ã¦ã®é¢æ°ãã³ã³ãã¤ã«ããããã®å®ç¾©
+ */
+#ifdef ALLFUNC
+#include "allfunc.h"
+#endif /* ALLFUNC */
+
+/*
+ *  ããããã£ã¼ã«ãã§ã®ç¬¦å·ç¡ãæ´æ°å
+ *
+ *  8ãããä»¥ä¸ã®å¹
+ã®ããããã£ã¼ã«ãã§ï¼ç¬¦å·ç¡ãæ´æ°å¤ãä¿æãããå ´å
+ *  ã«ç¨ããã¹ããã¼ã¿åï¼ANSI Cã§ã¯ï¼ããããã£ã¼ã«ãã®ãã¼ã¿åã«ã¯
+ *  intã¨unsigned intããè¨±ãããªãããï¼ããã©ã«ãã®å®ç¾©ã¯unsigned
+ *  intã¨ãã¦ãããï¼ã¿ã¼ã²ããããã³ãã¼ã«ä¾å­ã§ï¼unsigned charã¾ãã¯
+ *  unsigned shortã«å®ç¾©ããæ¹ãå¹çãè¯ãå ´åãããï¼
+ */
+#ifndef BIT_FIELD_UINT
+#define BIT_FIELD_UINT		unsigned int
+#endif /* BIT_FIELD_UINT */
+
+/*
+ *  ããããã£ã¼ã«ãã§ã®ãã¼ã«å
+ *
+ *  1ãããå¹
+ã®ããããã£ã¼ã«ãã§ï¼ãã¼ã«å¤ãä¿æãããå ´åã«ç¨ããã¹ã
+ *  ãã¼ã¿åï¼ããã©ã«ãã§ã¯BIT_FIELD_UINTã¨åä¸ã«å®ç¾©ãã¦ãããï¼ãã¼
+ *  ã«å¤ãä¿æãããã¨ãæç¤ºããããã«å¥ã®åç§°ã¨ãã¦ããï¼
+ */
+#ifndef BIT_FIELD_BOOL
+#define BIT_FIELD_BOOL		BIT_FIELD_UINT
+#endif /* BIT_FIELD_BOOL */
+
+/*
+ *  ãªãã¸ã§ã¯ãIDã®æå°å¤ã®å®ç¾©
+ */
+#define TMIN_TSKID		1		/* ã¿ã¹ã¯IDã®æå°å¤ */
+#define TMIN_SEMID		1		/* ã»ããã©IDã®æå°å¤ */
+#define TMIN_FLGID		1		/* ãã©ã°IDã®æå°å¤ */
+#define TMIN_DTQID		1		/* ãã¼ã¿ã­ã¥ã¼IDã®æå°å¤ */
+#define TMIN_PDQID		1		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼IDã®æå°å¤ */
+#define TMIN_MBXID		1		/* ã¡ã¼ã«ããã¯ã¹IDã®æå°å¤ */
+#define TMIN_MPFID		1		/* åºå®é·ã¡ã¢ãªãã¼ã«IDã®æå°å¤ */
+#define TMIN_CYCID		1		/* å¨æãã³ãã©IDã®æå°å¤ */
+#define TMIN_ALMID		1		/* ã¢ã©ã¼ã ãã³ãã©IDã®æå°å¤ */
+#define TMIN_ISRID		1		/* å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³IDã®æå°å¤ */
+
+/*
+ *  åªå
+åº¦ã®æ®µéæ°ã®å®ç¾©
+ */
+#define TNUM_TPRI		(TMAX_TPRI - TMIN_TPRI + 1)
+#define TNUM_MPRI		(TMAX_MPRI - TMIN_MPRI + 1)
+#define TNUM_INTPRI		(TMAX_INTPRI - TMIN_INTPRI + 1)
+
+/*
+ *  ã«ã¼ãã«å
+é¨ã§ä½¿ç¨ããå±æ§ã®å®ç¾©
+ */
+#define TA_NOEXS		((ATR)(-1))			/* æªç»é²ç¶æ
+ */
+
+#ifndef TA_MEMALLOC
+#define TA_MEMALLOC		UINT_C(0x8000)		/* ã¡ã¢ãªé åãã«ã¼ãã«ã§ç¢ºä¿ */
+#endif /* TA_MEMALLOC */
+#ifndef TA_MBALLOC
+#define TA_MBALLOC		UINT_C(0x4000)		/* ç®¡çé åãã«ã¼ãã«ã§ç¢ºä¿ */
+#endif /* TA_MBALLOC */
+
+/*
+ *  ã¿ã¼ã²ããå®ç¾©ã®ã¨ã©ã¼ãã§ãã¯ãã¯ã­ã®ããã©ã«ãå¤ã®å®ç¾©
+ */
+#ifndef TARGET_TSKATR
+#define TARGET_TSKATR		0U		/* ã¿ã¼ã²ããå®ç¾©ã®ã¿ã¹ã¯å±æ§ */
+#endif /* TARGET_TSKATR */
+
+#ifndef TARGET_ISRATR
+#define TARGET_ISRATR		0U		/* ã¿ã¼ã²ããå®ç¾©ã®ISRå±æ§ */
+#endif /* TARGET_ISRATR */
+
+/*
+ *  ããããã¡ã¤ã«ãæããªãã¢ã¸ã¥ã¼ã«ã®é¢æ°ã»å¤æ°ã®å®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  åã¢ã¸ã¥ã¼ã«ã®åæåï¼kernel_cfg.cï¼
+ */
+extern void	initialize_object(void);
+
+/*
+ *  åæåã«ã¼ãã³ã®å®è¡ï¼kernel_cfg.cï¼
+ */
+extern void	call_inirtn(void);
+
+/*
+ *  çµäºå¦çã«ã¼ãã³ã®å®è¡ï¼kernel_cfg.cï¼
+ */
+extern void	call_terrtn(void);
+
+/*
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åï¼kernel_cfg.cï¼
+ */
+extern const SIZE	istksz;		/* ã¹ã¿ãã¯é åã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
+extern STK_T *const	istk;		/* ã¹ã¿ãã¯é åã®å
+é ­çªå° */
+#ifdef TOPPERS_ISTKPT
+extern STK_T *const	istkpt;		/* ã¹ã¿ãã¯ãã¤ã³ã¿ã®åæå¤ */
+#endif /* TOPPERS_ISTKPT */
+
+/*
+ *  ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åï¼kernel_cfg.cï¼
+ */
+extern const SIZE	kmmsz;		/* ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®ãµã¤ãº */
+extern MB_T *const	kmm;		/* ã«ã¼ãã«ãå²ãä»ããã¡ã¢ãªé åã®å
+é ­çªå° */
+
+/*
+ *  ã«ã¼ãã«åä½ç¶æ
+ãã©ã°ï¼startup.cï¼
+ */
+extern bool_t	kerflg;
+
+/*
+ *  ã«ã¼ãã«ã®èµ·åï¼startup.cï¼
+ */
+extern void	sta_ker(void);
+
+/*
+ *  ã«ã¼ãã«ã®çµäºå¦çï¼startup.cï¼
+ */
+extern void	exit_kernel(void);
+
+/*
+ *  ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®ç®¡çï¼startup.cï¼
+ */
+extern void initialize_kmm(void);
+extern void *kernel_malloc(SIZE size);
+extern void kernel_free(void *ptr);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_KERNEL_IMPL_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_int.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_int.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_int.h	(revision 313)
@@ -0,0 +1,101 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		kernel_cfg.cï¼ããã³cfg1_out.cï¼ç¨ããããã¡ã¤ã«
+ */
+
+#ifndef TOPPERS_KERNEL_INT_H
+#define TOPPERS_KERNEL_INT_H
+
+/*
+ *  ã«ã¼ãã«æ¨æºããããã¡ã¤ã«
+ */
+#include "kernel_impl.h"
+
+/*
+ *  ã«ã¼ãã«ã®åããããã¡ã¤ã«
+ */
+#include "task.h"
+#include "semaphore.h"
+#include "eventflag.h"
+#include "dataqueue.h"
+#include "pridataq.h"
+#include "mailbox.h"
+#include "mempfix.h"
+#include "cyclic.h"
+#include "alarm.h"
+#include "interrupt.h"
+#include "exception.h"
+#include "time_event.h"
+
+/*
+ *  ãªãã¼ã ããã·ã³ãã«ãå
+ã«æ»ãããã®ããããã¡ã¤ã«
+ */
+#include "kernel_unrename.h"
+
+/*
+ *  å
+å®¹ãç©ºã®é
+åãçæããããã®ãã¯ã­
+ */
+#ifndef TOPPERS_EMPTY_LABEL
+#define TOPPERS_EMPTY_LABEL(type, var)		type var[0]
+#endif
+
+#endif /* TOPPERS_KERNEL_INT_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.def	(revision 313)
@@ -0,0 +1,179 @@
+# startup.c
+kerflg
+exit_kernel
+initialize_kmm
+kernel_malloc
+kernel_free
+
+# task.c
+p_runtsk
+p_schedtsk
+reqflg
+ipmflg
+disdsp
+dspflg
+ready_queue
+ready_primap
+free_tcb
+initialize_task
+search_schedtsk
+make_runnable
+make_non_runnable
+make_dormant
+make_active
+change_priority
+rotate_ready_queue
+call_texrtn
+calltex
+
+# wait.c
+make_wait_tmout
+wait_complete
+wait_tmout
+wait_tmout_ok
+wait_release
+wobj_make_wait
+wobj_make_wait_tmout
+init_wait_queue
+
+# time_event.c
+current_time
+min_time
+next_time
+next_subtime
+last_index
+initialize_tmevt
+tmevt_up
+tmevt_down
+tmevtb_insert
+tmevtb_delete
+tmevt_lefttim
+signal_time
+
+# semaphore.c
+free_semcb
+initialize_semaphore
+
+# eventflag.c
+free_flgcb
+initialize_eventflag
+check_flg_cond
+
+# dataqueue.c
+free_dtqcb
+initialize_dataqueue
+enqueue_data
+force_enqueue_data
+dequeue_data
+send_data
+force_send_data
+receive_data
+
+# pridataq.c
+free_pdqcb
+initialize_pridataq
+enqueue_pridata
+dequeue_pridata
+send_pridata
+receive_pridata
+
+# mailbox.c
+free_mbxcb
+initialize_mailbox
+
+# mempfix.c
+free_mpfcb
+initialize_mempfix
+get_mpf_block
+
+# cyclic.c
+free_cyccb
+initialize_cyclic
+call_cychdr
+
+# alarm.c
+free_almcb
+initialize_alarm
+call_almhdr
+
+# interrupt.c
+free_isrcb
+initialize_isr
+call_isr
+initialize_interrupt
+
+# exception.c
+initialize_exception
+
+# kernel_cfg.c
+initialize_object
+call_inirtn
+call_terrtn
+tmax_tskid
+tmax_stskid
+tinib_table
+atinib_table
+tcb_table
+torder_table
+tmax_semid
+tmax_ssemid
+seminib_table
+aseminib_table
+semcb_table
+tmax_flgid
+tmax_sflgid
+flginib_table
+aflginib_table
+flgcb_table
+tmax_dtqid
+tmax_sdtqid
+dtqinib_table
+adtqinib_table
+dtqcb_table
+tmax_pdqid
+tmax_spdqid
+pdqinib_table
+apdqinib_table
+pdqcb_table
+tmax_mbxid
+tmax_smbxid
+mbxinib_table
+ambxinib_table
+mbxcb_table
+tmax_mpfid
+tmax_smpfid
+mpfinib_table
+ampfinib_table
+mpfcb_table
+tmax_cycid
+tmax_scycid
+cycinib_table
+acycinib_table
+cyccb_table
+tmax_almid
+tmax_salmid
+alminib_table
+aalminib_table
+almcb_table
+tnum_isr_queue
+isr_queue_table
+isr_queue_list
+tmax_isrid
+tnum_sisr
+sisrinib_table
+aisrinib_table
+isrcb_table
+tnum_inhno
+inhinib_table
+tnum_intno
+intinib_table
+tnum_excno
+excinib_table
+tmevt_heap
+istksz
+istk
+istkpt
+kmmsz
+kmm
+
+INCLUDE "target"
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_rename.h	(revision 313)
@@ -0,0 +1,430 @@
+/* This file is generated from kernel_rename.def by genrename. */
+
+#ifndef TOPPERS_KERNEL_RENAME_H
+#define TOPPERS_KERNEL_RENAME_H
+
+/*
+ *  startup.c
+ */
+#define kerflg						_kernel_kerflg
+#define exit_kernel					_kernel_exit_kernel
+#define initialize_kmm				_kernel_initialize_kmm
+#define kernel_malloc				_kernel_kernel_malloc
+#define kernel_free					_kernel_kernel_free
+
+/*
+ *  task.c
+ */
+#define p_runtsk					_kernel_p_runtsk
+#define p_schedtsk					_kernel_p_schedtsk
+#define reqflg						_kernel_reqflg
+#define ipmflg						_kernel_ipmflg
+#define disdsp						_kernel_disdsp
+#define dspflg						_kernel_dspflg
+#define ready_queue					_kernel_ready_queue
+#define ready_primap				_kernel_ready_primap
+#define free_tcb					_kernel_free_tcb
+#define initialize_task				_kernel_initialize_task
+#define search_schedtsk				_kernel_search_schedtsk
+#define make_runnable				_kernel_make_runnable
+#define make_non_runnable			_kernel_make_non_runnable
+#define make_dormant				_kernel_make_dormant
+#define make_active					_kernel_make_active
+#define change_priority				_kernel_change_priority
+#define rotate_ready_queue			_kernel_rotate_ready_queue
+#define call_texrtn					_kernel_call_texrtn
+#define calltex						_kernel_calltex
+
+/*
+ *  wait.c
+ */
+#define make_wait_tmout				_kernel_make_wait_tmout
+#define wait_complete				_kernel_wait_complete
+#define wait_tmout					_kernel_wait_tmout
+#define wait_tmout_ok				_kernel_wait_tmout_ok
+#define wait_release				_kernel_wait_release
+#define wobj_make_wait				_kernel_wobj_make_wait
+#define wobj_make_wait_tmout		_kernel_wobj_make_wait_tmout
+#define init_wait_queue				_kernel_init_wait_queue
+
+/*
+ *  time_event.c
+ */
+#define current_time				_kernel_current_time
+#define min_time					_kernel_min_time
+#define next_time					_kernel_next_time
+#define next_subtime				_kernel_next_subtime
+#define last_index					_kernel_last_index
+#define initialize_tmevt			_kernel_initialize_tmevt
+#define tmevt_up					_kernel_tmevt_up
+#define tmevt_down					_kernel_tmevt_down
+#define tmevtb_insert				_kernel_tmevtb_insert
+#define tmevtb_delete				_kernel_tmevtb_delete
+#define tmevt_lefttim				_kernel_tmevt_lefttim
+#define signal_time					_kernel_signal_time
+
+/*
+ *  semaphore.c
+ */
+#define free_semcb					_kernel_free_semcb
+#define initialize_semaphore		_kernel_initialize_semaphore
+
+/*
+ *  eventflag.c
+ */
+#define free_flgcb					_kernel_free_flgcb
+#define initialize_eventflag		_kernel_initialize_eventflag
+#define check_flg_cond				_kernel_check_flg_cond
+
+/*
+ *  dataqueue.c
+ */
+#define free_dtqcb					_kernel_free_dtqcb
+#define initialize_dataqueue		_kernel_initialize_dataqueue
+#define enqueue_data				_kernel_enqueue_data
+#define force_enqueue_data			_kernel_force_enqueue_data
+#define dequeue_data				_kernel_dequeue_data
+#define send_data					_kernel_send_data
+#define force_send_data				_kernel_force_send_data
+#define receive_data				_kernel_receive_data
+
+/*
+ *  pridataq.c
+ */
+#define free_pdqcb					_kernel_free_pdqcb
+#define initialize_pridataq			_kernel_initialize_pridataq
+#define enqueue_pridata				_kernel_enqueue_pridata
+#define dequeue_pridata				_kernel_dequeue_pridata
+#define send_pridata				_kernel_send_pridata
+#define receive_pridata				_kernel_receive_pridata
+
+/*
+ *  mailbox.c
+ */
+#define free_mbxcb					_kernel_free_mbxcb
+#define initialize_mailbox			_kernel_initialize_mailbox
+
+/*
+ *  mempfix.c
+ */
+#define free_mpfcb					_kernel_free_mpfcb
+#define initialize_mempfix			_kernel_initialize_mempfix
+#define get_mpf_block				_kernel_get_mpf_block
+
+/*
+ *  cyclic.c
+ */
+#define free_cyccb					_kernel_free_cyccb
+#define initialize_cyclic			_kernel_initialize_cyclic
+#define call_cychdr					_kernel_call_cychdr
+
+/*
+ *  alarm.c
+ */
+#define free_almcb					_kernel_free_almcb
+#define initialize_alarm			_kernel_initialize_alarm
+#define call_almhdr					_kernel_call_almhdr
+
+/*
+ *  interrupt.c
+ */
+#define free_isrcb					_kernel_free_isrcb
+#define initialize_isr				_kernel_initialize_isr
+#define call_isr					_kernel_call_isr
+#define initialize_interrupt		_kernel_initialize_interrupt
+
+/*
+ *  exception.c
+ */
+#define initialize_exception		_kernel_initialize_exception
+
+/*
+ *  kernel_cfg.c
+ */
+#define initialize_object			_kernel_initialize_object
+#define call_inirtn					_kernel_call_inirtn
+#define call_terrtn					_kernel_call_terrtn
+#define tmax_tskid					_kernel_tmax_tskid
+#define tmax_stskid					_kernel_tmax_stskid
+#define tinib_table					_kernel_tinib_table
+#define atinib_table				_kernel_atinib_table
+#define tcb_table					_kernel_tcb_table
+#define torder_table				_kernel_torder_table
+#define tmax_semid					_kernel_tmax_semid
+#define tmax_ssemid					_kernel_tmax_ssemid
+#define seminib_table				_kernel_seminib_table
+#define aseminib_table				_kernel_aseminib_table
+#define semcb_table					_kernel_semcb_table
+#define tmax_flgid					_kernel_tmax_flgid
+#define tmax_sflgid					_kernel_tmax_sflgid
+#define flginib_table				_kernel_flginib_table
+#define aflginib_table				_kernel_aflginib_table
+#define flgcb_table					_kernel_flgcb_table
+#define tmax_dtqid					_kernel_tmax_dtqid
+#define tmax_sdtqid					_kernel_tmax_sdtqid
+#define dtqinib_table				_kernel_dtqinib_table
+#define adtqinib_table				_kernel_adtqinib_table
+#define dtqcb_table					_kernel_dtqcb_table
+#define tmax_pdqid					_kernel_tmax_pdqid
+#define tmax_spdqid					_kernel_tmax_spdqid
+#define pdqinib_table				_kernel_pdqinib_table
+#define apdqinib_table				_kernel_apdqinib_table
+#define pdqcb_table					_kernel_pdqcb_table
+#define tmax_mbxid					_kernel_tmax_mbxid
+#define tmax_smbxid					_kernel_tmax_smbxid
+#define mbxinib_table				_kernel_mbxinib_table
+#define ambxinib_table				_kernel_ambxinib_table
+#define mbxcb_table					_kernel_mbxcb_table
+#define tmax_mpfid					_kernel_tmax_mpfid
+#define tmax_smpfid					_kernel_tmax_smpfid
+#define mpfinib_table				_kernel_mpfinib_table
+#define ampfinib_table				_kernel_ampfinib_table
+#define mpfcb_table					_kernel_mpfcb_table
+#define tmax_cycid					_kernel_tmax_cycid
+#define tmax_scycid					_kernel_tmax_scycid
+#define cycinib_table				_kernel_cycinib_table
+#define acycinib_table				_kernel_acycinib_table
+#define cyccb_table					_kernel_cyccb_table
+#define tmax_almid					_kernel_tmax_almid
+#define tmax_salmid					_kernel_tmax_salmid
+#define alminib_table				_kernel_alminib_table
+#define aalminib_table				_kernel_aalminib_table
+#define almcb_table					_kernel_almcb_table
+#define tnum_isr_queue				_kernel_tnum_isr_queue
+#define isr_queue_table				_kernel_isr_queue_table
+#define isr_queue_list				_kernel_isr_queue_list
+#define tmax_isrid					_kernel_tmax_isrid
+#define tnum_sisr					_kernel_tnum_sisr
+#define sisrinib_table				_kernel_sisrinib_table
+#define aisrinib_table				_kernel_aisrinib_table
+#define isrcb_table					_kernel_isrcb_table
+#define tnum_inhno					_kernel_tnum_inhno
+#define inhinib_table				_kernel_inhinib_table
+#define tnum_intno					_kernel_tnum_intno
+#define intinib_table				_kernel_intinib_table
+#define tnum_excno					_kernel_tnum_excno
+#define excinib_table				_kernel_excinib_table
+#define tmevt_heap					_kernel_tmevt_heap
+#define istksz						_kernel_istksz
+#define istk						_kernel_istk
+#define istkpt						_kernel_istkpt
+#define kmmsz						_kernel_kmmsz
+#define kmm							_kernel_kmm
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  startup.c
+ */
+#define _kerflg						__kernel_kerflg
+#define _exit_kernel				__kernel_exit_kernel
+#define _initialize_kmm				__kernel_initialize_kmm
+#define _kernel_malloc				__kernel_kernel_malloc
+#define _kernel_free				__kernel_kernel_free
+
+/*
+ *  task.c
+ */
+#define _p_runtsk					__kernel_p_runtsk
+#define _p_schedtsk					__kernel_p_schedtsk
+#define _reqflg						__kernel_reqflg
+#define _ipmflg						__kernel_ipmflg
+#define _disdsp						__kernel_disdsp
+#define _dspflg						__kernel_dspflg
+#define _ready_queue				__kernel_ready_queue
+#define _ready_primap				__kernel_ready_primap
+#define _free_tcb					__kernel_free_tcb
+#define _initialize_task			__kernel_initialize_task
+#define _search_schedtsk			__kernel_search_schedtsk
+#define _make_runnable				__kernel_make_runnable
+#define _make_non_runnable			__kernel_make_non_runnable
+#define _make_dormant				__kernel_make_dormant
+#define _make_active				__kernel_make_active
+#define _change_priority			__kernel_change_priority
+#define _rotate_ready_queue			__kernel_rotate_ready_queue
+#define _call_texrtn				__kernel_call_texrtn
+#define _calltex					__kernel_calltex
+
+/*
+ *  wait.c
+ */
+#define _make_wait_tmout			__kernel_make_wait_tmout
+#define _wait_complete				__kernel_wait_complete
+#define _wait_tmout					__kernel_wait_tmout
+#define _wait_tmout_ok				__kernel_wait_tmout_ok
+#define _wait_release				__kernel_wait_release
+#define _wobj_make_wait				__kernel_wobj_make_wait
+#define _wobj_make_wait_tmout		__kernel_wobj_make_wait_tmout
+#define _init_wait_queue			__kernel_init_wait_queue
+
+/*
+ *  time_event.c
+ */
+#define _current_time				__kernel_current_time
+#define _min_time					__kernel_min_time
+#define _next_time					__kernel_next_time
+#define _next_subtime				__kernel_next_subtime
+#define _last_index					__kernel_last_index
+#define _initialize_tmevt			__kernel_initialize_tmevt
+#define _tmevt_up					__kernel_tmevt_up
+#define _tmevt_down					__kernel_tmevt_down
+#define _tmevtb_insert				__kernel_tmevtb_insert
+#define _tmevtb_delete				__kernel_tmevtb_delete
+#define _tmevt_lefttim				__kernel_tmevt_lefttim
+#define _signal_time				__kernel_signal_time
+
+/*
+ *  semaphore.c
+ */
+#define _free_semcb					__kernel_free_semcb
+#define _initialize_semaphore		__kernel_initialize_semaphore
+
+/*
+ *  eventflag.c
+ */
+#define _free_flgcb					__kernel_free_flgcb
+#define _initialize_eventflag		__kernel_initialize_eventflag
+#define _check_flg_cond				__kernel_check_flg_cond
+
+/*
+ *  dataqueue.c
+ */
+#define _free_dtqcb					__kernel_free_dtqcb
+#define _initialize_dataqueue		__kernel_initialize_dataqueue
+#define _enqueue_data				__kernel_enqueue_data
+#define _force_enqueue_data			__kernel_force_enqueue_data
+#define _dequeue_data				__kernel_dequeue_data
+#define _send_data					__kernel_send_data
+#define _force_send_data			__kernel_force_send_data
+#define _receive_data				__kernel_receive_data
+
+/*
+ *  pridataq.c
+ */
+#define _free_pdqcb					__kernel_free_pdqcb
+#define _initialize_pridataq		__kernel_initialize_pridataq
+#define _enqueue_pridata			__kernel_enqueue_pridata
+#define _dequeue_pridata			__kernel_dequeue_pridata
+#define _send_pridata				__kernel_send_pridata
+#define _receive_pridata			__kernel_receive_pridata
+
+/*
+ *  mailbox.c
+ */
+#define _free_mbxcb					__kernel_free_mbxcb
+#define _initialize_mailbox			__kernel_initialize_mailbox
+
+/*
+ *  mempfix.c
+ */
+#define _free_mpfcb					__kernel_free_mpfcb
+#define _initialize_mempfix			__kernel_initialize_mempfix
+#define _get_mpf_block				__kernel_get_mpf_block
+
+/*
+ *  cyclic.c
+ */
+#define _free_cyccb					__kernel_free_cyccb
+#define _initialize_cyclic			__kernel_initialize_cyclic
+#define _call_cychdr				__kernel_call_cychdr
+
+/*
+ *  alarm.c
+ */
+#define _free_almcb					__kernel_free_almcb
+#define _initialize_alarm			__kernel_initialize_alarm
+#define _call_almhdr				__kernel_call_almhdr
+
+/*
+ *  interrupt.c
+ */
+#define _free_isrcb					__kernel_free_isrcb
+#define _initialize_isr				__kernel_initialize_isr
+#define _call_isr					__kernel_call_isr
+#define _initialize_interrupt		__kernel_initialize_interrupt
+
+/*
+ *  exception.c
+ */
+#define _initialize_exception		__kernel_initialize_exception
+
+/*
+ *  kernel_cfg.c
+ */
+#define _initialize_object			__kernel_initialize_object
+#define _call_inirtn				__kernel_call_inirtn
+#define _call_terrtn				__kernel_call_terrtn
+#define _tmax_tskid					__kernel_tmax_tskid
+#define _tmax_stskid				__kernel_tmax_stskid
+#define _tinib_table				__kernel_tinib_table
+#define _atinib_table				__kernel_atinib_table
+#define _tcb_table					__kernel_tcb_table
+#define _torder_table				__kernel_torder_table
+#define _tmax_semid					__kernel_tmax_semid
+#define _tmax_ssemid				__kernel_tmax_ssemid
+#define _seminib_table				__kernel_seminib_table
+#define _aseminib_table				__kernel_aseminib_table
+#define _semcb_table				__kernel_semcb_table
+#define _tmax_flgid					__kernel_tmax_flgid
+#define _tmax_sflgid				__kernel_tmax_sflgid
+#define _flginib_table				__kernel_flginib_table
+#define _aflginib_table				__kernel_aflginib_table
+#define _flgcb_table				__kernel_flgcb_table
+#define _tmax_dtqid					__kernel_tmax_dtqid
+#define _tmax_sdtqid				__kernel_tmax_sdtqid
+#define _dtqinib_table				__kernel_dtqinib_table
+#define _adtqinib_table				__kernel_adtqinib_table
+#define _dtqcb_table				__kernel_dtqcb_table
+#define _tmax_pdqid					__kernel_tmax_pdqid
+#define _tmax_spdqid				__kernel_tmax_spdqid
+#define _pdqinib_table				__kernel_pdqinib_table
+#define _apdqinib_table				__kernel_apdqinib_table
+#define _pdqcb_table				__kernel_pdqcb_table
+#define _tmax_mbxid					__kernel_tmax_mbxid
+#define _tmax_smbxid				__kernel_tmax_smbxid
+#define _mbxinib_table				__kernel_mbxinib_table
+#define _ambxinib_table				__kernel_ambxinib_table
+#define _mbxcb_table				__kernel_mbxcb_table
+#define _tmax_mpfid					__kernel_tmax_mpfid
+#define _tmax_smpfid				__kernel_tmax_smpfid
+#define _mpfinib_table				__kernel_mpfinib_table
+#define _ampfinib_table				__kernel_ampfinib_table
+#define _mpfcb_table				__kernel_mpfcb_table
+#define _tmax_cycid					__kernel_tmax_cycid
+#define _tmax_scycid				__kernel_tmax_scycid
+#define _cycinib_table				__kernel_cycinib_table
+#define _acycinib_table				__kernel_acycinib_table
+#define _cyccb_table				__kernel_cyccb_table
+#define _tmax_almid					__kernel_tmax_almid
+#define _tmax_salmid				__kernel_tmax_salmid
+#define _alminib_table				__kernel_alminib_table
+#define _aalminib_table				__kernel_aalminib_table
+#define _almcb_table				__kernel_almcb_table
+#define _tnum_isr_queue				__kernel_tnum_isr_queue
+#define _isr_queue_table			__kernel_isr_queue_table
+#define _isr_queue_list				__kernel_isr_queue_list
+#define _tmax_isrid					__kernel_tmax_isrid
+#define _tnum_sisr					__kernel_tnum_sisr
+#define _sisrinib_table				__kernel_sisrinib_table
+#define _aisrinib_table				__kernel_aisrinib_table
+#define _isrcb_table				__kernel_isrcb_table
+#define _tnum_inhno					__kernel_tnum_inhno
+#define _inhinib_table				__kernel_inhinib_table
+#define _tnum_intno					__kernel_tnum_intno
+#define _intinib_table				__kernel_intinib_table
+#define _tnum_excno					__kernel_tnum_excno
+#define _excinib_table				__kernel_excinib_table
+#define _tmevt_heap					__kernel_tmevt_heap
+#define _istksz						__kernel_istksz
+#define _istk						__kernel_istk
+#define _istkpt						__kernel_istkpt
+#define _kmmsz						__kernel_kmmsz
+#define _kmm						__kernel_kmm
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "target_rename.h"
+
+#endif /* TOPPERS_KERNEL_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_sym.def	(revision 313)
@@ -0,0 +1,134 @@
+SIL_ENDIAN_BIG,true,bool,defined(SIL_ENDIAN_BIG)
+SIL_ENDIAN_LITTLE,true,bool,defined(SIL_ENDIAN_LITTLE)
+TA_NULL
+TA_ACT
+TA_TPRI
+TA_MPRI
+TA_WMUL
+TA_CLR
+TA_STA
+TA_NONKERNEL
+TA_ENAINT
+TA_EDGE
+TMIN_TPRI,,signed
+TMAX_TPRI,,signed
+TMIN_DPRI,,signed
+TMAX_DPRI,,signed
+TMIN_MPRI,,signed
+TMAX_MPRI,,signed
+TMIN_ISRPRI,,signed
+TMAX_ISRPRI,,signed
+TBIT_TEXPTN
+TBIT_FLGPTN
+TMAX_MAXSEM
+TMAX_RELTIM
+TMIN_INTPRI,,signed
+TMAX_INTPRI,,signed
+TMIN_TSKID,,signed
+TMIN_SEMID,,signed
+TMIN_FLGID,,signed
+TMIN_DTQID,,signed
+TMIN_PDQID,,signed
+TMIN_MBXID,,signed
+TMIN_MPFID,,signed
+TMIN_CYCID,,signed
+TMIN_ALMID,,signed
+OMIT_INITIALIZE_INTERRUPT,true,bool,defined(OMIT_INITIALIZE_INTERRUPT)
+OMIT_INITIALIZE_EXCEPTION,true,bool,defined(OMIT_INITIALIZE_EXCEPTION)
+USE_TSKINICTXB,true,bool,defined(USE_TSKINICTXB)
+TARGET_TSKATR,,,defined(TARGET_TSKATR),0
+TARGET_INTATR,,,defined(TARGET_INTATR),0
+TARGET_INHATR,,,defined(TARGET_INHATR),0
+TARGET_ISRATR,,,defined(TARGET_ISRATR),0
+TARGET_EXCATR,,,defined(TARGET_EXCATR),0
+TARGET_MIN_STKSZ,,,defined(TARGET_MIN_STKSZ),1
+TARGET_MIN_ISTKSZ,,,defined(TARGET_MIN_ISTKSZ),1
+CHECK_STKSZ_ALIGN,,,defined(CHECK_STKSZ_ALIGN),1
+CHECK_FUNC_ALIGN,,,defined(CHECK_FUNC_ALIGN),1
+CHECK_FUNC_NONNULL,true,bool,defined(CHECK_FUNC_NONNULL)
+CHECK_STACK_ALIGN,,,defined(CHECK_STACK_ALIGN),1
+CHECK_STACK_NONNULL,true,bool,defined(CHECK_STACK_NONNULL)
+CHECK_MPF_ALIGN,,,defined(CHECK_MPF_ALIGN),1
+CHECK_MPF_NONNULL,true,bool,defined(CHECK_MPF_NONNULL)
+CHECK_MB_ALIGN,,,defined(CHECK_MB_ALIGN),1
+sizeof_ID,sizeof(ID)
+sizeof_uint_t,sizeof(uint_t)
+sizeof_SIZE,sizeof(SIZE)
+sizeof_ATR,sizeof(ATR)
+sizeof_PRI,sizeof(PRI)
+sizeof_void_ptr,sizeof(void*)
+sizeof_VP,sizeof(void*)
+sizeof_intptr_t,sizeof(intptr_t)
+sizeof_FP,sizeof(FP)
+sizeof_INHNO,sizeof(INHNO)
+sizeof_INTNO,sizeof(INTNO)
+sizeof_EXCNO,sizeof(EXCNO)
+sizeof_TINIB,sizeof(TINIB)
+sizeof_TASK,sizeof(TASK)
+sizeof_CYCHDR,sizeof(CYCHDR)
+sizeof_ALMHDR,sizeof(ALMHDR)
+sizeof_ISR,sizeof(ISR)
+sizeof_CYCHDR,sizeof(CYCHDR)
+offsetof_TINIB_tskatr,"offsetof(TINIB,tskatr)"
+offsetof_TINIB_exinf,"offsetof(TINIB,exinf)"
+offsetof_TINIB_task,"offsetof(TINIB,task)"
+offsetof_TINIB_stksz,"offsetof(TINIB,stksz)"
+offsetof_TINIB_stk,"offsetof(TINIB,stk)"
+offsetof_TINIB_ipriority,"offsetof(TINIB,ipriority)"
+offsetof_TINIB_texatr,"offsetof(TINIB,texatr)"
+offsetof_TINIB_texrtn,"offsetof(TINIB,texrtn)"
+sizeof_SEMINIB,sizeof(SEMINIB)
+offsetof_SEMINIB_sematr,"offsetof(SEMINIB,sematr)"
+offsetof_SEMINIB_isemcnt,"offsetof(SEMINIB,isemcnt)"
+offsetof_SEMINIB_maxsem,"offsetof(SEMINIB,maxsem)"
+sizeof_FLGPTN,sizeof(FLGPTN)
+sizeof_FLGINIB,sizeof(FLGINIB)
+offsetof_FLGINIB_flgatr,"offsetof(FLGINIB,flgatr)"
+offsetof_FLGINIB_iflgptn,"offsetof(FLGINIB,iflgptn)"
+sizeof_DTQINIB,sizeof(DTQINIB)
+offsetof_DTQINIB_dtqatr,"offsetof(DTQINIB,dtqatr)"
+offsetof_DTQINIB_dtqcnt,"offsetof(DTQINIB,dtqcnt)"
+offsetof_DTQINIB_p_dtqmb,"offsetof(DTQINIB,p_dtqmb)"
+sizeof_PDQINIB,sizeof(PDQINIB)
+offsetof_PDQINIB_pdqatr,"offsetof(PDQINIB,pdqatr)"
+offsetof_PDQINIB_pdqcnt,"offsetof(PDQINIB,pdqcnt)"
+offsetof_PDQINIB_maxdpri,"offsetof(PDQINIB,maxdpri)"
+offsetof_PDQINIB_p_pdqmb,"offsetof(PDQINIB,p_pdqmb)"
+sizeof_MBXINIB,sizeof(MBXINIB)
+offsetof_MBXINIB_mbxatr,"offsetof(MBXINIB,mbxatr)"
+offsetof_MBXINIB_maxmpri,"offsetof(MBXINIB,maxmpri)"
+sizeof_MPFINIB,sizeof(MPFINIB)
+offsetof_MPFINIB_mpfatr,"offsetof(MPFINIB,mpfatr)"
+offsetof_MPFINIB_blkcnt,"offsetof(MPFINIB,blkcnt)"
+offsetof_MPFINIB_blksz,"offsetof(MPFINIB,blksz)"
+offsetof_MPFINIB_mpf,"offsetof(MPFINIB,mpf)"
+offsetof_MPFINIB_p_mpfmb,"offsetof(MPFINIB,p_mpfmb)"
+sizeof_CYCINIB,sizeof(CYCINIB)
+offsetof_CYCINIB_cycatr,"offsetof(CYCINIB,cycatr)"
+offsetof_CYCINIB_exinf,"offsetof(CYCINIB,exinf)"
+offsetof_CYCINIB_cychdr,"offsetof(CYCINIB,cychdr)"
+offsetof_CYCINIB_cyctim,"offsetof(CYCINIB,cyctim)"
+offsetof_CYCINIB_cycphs,"offsetof(CYCINIB,cycphs)"
+sizeof_ALMINIB,sizeof(ALMINIB)
+offsetof_ALMINIB_almatr,"offsetof(ALMINIB,almatr)"
+offsetof_ALMINIB_exinf,"offsetof(ALMINIB,exinf)"
+offsetof_ALMINIB_almhdr,"offsetof(ALMINIB,almhdr)"
+sizeof_ISRINIB,sizeof(ISRINIB)
+offsetof_ISRINIB_isratr,"offsetof(ISRINIB,isratr)"
+offsetof_ISRINIB_exinf,"offsetof(ISRINIB,exinf)"
+offsetof_ISRINIB_intno,"offsetof(ISRINIB,intno)"
+offsetof_ISRINIB_p_isr_queue,"offsetof(ISRINIB,p_isr_queue)"
+offsetof_ISRINIB_isr,"offsetof(ISRINIB,isr)"
+offsetof_ISRINIB_isrpri,"offsetof(ISRINIB,isrpri)"
+sizeof_INHINIB,sizeof(INHINIB),,!defined(OMIT_INITIALIZE_INTERRUPT)
+offset_INHINIB_inhno,"offsetof(INHINIB,inhno)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offset_INHINIB_inhatr,"offsetof(INHINIB,inhatr)",,!defined(OMIT_INITIALIZE_INTERRUPT),,
+offset_INHINIB_int_entry,"offsetof(INHINIB,int_entry)",,!defined(OMIT_INITIALIZE_INTERRUPT),,
+sizeof_INTINIB,sizeof(INTINIB),,!defined(OMIT_INITIALIZE_INTERRUPT)
+offset_INTINIB_intno,"offsetof(INTINIB,intno)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offset_INTINIB_intatr,"offsetof(INTINIB,intatr)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+offset_INTINIB_intpri,"offsetof(INTINIB,intpri)",,!defined(OMIT_INITIALIZE_INTERRUPT)
+sizeof_EXCINIB,sizeof(EXCINIB),,!defined(OMIT_INITIALIZE_EXCEPTION)
+offset_EXCINIB_excno,"offsetof(EXCINIB,excno)",,!defined(OMIT_INITIALIZE_EXCEPTION)
+offset_EXCINIB_excatr,"offsetof(EXCINIB,excatr)",,!defined(OMIT_INITIALIZE_EXCEPTION)
+offset_EXCINIB_exc_entry,"offsetof(EXCINIB,exc_entry)",,!defined(OMIT_INITIALIZE_EXCEPTION)
Index: rubycfg_asp/trunk/asp_dcre/kernel/kernel_unrename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/kernel_unrename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/kernel_unrename.h	(revision 313)
@@ -0,0 +1,431 @@
+/* This file is generated from kernel_rename.def by genrename. */
+
+/* This file is included only when kernel_rename.h has been included. */
+#ifdef TOPPERS_KERNEL_RENAME_H
+#undef TOPPERS_KERNEL_RENAME_H
+
+/*
+ *  startup.c
+ */
+#undef kerflg
+#undef exit_kernel
+#undef initialize_kmm
+#undef kernel_malloc
+#undef kernel_free
+
+/*
+ *  task.c
+ */
+#undef p_runtsk
+#undef p_schedtsk
+#undef reqflg
+#undef ipmflg
+#undef disdsp
+#undef dspflg
+#undef ready_queue
+#undef ready_primap
+#undef free_tcb
+#undef initialize_task
+#undef search_schedtsk
+#undef make_runnable
+#undef make_non_runnable
+#undef make_dormant
+#undef make_active
+#undef change_priority
+#undef rotate_ready_queue
+#undef call_texrtn
+#undef calltex
+
+/*
+ *  wait.c
+ */
+#undef make_wait_tmout
+#undef wait_complete
+#undef wait_tmout
+#undef wait_tmout_ok
+#undef wait_release
+#undef wobj_make_wait
+#undef wobj_make_wait_tmout
+#undef init_wait_queue
+
+/*
+ *  time_event.c
+ */
+#undef current_time
+#undef min_time
+#undef next_time
+#undef next_subtime
+#undef last_index
+#undef initialize_tmevt
+#undef tmevt_up
+#undef tmevt_down
+#undef tmevtb_insert
+#undef tmevtb_delete
+#undef tmevt_lefttim
+#undef signal_time
+
+/*
+ *  semaphore.c
+ */
+#undef free_semcb
+#undef initialize_semaphore
+
+/*
+ *  eventflag.c
+ */
+#undef free_flgcb
+#undef initialize_eventflag
+#undef check_flg_cond
+
+/*
+ *  dataqueue.c
+ */
+#undef free_dtqcb
+#undef initialize_dataqueue
+#undef enqueue_data
+#undef force_enqueue_data
+#undef dequeue_data
+#undef send_data
+#undef force_send_data
+#undef receive_data
+
+/*
+ *  pridataq.c
+ */
+#undef free_pdqcb
+#undef initialize_pridataq
+#undef enqueue_pridata
+#undef dequeue_pridata
+#undef send_pridata
+#undef receive_pridata
+
+/*
+ *  mailbox.c
+ */
+#undef free_mbxcb
+#undef initialize_mailbox
+
+/*
+ *  mempfix.c
+ */
+#undef free_mpfcb
+#undef initialize_mempfix
+#undef get_mpf_block
+
+/*
+ *  cyclic.c
+ */
+#undef free_cyccb
+#undef initialize_cyclic
+#undef call_cychdr
+
+/*
+ *  alarm.c
+ */
+#undef free_almcb
+#undef initialize_alarm
+#undef call_almhdr
+
+/*
+ *  interrupt.c
+ */
+#undef free_isrcb
+#undef initialize_isr
+#undef call_isr
+#undef initialize_interrupt
+
+/*
+ *  exception.c
+ */
+#undef initialize_exception
+
+/*
+ *  kernel_cfg.c
+ */
+#undef initialize_object
+#undef call_inirtn
+#undef call_terrtn
+#undef tmax_tskid
+#undef tmax_stskid
+#undef tinib_table
+#undef atinib_table
+#undef tcb_table
+#undef torder_table
+#undef tmax_semid
+#undef tmax_ssemid
+#undef seminib_table
+#undef aseminib_table
+#undef semcb_table
+#undef tmax_flgid
+#undef tmax_sflgid
+#undef flginib_table
+#undef aflginib_table
+#undef flgcb_table
+#undef tmax_dtqid
+#undef tmax_sdtqid
+#undef dtqinib_table
+#undef adtqinib_table
+#undef dtqcb_table
+#undef tmax_pdqid
+#undef tmax_spdqid
+#undef pdqinib_table
+#undef apdqinib_table
+#undef pdqcb_table
+#undef tmax_mbxid
+#undef tmax_smbxid
+#undef mbxinib_table
+#undef ambxinib_table
+#undef mbxcb_table
+#undef tmax_mpfid
+#undef tmax_smpfid
+#undef mpfinib_table
+#undef ampfinib_table
+#undef mpfcb_table
+#undef tmax_cycid
+#undef tmax_scycid
+#undef cycinib_table
+#undef acycinib_table
+#undef cyccb_table
+#undef tmax_almid
+#undef tmax_salmid
+#undef alminib_table
+#undef aalminib_table
+#undef almcb_table
+#undef tnum_isr_queue
+#undef isr_queue_table
+#undef isr_queue_list
+#undef tmax_isrid
+#undef tnum_sisr
+#undef sisrinib_table
+#undef aisrinib_table
+#undef isrcb_table
+#undef tnum_inhno
+#undef inhinib_table
+#undef tnum_intno
+#undef intinib_table
+#undef tnum_excno
+#undef excinib_table
+#undef tmevt_heap
+#undef istksz
+#undef istk
+#undef istkpt
+#undef kmmsz
+#undef kmm
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  startup.c
+ */
+#undef _kerflg
+#undef _exit_kernel
+#undef _initialize_kmm
+#undef _kernel_malloc
+#undef _kernel_free
+
+/*
+ *  task.c
+ */
+#undef _p_runtsk
+#undef _p_schedtsk
+#undef _reqflg
+#undef _ipmflg
+#undef _disdsp
+#undef _dspflg
+#undef _ready_queue
+#undef _ready_primap
+#undef _free_tcb
+#undef _initialize_task
+#undef _search_schedtsk
+#undef _make_runnable
+#undef _make_non_runnable
+#undef _make_dormant
+#undef _make_active
+#undef _change_priority
+#undef _rotate_ready_queue
+#undef _call_texrtn
+#undef _calltex
+
+/*
+ *  wait.c
+ */
+#undef _make_wait_tmout
+#undef _wait_complete
+#undef _wait_tmout
+#undef _wait_tmout_ok
+#undef _wait_release
+#undef _wobj_make_wait
+#undef _wobj_make_wait_tmout
+#undef _init_wait_queue
+
+/*
+ *  time_event.c
+ */
+#undef _current_time
+#undef _min_time
+#undef _next_time
+#undef _next_subtime
+#undef _last_index
+#undef _initialize_tmevt
+#undef _tmevt_up
+#undef _tmevt_down
+#undef _tmevtb_insert
+#undef _tmevtb_delete
+#undef _tmevt_lefttim
+#undef _signal_time
+
+/*
+ *  semaphore.c
+ */
+#undef _free_semcb
+#undef _initialize_semaphore
+
+/*
+ *  eventflag.c
+ */
+#undef _free_flgcb
+#undef _initialize_eventflag
+#undef _check_flg_cond
+
+/*
+ *  dataqueue.c
+ */
+#undef _free_dtqcb
+#undef _initialize_dataqueue
+#undef _enqueue_data
+#undef _force_enqueue_data
+#undef _dequeue_data
+#undef _send_data
+#undef _force_send_data
+#undef _receive_data
+
+/*
+ *  pridataq.c
+ */
+#undef _free_pdqcb
+#undef _initialize_pridataq
+#undef _enqueue_pridata
+#undef _dequeue_pridata
+#undef _send_pridata
+#undef _receive_pridata
+
+/*
+ *  mailbox.c
+ */
+#undef _free_mbxcb
+#undef _initialize_mailbox
+
+/*
+ *  mempfix.c
+ */
+#undef _free_mpfcb
+#undef _initialize_mempfix
+#undef _get_mpf_block
+
+/*
+ *  cyclic.c
+ */
+#undef _free_cyccb
+#undef _initialize_cyclic
+#undef _call_cychdr
+
+/*
+ *  alarm.c
+ */
+#undef _free_almcb
+#undef _initialize_alarm
+#undef _call_almhdr
+
+/*
+ *  interrupt.c
+ */
+#undef _free_isrcb
+#undef _initialize_isr
+#undef _call_isr
+#undef _initialize_interrupt
+
+/*
+ *  exception.c
+ */
+#undef _initialize_exception
+
+/*
+ *  kernel_cfg.c
+ */
+#undef _initialize_object
+#undef _call_inirtn
+#undef _call_terrtn
+#undef _tmax_tskid
+#undef _tmax_stskid
+#undef _tinib_table
+#undef _atinib_table
+#undef _tcb_table
+#undef _torder_table
+#undef _tmax_semid
+#undef _tmax_ssemid
+#undef _seminib_table
+#undef _aseminib_table
+#undef _semcb_table
+#undef _tmax_flgid
+#undef _tmax_sflgid
+#undef _flginib_table
+#undef _aflginib_table
+#undef _flgcb_table
+#undef _tmax_dtqid
+#undef _tmax_sdtqid
+#undef _dtqinib_table
+#undef _adtqinib_table
+#undef _dtqcb_table
+#undef _tmax_pdqid
+#undef _tmax_spdqid
+#undef _pdqinib_table
+#undef _apdqinib_table
+#undef _pdqcb_table
+#undef _tmax_mbxid
+#undef _tmax_smbxid
+#undef _mbxinib_table
+#undef _ambxinib_table
+#undef _mbxcb_table
+#undef _tmax_mpfid
+#undef _tmax_smpfid
+#undef _mpfinib_table
+#undef _ampfinib_table
+#undef _mpfcb_table
+#undef _tmax_cycid
+#undef _tmax_scycid
+#undef _cycinib_table
+#undef _acycinib_table
+#undef _cyccb_table
+#undef _tmax_almid
+#undef _tmax_salmid
+#undef _alminib_table
+#undef _aalminib_table
+#undef _almcb_table
+#undef _tnum_isr_queue
+#undef _isr_queue_table
+#undef _isr_queue_list
+#undef _tmax_isrid
+#undef _tnum_sisr
+#undef _sisrinib_table
+#undef _aisrinib_table
+#undef _isrcb_table
+#undef _tnum_inhno
+#undef _inhinib_table
+#undef _tnum_intno
+#undef _intinib_table
+#undef _tnum_excno
+#undef _excinib_table
+#undef _tmevt_heap
+#undef _istksz
+#undef _istk
+#undef _istkpt
+#undef _kmmsz
+#undef _kmm
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "target_unrename.h"
+
+#endif /* TOPPERS_KERNEL_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/mailbox.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mailbox.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mailbox.c	(revision 313)
@@ -0,0 +1,554 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¡ã¼ã«ããã¯ã¹æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "mailbox.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_MBX_ENTER
+#define LOG_ACRE_MBX_ENTER(pk_cmbx)
+#endif /* LOG_ACRE_MBX_ENTER */
+
+#ifndef LOG_ACRE_MBX_LEAVE
+#define LOG_ACRE_MBX_LEAVE(ercd)
+#endif /* LOG_ACRE_MBX_LEAVE */
+
+#ifndef LOG_DEL_MBX_ENTER
+#define LOG_DEL_MBX_ENTER(mbxid)
+#endif /* LOG_DEL_MBX_ENTER */
+
+#ifndef LOG_DEL_MBX_LEAVE
+#define LOG_DEL_MBX_LEAVE(ercd)
+#endif /* LOG_DEL_MBX_LEAVE */
+
+#ifndef LOG_SND_MBX_ENTER
+#define LOG_SND_MBX_ENTER(mbxid, pk_msg)
+#endif /* LOG_SND_MBX_ENTER */
+
+#ifndef LOG_SND_MBX_LEAVE
+#define LOG_SND_MBX_LEAVE(ercd)
+#endif /* LOG_SND_MBX_LEAVE */
+
+#ifndef LOG_RCV_MBX_ENTER
+#define LOG_RCV_MBX_ENTER(mbxid, ppk_msg)
+#endif /* LOG_RCV_MBX_ENTER */
+
+#ifndef LOG_RCV_MBX_LEAVE
+#define LOG_RCV_MBX_LEAVE(ercd, pk_msg)
+#endif /* LOG_RCV_MBX_LEAVE */
+
+#ifndef LOG_PRCV_MBX_ENTER
+#define LOG_PRCV_MBX_ENTER(mbxid, ppk_msg)
+#endif /* LOG_PRCV_MBX_ENTER */
+
+#ifndef LOG_PRCV_MBX_LEAVE
+#define LOG_PRCV_MBX_LEAVE(ercd, pk_msg)
+#endif /* LOG_PRCV_MBX_LEAVE */
+
+#ifndef LOG_TRCV_MBX_ENTER
+#define LOG_TRCV_MBX_ENTER(mbxid, ppk_msg, tmout)
+#endif /* LOG_TRCV_MBX_ENTER */
+
+#ifndef LOG_TRCV_MBX_LEAVE
+#define LOG_TRCV_MBX_LEAVE(ercd, pk_msg)
+#endif /* LOG_TRCV_MBX_LEAVE */
+
+#ifndef LOG_INI_MBX_ENTER
+#define LOG_INI_MBX_ENTER(mbxid)
+#endif /* LOG_INI_MBX_ENTER */
+
+#ifndef LOG_INI_MBX_LEAVE
+#define LOG_INI_MBX_LEAVE(ercd)
+#endif /* LOG_INI_MBX_LEAVE */
+
+#ifndef LOG_REF_MBX_ENTER
+#define LOG_REF_MBX_ENTER(mbxid, pk_rmbx)
+#endif /* LOG_REF_MBX_ENTER */
+
+#ifndef LOG_REF_MBX_LEAVE
+#define LOG_REF_MBX_LEAVE(ercd, pk_rmbx)
+#endif /* LOG_REF_MBX_LEAVE */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã®æ°
+ */
+#define tnum_mbx	((uint_t)(tmax_mbxid - TMIN_MBXID + 1))
+#define tnum_smbx	((uint_t)(tmax_smbxid - TMIN_MBXID + 1))
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹IDããã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_MBX(mbxid)	((uint_t)((mbxid) - TMIN_MBXID))
+#define get_mbxcb(mbxid)	(&(mbxcb_table[INDEX_MBX(mbxid)]))
+
+#ifdef TOPPERS_mbxini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_mbxcb;
+
+/* 
+ *  ã¡ã¼ã«ããã¯ã¹æ©è½ã®åæå
+ */
+void
+initialize_mailbox(void)
+{
+	uint_t	i, j;
+	MBXCB	*p_mbxcb;
+	MBXINIB	*p_mbxinib;
+
+	for (i = 0; i < tnum_smbx; i++) {
+		p_mbxcb = &(mbxcb_table[i]);
+		queue_initialize(&(p_mbxcb->wait_queue));
+		p_mbxcb->p_mbxinib = &(mbxinib_table[i]);
+		p_mbxcb->pk_head = NULL;
+	}
+	queue_initialize(&free_mbxcb);
+	for (j = 0; i < tnum_mbx; i++, j++) {
+		p_mbxcb = &(mbxcb_table[i]);
+		p_mbxinib = &(ambxinib_table[j]);
+		p_mbxinib->mbxatr = TA_NOEXS;
+		p_mbxcb->p_mbxinib = ((const MBXINIB *) p_mbxinib);
+		queue_insert_prev(&free_mbxcb, &(p_mbxcb->wait_queue));
+	}
+}
+
+#endif /* TOPPERS_mbxini */
+
+/*
+ *  ã¡ãã»ã¼ã¸åªå
+åº¦ã®ååºã
+ */
+#define	MSGPRI(pk_msg)	(((T_MSG_PRI *)(pk_msg))->msgpri)
+
+/*
+ *  åªå
+åº¦é ã¡ãã»ã¼ã¸ã­ã¥ã¼ã¸ã®æ¿å
+¥
+ */
+Inline void
+enqueue_msg_pri(T_MSG **ppk_prevmsg_next, T_MSG *pk_msg)
+{
+	T_MSG	*pk_nextmsg;
+
+	while ((pk_nextmsg = *ppk_prevmsg_next) != NULL) {
+		if (MSGPRI(pk_nextmsg) > MSGPRI(pk_msg)) {
+			break;
+		}
+		ppk_prevmsg_next = &(pk_nextmsg->pk_next);
+	}
+	pk_msg->pk_next = pk_nextmsg;
+	*ppk_prevmsg_next = pk_msg;
+}
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã®çæ
+ */
+#ifdef TOPPERS_acre_mbx
+
+ER_UINT
+acre_mbx(const T_CMBX *pk_cmbx)
+{
+	MBXCB	*p_mbxcb;
+	MBXINIB	*p_mbxinib;
+	ER		ercd;
+
+	LOG_ACRE_MBX_ENTER(pk_cmbx);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cmbx->mbxatr, TA_TPRI|TA_MPRI);
+	CHECK_MPRI(pk_cmbx->maxmpri);
+	CHECK_NOSPT(pk_cmbx->mprihd == NULL);
+
+	t_lock_cpu();
+	if (tnum_mbx == 0 || queue_empty(&free_mbxcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_mbxcb = ((MBXCB *) queue_delete_next(&free_mbxcb));
+		p_mbxinib = (MBXINIB *)(p_mbxcb->p_mbxinib);
+		p_mbxinib->mbxatr = pk_cmbx->mbxatr;
+		p_mbxinib->maxmpri = pk_cmbx->maxmpri;
+
+		queue_initialize(&(p_mbxcb->wait_queue));
+		p_mbxcb->pk_head = NULL;
+		ercd = MBXID(p_mbxcb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_MBX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã®åé¤
+ */
+#ifdef TOPPERS_del_mbx
+
+ER
+del_mbx(ID mbxid)
+{
+	MBXCB	*p_mbxcb;
+	MBXINIB	*p_mbxinib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_MBX_ENTER(mbxid);
+	CHECK_TSKCTX_UNL();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (MBXID(p_mbxcb) > tmax_smbxid) {
+		dspreq = init_wait_queue(&(p_mbxcb->wait_queue));
+		p_mbxinib = (MBXINIB *)(p_mbxcb->p_mbxinib);
+		p_mbxinib->mbxatr = TA_NOEXS;
+		queue_insert_prev(&free_mbxcb, &(p_mbxcb->wait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_MBX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã¸ã®éä¿¡
+ */
+#ifdef TOPPERS_snd_mbx
+
+ER
+snd_mbx(ID mbxid, T_MSG *pk_msg)
+{
+	MBXCB	*p_mbxcb;
+	TCB		*p_tcb;
+	ER		ercd;
+    
+	LOG_SND_MBX_ENTER(mbxid, pk_msg);
+	CHECK_TSKCTX_UNL();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!((p_mbxcb->p_mbxinib->mbxatr & TA_MPRI) == 0U
+				|| (TMIN_MPRI <= MSGPRI(pk_msg)
+					&& MSGPRI(pk_msg) <= p_mbxcb->p_mbxinib->maxmpri))) {
+		ercd = E_PAR;
+	}
+	else if (!queue_empty(&(p_mbxcb->wait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_mbxcb->wait_queue));
+		((WINFO_MBX *)(p_tcb->p_winfo))->pk_msg = pk_msg;
+		if (wait_complete(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if ((p_mbxcb->p_mbxinib->mbxatr & TA_MPRI) != 0U) {
+		enqueue_msg_pri(&(p_mbxcb->pk_head), pk_msg);
+		ercd = E_OK;
+	}
+	else {
+		pk_msg->pk_next = NULL;
+		if (p_mbxcb->pk_head != NULL) {
+			p_mbxcb->pk_last->pk_next = pk_msg;
+		}
+		else {
+			p_mbxcb->pk_head = pk_msg;
+		}
+		p_mbxcb->pk_last = pk_msg;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SND_MBX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_snd_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ããã®åä¿¡
+ */
+#ifdef TOPPERS_rcv_mbx
+
+ER
+rcv_mbx(ID mbxid, T_MSG **ppk_msg)
+{
+	MBXCB	*p_mbxcb;
+	WINFO_MBX winfo_mbx;
+	ER		ercd;
+    
+	LOG_RCV_MBX_ENTER(mbxid, ppk_msg);
+	CHECK_DISPATCH();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+    
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mbxcb->pk_head != NULL) {
+		*ppk_msg = p_mbxcb->pk_head;
+		p_mbxcb->pk_head = (*ppk_msg)->pk_next;
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_MBX);
+		wobj_make_wait((WOBJCB *) p_mbxcb, (WINFO_WOBJ *) &winfo_mbx);
+		dispatch();
+		ercd = winfo_mbx.winfo.wercd;
+		if (ercd == E_OK) {
+			*ppk_msg = winfo_mbx.pk_msg;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_RCV_MBX_LEAVE(ercd, *ppk_msg);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rcv_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_prcv_mbx
+
+ER
+prcv_mbx(ID mbxid, T_MSG **ppk_msg)
+{
+	MBXCB	*p_mbxcb;
+	ER		ercd;
+    
+	LOG_PRCV_MBX_ENTER(mbxid, ppk_msg);
+	CHECK_TSKCTX_UNL();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+    
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mbxcb->pk_head != NULL) {
+		*ppk_msg = p_mbxcb->pk_head;
+		p_mbxcb->pk_head = (*ppk_msg)->pk_next;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PRCV_MBX_LEAVE(ercd, *ppk_msg);
+	return(ercd);
+}
+
+#endif /* TOPPERS_prcv_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_trcv_mbx
+
+ER
+trcv_mbx(ID mbxid, T_MSG **ppk_msg, TMO tmout)
+{
+	MBXCB	*p_mbxcb;
+	WINFO_MBX winfo_mbx;
+	TMEVTB	tmevtb;
+	ER		ercd;
+    
+	LOG_TRCV_MBX_ENTER(mbxid, ppk_msg, tmout);
+	CHECK_DISPATCH();
+	CHECK_MBXID(mbxid);
+	CHECK_TMOUT(tmout);
+	p_mbxcb = get_mbxcb(mbxid);
+    
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mbxcb->pk_head != NULL) {
+		*ppk_msg = p_mbxcb->pk_head;
+		p_mbxcb->pk_head = (*ppk_msg)->pk_next;
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_MBX);
+		wobj_make_wait_tmout((WOBJCB *) p_mbxcb, (WINFO_WOBJ *) &winfo_mbx,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_mbx.winfo.wercd;
+		if (ercd == E_OK) {
+			*ppk_msg = winfo_mbx.pk_msg;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TRCV_MBX_LEAVE(ercd, *ppk_msg);
+	return(ercd);
+}
+
+#endif /* TOPPERS_trcv_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã®ååæå
+ */
+#ifdef TOPPERS_ini_mbx
+
+ER
+ini_mbx(ID mbxid)
+{
+	MBXCB	*p_mbxcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_MBX_ENTER(mbxid);
+	CHECK_TSKCTX_UNL();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_mbxcb->wait_queue));
+		p_mbxcb->pk_head = NULL;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_MBX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_mbx */
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_mbx
+
+ER
+ref_mbx(ID mbxid, T_RMBX *pk_rmbx)
+{
+	MBXCB	*p_mbxcb;
+	ER		ercd;
+    
+	LOG_REF_MBX_ENTER(mbxid, pk_rmbx);
+	CHECK_TSKCTX_UNL();
+	CHECK_MBXID(mbxid);
+	p_mbxcb = get_mbxcb(mbxid);
+
+	t_lock_cpu();
+	if (p_mbxcb->p_mbxinib->mbxatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rmbx->wtskid = wait_tskid(&(p_mbxcb->wait_queue));
+		pk_rmbx->pk_msg = p_mbxcb->pk_head;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_MBX_LEAVE(ercd, pk_rmbx);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_mbx */
Index: rubycfg_asp/trunk/asp_dcre/kernel/mailbox.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mailbox.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mailbox.h	(revision 313)
@@ -0,0 +1,159 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¡ã¼ã«ããã¯ã¹æ©è½
+ */
+
+#ifndef TOPPERS_MAILBOX_H
+#define TOPPERS_MAILBOX_H
+
+#include "wait.h"
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct mailbox_initialization_block {
+	ATR			mbxatr;			/* ã¡ã¼ã«ããã¯ã¹å±æ§ */
+	PRI			maxmpri;		/* ã¡ãã»ã¼ã¸åªå
+åº¦ã®æå¤§å¤ */
+} MBXINIB;
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ *
+ *  ã¡ãã»ã¼ã¸ã­ã¥ã¼ãã¡ãã»ã¼ã¸ã®åªå
+åº¦é ã®å ´åã«ã¯ï¼pk_lastã¯ä½¿ããª
+ *  ãï¼ã¾ãï¼ã¡ãã»ã¼ã¸ã­ã¥ã¼ãç©ºã®å ´åï¼pk_headãNULLã®å ´åï¼ã«ãï¼
+ *  pk_lastã¯ç¡å¹ã§ããï¼
+ */
+typedef struct mailbox_control_block {
+	QUEUE		wait_queue;		/* ã¡ã¼ã«ããã¯ã¹å¾
+ã¡ã­ã¥ã¼ */
+	const MBXINIB *p_mbxinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	T_MSG		*pk_head;		/* å
+é ­ã®ã¡ãã»ã¼ã¸ */
+	T_MSG		*pk_last;		/* æ«å°¾ã®ã¡ãã»ã¼ã¸ */
+} MBXCB;
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®2ã¤ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct mailbox_waiting_information {
+	WINFO		winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	MBXCB		*p_mbxcb;		/* å¾
+ã£ã¦ããã¡ã¼ã«ããã¯ã¹ã®ç®¡çãã­ãã¯ */
+	T_MSG		*pk_msg;		/* åä¿¡ããã¡ãã»ã¼ã¸ */
+} WINFO_MBX;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_mbxcb;
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_mbxid;
+extern const ID	tmax_smbxid;
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const MBXINIB	mbxinib_table[];
+extern MBXINIB			ambxinib_table[];
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern MBXCB	mbxcb_table[];
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹ç®¡çãã­ãã¯ããã¡ã¼ã«ããã¯ã¹IDãåãåºãããã®ãã¯ã­
+ */
+#define	MBXID(p_mbxcb)	((ID)(((p_mbxcb) - mbxcb_table) + TMIN_MBXID))
+
+/*
+ *  ã¡ã¼ã«ããã¯ã¹æ©è½ã®åæå
+ */
+extern void	initialize_mailbox(void);
+
+#endif /* TOPPERS_MAILBOX_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/mailbox.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mailbox.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mailbox.trb	(revision 313)
@@ -0,0 +1,112 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: mailbox.trb 630 2016-02-14 11:30:17Z ertl-hiro $
+# 
+
+#
+#		ã¡ã¼ã«ããã¯ã¹æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class MailboxObject < KernelObject
+  def initialize()
+    super("mbx", "mailbox")
+  end
+
+  def prepare(key, params)
+    # mbxatrãç¡å¹ã®å ´åï¼E_RSATRï¼
+    # ï¼TA_NULLï¼TA_TPRIï¼TA_MPRIã®ãããã§ããªãå ´åï¼
+    if !(params[:mbxatr] == $TA_NULL || params[:mbxatr] == $TA_TPRI \
+										|| params[:mbxatr] == $TA_MPRI)
+      error_illegal_id("E_RSATR", params, :mbxatr, :mbxid)
+    end
+
+    if params[:mbxatr] == $TA_MPRI
+      # åªå
+åº¦ä¸éã¡ã¼ã«ããã¯ã¹ã®å ´å
+      # maxmpriãæªæå®ã®å ´åã¯ã¨ã©ã¼ã¨ãã
+      if params[:maxmpri].nil?
+        error_api(params, "maxmpri must be specified in %apiname of %mbxid")
+
+      # (TMIN_MPRI <= maxmpri && maxmpri <= TMAX_MPRI)ã§ãªãå ´åï¼E_PARï¼
+      elsif !($TMIN_MPRI <= params[:maxmpri] && params[:maxmpri] <= $TMAX_MPRI)
+        error_illegal_id("E_PAR", params, :maxmpri, :mbxid)
+      end
+    else
+      # åªå
+åº¦ä¸éã¡ã¼ã«ããã¯ã¹ã§ãªãå ´å
+      # maxmpriãæå®ããã¦ããå ´åã¯è­¦åã¡ãã»ã¼ã¸ãåºã
+      if !params[:maxmpri].nil?
+        warning_api(params, "%%maxmpri is ignored in %apiname of %mbxid")
+      end
+      params[:maxmpri] = 0
+    end
+
+    # mprihdãNULLã§ãªãå ´åï¼E_NOSPTï¼
+    if !params[:mprihd].nil? && params[:mprihd] != "NULL"
+      error_illegal_id("E_NOSPT", params, :mprihd, :mbxid)
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:mbxatr]}), (#{params[:maxmpri]})")
+  end
+end
+
+#
+#  ã¡ã¼ã«ããã¯ã¹ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Mailbox Functions")
+MailboxObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/mempfix.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mempfix.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mempfix.c	(revision 313)
@@ -0,0 +1,605 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "mempfix.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_MPF_ENTER
+#define LOG_ACRE_MPF_ENTER(pk_cmpf)
+#endif /* LOG_ACRE_MPF_ENTER */
+
+#ifndef LOG_ACRE_MPF_LEAVE
+#define LOG_ACRE_MPF_LEAVE(ercd)
+#endif /* LOG_ACRE_MPF_LEAVE */
+
+#ifndef LOG_DEL_MPF_ENTER
+#define LOG_DEL_MPF_ENTER(mpfid)
+#endif /* LOG_DEL_MPF_ENTER */
+
+#ifndef LOG_DEL_MPF_LEAVE
+#define LOG_DEL_MPF_LEAVE(ercd)
+#endif /* LOG_DEL_MPF_LEAVE */
+
+#ifndef LOG_GET_MPF_ENTER
+#define LOG_GET_MPF_ENTER(mpfid, p_blk)
+#endif /* LOG_GET_MPF_ENTER */
+
+#ifndef LOG_GET_MPF_LEAVE
+#define LOG_GET_MPF_LEAVE(ercd, blk)
+#endif /* LOG_GET_MPF_LEAVE */
+
+#ifndef LOG_PGET_MPF_ENTER
+#define LOG_PGET_MPF_ENTER(mpfid, p_blk)
+#endif /* LOG_PGET_MPF_ENTER */
+
+#ifndef LOG_PGET_MPF_LEAVE
+#define LOG_PGET_MPF_LEAVE(ercd, blk)
+#endif /* LOG_PGET_MPF_LEAVE */
+
+#ifndef LOG_TGET_MPF_ENTER
+#define LOG_TGET_MPF_ENTER(mpfid, p_blk, tmout)
+#endif /* LOG_TGET_MPF_ENTER */
+
+#ifndef LOG_TGET_MPF_LEAVE
+#define LOG_TGET_MPF_LEAVE(ercd, blk)
+#endif /* LOG_TGET_MPF_LEAVE */
+
+#ifndef LOG_REL_MPF_ENTER
+#define LOG_REL_MPF_ENTER(mpfid, blk)
+#endif /* LOG_REL_MPF_ENTER */
+
+#ifndef LOG_REL_MPF_LEAVE
+#define LOG_REL_MPF_LEAVE(ercd)
+#endif /* LOG_REL_MPF_LEAVE */
+
+#ifndef LOG_INI_MPF_ENTER
+#define LOG_INI_MPF_ENTER(mpfid)
+#endif /* LOG_INI_MPF_ENTER */
+
+#ifndef LOG_INI_MPF_LEAVE
+#define LOG_INI_MPF_LEAVE(ercd)
+#endif /* LOG_INI_MPF_LEAVE */
+
+#ifndef LOG_REF_MPF_ENTER
+#define LOG_REF_MPF_ENTER(mpfid, pk_rmpf)
+#endif /* LOG_REF_MPF_ENTER */
+
+#ifndef LOG_REF_MPF_LEAVE
+#define LOG_REF_MPF_LEAVE(ercd, pk_rmpf)
+#endif /* LOG_REF_MPF_LEAVE */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ã®æ°
+ */
+#define tnum_mpf	((uint_t)(tmax_mpfid - TMIN_MPFID + 1))
+#define tnum_smpf	((uint_t)(tmax_smpfid - TMIN_MPFID + 1))
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«IDããåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ãåãåºãã
+ *  ãã®ãã¯ã­
+ */
+#define INDEX_MPF(mpfid)	((uint_t)((mpfid) - TMIN_MPFID))
+#define get_mpfcb(mpfid)	(&(mpfcb_table[INDEX_MPF(mpfid)]))
+
+/*
+ *  ç¹æ®ãªã¤ã³ããã¯ã¹å¤ã®å®ç¾©
+ */
+#define INDEX_NULL		(~0U)		/* ç©ºããã­ãã¯ãªã¹ãã®æå¾ */
+#define INDEX_ALLOC		(~1U)		/* å²å½ã¦æ¸ã¿ã®ãã­ãã¯ */
+
+#ifdef TOPPERS_mpfini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_mpfcb;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®åæå
+ */
+void
+initialize_mempfix(void)
+{
+	uint_t	i, j;
+	MPFCB	*p_mpfcb;
+	MPFINIB	*p_mpfinib;
+
+	for (i = 0; i < tnum_smpf; i++) {
+		p_mpfcb = &(mpfcb_table[i]);
+		queue_initialize(&(p_mpfcb->wait_queue));
+		p_mpfcb->p_mpfinib = &(mpfinib_table[i]);
+		p_mpfcb->fblkcnt = p_mpfcb->p_mpfinib->blkcnt;
+		p_mpfcb->unused = 0U;
+		p_mpfcb->freelist = INDEX_NULL;
+	}
+	queue_initialize(&free_mpfcb);
+	for (j = 0; i < tnum_mpf; i++, j++) {
+		p_mpfcb = &(mpfcb_table[i]);
+		p_mpfinib = &(ampfinib_table[j]);
+		p_mpfinib->mpfatr = TA_NOEXS;
+		p_mpfcb->p_mpfinib = ((const MPFINIB *) p_mpfinib);
+		queue_insert_prev(&free_mpfcb, &(p_mpfcb->wait_queue));
+	}
+}
+
+#endif /* TOPPERS_mpfini */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ãããã­ãã¯ãç²å¾
+ */
+#ifdef TOPPERS_mpfget
+
+void
+get_mpf_block(MPFCB *p_mpfcb, void **p_blk)
+{
+	uint_t	blkidx;
+
+	if (p_mpfcb->freelist != INDEX_NULL) {
+		blkidx = p_mpfcb->freelist;
+		p_mpfcb->freelist = (p_mpfcb->p_mpfinib->p_mpfmb + blkidx)->next;
+	}
+	else {
+		blkidx = p_mpfcb->unused;
+		p_mpfcb->unused++;
+	}
+	*p_blk = (void *)((char *)(p_mpfcb->p_mpfinib->mpf)
+								+ p_mpfcb->p_mpfinib->blksz * blkidx);
+	p_mpfcb->fblkcnt--;
+	(p_mpfcb->p_mpfinib->p_mpfmb + blkidx)->next = INDEX_ALLOC;
+}
+
+#endif /* TOPPERS_mpfget */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ã®çæ
+ */
+#ifdef TOPPERS_acre_mpf
+
+ER_UINT
+acre_mpf(const T_CMPF *pk_cmpf)
+{
+	MPFCB	*p_mpfcb;
+	MPFINIB	*p_mpfinib;
+	ATR		mpfatr;
+	void	*mpf;
+	MPFMB	*p_mpfmb;
+	ER		ercd;
+
+	LOG_ACRE_MPF_ENTER(pk_cmpf);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cmpf->mpfatr, TA_TPRI);
+	CHECK_PAR(pk_cmpf->blkcnt != 0);
+	CHECK_PAR(pk_cmpf->blksz != 0);
+	if (pk_cmpf->mpf != NULL) {
+		CHECK_ALIGN_MPF(pk_cmpf->mpf);
+	}
+	if (pk_cmpf->mpfmb != NULL) {
+		CHECK_ALIGN_MB(pk_cmpf->mpfmb);
+	}
+	mpfatr = pk_cmpf->mpfatr;
+	mpf = pk_cmpf->mpf;
+	p_mpfmb = pk_cmpf->mpfmb;
+
+	t_lock_cpu();
+	if (tnum_mpf == 0 || queue_empty(&free_mpfcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		if (mpf == NULL) {
+			mpf = kernel_malloc(ROUND_MPF_T(pk_cmpf->blksz) * pk_cmpf->blkcnt);
+			mpfatr |= TA_MEMALLOC;
+		}
+		if (mpf == NULL) {
+			ercd = E_NOMEM;
+		}
+		else {
+			if (p_mpfmb == NULL) {
+				p_mpfmb = kernel_malloc(sizeof(MPFMB) * pk_cmpf->blkcnt);
+				mpfatr |= TA_MBALLOC;
+			}
+			if (p_mpfmb == NULL) {
+				if (pk_cmpf->mpf == NULL) {
+					kernel_free(mpf);
+				}
+				ercd = E_NOMEM;
+			}
+			else {
+				p_mpfcb = ((MPFCB *) queue_delete_next(&free_mpfcb));
+				p_mpfinib = (MPFINIB *)(p_mpfcb->p_mpfinib);
+				p_mpfinib->mpfatr = mpfatr;
+				p_mpfinib->blkcnt = pk_cmpf->blkcnt;
+				p_mpfinib->blksz = ROUND_MPF_T(pk_cmpf->blksz);
+				p_mpfinib->mpf = mpf;
+				p_mpfinib->p_mpfmb = p_mpfmb;
+
+				queue_initialize(&(p_mpfcb->wait_queue));
+				p_mpfcb->fblkcnt = p_mpfcb->p_mpfinib->blkcnt;
+				p_mpfcb->unused = 0U;
+				p_mpfcb->freelist = INDEX_NULL;
+				ercd = MPFID(p_mpfcb);
+			}
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_MPF_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ã®åé¤
+ */
+#ifdef TOPPERS_del_mpf
+
+ER
+del_mpf(ID mpfid)
+{
+	MPFCB	*p_mpfcb;
+	MPFINIB	*p_mpfinib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_MPF_ENTER(mpfid);
+	CHECK_TSKCTX_UNL();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (MPFID(p_mpfcb) > tmax_smpfid) {
+		dspreq = init_wait_queue(&(p_mpfcb->wait_queue));
+		p_mpfinib = (MPFINIB *)(p_mpfcb->p_mpfinib);
+		if ((p_mpfinib->mpfatr & TA_MEMALLOC) != 0U) {
+			kernel_free(p_mpfinib->mpf);
+		}
+		if ((p_mpfinib->mpfatr & TA_MBALLOC) != 0U) {
+			kernel_free(p_mpfinib->p_mpfmb);
+		}
+		p_mpfinib->mpfatr = TA_NOEXS;
+		queue_insert_prev(&free_mpfcb, &(p_mpfcb->wait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_MPF_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾
+ */
+#ifdef TOPPERS_get_mpf
+
+ER
+get_mpf(ID mpfid, void **p_blk)
+{
+	MPFCB	*p_mpfcb;
+	WINFO_MPF winfo_mpf;
+	ER		ercd;
+
+	LOG_GET_MPF_ENTER(mpfid, p_blk);
+	CHECK_DISPATCH();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mpfcb->fblkcnt > 0) {
+		get_mpf_block(p_mpfcb, p_blk);
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_MPF);
+		wobj_make_wait((WOBJCB *) p_mpfcb, (WINFO_WOBJ *) &winfo_mpf);
+		dispatch();
+		ercd = winfo_mpf.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_blk = winfo_mpf.blk;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_MPF_LEAVE(ercd, *p_blk);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_pget_mpf
+
+ER
+pget_mpf(ID mpfid, void **p_blk)
+{
+	MPFCB	*p_mpfcb;
+	ER		ercd;
+
+	LOG_PGET_MPF_ENTER(mpfid, p_blk);
+	CHECK_TSKCTX_UNL();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mpfcb->fblkcnt > 0) {
+		get_mpf_block(p_mpfcb, p_blk);
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PGET_MPF_LEAVE(ercd, *p_blk);
+	return(ercd);
+}
+
+#endif /* TOPPERS_pget_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_tget_mpf
+
+ER
+tget_mpf(ID mpfid, void **p_blk, TMO tmout)
+{
+	MPFCB	*p_mpfcb;
+	WINFO_MPF winfo_mpf;
+	TMEVTB	tmevtb;
+	ER		ercd;
+
+	LOG_TGET_MPF_ENTER(mpfid, p_blk, tmout);
+	CHECK_DISPATCH();
+	CHECK_MPFID(mpfid);
+	CHECK_TMOUT(tmout);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_mpfcb->fblkcnt > 0) {
+		get_mpf_block(p_mpfcb, p_blk);
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_MPF);
+		wobj_make_wait_tmout((WOBJCB *) p_mpfcb, (WINFO_WOBJ *) &winfo_mpf,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_mpf.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_blk = winfo_mpf.blk;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TGET_MPF_LEAVE(ercd, *p_blk);
+	return(ercd);
+}
+
+#endif /* TOPPERS_tget_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã­ãã¯ã®è¿å´
+ */
+#ifdef TOPPERS_rel_mpf
+
+ER
+rel_mpf(ID mpfid, void *blk)
+{
+	MPFCB	*p_mpfcb;
+	SIZE	blkoffset;
+	uint_t	blkidx;
+	TCB		*p_tcb;
+	ER		ercd;
+    
+	LOG_REL_MPF_ENTER(mpfid, blk);
+	CHECK_TSKCTX_UNL();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		blkoffset = ((char *) blk) - (char *)(p_mpfcb->p_mpfinib->mpf);
+		blkidx = (uint_t)(blkoffset / p_mpfcb->p_mpfinib->blksz);
+		if (!(p_mpfcb->p_mpfinib->mpf <= blk)
+				|| !(blkoffset % p_mpfcb->p_mpfinib->blksz == 0U)
+				|| !(blkoffset / p_mpfcb->p_mpfinib->blksz < p_mpfcb->unused)
+				|| !((p_mpfcb->p_mpfinib->p_mpfmb + blkidx)->next
+															== INDEX_ALLOC)) {
+			ercd = E_PAR;
+		}
+		else if (!queue_empty(&(p_mpfcb->wait_queue))) {
+			p_tcb = (TCB *) queue_delete_next(&(p_mpfcb->wait_queue));
+			((WINFO_MPF *)(p_tcb->p_winfo))->blk = blk;
+			if (wait_complete(p_tcb)) {
+				dispatch();
+			}
+			ercd = E_OK;
+		}
+		else {
+			p_mpfcb->fblkcnt++;
+			(p_mpfcb->p_mpfinib->p_mpfmb + blkidx)->next = p_mpfcb->freelist;
+			p_mpfcb->freelist = blkidx;
+			ercd = E_OK;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REL_MPF_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rel_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ååæå
+ */
+#ifdef TOPPERS_ini_mpf
+
+ER
+ini_mpf(ID mpfid)
+{
+	MPFCB	*p_mpfcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_MPF_ENTER(mpfid);
+	CHECK_TSKCTX_UNL();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_mpfcb->wait_queue));
+		p_mpfcb->fblkcnt = p_mpfcb->p_mpfinib->blkcnt;
+		p_mpfcb->unused = 0U;
+		p_mpfcb->freelist = INDEX_NULL;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_MPF_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_mpf */
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_mpf
+
+ER
+ref_mpf(ID mpfid, T_RMPF *pk_rmpf)
+{
+	MPFCB	*p_mpfcb;
+	ER		ercd;
+    
+	LOG_REF_MPF_ENTER(mpfid, pk_rmpf);
+	CHECK_TSKCTX_UNL();
+	CHECK_MPFID(mpfid);
+	p_mpfcb = get_mpfcb(mpfid);
+
+	t_lock_cpu();
+	if (p_mpfcb->p_mpfinib->mpfatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rmpf->wtskid = wait_tskid(&(p_mpfcb->wait_queue));
+		pk_rmpf->fblkcnt = p_mpfcb->fblkcnt;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_MPF_LEAVE(ercd, pk_rmpf);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_mpf */
Index: rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mempfix.h	(revision 313)
@@ -0,0 +1,176 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½
+ */
+
+#ifndef TOPPERS_MEMPFIX_H
+#define TOPPERS_MEMPFIX_H
+
+#include "wait.h"
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã­ãã¯ç®¡çãã­ãã¯
+ *
+ *  nextãã£ã¼ã«ãã«ã¯ï¼ã¡ã¢ãªãã­ãã¯ãå²å½ã¦æ¸ã¿ã®å ´åã¯INDEX_ALLOCãï¼
+ *  æªå²å½ã¦ã®å ´åã¯æ¬¡ã®æªå²å½ã¦ãã­ãã¯ã®ã¤ã³ããã¯ã¹çªå·ãæ ¼ç´ããï¼
+ *  æå¾ã®æªå²å½ã¦ãã­ãã¯ã®å ´åã«ã¯ï¼INDEX_NULLãæ ¼ç´ããï¼
+ */
+typedef struct fixed_memoryblock_management_block {
+	uint_t		next;			/* æ¬¡ã®æªå²å½ã¦ãã­ãã¯ */
+} MPFMB;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct fixed_memorypool_initialization_block {
+	ATR			mpfatr;			/* åºå®é·ã¡ã¢ãªãã¼ã«å±æ§ */
+	uint_t		blkcnt;			/* ã¡ã¢ãªãã­ãã¯æ° */
+	uint_t		blksz;			/* ã¡ã¢ãªãã­ãã¯ã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
+	void		*mpf;			/* åºå®é·ã¡ã¢ãªãã¼ã«é åã®å
+é ­çªå° */
+	MPFMB		*p_mpfmb;		/* åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé åã®å
+é ­çªå° */
+} MPFINIB;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct fixed_memorypool_control_block {
+	QUEUE		wait_queue;		/* åºå®é·ã¡ã¢ãªãã¼ã«å¾
+ã¡ã­ã¥ã¼ */
+	const MPFINIB *p_mpfinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	uint_t		fblkcnt;		/* æªå²å½ã¦ãã­ãã¯æ° */
+	uint_t		unused;			/* æªä½¿ç¨ãã­ãã¯ã®å
+é ­ */
+	uint_t		freelist;		/* æªå²å½ã¦ãã­ãã¯ã®ãªã¹ã */
+} MPFCB;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®2ã¤ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct fixed_memorypool_waiting_information {
+	WINFO		winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	MPFCB		*p_mpfcb;		/* å¾
+ã£ã¦ããåºå®é·ã¡ã¢ãªãã¼ã«ã®ç®¡çãã­ãã¯*/
+	void		*blk;			/* ç²å¾ããã¡ã¢ãªãã­ãã¯ */
+} WINFO_MPF;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãåºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_mpfcb;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_mpfid;
+extern const ID	tmax_smpfid;
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const MPFINIB	mpfinib_table[];
+extern MPFINIB			ampfinib_table[];
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern MPFCB	mpfcb_table[];
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çãã­ãã¯ããåºå®é·ã¡ã¢ãªãã¼ã«IDãåãåºãã
+ *  ãã®ãã¯ã­
+ */
+#define	MPFID(p_mpfcb)	((ID)(((p_mpfcb) - mpfcb_table) + TMIN_MPFID))
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®åæå
+ */
+extern void	initialize_mempfix(void);
+
+/*
+ *  åºå®é·ã¡ã¢ãªãã¼ã«ãããã­ãã¯ãç²å¾
+ */
+extern void	get_mpf_block(MPFCB *p_mpfcb, void **p_blk);
+
+#endif /* TOPPERS_MEMPFIX_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/mempfix.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/mempfix.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/mempfix.trb	(revision 313)
@@ -0,0 +1,121 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: mempfix.trb 672 2016-03-05 15:33:08Z ertl-hiro $
+# 
+
+#
+#		åºå®é·ã¡ã¢ãªãã¼ã«æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class MempfixObject < KernelObject
+  def initialize()
+    super("mpf", "mempfix")
+  end
+
+  def prepare(key, params)
+    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    params[:mpf] ||= "NULL"
+    params[:mpfmb] ||= "NULL"
+
+    # mpfatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI2225ï¼½
+    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:mpfatr] & ~($TA_TPRI)) != 0
+      error_illegal_id("E_RSATR", params, :mpfatr, :mpfid)
+    end
+
+    # blkcntã0ã®å ´åï¼E_PARï¼ï¼»NGKI2229ï¼½
+    if params[:blkcnt] == 0
+      error_illegal_id("E_PAR", params, :blkcnt, :mpfid)
+    end
+
+    # blkszã0ã®å ´åï¼E_PARï¼ï¼»NGKI2230ï¼½
+    if params[:blksz] == 0
+      error_illegal_id("E_PAR", params, :blksz, :mpfid)
+    end
+
+    # åºå®é·ã¡ã¢ãªãã¼ã«é å
+    if params[:mpf] == "NULL"
+      mpfName = "_kernel_mpf_#{params[:mpfid]}"
+      $kernelCfgC.add("static MPF_T #{mpfName}" \
+				"[#{params[:blkcnt]} * COUNT_MPF_T(#{params[:blksz]})];")
+      params[:mpfinib_mpf] = mpfName
+    else
+      params[:mpfinib_mpf] = "(void *)(#{params[:mpf]})"
+    end
+
+    # mpfmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0166ï¼½
+    if params[:mpfmb] != "NULL"
+      error_illegal_id("E_NOSPT", params, :mpfmb, :mpfid)
+    end
+
+    # åºå®é·ã¡ã¢ãªãã¼ã«ç®¡çé å
+    mpfmbName = "_kernel_mpfmb_#{params[:mpfid]}"
+    $kernelCfgC.add("static MPFMB #{mpfmbName}[#{params[:blkcnt]}];")
+    params[:mpfinib_mpfmb] = mpfmbName
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:mpfatr]}), (#{params[:blkcnt]}), " \
+			"ROUND_MPF_T(#{params[:blksz]}), #{params[:mpfinib_mpf]}, " \
+			"#{params[:mpfinib_mpfmb]}")
+  end
+end
+
+#
+#  åºå®é·ã¡ã¢ãªãã¼ã«ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Fixed-sized Memorypool Functions")
+MempfixObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/pridataq.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/pridataq.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/pridataq.c	(revision 313)
@@ -0,0 +1,887 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "pridataq.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_PDQ_ENTER
+#define LOG_ACRE_PDQ_ENTER(pk_cpdq)
+#endif /* LOG_ACRE_PDQ_ENTER */
+
+#ifndef LOG_ACRE_PDQ_LEAVE
+#define LOG_ACRE_PDQ_LEAVE(ercd)
+#endif /* LOG_ACRE_PDQ_LEAVE */
+
+#ifndef LOG_DEL_PDQ_ENTER
+#define LOG_DEL_PDQ_ENTER(pdqid)
+#endif /* LOG_DEL_PDQ_ENTER */
+
+#ifndef LOG_DEL_PDQ_LEAVE
+#define LOG_DEL_PDQ_LEAVE(ercd)
+#endif /* LOG_DEL_PDQ_LEAVE */
+
+#ifndef LOG_SND_PDQ_ENTER
+#define LOG_SND_PDQ_ENTER(pdqid, data, datapri)
+#endif /* LOG_SND_PDQ_ENTER */
+
+#ifndef LOG_SND_PDQ_LEAVE
+#define LOG_SND_PDQ_LEAVE(ercd)
+#endif /* LOG_SND_PDQ_LEAVE */
+
+#ifndef LOG_PSND_PDQ_ENTER
+#define LOG_PSND_PDQ_ENTER(pdqid, data, datapri)
+#endif /* LOG_PSND_PDQ_ENTER */
+
+#ifndef LOG_PSND_PDQ_LEAVE
+#define LOG_PSND_PDQ_LEAVE(ercd)
+#endif /* LOG_PSND_PDQ_LEAVE */
+
+#ifndef LOG_IPSND_PDQ_ENTER
+#define LOG_IPSND_PDQ_ENTER(pdqid, data, datapri)
+#endif /* LOG_IPSND_PDQ_ENTER */
+
+#ifndef LOG_IPSND_PDQ_LEAVE
+#define LOG_IPSND_PDQ_LEAVE(ercd)
+#endif /* LOG_IPSND_PDQ_LEAVE */
+
+#ifndef LOG_TSND_PDQ_ENTER
+#define LOG_TSND_PDQ_ENTER(pdqid, data, datapri, tmout)
+#endif /* LOG_TSND_PDQ_ENTER */
+
+#ifndef LOG_TSND_PDQ_LEAVE
+#define LOG_TSND_PDQ_LEAVE(ercd)
+#endif /* LOG_TSND_PDQ_LEAVE */
+
+#ifndef LOG_RCV_PDQ_ENTER
+#define LOG_RCV_PDQ_ENTER(pdqid, p_data, p_datapri)
+#endif /* LOG_RCV_PDQ_ENTER */
+
+#ifndef LOG_RCV_PDQ_LEAVE
+#define LOG_RCV_PDQ_LEAVE(ercd, data, datapri)
+#endif /* LOG_RCV_PDQ_LEAVE */
+
+#ifndef LOG_PRCV_PDQ_ENTER
+#define LOG_PRCV_PDQ_ENTER(pdqid, p_data, p_datapri)
+#endif /* LOG_PRCV_PDQ_ENTER */
+
+#ifndef LOG_PRCV_PDQ_LEAVE
+#define LOG_PRCV_PDQ_LEAVE(ercd, data, datapri)
+#endif /* LOG_PRCV_PDQ_LEAVE */
+
+#ifndef LOG_TRCV_PDQ_ENTER
+#define LOG_TRCV_PDQ_ENTER(pdqid, p_data, p_datapri, tmout)
+#endif /* LOG_TRCV_PDQ_ENTER */
+
+#ifndef LOG_TRCV_PDQ_LEAVE
+#define LOG_TRCV_PDQ_LEAVE(ercd, data, datapri)
+#endif /* LOG_TRCV_PDQ_LEAVE */
+
+#ifndef LOG_INI_PDQ_ENTER
+#define LOG_INI_PDQ_ENTER(pdqid)
+#endif /* LOG_INI_PDQ_ENTER */
+
+#ifndef LOG_INI_PDQ_LEAVE
+#define LOG_INI_PDQ_LEAVE(ercd)
+#endif /* LOG_INI_PDQ_LEAVE */
+
+#ifndef LOG_REF_PDQ_ENTER
+#define LOG_REF_PDQ_ENTER(pdqid, pk_rpdq)
+#endif /* LOG_REF_PDQ_ENTER */
+
+#ifndef LOG_REF_PDQ_LEAVE
+#define LOG_REF_PDQ_LEAVE(ercd, pk_rpdq)
+#endif /* LOG_REF_PDQ_LEAVE */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®æ°
+ */
+#define tnum_pdq	((uint_t)(tmax_pdqid - TMIN_PDQID + 1))
+#define tnum_spdq	((uint_t)(tmax_spdqid - TMIN_PDQID + 1))
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼IDããåªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ãåãåºãã
+ *  ãã®ãã¯ã­
+ */
+#define INDEX_PDQ(pdqid)	((uint_t)((pdqid) - TMIN_PDQID))
+#define get_pdqcb(pdqid)	(&(pdqcb_table[INDEX_PDQ(pdqid)]))
+
+#ifdef TOPPERS_pdqini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãåªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_pdqcb;
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ */
+void
+initialize_pridataq(void)
+{
+	uint_t	i, j;
+	PDQCB	*p_pdqcb;
+	PDQINIB	*p_pdqinib;
+
+	for (i = 0; i < tnum_spdq; i++) {
+		p_pdqcb = &(pdqcb_table[i]);
+		queue_initialize(&(p_pdqcb->swait_queue));
+		p_pdqcb->p_pdqinib = &(pdqinib_table[i]);
+		queue_initialize(&(p_pdqcb->rwait_queue));
+		p_pdqcb->count = 0U;
+		p_pdqcb->p_head = NULL;
+		p_pdqcb->unused = 0U;
+		p_pdqcb->p_freelist = NULL;
+	}
+	queue_initialize(&free_pdqcb);
+	for (j = 0; i < tnum_pdq; i++, j++) {
+		p_pdqcb = &(pdqcb_table[i]);
+		p_pdqinib = &(apdqinib_table[j]);
+		p_pdqinib->pdqatr = TA_NOEXS;
+		p_pdqcb->p_pdqinib = ((const PDQINIB *) p_pdqinib);
+		queue_insert_prev(&free_pdqcb, &(p_pdqcb->swait_queue));
+	}
+}
+
+#endif /* TOPPERS_pdqini */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ */
+#ifdef TOPPERS_pdqenq
+
+void
+enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri)
+{
+	PDQMB	*p_pdqmb;
+	PDQMB	**pp_prev_next, *p_next;
+
+	if (p_pdqcb->p_freelist != NULL) {
+		p_pdqmb = p_pdqcb->p_freelist;
+		p_pdqcb->p_freelist = p_pdqmb->p_next;
+	}
+	else {
+		p_pdqmb = p_pdqcb->p_pdqinib->p_pdqmb + p_pdqcb->unused;
+		p_pdqcb->unused++;
+	}
+
+	p_pdqmb->data = data;
+	p_pdqmb->datapri = datapri;
+
+	pp_prev_next = &(p_pdqcb->p_head);
+	while ((p_next = *pp_prev_next) != NULL) {
+		if (p_next->datapri > datapri) {
+			break;
+		}
+		pp_prev_next = &(p_next->p_next);
+	}
+	p_pdqmb->p_next = p_next;
+	*pp_prev_next = p_pdqmb;
+	p_pdqcb->count++;
+}
+
+#endif /* TOPPERS_pdqenq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ */
+#ifdef TOPPERS_pdqdeq
+
+void
+dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri)
+{
+	PDQMB	*p_pdqmb;
+
+	p_pdqmb = p_pdqcb->p_head;
+	p_pdqcb->p_head = p_pdqmb->p_next;
+	p_pdqcb->count--;
+
+	*p_data = p_pdqmb->data;
+	*p_datapri = p_pdqmb->datapri;
+
+	p_pdqmb->p_next = p_pdqcb->p_freelist;
+	p_pdqcb->p_freelist = p_pdqmb;
+}
+
+#endif /* TOPPERS_pdqdeq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ */
+#ifdef TOPPERS_pdqsnd
+
+bool_t
+send_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri, bool_t *p_dspreq)
+{
+	TCB		*p_tcb;
+
+	if (!queue_empty(&(p_pdqcb->rwait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_pdqcb->rwait_queue));
+		((WINFO_PDQ *)(p_tcb->p_winfo))->data = data;
+		((WINFO_PDQ *)(p_tcb->p_winfo))->datapri = datapri;
+		*p_dspreq = wait_complete(p_tcb);
+		return(true);
+	}
+	else if (p_pdqcb->count < p_pdqcb->p_pdqinib->pdqcnt) {
+		enqueue_pridata(p_pdqcb, data, datapri);
+		*p_dspreq = false;
+		return(true);
+	}
+	else {
+		return(false);
+	}
+}
+
+#endif /* TOPPERS_pdqsnd */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ */
+#ifdef TOPPERS_pdqrcv
+
+bool_t
+receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
+									PRI *p_datapri, bool_t *p_dspreq)
+{
+	TCB		*p_tcb;
+	intptr_t data;
+	PRI		datapri;
+
+	if (p_pdqcb->count > 0U) {
+		dequeue_pridata(p_pdqcb, p_data, p_datapri);
+		if (!queue_empty(&(p_pdqcb->swait_queue))) {
+			p_tcb = (TCB *) queue_delete_next(&(p_pdqcb->swait_queue));
+			data = ((WINFO_PDQ *)(p_tcb->p_winfo))->data;
+			datapri = ((WINFO_PDQ *)(p_tcb->p_winfo))->datapri;
+			enqueue_pridata(p_pdqcb, data, datapri);
+			*p_dspreq = wait_complete(p_tcb);
+		}
+		else {
+			*p_dspreq = false;
+		}
+		return(true);
+	}
+	else if (!queue_empty(&(p_pdqcb->swait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_pdqcb->swait_queue));
+		*p_data = ((WINFO_PDQ *)(p_tcb->p_winfo))->data;
+		*p_datapri = ((WINFO_PDQ *)(p_tcb->p_winfo))->datapri;
+		*p_dspreq = wait_complete(p_tcb);
+		return(true);
+	}
+	else {
+		return(false);
+	}
+}
+
+#endif /* TOPPERS_pdqrcv */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®çæ
+ */
+#ifdef TOPPERS_acre_pdq
+
+ER_UINT
+acre_pdq(const T_CPDQ *pk_cpdq)
+{
+	PDQCB	*p_pdqcb;
+	PDQINIB	*p_pdqinib;
+	ATR		pdqatr;
+	PDQMB	*p_pdqmb;
+	ER		ercd;
+
+	LOG_ACRE_PDQ_ENTER(pk_cpdq);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_cpdq->pdqatr, TA_TPRI);
+	CHECK_DPRI(pk_cpdq->maxdpri);
+	if (pk_cpdq->pdqmb != NULL) {
+		CHECK_ALIGN_MB(pk_cpdq->pdqmb);
+	}
+	pdqatr = pk_cpdq->pdqatr;
+	p_pdqmb = pk_cpdq->pdqmb;
+
+	t_lock_cpu();
+	if (tnum_pdq == 0 || queue_empty(&free_pdqcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		if (pk_cpdq->pdqcnt != 0 && p_pdqmb == NULL) {
+			p_pdqmb = kernel_malloc(sizeof(PDQMB) * pk_cpdq->pdqcnt);
+			pdqatr |= TA_MBALLOC;
+		}
+		if (pk_cpdq->pdqcnt != 0 && p_pdqmb == NULL) {
+			ercd = E_NOMEM;
+		}
+		else {
+			p_pdqcb = ((PDQCB *) queue_delete_next(&free_pdqcb));
+			p_pdqinib = (PDQINIB *)(p_pdqcb->p_pdqinib);
+			p_pdqinib->pdqatr = pdqatr;
+			p_pdqinib->pdqcnt = pk_cpdq->pdqcnt;
+			p_pdqinib->maxdpri = pk_cpdq->maxdpri;
+			p_pdqinib->p_pdqmb = p_pdqmb;
+
+			queue_initialize(&(p_pdqcb->swait_queue));
+			queue_initialize(&(p_pdqcb->rwait_queue));
+			p_pdqcb->count = 0U;
+			p_pdqcb->p_head = NULL;
+			p_pdqcb->unused = 0U;
+			p_pdqcb->p_freelist = NULL;
+			ercd = PDQID(p_pdqcb);
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®åé¤
+ */
+#ifdef TOPPERS_del_pdq
+
+ER
+del_pdq(ID pdqid)
+{
+	PDQCB	*p_pdqcb;
+	PDQINIB	*p_pdqinib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_PDQ_ENTER(pdqid);
+	CHECK_TSKCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (PDQID(p_pdqcb) > tmax_spdqid) {
+		dspreq = init_wait_queue(&(p_pdqcb->swait_queue));
+		if (init_wait_queue(&(p_pdqcb->rwait_queue))) {
+			dspreq = true;
+		}
+		p_pdqinib = (PDQINIB *)(p_pdqcb->p_pdqinib);
+		if ((p_pdqinib->pdqatr & TA_MBALLOC) != 0U) {
+			kernel_free(p_pdqinib->p_pdqmb);
+		}
+		p_pdqinib->pdqatr = TA_NOEXS;
+		queue_insert_prev(&free_pdqcb, &(p_pdqcb->swait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡
+ */
+#ifdef TOPPERS_snd_pdq
+
+ER
+snd_pdq(ID pdqid, intptr_t data, PRI datapri)
+{
+	PDQCB	*p_pdqcb;
+	WINFO_PDQ winfo_pdq;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_SND_PDQ_ENTER(pdqid, data, datapri);
+	CHECK_DISPATCH();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+	CHECK_PAR(TMIN_DPRI <= datapri);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(datapri <= p_pdqcb->p_pdqinib->maxdpri)) {
+		ercd = E_PAR;
+	}
+	else if (send_pridata(p_pdqcb, data, datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		winfo_pdq.data = data;
+		winfo_pdq.datapri = datapri;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SPDQ);
+		wobj_make_wait((WOBJCB *) p_pdqcb, (WINFO_WOBJ *) &winfo_pdq);
+		dispatch();
+		ercd = winfo_pdq.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SND_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_snd_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_psnd_pdq
+
+ER
+psnd_pdq(ID pdqid, intptr_t data, PRI datapri)
+{
+	PDQCB	*p_pdqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_PSND_PDQ_ENTER(pdqid, data, datapri);
+	CHECK_TSKCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+	CHECK_PAR(TMIN_DPRI <= datapri);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(datapri <= p_pdqcb->p_pdqinib->maxdpri)) {
+		ercd = E_PAR;
+	}
+	else if (send_pridata(p_pdqcb, data, datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PSND_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_psnd_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ãã¼ãªã³ã°ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_ipsnd_pdq
+
+ER
+ipsnd_pdq(ID pdqid, intptr_t data, PRI datapri)
+{
+	PDQCB	*p_pdqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_IPSND_PDQ_ENTER(pdqid, data, datapri);
+	CHECK_INTCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+	CHECK_PAR(TMIN_DPRI <= datapri);
+
+	i_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(datapri <= p_pdqcb->p_pdqinib->maxdpri)) {
+		ercd = E_PAR;
+	}
+	else if (send_pridata(p_pdqcb, data, datapri, &dspreq)) {
+		if (dspreq) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IPSND_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ipsnd_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_tsnd_pdq
+
+ER
+tsnd_pdq(ID pdqid, intptr_t data, PRI datapri, TMO tmout)
+{
+	PDQCB	*p_pdqcb;
+	WINFO_PDQ winfo_pdq;
+	TMEVTB	tmevtb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_TSND_PDQ_ENTER(pdqid, data, datapri, tmout);
+	CHECK_DISPATCH();
+	CHECK_PDQID(pdqid);
+	CHECK_TMOUT(tmout);
+	p_pdqcb = get_pdqcb(pdqid);
+	CHECK_PAR(TMIN_DPRI <= datapri);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!(datapri <= p_pdqcb->p_pdqinib->maxdpri)) {
+		ercd = E_PAR;
+	}
+	else if (send_pridata(p_pdqcb, data, datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		winfo_pdq.data = data;
+		winfo_pdq.datapri = datapri;
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SPDQ);
+		wobj_make_wait_tmout((WOBJCB *) p_pdqcb, (WINFO_WOBJ *) &winfo_pdq,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_pdq.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TSND_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_tsnd_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡
+ */
+#ifdef TOPPERS_rcv_pdq
+
+ER
+rcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
+{
+	PDQCB	*p_pdqcb;
+	WINFO_PDQ winfo_pdq;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_RCV_PDQ_ENTER(pdqid, p_data, p_datapri);
+	CHECK_DISPATCH();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_pridata(p_pdqcb, p_data, p_datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_RPDQ);
+		make_wait(&(winfo_pdq.winfo));
+		queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue));
+		winfo_pdq.p_pdqcb = p_pdqcb;
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo_pdq.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_data = winfo_pdq.data;
+			*p_datapri = winfo_pdq.datapri;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_RCV_PDQ_LEAVE(ercd, *p_data, *p_datapri);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rcv_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_prcv_pdq
+
+ER
+prcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri)
+{
+	PDQCB	*p_pdqcb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_PRCV_PDQ_ENTER(pdqid, p_data, p_datapri);
+	CHECK_TSKCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_pridata(p_pdqcb, p_data, p_datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_PRCV_PDQ_LEAVE(ercd, *p_data, *p_datapri);
+	return(ercd);
+}
+
+#endif /* TOPPERS_prcv_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_trcv_pdq
+
+ER
+trcv_pdq(ID pdqid, intptr_t *p_data, PRI *p_datapri, TMO tmout)
+{
+	PDQCB	*p_pdqcb;
+	WINFO_PDQ winfo_pdq;
+	TMEVTB	tmevtb;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_TRCV_PDQ_ENTER(pdqid, p_data, p_datapri, tmout);
+	CHECK_DISPATCH();
+	CHECK_PDQID(pdqid);
+	CHECK_TMOUT(tmout);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (receive_pridata(p_pdqcb, p_data, p_datapri, &dspreq)) {
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_RPDQ);
+		make_wait_tmout(&(winfo_pdq.winfo), &tmevtb, tmout);
+		queue_insert_prev(&(p_pdqcb->rwait_queue), &(p_runtsk->task_queue));
+		winfo_pdq.p_pdqcb = p_pdqcb;
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo_pdq.winfo.wercd;
+		if (ercd == E_OK) {
+			*p_data = winfo_pdq.data;
+			*p_datapri = winfo_pdq.datapri;
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TRCV_PDQ_LEAVE(ercd, *p_data, *p_datapri);
+	return(ercd);
+}
+
+#endif /* TOPPERS_trcv_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®ååæå
+ */
+#ifdef TOPPERS_ini_pdq
+
+ER
+ini_pdq(ID pdqid)
+{
+	PDQCB	*p_pdqcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_PDQ_ENTER(pdqid);
+	CHECK_TSKCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_pdqcb->swait_queue));
+		if (init_wait_queue(&(p_pdqcb->rwait_queue))) {
+			dspreq = true;
+		}
+		p_pdqcb->count = 0U;
+		p_pdqcb->p_head = NULL;
+		p_pdqcb->unused = 0U;
+		p_pdqcb->p_freelist = NULL;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_PDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_pdq */
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_pdq
+
+ER
+ref_pdq(ID pdqid, T_RPDQ *pk_rpdq)
+{
+	PDQCB	*p_pdqcb;
+	ER		ercd;
+    
+	LOG_REF_PDQ_ENTER(pdqid, pk_rpdq);
+	CHECK_TSKCTX_UNL();
+	CHECK_PDQID(pdqid);
+	p_pdqcb = get_pdqcb(pdqid);
+
+	t_lock_cpu();
+	if (p_pdqcb->p_pdqinib->pdqatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rpdq->stskid = wait_tskid(&(p_pdqcb->swait_queue));
+		pk_rpdq->rtskid = wait_tskid(&(p_pdqcb->rwait_queue));
+		pk_rpdq->spdqcnt = p_pdqcb->count;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_PDQ_LEAVE(ercd, pk_rpdq);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_pdq */
Index: rubycfg_asp/trunk/asp_dcre/kernel/pridataq.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/pridataq.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/pridataq.h	(revision 313)
@@ -0,0 +1,229 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½
+ */
+
+#ifndef TOPPERS_PRIDATAQ_H
+#define TOPPERS_PRIDATAQ_H
+
+#include "wait.h"
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ç®¡çãã­ãã¯
+ */
+typedef struct pridata_management_block PDQMB;
+
+struct pridata_management_block {
+	PDQMB		*p_next;		/* æ¬¡ã®ãã¼ã¿ */
+	intptr_t	data;			/* ãã¼ã¿æ¬ä½ */
+	PRI			datapri;		/* ãã¼ã¿åªå
+åº¦ */
+};
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct pridataq_initialization_block {
+	ATR			pdqatr;			/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å±æ§ */
+	uint_t		pdqcnt;			/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®å®¹é */
+	PRI			maxdpri;		/* ãã¼ã¿åªå
+åº¦ã®æå¤§å¤ */
+	PDQMB		*p_pdqmb;		/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã®å
+é ­çªå° */
+} PDQINIB;
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct pridataq_control_block {
+	QUEUE		swait_queue;	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼éä¿¡å¾
+ã¡ã­ã¥ã¼ */
+	const PDQINIB *p_pdqinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	QUEUE		rwait_queue;	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼åä¿¡å¾
+ã¡ã­ã¥ã¼ */
+	uint_t		count;			/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ä¸­ã®ãã¼ã¿ã®æ° */
+	PDQMB		*p_head;		/* æåã®ãã¼ã¿ */
+	uint_t		unused;			/* æªä½¿ç¨ãã¼ã¿ç®¡çãã­ãã¯ã®å
+é ­ */
+	PDQMB		*p_freelist;	/* æªå²å½ã¦ãã¼ã¿ç®¡çãã­ãã¯ã®ãªã¹ã */
+} PDQCB;
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®2ã¤ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ã¨åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ã§ï¼
+ *  åãå¾
+ã¡æ
+å ±ãã­ãã¯ãä½¿ãï¼
+ */
+typedef struct pridataq_waiting_information {
+	WINFO		winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	PDQCB		*p_pdqcb;		/* å¾
+ã£ã¦ããåªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã®ç®¡çãã­ãã¯*/
+	intptr_t	data;			/* éåä¿¡ãã¼ã¿ */
+	PRI			datapri;		/* ãã¼ã¿åªå
+åº¦ */
+} WINFO_PDQ;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãåªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_pdqcb;
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_pdqid;
+extern const ID	tmax_spdqid;
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const PDQINIB	pdqinib_table[];
+extern PDQINIB			apdqinib_table[];
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern PDQCB	pdqcb_table[];
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çãã­ãã¯ããåªå
+åº¦ãã¼ã¿ã­ã¥ã¼IDãåãåºãã
+ *  ãã®ãã¯ã­
+ */
+#define	PDQID(p_pdqcb)	((ID)(((p_pdqcb) - pdqcb_table) + TMIN_PDQID))
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®åæå
+ */
+extern void	initialize_pridataq(void);
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åã¸ã®ãã¼ã¿ã®æ ¼ç´
+ */
+extern void	enqueue_pridata(PDQCB *p_pdqcb, intptr_t data, PRI datapri);
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé åããã®ãã¼ã¿ã®ååºã
+ */
+extern void	dequeue_pridata(PDQCB *p_pdqcb, intptr_t *p_data, PRI *p_datapri);
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®ãã¼ã¿éä¿¡
+ */
+extern bool_t	send_pridata(PDQCB *p_pdqcb, intptr_t data,
+											PRI datapri, bool_t *p_dspreq);
+
+/*
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®ãã¼ã¿åä¿¡
+ */
+extern bool_t	receive_pridata(PDQCB *p_pdqcb, intptr_t *p_data,
+											PRI *p_datapri, bool_t *p_dspreq);
+
+#endif /* TOPPERS_PRIDATAQ_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/pridataq.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/pridataq.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/pridataq.trb	(revision 313)
@@ -0,0 +1,112 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: pridataq.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+# 
+
+#
+#		åªå
+åº¦ãã¼ã¿ã­ã¥ã¼æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class PridataqObject < KernelObject
+  def initialize()
+    super("pdq", "pridataq")
+  end
+
+  def prepare(key, params)
+    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    params[:pdqmb] ||= "NULL"
+
+    # pdqatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1804ï¼½
+    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:pdqatr] & ~($TA_TPRI)) != 0
+      error_illegal_id("E_RSATR", params, :pdqatr, :pdqid)
+    end
+
+    # (TMIN_DPRI <= maxdpri && maxdpri <= TMAX_DPRI)ã§ãªãå ´åï¼E_PARï¼
+    # ï¼»NGKI1819ï¼½
+    if !($TMIN_DPRI <= params[:maxdpri] && params[:maxdpri] <= $TMAX_DPRI)
+      error_illegal_id("E_PAR", params, :maxdpri, :pdqid)
+    end
+
+    # pdqmbãNULLã§ãªãå ´åï¼E_NOSPTï¼ï¼»ASPS0142ï¼½
+    if params[:pdqmb] != "NULL"
+      error_illegal_id("E_NOSPT", params, :pdqmb, :pdqid)
+    end
+
+    # åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ç®¡çé å
+    if params[:pdqcnt] > 0
+      pdqmbName = "_kernel_pdqmb_#{params[:pdqid]}"
+      $kernelCfgC.add("static PDQMB #{pdqmbName}[#{params[:pdqcnt]}];")
+      params[:pdqinib_pdqmb] = pdqmbName
+    else
+      params[:pdqinib_pdqmb] = "NULL"
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:pdqatr]}), (#{params[:pdqcnt]}), " \
+				"(#{params[:maxdpri]}), #{params[:pdqinib_pdqmb]}")
+  end
+end
+
+#
+#  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Priority Dataqueue Functions")
+PridataqObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/semaphore.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/semaphore.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/semaphore.c	(revision 313)
@@ -0,0 +1,558 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã»ããã©æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "semaphore.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_SEM_ENTER
+#define LOG_ACRE_SEM_ENTER(pk_csem)
+#endif /* LOG_ACRE_SEM_ENTER */
+
+#ifndef LOG_ACRE_SEM_LEAVE
+#define LOG_ACRE_SEM_LEAVE(ercd)
+#endif /* LOG_ACRE_SEM_LEAVE */
+
+#ifndef LOG_DEL_SEM_ENTER
+#define LOG_DEL_SEM_ENTER(semid)
+#endif /* LOG_DEL_SEM_ENTER */
+
+#ifndef LOG_DEL_SEM_LEAVE
+#define LOG_DEL_SEM_LEAVE(ercd)
+#endif /* LOG_DEL_SEM_LEAVE */
+
+#ifndef LOG_SIG_SEM_ENTER
+#define LOG_SIG_SEM_ENTER(semid)
+#endif /* LOG_SIG_SEM_ENTER */
+
+#ifndef LOG_SIG_SEM_LEAVE
+#define LOG_SIG_SEM_LEAVE(ercd)
+#endif /* LOG_SIG_SEM_LEAVE */
+
+#ifndef LOG_ISIG_SEM_ENTER
+#define LOG_ISIG_SEM_ENTER(semid)
+#endif /* LOG_ISIG_SEM_ENTER */
+
+#ifndef LOG_ISIG_SEM_LEAVE
+#define LOG_ISIG_SEM_LEAVE(ercd)
+#endif /* LOG_ISIG_SEM_LEAVE */
+
+#ifndef LOG_WAI_SEM_ENTER
+#define LOG_WAI_SEM_ENTER(semid)
+#endif /* LOG_WAI_SEM_ENTER */
+
+#ifndef LOG_WAI_SEM_LEAVE
+#define LOG_WAI_SEM_LEAVE(ercd)
+#endif /* LOG_WAI_SEM_LEAVE */
+
+#ifndef LOG_POL_SEM_ENTER
+#define LOG_POL_SEM_ENTER(semid)
+#endif /* LOG_POL_SEM_ENTER */
+
+#ifndef LOG_POL_SEM_LEAVE
+#define LOG_POL_SEM_LEAVE(ercd)
+#endif /* LOG_POL_SEM_LEAVE */
+
+#ifndef LOG_TWAI_SEM_ENTER
+#define LOG_TWAI_SEM_ENTER(semid, tmout)
+#endif /* LOG_TWAI_SEM_ENTER */
+
+#ifndef LOG_TWAI_SEM_LEAVE
+#define LOG_TWAI_SEM_LEAVE(ercd)
+#endif /* LOG_TWAI_SEM_LEAVE */
+
+#ifndef LOG_INI_SEM_ENTER
+#define LOG_INI_SEM_ENTER(semid)
+#endif /* LOG_INI_SEM_ENTER */
+
+#ifndef LOG_INI_SEM_LEAVE
+#define LOG_INI_SEM_LEAVE(ercd)
+#endif /* LOG_INI_SEM_LEAVE */
+
+#ifndef LOG_REF_SEM_ENTER
+#define LOG_REF_SEM_ENTER(semid, pk_rsem)
+#endif /* LOG_REF_SEM_ENTER */
+
+#ifndef LOG_REF_SEM_LEAVE
+#define LOG_REF_SEM_LEAVE(ercd, pk_rsem)
+#endif /* LOG_REF_SEM_LEAVE */
+
+/*
+ *  ã»ããã©ã®æ°
+ */
+#define tnum_sem	((uint_t)(tmax_semid - TMIN_SEMID + 1))
+#define tnum_ssem	((uint_t)(tmax_ssemid - TMIN_SEMID + 1))
+
+/*
+ *  ã»ããã©IDããã»ããã©ç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_SEM(semid)	((uint_t)((semid) - TMIN_SEMID))
+#define get_semcb(semid)	(&(semcb_table[INDEX_SEM(semid)]))
+
+#ifdef TOPPERS_semini
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã»ããã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+QUEUE	free_semcb;
+
+/* 
+ *  ã»ããã©æ©è½ã®åæå
+ */
+void
+initialize_semaphore(void)
+{
+	uint_t	i, j;
+	SEMCB	*p_semcb;
+	SEMINIB	*p_seminib;
+
+	for (i = 0; i < tnum_ssem; i++) {
+		p_semcb = &(semcb_table[i]);
+		queue_initialize(&(p_semcb->wait_queue));
+		p_semcb->p_seminib = &(seminib_table[i]);
+		p_semcb->semcnt = p_semcb->p_seminib->isemcnt;
+	}
+	queue_initialize(&free_semcb);
+	for (j = 0; i < tnum_sem; i++, j++) {
+		p_semcb = &(semcb_table[i]);
+		p_seminib = &(aseminib_table[j]);
+		p_seminib->sematr = TA_NOEXS;
+		p_semcb->p_seminib = ((const SEMINIB *) p_seminib);
+		queue_insert_prev(&free_semcb, &(p_semcb->wait_queue));
+	}
+}
+
+#endif /* TOPPERS_semini */
+
+/*
+ *  ã»ããã©ã®çæ
+ */
+#ifdef TOPPERS_acre_sem
+
+ER_UINT
+acre_sem(const T_CSEM *pk_csem)
+{
+	SEMCB	*p_semcb;
+	SEMINIB	*p_seminib;
+	ER		ercd;
+
+	LOG_ACRE_SEM_ENTER(pk_csem);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_csem->sematr, TA_TPRI);
+	CHECK_PAR(0 <= pk_csem->isemcnt && pk_csem->isemcnt <= pk_csem->maxsem);
+	CHECK_PAR(1 <= pk_csem->maxsem && pk_csem->maxsem <= TMAX_MAXSEM);
+
+	t_lock_cpu();
+	if (tnum_sem == 0 || queue_empty(&free_semcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		p_semcb = ((SEMCB *) queue_delete_next(&free_semcb));
+		p_seminib = (SEMINIB *)(p_semcb->p_seminib);
+		p_seminib->sematr = pk_csem->sematr;
+		p_seminib->isemcnt = pk_csem->isemcnt;
+		p_seminib->maxsem = pk_csem->maxsem;
+
+		queue_initialize(&(p_semcb->wait_queue));
+		p_semcb->semcnt = p_semcb->p_seminib->isemcnt;
+		ercd = SEMID(p_semcb);
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_sem */
+
+/*
+ *  ã»ããã©ã®åé¤
+ */
+#ifdef TOPPERS_del_sem
+
+ER
+del_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	SEMINIB	*p_seminib;
+	bool_t	dspreq;
+	ER		ercd;
+
+	LOG_DEL_SEM_ENTER(semid);
+	CHECK_TSKCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (SEMID(p_semcb) > tmax_ssemid) {
+		dspreq = init_wait_queue(&(p_semcb->wait_queue));
+		p_seminib = (SEMINIB *)(p_semcb->p_seminib);
+		p_seminib->sematr = TA_NOEXS;
+		queue_insert_prev(&free_semcb, &(p_semcb->wait_queue));
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_sem */
+
+/*
+ *  ã»ããã©è³æºã®è¿å´
+ */
+#ifdef TOPPERS_sig_sem
+
+ER
+sig_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	TCB		*p_tcb;
+	ER		ercd;
+    
+	LOG_SIG_SEM_ENTER(semid);
+	CHECK_TSKCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!queue_empty(&(p_semcb->wait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_semcb->wait_queue));
+		if (wait_complete(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (p_semcb->semcnt < p_semcb->p_seminib->maxsem) {
+		p_semcb->semcnt += 1;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SIG_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_sig_sem */
+
+/*
+ *  ã»ããã©è³æºã®è¿å´ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_isig_sem
+
+ER
+isig_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	TCB		*p_tcb;
+	ER		ercd;
+    
+	LOG_ISIG_SEM_ENTER(semid);
+	CHECK_INTCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	i_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!queue_empty(&(p_semcb->wait_queue))) {
+		p_tcb = (TCB *) queue_delete_next(&(p_semcb->wait_queue));
+		if (wait_complete(p_tcb)) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	else if (p_semcb->semcnt < p_semcb->p_seminib->maxsem) {
+		p_semcb->semcnt += 1;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_ISIG_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_isig_sem */
+
+/*
+ *  ã»ããã©è³æºã®ç²å¾
+ */
+#ifdef TOPPERS_wai_sem
+
+ER
+wai_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	WINFO_SEM winfo_sem;
+	ER		ercd;
+
+	LOG_WAI_SEM_ENTER(semid);
+	CHECK_DISPATCH();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_semcb->semcnt >= 1) {
+		p_semcb->semcnt -= 1;
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SEM);
+		wobj_make_wait((WOBJCB *) p_semcb, (WINFO_WOBJ *) &winfo_sem);
+		dispatch();
+		ercd = winfo_sem.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_WAI_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_wai_sem */
+
+/*
+ *  ã»ããã©è³æºã®ç²å¾ï¼ãã¼ãªã³ã°ï¼
+ */
+#ifdef TOPPERS_pol_sem
+
+ER
+pol_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	ER		ercd;
+
+	LOG_POL_SEM_ENTER(semid);
+	CHECK_TSKCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_semcb->semcnt >= 1) {
+		p_semcb->semcnt -= 1;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_TMOUT;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_POL_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_pol_sem */
+
+/*
+ *  ã»ããã©è³æºã®ç²å¾ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_twai_sem
+
+ER
+twai_sem(ID semid, TMO tmout)
+{
+	SEMCB	*p_semcb;
+	WINFO_SEM winfo_sem;
+	TMEVTB	tmevtb;
+	ER		ercd;
+
+	LOG_TWAI_SEM_ENTER(semid, tmout);
+	CHECK_DISPATCH();
+	CHECK_SEMID(semid);
+	CHECK_TMOUT(tmout);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (p_semcb->semcnt >= 1) {
+		p_semcb->semcnt -= 1;
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SEM);
+		wobj_make_wait_tmout((WOBJCB *) p_semcb, (WINFO_WOBJ *) &winfo_sem,
+														&tmevtb, tmout);
+		dispatch();
+		ercd = winfo_sem.winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TWAI_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_twai_sem */
+
+/*
+ *  ã»ããã©ã®ååæå
+ */
+#ifdef TOPPERS_ini_sem
+
+ER
+ini_sem(ID semid)
+{
+	SEMCB	*p_semcb;
+	bool_t	dspreq;
+	ER		ercd;
+    
+	LOG_INI_SEM_ENTER(semid);
+	CHECK_TSKCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		dspreq = init_wait_queue(&(p_semcb->wait_queue));
+		p_semcb->semcnt = p_semcb->p_seminib->isemcnt;
+		if (dspreq) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_INI_SEM_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ini_sem */
+
+/*
+ *  ã»ããã©ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_sem
+
+ER
+ref_sem(ID semid, T_RSEM *pk_rsem)
+{
+	SEMCB	*p_semcb;
+	ER		ercd;
+    
+	LOG_REF_SEM_ENTER(semid, pk_rsem);
+	CHECK_TSKCTX_UNL();
+	CHECK_SEMID(semid);
+	p_semcb = get_semcb(semid);
+
+	t_lock_cpu();
+	if (p_semcb->p_seminib->sematr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		pk_rsem->wtskid = wait_tskid(&(p_semcb->wait_queue));
+		pk_rsem->semcnt = p_semcb->semcnt;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_SEM_LEAVE(ercd, pk_rsem);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_sem */
Index: rubycfg_asp/trunk/asp_dcre/kernel/semaphore.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/semaphore.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/semaphore.h	(revision 313)
@@ -0,0 +1,151 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã»ããã©æ©è½
+ */
+
+#ifndef TOPPERS_SEMAPHORE_H
+#define TOPPERS_SEMAPHORE_H
+
+#include "wait.h"
+
+/*
+ *  ã»ããã©åæåãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WOBJINIBï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  æåã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct semaphore_initialization_block {
+	ATR			sematr;			/* ã»ããã©å±æ§ */
+	uint_t		isemcnt;		/* ã»ããã©ã®è³æºæ°ã®åæå¤ */
+	uint_t		maxsem;			/* ã»ããã©ã®æå¤§è³æºæ° */
+} SEMINIB;
+
+/*
+ *  ã»ããã©ç®¡çãã­ãã¯
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼
+ *  ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼æåã®2ã¤ã®
+ *  ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct semaphore_control_block {
+	QUEUE		wait_queue;		/* ã»ããã©å¾
+ã¡ã­ã¥ã¼ */
+	const SEMINIB *p_seminib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	uint_t		semcnt;			/* ã»ããã©ç¾å¨ã«ã¦ã³ãå¤ */
+} SEMCB;
+
+/*
+ *  ã»ããã©å¾
+ã¡æ
+å ±ãã­ãã¯ã®å®ç¾©
+ *
+ *  ãã®æ§é ä½ã¯ï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *  ï¼WINFO_WOBJï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ï¼
+ *  ãã¹ã¦ã®ãã£ã¼ã«ããå
+±éã«ãªã£ã¦ããï¼
+ */
+typedef struct semaphore_waiting_information {
+	WINFO	winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	SEMCB	*p_semcb;		/* å¾
+ã£ã¦ããã»ããã©ã®ç®¡çãã­ãã¯ */
+} WINFO_SEM;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãã»ããã©ç®¡çãã­ãã¯ã®ãªã¹ã
+ */
+extern QUEUE	free_semcb;
+
+/*
+ *  ã»ããã©IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_semid;
+extern const ID	tmax_ssemid;
+
+/*
+ *  ã»ããã©åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const SEMINIB	seminib_table[];
+extern SEMINIB			aseminib_table[];
+
+/*
+ *  ã»ããã©ç®¡çãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern SEMCB	semcb_table[];
+
+/*
+ *  ã»ããã©ç®¡çãã­ãã¯ããã»ããã©IDãåãåºãããã®ãã¯ã­
+ */
+#define	SEMID(p_semcb)	((ID)(((p_semcb) - semcb_table) + TMIN_SEMID))
+
+/*
+ *  ã»ããã©æ©è½ã®åæå
+ */
+extern void	initialize_semaphore(void);
+
+#endif /* TOPPERS_SEMAPHORE_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/semaphore.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/semaphore.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/semaphore.trb	(revision 313)
@@ -0,0 +1,95 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: semaphore.trb 588 2016-02-05 12:54:58Z ertl-hiro $
+# 
+
+#
+#		ã»ããã©æ©è½ã®çæã¹ã¯ãªãã
+#
+
+class SemaphoreObject < KernelObject
+  def initialize()
+    super("sem", "semaphore")
+  end
+
+  def prepare(key, params)
+    # sematrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1456ï¼½
+    #ï¼TA_TPRIä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:sematr] & ~($TA_TPRI)) != 0
+      error_illegal_id("E_RSATR", params, :sematr, :semid)
+    end
+
+    # (1 <= maxsem && maxsem <= TMAX_MAXSEM)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI1468ï¼½
+    if !(1 <= params[:maxsem] && params[:maxsem] <= $TMAX_MAXSEM)
+      error_illegal_id("E_PAR", params, :maxsem, :semid)
+    end
+
+    # (0 <= isemcnt && isemcnt <= maxsem)ã§ãªãå ´åï¼E_PARï¼ï¼»NGKI1466ï¼½
+    if !(0 <= params[:isemcnt] && params[:isemcnt] <= params[:maxsem])
+      error_wrong_id("E_PAR", params, :isemcnt, :semid, "too large")
+    end
+  end
+
+  def generateInib(key, params)
+    return("(#{params[:sematr]}), (#{params[:isemcnt]}), (#{params[:maxsem]})")
+  end
+end
+
+#
+#  ã»ããã©ã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Semaphore Functions")
+SemaphoreObject.new.generate()
Index: rubycfg_asp/trunk/asp_dcre/kernel/startup.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/startup.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/startup.c	(revision 313)
@@ -0,0 +1,231 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«ã®åæåã¨çµäºå¦ç
+ */
+
+#include "kernel_impl.h"
+#include "time_event.h"
+#include <sil.h>
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_KER_ENTER
+#define LOG_KER_ENTER()
+#endif /* LOG_KER_ENTER */
+
+#ifndef LOG_KER_LEAVE
+#define LOG_KER_LEAVE()
+#endif /* LOG_KER_LEAVE */
+
+#ifndef LOG_EXT_KER_ENTER
+#define LOG_EXT_KER_ENTER()
+#endif /* LOG_EXT_KER_ENTER */
+
+#ifndef LOG_EXT_KER_LEAVE
+#define LOG_EXT_KER_LEAVE(ercd)
+#endif /* LOG_EXT_KER_LEAVE */
+
+#ifdef TOPPERS_sta_ker
+
+/*
+ *  ã«ã¼ãã«åä½ç¶æ
+ãã©ã°
+ *
+ *  ã¹ã¿ã¼ãã¢ããã«ã¼ãã³ã§ï¼falseï¼ï¼0ï¼ã«åæåããããã¨ãæå¾
+ãã¦
+ *  ããï¼
+ */
+bool_t	kerflg = false;
+
+/*
+ *  ã«ã¼ãã«ã®èµ·å
+ */
+void
+sta_ker(void)
+{
+	/*
+	 *  ã¿ã¼ã²ããä¾å­ã®åæå
+	 */
+	target_initialize();
+
+	/*
+	 *  åã¢ã¸ã¥ã¼ã«ã®åæå
+	 *
+	 *  ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«ã¯ä»ã®ã¢ã¸ã¥ã¼ã«ããå
+ã«åæå
+	 *  ããå¿
+è¦ãããï¼
+	 */
+	initialize_kmm();
+	initialize_tmevt();
+	initialize_object();
+
+	/*
+	 *  åæåã«ã¼ãã³ã®å®è¡
+	 */ 
+	call_inirtn();
+
+	/*
+	 *  ã«ã¼ãã«åä½ã®éå§
+	 */
+	kerflg = true;
+	LOG_KER_ENTER();
+	start_dispatch();
+	assert(0);
+}
+
+#endif /* TOPPERS_sta_ker */
+
+/*
+ *  ã«ã¼ãã«ã®çµäº
+ */
+#ifdef TOPPERS_ext_ker
+
+ER
+ext_ker(void)
+{
+	SIL_PRE_LOC;
+
+	LOG_EXT_KER_ENTER();
+
+	/*
+	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
+ã«ç§»è¡
+	 */
+	SIL_LOC_INT();
+
+	/*
+	 *  ã«ã¼ãã«åä½ã®çµäº
+	 */
+	LOG_KER_LEAVE();
+	kerflg = false;
+
+	/*
+	 *  ã«ã¼ãã«ã®çµäºå¦çã®å¼åºã
+	 *
+	 *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãã«åãæãã¦ï¼exit_kernelãå¼ã³åºãï¼
+	 */
+	call_exit_kernel();
+
+	/*
+	 *  ã³ã³ãã¤ã©ã®è­¦åå¯¾ç­ï¼ããã¸æ¥ããã¨ã¯ãªãã¯ãï¼
+	 */
+	SIL_UNL_INT();
+	LOG_EXT_KER_LEAVE(E_SYS);
+	return(E_SYS);
+}
+
+/*
+ *  ã«ã¼ãã«ã®çµäºå¦ç
+ */
+void
+exit_kernel(void)
+{
+	/*
+	 *  çµäºå¦çã«ã¼ãã³ã®å®è¡
+	 */
+	call_terrtn();
+
+	/*
+	 *  ã¿ã¼ã²ããä¾å­ã®çµäºå¦ç
+	 */
+	target_exit();
+	assert(0);
+}
+
+#endif /* TOPPERS_ext_ker */
+
+/*
+ *  ã«ã¼ãã«ã®å²ãä»ããã¡ã¢ãªé åã®ç®¡ç
+ *
+ *  ã¡ã¢ãªé åãå
+é ­ããé ã«å²ãå½ã¦ï¼è§£æ¾ãããã¡ã¢ãªé åãåå©ç¨ããª
+ *  ãã¡ã¢ãªç®¡çã¢ã¸ã¥ã¼ã«ï¼
+ */
+#ifdef TOPPERS_kermem
+#ifndef OMIT_KMM_ALLOCONLY
+
+static void	*kmm_brk;
+
+void
+initialize_kmm(void)
+{
+	kmm_brk = ((char *) kmm) + kmmsz;
+}
+
+void *
+kernel_malloc(SIZE size)
+{
+	if (((char *) kmm_brk) - ((char *) kmm) >= size) {
+		kmm_brk = ((char *) kmm_brk) - size;
+		return(kmm_brk);
+	}
+	else {
+		return(NULL);
+	}
+}
+
+void
+kernel_free(void *ptr)
+{
+}
+
+#endif /* OMIT_KMM_ALLOCONLY */
+#endif /* TOPPERS_kermem */
Index: rubycfg_asp/trunk/asp_dcre/kernel/sys_manage.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/sys_manage.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/sys_manage.c	(revision 313)
@@ -0,0 +1,576 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ç¶æ
+ç®¡çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ROT_RDQ_ENTER
+#define LOG_ROT_RDQ_ENTER(tskpri)
+#endif /* LOG_ROT_RDQ_ENTER */
+
+#ifndef LOG_ROT_RDQ_LEAVE
+#define LOG_ROT_RDQ_LEAVE(ercd)
+#endif /* LOG_ROT_RDQ_LEAVE */
+
+#ifndef LOG_IROT_RDQ_ENTER
+#define LOG_IROT_RDQ_ENTER(tskpri)
+#endif /* LOG_IROT_RDQ_ENTER */
+
+#ifndef LOG_IROT_RDQ_LEAVE
+#define LOG_IROT_RDQ_LEAVE(ercd)
+#endif /* LOG_IROT_RDQ_LEAVE */
+
+#ifndef LOG_GET_TID_ENTER
+#define LOG_GET_TID_ENTER(p_tskid)
+#endif /* LOG_GET_TID_ENTER */
+
+#ifndef LOG_GET_TID_LEAVE
+#define LOG_GET_TID_LEAVE(ercd, tskid)
+#endif /* LOG_GET_TID_LEAVE */
+
+#ifndef LOG_IGET_TID_ENTER
+#define LOG_IGET_TID_ENTER(p_tskid)
+#endif /* LOG_IGET_TID_ENTER */
+
+#ifndef LOG_IGET_TID_LEAVE
+#define LOG_IGET_TID_LEAVE(ercd, tskid)
+#endif /* LOG_IGET_TID_LEAVE */
+
+#ifndef LOG_LOC_CPU_ENTER
+#define LOG_LOC_CPU_ENTER()
+#endif /* LOG_LOC_CPU_ENTER */
+
+#ifndef LOG_LOC_CPU_LEAVE
+#define LOG_LOC_CPU_LEAVE(ercd)
+#endif /* LOG_LOC_CPU_LEAVE */
+
+#ifndef LOG_ILOC_CPU_ENTER
+#define LOG_ILOC_CPU_ENTER()
+#endif /* LOG_ILOC_CPU_ENTER */
+
+#ifndef LOG_ILOC_CPU_LEAVE
+#define LOG_ILOC_CPU_LEAVE(ercd)
+#endif /* LOG_ILOC_CPU_LEAVE */
+
+#ifndef LOG_UNL_CPU_ENTER
+#define LOG_UNL_CPU_ENTER()
+#endif /* LOG_UNL_CPU_ENTER */
+
+#ifndef LOG_UNL_CPU_LEAVE
+#define LOG_UNL_CPU_LEAVE(ercd)
+#endif /* LOG_UNL_CPU_LEAVE */
+
+#ifndef LOG_IUNL_CPU_ENTER
+#define LOG_IUNL_CPU_ENTER()
+#endif /* LOG_IUNL_CPU_ENTER */
+
+#ifndef LOG_IUNL_CPU_LEAVE
+#define LOG_IUNL_CPU_LEAVE(ercd)
+#endif /* LOG_IUNL_CPU_LEAVE */
+
+#ifndef LOG_DIS_DSP_ENTER
+#define LOG_DIS_DSP_ENTER()
+#endif /* LOG_DIS_DSP_ENTER */
+
+#ifndef LOG_DIS_DSP_LEAVE
+#define LOG_DIS_DSP_LEAVE(ercd)
+#endif /* LOG_DIS_DSP_LEAVE */
+
+#ifndef LOG_ENA_DSP_ENTER
+#define LOG_ENA_DSP_ENTER()
+#endif /* LOG_ENA_DSP_ENTER */
+
+#ifndef LOG_ENA_DSP_LEAVE
+#define LOG_ENA_DSP_LEAVE(ercd)
+#endif /* LOG_ENA_DSP_LEAVE */
+
+#ifndef LOG_SNS_CTX_ENTER
+#define LOG_SNS_CTX_ENTER()
+#endif /* LOG_SNS_CTX_ENTER */
+
+#ifndef LOG_SNS_CTX_LEAVE
+#define LOG_SNS_CTX_LEAVE(state)
+#endif /* LOG_SNS_CTX_LEAVE */
+
+#ifndef LOG_SNS_LOC_ENTER
+#define LOG_SNS_LOC_ENTER()
+#endif /* LOG_SNS_LOC_ENTER */
+
+#ifndef LOG_SNS_LOC_LEAVE
+#define LOG_SNS_LOC_LEAVE(state)
+#endif /* LOG_SNS_LOC_LEAVE */
+
+#ifndef LOG_SNS_DSP_ENTER
+#define LOG_SNS_DSP_ENTER()
+#endif /* LOG_SNS_DSP_ENTER */
+
+#ifndef LOG_SNS_DSP_LEAVE
+#define LOG_SNS_DSP_LEAVE(state)
+#endif /* LOG_SNS_DSP_LEAVE */
+
+#ifndef LOG_SNS_DPN_ENTER
+#define LOG_SNS_DPN_ENTER()
+#endif /* LOG_SNS_DPN_ENTER */
+
+#ifndef LOG_SNS_DPN_LEAVE
+#define LOG_SNS_DPN_LEAVE(state)
+#endif /* LOG_SNS_DPN_LEAVE */
+
+#ifndef LOG_SNS_KER_ENTER
+#define LOG_SNS_KER_ENTER()
+#endif /* LOG_SNS_KER_ENTER */
+
+#ifndef LOG_SNS_KER_LEAVE
+#define LOG_SNS_KER_LEAVE(state)
+#endif /* LOG_SNS_KER_LEAVE */
+
+/*
+ *  ã¿ã¹ã¯ã®åªå
+é ä½ã®åè»¢
+ */
+#ifdef TOPPERS_rot_rdq
+
+ER
+rot_rdq(PRI tskpri)
+{
+	uint_t	pri;
+	ER		ercd;
+
+	LOG_ROT_RDQ_ENTER(tskpri);
+	CHECK_TSKCTX_UNL();
+	CHECK_TPRI_SELF(tskpri);
+
+	t_lock_cpu();
+	pri = (tskpri == TPRI_SELF) ? p_runtsk->priority : INT_PRIORITY(tskpri);
+	if (rotate_ready_queue(pri)) {
+		dispatch();
+	}
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ROT_RDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rot_rdq */
+
+/*
+ *  ã¿ã¹ã¯ã®åªå
+é ä½ã®åè»¢ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_irot_rdq
+
+ER
+irot_rdq(PRI tskpri)
+{
+	ER		ercd;
+
+	LOG_IROT_RDQ_ENTER(tskpri);
+	CHECK_INTCTX_UNL();
+	CHECK_TPRI(tskpri);
+
+	i_lock_cpu();
+	if (rotate_ready_queue(INT_PRIORITY(tskpri))) {
+		reqflg = true;
+	}
+	ercd = E_OK;
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IROT_RDQ_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_irot_rdq */
+
+/*
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯IDã®åç
+§
+ */
+#ifdef TOPPERS_get_tid
+
+ER
+get_tid(ID *p_tskid)
+{
+	ER		ercd;
+
+	LOG_GET_TID_ENTER(p_tskid);
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	*p_tskid = TSKID(p_runtsk);
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_TID_LEAVE(ercd, *p_tskid);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_tid */
+
+/*
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯IDã®åç
+§ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iget_tid
+
+ER
+iget_tid(ID *p_tskid)
+{
+	ER		ercd;
+
+	LOG_IGET_TID_ENTER(p_tskid);
+	CHECK_INTCTX_UNL();
+
+	i_lock_cpu();
+	*p_tskid = (p_runtsk == NULL) ? TSK_NONE : TSKID(p_runtsk);
+	ercd = E_OK;
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IGET_TID_LEAVE(ercd, *p_tskid);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iget_tid */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã¸ã®ç§»è¡
+ */
+#ifdef TOPPERS_loc_cpu
+
+ER
+loc_cpu(void)
+{
+	ER		ercd;
+
+	LOG_LOC_CPU_ENTER();
+	CHECK_TSKCTX();
+
+	if (!t_sense_lock()) {
+		t_lock_cpu();
+	}
+	ercd = E_OK;
+
+  error_exit:
+	LOG_LOC_CPU_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_loc_cpu */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã¸ã®ç§»è¡ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iloc_cpu
+
+ER
+iloc_cpu(void)
+{
+	ER		ercd;
+
+	LOG_ILOC_CPU_ENTER();
+	CHECK_INTCTX();
+
+	if (!i_sense_lock()) {
+		i_lock_cpu();
+	}
+	ercd = E_OK;
+
+  error_exit:
+	LOG_ILOC_CPU_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iloc_cpu */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®è§£é¤
+ *
+ *  CPUã­ãã¯ä¸­ã¯ï¼ãã£ã¹ããããå¿
+è¦ã¨ãªããµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã
+ *  ã¨ã¯ã§ããªãããï¼CPUã­ãã¯ç¶æ
+ã®è§£é¤æã«ãã£ã¹ãããã£ãèµ·åãã
+ *  å¿
+è¦ã¯ãªãï¼
+ */
+#ifdef TOPPERS_unl_cpu
+
+ER
+unl_cpu(void)
+{
+	ER		ercd;
+
+	LOG_UNL_CPU_ENTER();
+	CHECK_TSKCTX();
+
+	if (t_sense_lock()) {
+		t_unlock_cpu();
+	}
+	ercd = E_OK;
+
+  error_exit:
+	LOG_UNL_CPU_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_unl_cpu */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®è§£é¤ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ *
+ *  CPUã­ãã¯ä¸­ã¯ï¼ãã£ã¹ããããå¿
+è¦ã¨ãªããµã¼ãã¹ã³ã¼ã«ãå¼ã³åºãã
+ *  ã¨ã¯ã§ããªãããï¼CPUã­ãã¯ç¶æ
+ã®è§£é¤æã«ãã£ã¹ãããã£ã®èµ·åãè¦
+ *  æ±ããå¿
+è¦ã¯ãªãï¼
+ */
+#ifdef TOPPERS_iunl_cpu
+
+ER
+iunl_cpu(void)
+{
+	ER		ercd;
+
+	LOG_IUNL_CPU_ENTER();
+	CHECK_INTCTX();
+
+	if (i_sense_lock()) {
+		i_unlock_cpu();
+	}
+	ercd = E_OK;
+
+  error_exit:
+	LOG_IUNL_CPU_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iunl_cpu */
+
+/*
+ *  ãã£ã¹ãããã®ç¦æ­¢
+ */
+#ifdef TOPPERS_dis_dsp
+
+ER
+dis_dsp(void)
+{
+	ER		ercd;
+
+	LOG_DIS_DSP_ENTER();
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	disdsp = true;
+	dspflg = false;
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DIS_DSP_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_dis_dsp */
+
+/*
+ *  ãã£ã¹ãããã®è¨±å¯
+ */
+#ifdef TOPPERS_ena_dsp
+
+ER
+ena_dsp(void)
+{
+	ER		ercd;
+
+	LOG_ENA_DSP_ENTER();
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	disdsp = false;
+	if (ipmflg) {
+		dspflg = true;
+		if (p_runtsk != p_schedtsk) {
+			dispatch();
+		}
+	}
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ENA_DSP_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ena_dsp */
+
+/*
+ *  ã³ã³ãã­ã¹ãã®åç
+§
+ */
+#ifdef TOPPERS_sns_ctx
+
+bool_t
+sns_ctx(void)
+{
+	bool_t	state;
+
+	LOG_SNS_CTX_ENTER();
+	state = sense_context() ? true : false;
+	LOG_SNS_CTX_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_ctx */
+
+/*
+ *  CPUã­ãã¯ç¶æ
+ã®åç
+§
+ */
+#ifdef TOPPERS_sns_loc
+
+bool_t
+sns_loc(void)
+{
+	bool_t	state;
+
+	LOG_SNS_LOC_ENTER();
+	state = x_sense_lock() ? true : false;
+	LOG_SNS_LOC_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_loc */
+
+/*
+ *  ãã£ã¹ãããç¦æ­¢ç¶æ
+ã®åç
+§
+ */
+#ifdef TOPPERS_sns_dsp
+
+bool_t
+sns_dsp(void)
+{
+	bool_t	state;
+
+	LOG_SNS_DSP_ENTER();
+	state = disdsp;
+	LOG_SNS_DSP_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_dsp */
+
+/*
+ *  ãã£ã¹ãããä¿çç¶æ
+ã®åç
+§
+ */
+#ifdef TOPPERS_sns_dpn
+
+bool_t
+sns_dpn(void)
+{
+	bool_t	state;
+
+	LOG_SNS_DPN_ENTER();
+	state = (sense_context() || t_sense_lock() || !dspflg) ? true : false;
+	LOG_SNS_DPN_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_dpn */
+
+/*
+ *  ã«ã¼ãã«éåä½ç¶æ
+ã®åç
+§
+ */
+#ifdef TOPPERS_sns_ker
+
+bool_t
+sns_ker(void)
+{
+	bool_t	state;
+
+	LOG_SNS_KER_ENTER();
+	state = kerflg ? false : true;
+	LOG_SNS_KER_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_ker */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task.c	(revision 313)
@@ -0,0 +1,568 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#include "kernel_impl.h"
+#include "wait.h"
+#include "task.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_TEX_ENTER
+#define LOG_TEX_ENTER(p_tcb, texptn)
+#endif /* LOG_TEX_ENTER */
+
+#ifndef LOG_TEX_LEAVE
+#define LOG_TEX_LEAVE(p_tcb)
+#endif /* LOG_TEX_LEAVE */
+
+#ifdef TOPPERS_tskini
+
+/*
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯
+ */
+TCB		*p_runtsk;
+
+/*
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯
+ */
+TCB		*p_schedtsk;
+
+/*
+ *  ã¿ã¹ã¯ãã£ã¹ãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³èµ·åè¦æ±ãã©ã°
+ */
+bool_t	reqflg;
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ */
+bool_t	ipmflg;
+
+/*
+ *  ãã£ã¹ãããç¦æ­¢ç¶æ
+
+ */
+bool_t	disdsp;
+
+/*
+ *  ã¿ã¹ã¯ãã£ã¹ãããå¯è½ç¶æ
+
+ */
+bool_t	dspflg;
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼
+ */
+QUEUE	ready_queue[TNUM_TPRI];
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼ãµã¼ãã®ããã®ãããããã
+ */
+uint16_t	ready_primap;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãTCBã®ãªã¹ã
+ */
+QUEUE	free_tcb;
+
+/*
+ *  ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+void
+initialize_task(void)
+{
+	uint_t	i, j;
+	TCB		*p_tcb;
+	TINIB	*p_tinib;
+
+	p_runtsk = NULL;
+	p_schedtsk = NULL;
+	reqflg = false;
+	ipmflg = true;
+	disdsp = false;
+	dspflg = true;
+
+	for (i = 0; i < TNUM_TPRI; i++) {
+		queue_initialize(&(ready_queue[i]));
+	}
+	ready_primap = 0U;
+
+	for (i = 0; i < tnum_stsk; i++) {
+		j = INDEX_TSK(torder_table[i]);
+		p_tcb = &(tcb_table[j]);
+		p_tcb->p_tinib = &(tinib_table[j]);
+		p_tcb->actque = false;
+		make_dormant(p_tcb);
+		if ((p_tcb->p_tinib->tskatr & TA_ACT) != 0U) {
+			(void) make_active(p_tcb);
+		}
+	}
+	queue_initialize(&free_tcb);
+	for (j = 0; i < tnum_tsk; i++, j++) {
+		p_tcb = &(tcb_table[i]);
+		p_tinib = &(atinib_table[j]);
+		p_tinib->tskatr = TA_NOEXS;
+		p_tcb->p_tinib = ((const TINIB *) p_tinib);
+		queue_insert_prev(&free_tcb, &(p_tcb->task_queue));
+	}
+}
+
+#endif /* TOPPERS_tskini */
+
+/*
+ *  ãããããããµã¼ãé¢æ°
+ *
+ *  bitmapå
+ã®1ã®ãããã®å
+ï¼æãä¸ä½ï¼å³ï¼ã®ãã®ããµã¼ããï¼ãã®ãã
+ *  ãçªå·ãè¿ãï¼ãããçªå·ã¯ï¼æä¸ä½ãããã0ã¨ããï¼bitmapã«0ãæå®
+ *  ãã¦ã¯ãªããªãï¼ãã®é¢æ°ã§ã¯ï¼bitmapã16ãããã§ãããã¨ãä»®å®ãï¼
+ *  uint16_tåã¨ãã¦ããï¼
+ *
+ *  ããããµã¼ãå½ä»¤ãæã¤ãã­ã»ããµã§ã¯ï¼ããããµã¼ãå½ä»¤ãä½¿ãããã«
+ *  æ¸ãç´ããæ¹ãå¹çãè¯ãå ´åãããï¼ãã®ãããªå ´åã«ã¯ï¼ã¿ã¼ã²ãã
+ *  ä¾å­é¨ã§ããããµã¼ãå½ä»¤ãä½¿ã£ãbitmap_searchãå®ç¾©ãï¼
+ *  OMIT_BITMAP_SEARCHããã¯ã­å®ç¾©ããã°ããï¼ã¾ãï¼ããããµã¼ãå½ä»¤ã®
+ *  ãµã¼ãæ¹åãéãªã©ã®çç±ã§åªå
+åº¦ã¨ãããã¨ã®å¯¾å¿ãå¤æ´ãããå ´åã«
+ *  ã¯ï¼PRIMAP_BITããã¯ã­å®ç¾©ããã°ããï¼
+ *
+ *  ã¾ãï¼ã©ã¤ãã©ãªã«ffsããããªãï¼æ¬¡ã®ããã«å®ç¾©ãã¦ã©ã¤ãã©ãªé¢æ°ã
+ *  ä½¿ã£ãæ¹ãå¹çãè¯ãå¯è½æ§ãããï¼
+ *		#define	bitmap_search(bitmap) (ffs(bitmap) - 1)
+ */
+#ifndef PRIMAP_BIT
+#define	PRIMAP_BIT(pri)		(1U << (pri))
+#endif /* PRIMAP_BIT */
+
+#ifndef OMIT_BITMAP_SEARCH
+
+static const unsigned char bitmap_search_table[] = { 0, 1, 0, 2, 0, 1, 0,
+												3, 0, 1, 0, 2, 0, 1, 0 };
+
+Inline uint_t
+bitmap_search(uint16_t bitmap)
+{
+	uint_t	n = 0U;
+
+	assert(bitmap != 0U);
+	if ((bitmap & 0x00ffU) == 0U) {
+		bitmap >>= 8;
+		n += 8;
+	}
+	if ((bitmap & 0x0fU) == 0U) {
+		bitmap >>= 4;
+		n += 4;
+	}
+	return(n + bitmap_search_table[(bitmap & 0x0fU) - 1]);
+}
+
+#endif /* OMIT_BITMAP_SEARCH */
+
+/*
+ *  åªå
+åº¦ãããããããç©ºãã®ãã§ãã¯
+ */
+Inline bool_t
+primap_empty(void)
+{
+	return(ready_primap == 0U);
+}
+
+/*
+ *  åªå
+åº¦ããããããã®ãµã¼ã
+ */
+Inline uint_t
+primap_search(void)
+{
+	return(bitmap_search(ready_primap));
+}
+
+/*
+ *  åªå
+åº¦ããããããã®ã»ãã
+ */
+Inline void
+primap_set(uint_t pri)
+{
+	ready_primap |= PRIMAP_BIT(pri);
+}
+
+/*
+ *  åªå
+åº¦ããããããã®ã¯ãªã¢
+ */
+Inline void
+primap_clear(uint_t pri)
+{
+	ready_primap &= ~PRIMAP_BIT(pri);
+}
+
+/*
+ *  æé«åªå
+é ä½ã¿ã¹ã¯ã®ãµã¼ã
+ */
+#ifdef TOPPERS_tsksched
+
+TCB *
+search_schedtsk(void)
+{
+	uint_t	schedpri;
+
+	schedpri = primap_search();
+	return((TCB *)(ready_queue[schedpri].p_next));
+}
+
+#endif /* TOPPERS_tsksched */
+
+/*
+ *  å®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+ *
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼å®è¡ã§ããã¿ã¹ã¯ããªãã£ãå ´å
+ *  ã¨ï¼p_tcbã®åªå
+åº¦ãæé«åªå
+é ä½ã®ã¿ã¹ã¯ã®åªå
+åº¦ãããé«ãå ´åã§ã
+ *  ãï¼
+ */
+#ifdef TOPPERS_tskrun
+
+bool_t
+make_runnable(TCB *p_tcb)
+{
+	uint_t	pri = p_tcb->priority;
+
+	queue_insert_prev(&(ready_queue[pri]), &(p_tcb->task_queue));
+	primap_set(pri);
+
+	if (p_schedtsk == (TCB *) NULL || pri < p_schedtsk->priority) {
+		p_schedtsk = p_tcb;
+		return(dspflg);
+	}
+	return(false);
+}
+
+#endif /* TOPPERS_tskrun */
+
+/*
+ *  å®è¡ã§ããç¶æ
+ããä»ã®ç¶æ
+ã¸ã®é·ç§»
+ *
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼p_tcbãæé«åªå
+é ä½ã®ã¿ã¹ã¯ã§
+ *  ãã£ãå ´åã§ããï¼p_tcbã¨åãåªå
+åº¦ã®ã¿ã¹ã¯ãä»ã«ããå ´åã¯ï¼p_tcb
+ *  ã®æ¬¡ã®ã¿ã¹ã¯ãæé«åªå
+é ä½ã«ãªãï¼ããã§ãªãå ´åã¯ï¼ã¬ãã£ã­ã¥ã¼ã
+ *  ãµã¼ãããå¿
+è¦ãããï¼
+ */
+#ifdef TOPPERS_tsknrun
+
+bool_t
+make_non_runnable(TCB *p_tcb)
+{
+	uint_t	pri = p_tcb->priority;
+	QUEUE	*p_queue = &(ready_queue[pri]);
+
+	queue_delete(&(p_tcb->task_queue));
+	if (queue_empty(p_queue)) {
+		primap_clear(pri);
+		if (p_schedtsk == p_tcb) {
+			p_schedtsk = primap_empty() ? (TCB *) NULL : search_schedtsk();
+			return(dspflg);
+		}
+	}
+	else {
+		if (p_schedtsk == p_tcb) {
+			p_schedtsk = (TCB *)(p_queue->p_next);
+			return(dspflg);
+		}
+	}
+	return(false);
+}
+
+#endif /* TOPPERS_tsknrun */
+
+/*
+ *  ä¼æ­¢ç¶æ
+ã¸ã®é·ç§»
+ */
+#ifdef TOPPERS_tskdmt
+
+void
+make_dormant(TCB *p_tcb)
+{
+	p_tcb->tstat = TS_DORMANT;
+	p_tcb->priority = p_tcb->p_tinib->ipriority;
+	p_tcb->wupque = false;
+	p_tcb->enatex = false;
+	p_tcb->texptn = 0U;
+	LOG_TSKSTAT(p_tcb);
+}
+
+#endif /* TOPPERS_tskdmt */
+
+/*
+ *  ä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+ */
+#ifdef TOPPERS_tskact
+
+bool_t
+make_active(TCB *p_tcb)
+{
+	activate_context(p_tcb);
+	p_tcb->tstat = TS_RUNNABLE;
+	LOG_TSKSTAT(p_tcb);
+	return(make_runnable(p_tcb));
+}
+
+#endif /* TOPPERS_tskact */
+
+/*
+ *  ã¿ã¹ã¯ã®åªå
+åº¦ã®å¤æ´
+ *
+ *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã®å ´åã«ã¯ï¼ã¬ãã£ã­ã¥ã¼ã®ä¸­ã§ã®ä½ç½®ãå¤æ´ã
+ *  ãï¼ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã®ä¸­ã§å¾
+ã¡ç¶æ
+ã«ãªã£ã¦ããå ´åã«ã¯ï¼å¾
+
+ *  ã¡ã­ã¥ã¼ã®ä¸­ã§ã®ä½ç½®ãå¤æ´ããï¼
+ *
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼(1) p_tcbãæé«åªå
+é ä½ã®ã¿ã¹
+ *  ã¯ã§ãã£ã¦ï¼ãã®åªå
+åº¦ãä¸ããå ´åï¼(2) p_tcbãæé«åªå
+é ä½ã®ã¿ã¹
+ *  ã¯ã§ã¯ãªãï¼å¤æ´å¾ã®åªå
+åº¦ãæé«åªå
+é ä½ã®ã¿ã¹ã¯ã®åªå
+åº¦ãããé«ã
+ *  å ´åã§ããï¼(1)ã®å ´åã«ã¯ï¼ã¬ãã£ã­ã¥ã¼ããµã¼ãããå¿
+è¦ãããï¼
+ */
+#ifdef TOPPERS_tskpri
+
+bool_t
+change_priority(TCB *p_tcb, uint_t newpri)
+{
+	uint_t	oldpri;
+
+	oldpri = p_tcb->priority;
+	p_tcb->priority = newpri;
+
+	if (TSTAT_RUNNABLE(p_tcb->tstat)) {
+		/*
+		 *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã®å ´å
+		 */
+		queue_delete(&(p_tcb->task_queue));
+		if (queue_empty(&(ready_queue[oldpri]))) {
+			primap_clear(oldpri);
+		}
+		queue_insert_prev(&(ready_queue[newpri]), &(p_tcb->task_queue));
+		primap_set(newpri);
+
+		if (p_schedtsk == p_tcb) {
+			if (newpri >= oldpri) {
+				p_schedtsk = search_schedtsk();
+				return(p_schedtsk != p_tcb && dspflg);
+			}
+		}
+		else {
+			if (newpri < p_schedtsk->priority) {
+				p_schedtsk = p_tcb;
+				return(dspflg);
+			}
+		}
+	}
+	else {
+		if (TSTAT_WAIT_WOBJCB(p_tcb->tstat)) {
+			/*
+			 *  ã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨
+			 *  åï¼WOBJCBï¼ã®å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããå ´å
+			 */
+			wobj_change_priority(((WINFO_WOBJ *)(p_tcb->p_winfo))->p_wobjcb,
+																	p_tcb);
+		}
+	}
+	return(false);
+}
+
+#endif /* TOPPERS_tskpri */
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼ã®åè»¢
+ *
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ããã®ã¯ï¼æé«åªå
+é ä½ã®ã¿ã¹ã¯ãã¿ã¹ã¯ã­
+ *  ã¥ã¼ã®æ«å°¾ã«ç§»åããå ´åã§ããï¼
+ */
+#ifdef TOPPERS_tskrot
+
+bool_t
+rotate_ready_queue(uint_t pri)
+{
+	QUEUE	*p_queue = &(ready_queue[pri]);
+	QUEUE	*p_entry;
+
+	if (!queue_empty(p_queue) && p_queue->p_next->p_next != p_queue) {
+		p_entry = queue_delete_next(p_queue);
+		queue_insert_prev(p_queue, p_entry);
+		if (p_schedtsk == (TCB *) p_entry) {
+			p_schedtsk = (TCB *)(p_queue->p_next);
+			return(dspflg);
+		}
+	}
+	return(false);
+}
+
+#endif /* TOPPERS_tskrot */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºã
+ *
+ *  ASPã«ã¼ãã«ã§ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å
+ã§CPUã­ãã¯ç¶æ
+ã«é·ç§»ãï¼
+ *  å
+ã®ç¶æ
+ã«æ»ããã«ãªã¿ã¼ã³ããå ´åï¼ã«ã¼ãã«ãå
+ã®ç¶æ
+ã«æ»ãï¼
+ */
+#ifdef TOPPERS_tsktex
+
+void
+call_texrtn(void)
+{
+	TEXPTN	texptn;
+	bool_t	saved_disdsp;
+
+	saved_disdsp = disdsp;
+	p_runtsk->enatex = false;
+	do {
+		texptn = p_runtsk->texptn;
+		p_runtsk->texptn = 0U;
+
+		t_unlock_cpu();
+		LOG_TEX_ENTER(p_runtsk, texptn);
+		(*((TEXRTN)(p_runtsk->p_tinib->texrtn)))(texptn,
+												p_runtsk->p_tinib->exinf);
+		LOG_TEX_LEAVE(p_runtsk);
+		if (!t_sense_lock()) {
+			t_lock_cpu();
+		}
+		if (!ipmflg) {
+			t_set_ipm(TIPM_ENAALL);
+			ipmflg = true;
+		}
+		disdsp = saved_disdsp;
+		dspflg = !disdsp;
+		p_runtsk->enatex = false;
+		if (p_runtsk != p_schedtsk && dspflg) {
+			/*
+			 *  ããã§dispatchãå¼ã³åºãå¦çã¯ï¼ç¸äºåå¸°å¼åºãã«ãªã£ã¦
+			 *  ãããï¼dispatchãå¼ã¶åã«p_runtsk->enatexãfalseã«ãã¦
+			 *  ããã°æ¯éããªãï¼ãã®çç±ã«ã¤ãã¦ã¯ï¼ãTOPPERS/ASP ã«ã¼
+			 *  ãã« è¨­è¨ã¡ã¢ããåç
+§ã®ãã¨ï¼
+			 */
+			dispatch();
+		}
+	} while (p_runtsk->texptn != 0U);
+	p_runtsk->enatex = true;
+}
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å
+ */
+#ifndef OMIT_CALLTEX
+
+void
+calltex(void)
+{
+	if (p_runtsk->enatex && p_runtsk->texptn != 0U && ipmflg) {
+		call_texrtn();
+	}
+}
+
+#endif /* OMIT_CALLTEX */
+#endif /* TOPPERS_tsktex */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task.h	(revision 313)
@@ -0,0 +1,725 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#ifndef TOPPERS_TASK_H
+#define TOPPERS_TASK_H
+
+#include <queue.h>
+#include "time_event.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_TSKSTAT
+#define LOG_TSKSTAT(p_tcb)
+#endif /* LOG_TSKSTAT */
+
+/*
+ *  ã¿ã¹ã¯åªå
+åº¦ã®å
+é¨è¡¨ç¾ã»å¤é¨è¡¨ç¾å¤æãã¯ã­
+ */
+#define INT_PRIORITY(x)		((uint_t)((x) - TMIN_TPRI))
+#define EXT_TSKPRI(x)		((PRI)(x) + TMIN_TPRI)
+
+/*
+ *  ã¿ã¹ã¯ç¶æ
+ã®å
+é¨è¡¨ç¾
+ *
+ *  TCBä¸­ã®ã¿ã¹ã¯ç¶æ
+ã§ã¯ï¼å®è¡ç¶æ
+ï¼RUNNINGï¼ã¨å®è¡å¯è½ç¶æ
+ï¼READYï¼
+ *  ã¯åºå¥ããªãï¼ä¸¡ç¶æ
+ãç·ç§°ãã¦ï¼å®è¡ã§ããç¶æ
+ï¼RUNNABLEï¼ã¨å¼ã¶ï¼
+ *  äºéå¾
+ã¡ç¶æ
+ã¯ï¼(TS_WAITING | TS_SUSPENDED)ã§è¡¨ãï¼TS_WAIT_???ã¯å¾
+
+ *  ã¡è¦å ãè¡¨ãï¼å¾
+ã¡ç¶æ
+ï¼äºéå¾
+ã¡ç¶æ
+ãå«ãï¼ã®å ´åã«ã®ã¿è¨­å®ããï¼
+ */
+#define TS_DORMANT		0x00U			/* ä¼æ­¢ç¶æ
+ */
+#define TS_RUNNABLE		0x01U			/* å®è¡ã§ããç¶æ
+ */
+#define TS_WAITING		0x02U			/* å¾
+ã¡ç¶æ
+ */
+#define TS_SUSPENDED	0x04U			/* å¼·å¶å¾
+ã¡ç¶æ
+ */
+
+#define TS_WAIT_DLY		(0x00U << 3)	/* æéçµéå¾
+ã¡ */
+#define TS_WAIT_SLP		(0x01U << 3)	/* èµ·åºå¾
+ã¡ */
+#define TS_WAIT_RDTQ	(0x02U << 3)	/* ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ */
+#define TS_WAIT_RPDQ	(0x03U << 3)	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ããã®åä¿¡å¾
+ã¡ */
+#define TS_WAIT_SEM		(0x04U << 3)	/* ã»ããã©è³æºã®ç²å¾å¾
+ã¡ */
+#define TS_WAIT_FLG		(0x05U << 3)	/* ã¤ãã³ããã©ã°å¾
+ã¡ */
+#define TS_WAIT_SDTQ	(0x06U << 3)	/* ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ */
+#define TS_WAIT_SPDQ	(0x07U << 3)	/* åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã¸ã®éä¿¡å¾
+ã¡ */
+#define TS_WAIT_MBX		(0x08U << 3)	/* ã¡ã¼ã«ããã¯ã¹ããã®åä¿¡å¾
+ã¡ */
+#define TS_WAIT_MPF		(0x09U << 3)	/* åºå®é·ã¡ã¢ãªãã­ãã¯ã®ç²å¾å¾
+ã¡ */
+
+/*
+ *  ã¿ã¹ã¯ç¶æ
+å¤å¥ãã¯ã­
+ *
+ *  TSTAT_DORMANTã¯ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ã§ãããã©ãããï¼TSTAT_RUNNABLEã¯
+ *  ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã§ãããã©ãããå¤å¥ããï¼TSTAT_WAITINGã¯å¾
+
+ *  ã¡ç¶æ
+ã¨äºéå¾
+ã¡ç¶æ
+ã®ããããã§ãããã©ãããï¼TSTAT_SUSPENDEDã¯
+ *  å¼·å¶å¾
+ã¡ç¶æ
+ã¨äºéå¾
+ã¡ç¶æ
+ã®ããããã§ãããã©ãããå¤å¥ããï¼
+ */
+#define TSTAT_DORMANT(tstat)	((tstat) == TS_DORMANT)
+#define TSTAT_RUNNABLE(tstat)	(((tstat) & TS_RUNNABLE) != 0U)
+#define TSTAT_WAITING(tstat)	(((tstat) & TS_WAITING) != 0U)
+#define TSTAT_SUSPENDED(tstat)	(((tstat) & TS_SUSPENDED) != 0U)
+
+/*
+ *  ã¿ã¹ã¯å¾
+ã¡è¦å å¤å¥ãã¯ã­
+ *
+ *  TSTAT_WAIT_SLPã¯ã¿ã¹ã¯ãèµ·åºå¾
+ã¡ã§ãããã©ãããï¼TSTAT_WAIT_WOBJ
+ *  ã¯ã¿ã¹ã¯ãåæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ã§ãããï¼è¨ãæããã¨ï¼
+ *  åæéä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ãããï¼ã©ãããå¤å¥ã
+ *  ãï¼ã¾ãï¼TSTAT_WAIT_WOBJCBã¯ã¿ã¹ã¯ãåæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡ç
+ *  ãã­ãã¯ã®å
+±éé¨åï¼WOBJCBï¼ã®å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ãããã©ããã
+ *  å¤å¥ããï¼
+ *
+ *  TSTAT_WAIT_SLPã¯ï¼ä»»æã®ã¿ã¹ã¯ç¶æ
+ã®ä¸­ããï¼ã¿ã¹ã¯ãèµ·åºå¾
+ã¡ã§ãã
+ *  ãã¨ãå¤å¥ã§ããï¼ããªãã¡ï¼TSTAT_WAITINGã«ããå¾
+ã¡ç¶æ
+ã§ãããã¨ã
+ *  å¤å¥ããã«ï¼TSTAT_SLPã ããç¨ãã¦èµ·åºå¾
+ã¡ç¶æ
+ã§ãããã¨ãå¤å¥ã§ããï¼
+ *  ãããå¹ççã«å®ç¾ããããã«ï¼TS_WAIT_SLPã®å¤ãï¼(0x00U << 3)ã§ã¯ãª
+ *  ã(0x01U << 3)ã¨ãã¦ããï¼ãã®ããï¼ã¿ã¹ã¯ãæéçµéå¾
+ã¡ç¶æ
+ã§ãã
+ *  ãã¨ãå¤å¥ããããã®TSTAT_WAIT_DLYãï¼TSTAT_WAIT_SLPã¨åæ§ã®æ¹æ³ã§
+ *  å®ç¾ãããã¨ã¯ã§ããªãï¼
+ */
+#define TS_WAIT_MASK	(0x0fU << 3)	/* å¾
+ã¡è¦å ã®ååºããã¹ã¯ */
+
+#define TSTAT_WAIT_SLP(tstat)		(((tstat) & TS_WAIT_MASK) == TS_WAIT_SLP)
+#define TSTAT_WAIT_WOBJ(tstat)		(((tstat) & TS_WAIT_MASK) >= TS_WAIT_RDTQ)
+#define TSTAT_WAIT_WOBJCB(tstat)	(((tstat) & TS_WAIT_MASK) >= TS_WAIT_SEM)
+
+/*
+ *  å¾
+ã¡æ
+å ±ãã­ãã¯ï¼WINFOï¼ã®å®ç¾©
+ *
+ *  ã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ã®éã¯ï¼TCBããã³ãã®p_winfoã§æãããWINFOãæ¬¡ã®
+ *  ããã«è¨­å®ããªããã°ãªããªãï¼
+ *
+ *  (a) TCBã®ã¿ã¹ã¯ç¶æ
+ãå¾
+ã¡ç¶æ
+ï¼TS_WAITINGï¼ã«ããï¼ãã®éã«ï¼å¾
+ã¡
+ *  è¦å ï¼TS_WAIT_???ï¼ãè¨­å®ããï¼
+ *
+ *  (b) ã¿ã¤ã ã¢ã¦ããç£è¦ããããã«ï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼
+ *  ç»é²ããã¿ã¤ã ã¤ãã³ããã­ãã¯ã¯ï¼å¾
+ã¡ã«å
+¥ããµã¼ãã¹ã³ã¼ã«å¦çé¢æ°
+ *  ã®ã­ã¼ã«ã«å¤æ°ã¨ãã¦ç¢ºä¿ãï¼ããã¸ã®ãã¤ã³ã¿ãWINFOã®p_tmevtbã«è¨
+ *  æ¶ããï¼ã¿ã¤ã ã¢ã¦ãã®ç£è¦ãå¿
+è¦ãªãå ´åï¼æ°¸ä¹
+å¾
+ã¡ã®å ´åï¼ã«ã¯ï¼
+ *  p_tmevtbãNULLã«ããï¼
+ *
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+ã®å ´åã«ã¯ï¼æ¨æºã®WINFOã«
+ *  p_wobjcbãã£ã¼ã«ããè¿½å ããæ§é ä½ï¼WINFO_WOBJï¼wait.hã§å®ç¾©ï¼ãä½¿
+ *  ãï¼ã¾ãï¼ä»¥ä¸ã®(c)ï½(e)ã®è¨­å®ãè¡ãå¿
+è¦ãããï¼åæã»éä¿¡ãªãã¸ã§
+ *  ã¯ãã«é¢ä¿ããªãå¾
+ã¡ï¼èµ·åºå¾
+ã¡ï¼æéçµéå¾
+ã¡ï¼ã®å ´åã«ã¯ï¼(c)ï½(e)
+ *  ã¯å¿
+è¦ãªãï¼
+ *
+ *  (c) TCBãå¾
+ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªãï¼å¾
+
+ *  ã¡ã­ã¥ã¼ã«ã¤ãªãããã«ï¼task_queueãä½¿ãï¼
+ *
+ *  (d) å¾
+ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã¸ã®ãã¤ã³ã¿ãï¼
+ *  WINFO_WOBJã®p_wobjcbã«è¨æ¶ããï¼
+ *
+ *  (e) å¾
+ã¡å¯¾è±¡ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã«ä¾å­ãã¦è¨æ¶ãããã¨ãå¿
+è¦ãª
+ *  æ
+å ±ãããå ´åã«ã¯ï¼WINFO_WOBJã«å¿
+è¦ãªæ
+å ±ã®ããã®ãã£ã¼ã«ããè¿½å 
+ *  ããæ§é ä½ãå®ç¾©ãï¼WINFO_WOBJã®ä»£ããã«ç¨ããï¼
+ *
+ *  å¾
+ã¡ç¶æ
+ãè§£é¤ããéã«ã¯ï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã«å¯¾ããè¿å¤ãWINFOã®
+ *  wercdã«è¨­å®ããï¼wercdãå¿
+è¦ãªã®ã¯å¾
+ã¡è§£é¤ä»¥éã§ããã®ã«å¯¾ãã¦ï¼
+ *  p_tmevtbã¯å¾
+ã¡è§£é¤å¾ã¯å¿
+è¦ãªãããï¼ã¡ã¢ãªç¯ç´ã®ããã«å
+±ç¨ä½ãä½¿ã£
+ *  ã¦ããï¼ãã®ããï¼wercdã¸ã¨ã©ã¼ã³ã¼ããè¨­å®ããã®ã¯ï¼ã¿ã¤ã ã¤ãã³ã
+ *  ãã­ãã¯ãç»é²è§£é¤ããå¾ã«ããªããã°ãªããªãï¼
+ */
+typedef union waiting_information {
+	ER		wercd;			/* å¾
+ã¡è§£é¤æã®ã¨ã©ã¼ã³ã¼ã */
+	TMEVTB	*p_tmevtb;		/* å¾
+ã¡ç¶æ
+ç¨ã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+} WINFO;
+
+/*
+ *  ã¿ã¹ã¯åæåãã­ãã¯
+ *
+ *  ã¿ã¹ã¯ã«é¢ããæ
+å ±ãï¼å¤ãå¤ãããªãããã«ROMã«ç½®ããé¨åï¼ã¿ã¹ã¯
+ *  åæåãã­ãã¯ï¼ã¨ï¼å¤ãå¤åããããã«RAMã«ç½®ããªããã°ãªããªãé¨
+ *  åï¼ã¿ã¹ã¯ç®¡çãã­ãã¯ï¼TCBï¼ã«åé¢ãï¼TCBå
+ã«å¯¾å¿ããã¿ã¹ã¯åæå
+ *  ãã­ãã¯ãæããã¤ã³ã¿ãå
+¥ããï¼ã¿ã¹ã¯åæåãã­ãã¯å
+ã«å¯¾å¿ãã
+ *  TCBãæããã¤ã³ã¿ãå
+¥ããæ¹æ³ã®æ¹ãï¼RAMã®ç¯ç´ã®è¦³ç¹ããã¯æã¾ãã
+ *  ãï¼å®è¡å¹çãæªããªãããã«æ¡ç¨ãã¦ããªãï¼ä»ã®ãªãã¸ã§ã¯ãã«ã¤ã
+ *  ã¦ãåæ§ã«æ±ãï¼
+ *
+ *  ã¿ã¹ã¯åæåãã­ãã¯ã«ã¯ï¼DEF_TEXã§å®ç¾©ãããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ã
+ *  ã³ã«é¢ããæ
+å ±ãå«ãï¼
+ */
+typedef struct task_initialization_block {
+	ATR			tskatr;			/* ã¿ã¹ã¯å±æ§ */
+	intptr_t	exinf;			/* ã¿ã¹ã¯ã®æ¡å¼µæ
+å ± */
+	TASK		task;			/* ã¿ã¹ã¯ã®èµ·åçªå° */
+	uint_t		ipriority;		/* ã¿ã¹ã¯ã®èµ·åæåªå
+åº¦ï¼å
+é¨è¡¨ç¾ï¼ */
+
+#ifdef USE_TSKINICTXB
+	TSKINICTXB	tskinictxb;		/* ã¿ã¹ã¯åæåã³ã³ãã­ã¹ããã­ãã¯ */
+#else /* USE_TSKINICTXB */
+	SIZE		stksz;			/* ã¹ã¿ãã¯é åã®ãµã¤ãºï¼ä¸¸ããå¤ï¼ */
+	void		*stk;			/* ã¹ã¿ãã¯é åã®å
+é ­çªå° */
+#endif /* USE_TSKINICTXB */
+
+	ATR			texatr;			/* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å±æ§ */
+	TEXRTN		texrtn;			/* ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åçªå° */
+} TINIB;
+
+/*
+ *  TCBä¸­ã®ãã£ã¼ã«ãã®ãããå¹
+ã®å®ç¾©
+ *
+ *  ãã­ã»ããµã«ãã£ã¦ã¯ï¼TCBä¸­ã®ãã£ã¼ã«ãã®ãããå¹
+ã§ã¡ã¢ãªä½¿ç¨éã¨
+ *  æ§è½ããã¬ã¼ããªãã«ãªãããï¼ã¿ã¼ã²ããä¾å­ã«ãã£ã¼ã«ãã®ãããå¹
+
+ *  ãå¤æ´ãããã¨ãè¨±ãã¦ããï¼
+ */
+#ifndef TBIT_TCB_PRIORITY
+#define	TBIT_TCB_PRIORITY		8		/* priorityãã£ã¼ã«ãã®ãããå¹
+ */
+#endif /* TBIT_TCB_PRIORITY */
+
+/*
+ *  ã¿ã¹ã¯ç®¡çãã­ãã¯ï¼TCBï¼
+ *
+ *  ASPã«ã¼ãã«ã§ã¯ï¼ã¿ã¹ã¯ã®èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ï¼TMAX_ACTCNTï¼
+ *  ã¨èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®æå¤§å¤ï¼TMAX_WUPCNTï¼ã¯1ã«åºå®ããã¦ãã
+ *  ããï¼ã­ã¥ã¼ã¤ã³ã°ããã¦ãããã©ããã®çå½å¤ã§è¡¨ç¾ãããã¨ãã§ããï¼
+ *  ã¾ãï¼å¼·å¶å¾
+ã¡è¦æ±ãã¹ãæ°ã®æå¤§å¤ï¼TMAX_SUSCNTï¼ã1ã«åºå®ããã¦ã
+ *  ãã®ã§ï¼å¼·å¶å¾
+ã¡è¦æ±ãã¹ãæ°ï¼suscntï¼ã¯å¿
+è¦ãªãï¼
+ *
+ *  TCBã®ããã¤ãã®ãã£ã¼ã«ãã¯ï¼ç¹å®ã®ã¿ã¹ã¯ç¶æ
+ã§ã®ã¿æå¹ãªå¤ãä¿æãï¼
+ *  ããä»¥å¤ã®å ´åã¯å¤ãä¿è¨¼ãããªãï¼ãã£ã¦ï¼åç
+§ãã¦ã¯ãªããªãï¼ï¼å
+ *  ãã£ã¼ã«ããæå¹ãªå¤ãä¿æããæ¡ä»¶ã¯æ¬¡ã®éãï¼
+ *
+ *  ã»åæåå¾ã¯å¸¸ã«æå¹ï¼
+ *  		p_tinibï¼tstatï¼actque
+ *  ã»ä¼æ­¢ç¶æ
+ä»¥å¤ã§æå¹ï¼ä¼æ­¢ç¶æ
+ã§ã¯åæå¤ã«ãªã£ã¦ããï¼ï¼
+ *  		priorityï¼wupqueï¼enatexï¼texptn
+ *  ã»å¾
+ã¡ç¶æ
+ï¼äºéå¾
+ã¡ç¶æ
+ãå«ãï¼ã§æå¹ï¼
+ *  		p_winfo
+ *  ã»å®è¡ã§ããç¶æ
+ã¨åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+ã§æå¹ï¼
+ *  		task_queue
+ *  ã»å®è¡å¯è½ç¶æ
+ï¼å¾
+ã¡ç¶æ
+ï¼å¼·å¶å¾
+ã¡ç¶æ
+ï¼äºéå¾
+ã¡ç¶æ
+ã§æå¹ï¼
+ *  		tskctxb
+ */
+typedef struct task_control_block {
+	QUEUE			task_queue;		/* ã¿ã¹ã¯ã­ã¥ã¼ */
+	const TINIB		*p_tinib;		/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+
+#ifdef UINT8_MAX
+	uint8_t			tstat;			/* ã¿ã¹ã¯ç¶æ
+ï¼å
+é¨è¡¨ç¾ï¼*/
+#else /* UINT8_MAX */
+	BIT_FIELD_UINT	tstat : 8;		/* ã¿ã¹ã¯ç¶æ
+ï¼å
+é¨è¡¨ç¾ï¼*/
+#endif /* UINT8_MAX */
+#if defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8)
+	uint8_t			priority;		/* ç¾å¨ã®åªå
+åº¦ï¼å
+é¨è¡¨ç¾ï¼*/
+#else /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
+	BIT_FIELD_UINT	priority : TBIT_TCB_PRIORITY;
+									/* ç¾å¨ã®åªå
+åº¦ï¼å
+é¨è¡¨ç¾ï¼*/
+#endif /* defined(UINT8_MAX) && (TBIT_TCB_PRIORITY == 8) */
+	BIT_FIELD_BOOL	actque : 1;		/* èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã° */
+	BIT_FIELD_BOOL	wupque : 1;		/* èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã° */
+	BIT_FIELD_BOOL	enatex : 1;		/* ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ */
+
+	TEXPTN			texptn;			/* ä¿çä¾å¤è¦å  */
+	WINFO			*p_winfo;		/* å¾
+ã¡æ
+å ±ãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+	TSKCTXB			tskctxb;		/* ã¿ã¹ã¯ã³ã³ãã­ã¹ããã­ãã¯ */
+} TCB;
+
+/*
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯
+ *
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯ï¼ï¼ãã­ã»ããµãã³ã³ãã­ã¹ããæã£ã¦ããã¿ã¹ã¯ï¼ã®
+ *  TCBãæããã¤ã³ã¿ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ããªãå ´åã¯NULLã«ããï¼
+ *
+ *  ãµã¼ãã¹ã³ã¼ã«ã®å¦çä¸­ã§ï¼èªã¿ã¹ã¯ï¼ãµã¼ãã¹ã³ã¼ã«ãå¼ã³åºããã¿ã¹
+ *  ã¯ï¼ã«é¢ããæ
+å ±ãåç
+§ããå ´åã¯p_runtskãä½¿ãï¼p_runtskãæ¸ãæã
+ *  ãã®ã¯ï¼ãã£ã¹ãããã£ï¼ã¨åæåå¦çï¼ã®ã¿ã§ããï¼
+ */
+extern TCB	*p_runtsk;
+
+/*
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯
+ *
+ *  å®è¡ã§ããã¿ã¹ã¯ã®ä¸­ã§æé«åªå
+é ä½ã®ã¿ã¹ã¯ã®TCBãæããã¤ã³ã¿ï¼å®
+ *  è¡ã§ããã¿ã¹ã¯ããªãå ´åã¯NULLã«ããï¼
+ *
+ *  ãã£ã¹ãããç¦æ­¢ç¶æ
+ãªã©ï¼ãã£ã¹ããããä¿çããã¦ããéã¯p_runtsk
+ *  ã¨ä¸è´ãã¦ããã¨ã¯éããªãï¼
+ */
+extern TCB	*p_schedtsk;
+
+/*
+ *  ãã£ã¹ãããï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³èµ·åè¦æ±ãã©ã°
+ *
+ *  å²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ï¼ãã£ã¹ãããã¾ãã¯
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åãè¦æ±ãããã¨ãç¤ºããã©ã°ï¼
+ */
+extern bool_t	reqflg;
+
+/*
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ãããã¨ãç¤ºããã©ã°ï¼
+ */
+extern bool_t	ipmflg;
+
+/*
+ *  ãã£ã¹ãããç¦æ­¢ç¶æ
+
+ *
+ *  ãã£ã¹ãããç¦æ­¢ç¶æ
+ã§ãããã¨ãç¤ºããã©ã°ï¼
+ */
+extern bool_t	disdsp;
+
+/*
+ *  ã¿ã¹ã¯ãã£ã¹ãããå¯è½ç¶æ
+
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ããï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããï¼ãã£
+ *  ã¹ãããç¦æ­¢ç¶æ
+ã§ãªãï¼ãã¨ãç¤ºããã©ã°ï¼
+ */
+extern bool_t	dspflg;
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼
+ *
+ *  ã¬ãã£ã­ã¥ã¼ã¯ï¼å®è¡ã§ããç¶æ
+ã®ã¿ã¹ã¯ãç®¡çããããã®ã­ã¥ã¼ã§ããï¼
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãç®¡çãã¦ããããï¼ã¬ãã£ï¼å®è¡å¯è½ï¼ã­ã¥ã¼ã¨ãã
+ *  åç§°ã¯æ­£ç¢ºã§ã¯ãªããï¼ã¬ãã£ã­ã¥ã¼ã¨ããåç§°ãå®çãã¦ããããï¼ã
+ *  ã®åç§°ã§å¼ã¶ãã¨ã«ããï¼
+ *
+ *  ã¬ãã£ã­ã¥ã¼ã¯ï¼åªå
+åº¦ãã¨ã®ã¿ã¹ã¯ã­ã¥ã¼ã§æ§æããã¦ããï¼ã¿ã¹ã¯ã®
+ *  TCBã¯ï¼è©²å½ããåªå
+åº¦ã®ã­ã¥ã¼ã«ç»é²ãããï¼
+ */
+extern QUEUE	ready_queue[TNUM_TPRI];
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼ãµã¼ãã®ããã®ãããããã
+ *
+ *  ã¬ãã£ã­ã¥ã¼ã®ãµã¼ããå¹çããè¡ãããã«ï¼åªå
+åº¦ãã¨ã®ã¿ã¹ã¯ã­ã¥ã¼
+ *  ã«ã¿ã¹ã¯ãå
+¥ã£ã¦ãããã©ãããç¤ºããããããããç¨æãã¦ããï¼ãã
+ *  ãããããä½¿ããã¨ã§ï¼ã¡ã¢ãªã¢ã¯ã»ã¹ã®åæ°ãæ¸ãããã¨ãã§ãããï¼
+ *  ãããæä½å½ä»¤ãå
+
+å®ãã¦ããªããã­ã»ããµã§ï¼åªå
+åº¦ã®æ®µéæ°ãå°ãªã
+ *  å ´åã«ã¯ï¼ããããããæä½ã®ãªã¼ãã¼ãããã®ããã«ï¼éã«å¹çãè½ã¡
+ *  ãå¯è½æ§ãããï¼
+ *
+ *  åªå
+åº¦ã16æ®µéã§ãããã¨ãä»®å®ãã¦ããããï¼uint16_tåã¨ãã¦ããï¼
+ */
+extern uint16_t	ready_primap;
+
+/*
+ *  ä½¿ç¨ãã¦ããªãTCBã®ãªã¹ã
+ */
+extern QUEUE	free_tcb;
+
+/*
+ *  ã¿ã¹ã¯IDã®æå¤§å¤ï¼kernel_cfg.cï¼
+ */
+extern const ID	tmax_tskid;
+extern const ID	tmax_stskid;
+
+/*
+ *  ã¿ã¹ã¯åæåãã­ãã¯ã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern const TINIB	tinib_table[];
+extern TINIB		atinib_table[];
+
+/*
+ *  ã¿ã¹ã¯çæé åºãã¼ãã«ï¼kernel_cfg.cï¼
+ */
+extern const ID	torder_table[];
+
+/*
+ *  TCBã®ã¨ãªã¢ï¼kernel_cfg.cï¼
+ */
+extern TCB	tcb_table[];
+
+/*
+ *  ã¿ã¹ã¯ã®æ°
+ */
+#define tnum_tsk	((uint_t)(tmax_tskid - TMIN_TSKID + 1))
+#define tnum_stsk	((uint_t)(tmax_stskid - TMIN_TSKID + 1))
+
+/*
+ *  ã¿ã¹ã¯IDããTCBãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_TSK(tskid)	((uint_t)((tskid) - TMIN_TSKID))
+#define get_tcb(tskid)		(&(tcb_table[INDEX_TSK(tskid)]))
+#define get_tcb_self(tskid)	((tskid) == TSK_SELF ? p_runtsk : get_tcb(tskid))
+
+/*
+ *  TCBããã¿ã¹ã¯IDãåãåºãããã®ãã¯ã­
+ */
+#define	TSKID(p_tcb)	((ID)(((p_tcb) - tcb_table) + TMIN_TSKID))
+
+/*
+ *  ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+extern void	initialize_task(void);
+
+/*
+ *  æé«åªå
+é ä½ã¿ã¹ã¯ã®ãµã¼ã
+ *
+ *  ã¬ãã£ã­ã¥ã¼ä¸­ã®æé«åªå
+é ä½ã®ã¿ã¹ã¯ããµã¼ããï¼ãã®TCBã¸ã®ãã¤ã³ã¿
+ *  ãè¿ãï¼ã¬ãã£ã­ã¥ã¼ãç©ºã®å ´åã«ã¯ï¼ãã®é¢æ°ãå¼ã³åºãã¦ã¯ãªããªãï¼
+ */
+extern TCB	*search_schedtsk(void);
+
+/*
+ *  å®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ã«æ¿å
+¥ããï¼ã¬ãã£ã­ã¥ã¼ã«æ¿å
+¥
+ *  ããã¿ã¹ã¯ã®åªå
+åº¦ãï¼æé«åªå
+é ä½ã®ã¿ã¹ã¯ã®åªå
+åº¦ãããé«ãå ´åã¯ï¼
+ *  æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ãï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããã°trueãè¿
+ *  ãï¼ããã§ãªãå ´åã¯falseãè¿ãï¼
+ */
+extern bool_t	make_runnable(TCB *p_tcb);
+
+/*
+ *  å®è¡ã§ããç¶æ
+ããä»ã®ç¶æ
+ã¸ã®é·ç§»
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ããåé¤ããï¼p_tcbã§æå®ãã
+ *  ã¿ã¹ã¯ãæé«åªå
+é ä½ã®ã¿ã¹ã¯ã§ãã£ãå ´åã«ã¯ï¼æé«åªå
+é ä½ã®ã¿ã¹ã¯
+ *  ãè¨­å®ããªããï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ã§ããã°trueãè¿ãï¼ããã§ãªã
+ *  å ´åã¯falseãè¿ãï¼ã¿ã¹ã¯ã®ç¶æ
+ã¯æ´æ°ããªãï¼
+ */
+extern bool_t	make_non_runnable(TCB *p_tcb);
+
+/*
+ *  ä¼æ­¢ç¶æ
+ã¸ã®é·ç§»
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã®ç¶æ
+ãä¼æ­¢ç¶æ
+ã¨ããï¼ã¾ãï¼ã¿ã¹ã¯ã®èµ·å
+ *  æã«åæåãã¹ãå¤æ°ã®åæåã¨ï¼ã¿ã¹ã¯èµ·åã®ããã®ã³ã³ãã­ã¹ããè¨­
+ *  å®ããï¼
+ */
+extern void	make_dormant(TCB *p_tcb);
+
+/*
+ *  ä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã®ç¶æ
+ãä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã¨ããï¼
+ *  å®è¡ã§ããç¶æ
+ã«é·ç§»ããã¿ã¹ã¯ã¸ã®ãã£ã¹ããããå¿
+è¦ãªå ´åã¯trueï¼
+ *  ããã§ãªãå ´åã¯falseãè¿ãï¼
+ */
+extern bool_t	make_active(TCB *p_tcb);
+
+/*
+ *  ã¿ã¹ã¯ã®åªå
+åº¦ã®å¤æ´
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã®åªå
+åº¦ãnewpriï¼å
+é¨è¡¨ç¾ï¼ã«å¤æ´ããï¼ã¾ãï¼
+ *  å¿
+è¦ãªå ´åã«ã¯æé«åªå
+é ä½ã®ã¿ã¹ã¯ãæ´æ°ãï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ã§
+ *  ããã°trueãè¿ãï¼ããã§ãªãå ´åã¯falseãè¿ãï¼
+ */
+extern bool_t	change_priority(TCB *p_tcb, uint_t newpri);
+
+/*
+ *  ã¬ãã£ã­ã¥ã¼ã®åè»¢
+ *
+ *  ã¬ãã£ã­ã¥ã¼ä¸­ã®ï¼priã§æå®ãããåªå
+åº¦ã®ã¿ã¹ã¯ã­ã¥ã¼ãåè»¢ãããï¼
+ *  ã¾ãï¼å¿
+è¦ãªå ´åã«ã¯æé«åªå
+é ä½ã®ã¿ã¹ã¯ãå¤æ´ãï¼ãã£ã¹ããããä¿
+ *  çããã¦ããªããã°trueãè¿ãï¼ããã§ãªãå ´åã¯falseãè¿ãï¼
+ */
+extern bool_t	rotate_ready_queue(uint_t pri);
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¼åºã
+ *
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãï¼å¼ã³åºãåã«ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ã®
+ *  ä¿çä¾å¤è¦å ãã¯ãªã¢ãï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã«ãï¼CPUã­ãã¯ãè§£
+ *  é¤ããï¼
+ *
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããæ»ãã¨ï¼ã¾ãCPUã­ãã¯ç¶æ
+ã«æ»ãï¼ãã®é
+ *  ã«ä¿çä¾å¤è¦å ã0ã§ãªããªã£ã¦ããã°ï¼åã³ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã
+ *  å¼ã³åºãï¼ä¿çä¾å¤è¦å ã0ã®å ´åã«ã¯ï¼ä¾å¤å¦çè¨±å¯ç¶æ
+ã«ãã¦é¢æ°ã
+ *  ããªã¿ã¼ã³ããï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ç¶æ
+ï¼enatexã
+ *  trueï¼ã§ï¼ä¿çä¾å¤è¦å ã0ã§ãªãï¼texptnã0ã§ãªãï¼å ´åã«å¼ã³åºãã
+ *  ã¨ãæ³å®ãã¦ããï¼ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã§å¼ã³åºããªããã°ãªã
+ *  ãªãï¼
+ */
+extern void	call_texrtn(void);
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·å
+ *
+ *  å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®èµ·åæ¡ä»¶ãæºããã¦ããã°ï¼
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãï¼CPUä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãæ
+ *  ã¯ï¼ä¸æçã«CPUã­ãã¯ãè§£é¤ããï¼
+ *
+ *  ãã®é¢æ°ã¯ï¼ãã£ã¹ãããã£ãå²è¾¼ã¿ãã³ãã©ï¼CPUä¾å¤ãã³ãã©ã®åºå£
+ *  å¦çããå¼ã³åºããããã¨ãæ³å®ãã¦ããï¼ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+
+ *  ã§å¼ã³åºããªããã°ãªããªãï¼
+ *
+ *  å®è¡å¹çãä¸ããããã«ï¼ãã®é¢æ°ãã¿ã¼ã²ããä¾å­é¨ã§è¨è¿°ãã¦ãããï¼
+ *  ãã®å ´åã«ã¯ï¼OMIT_CALLTEXããã¯ã­å®ç¾©ããï¼
+ */
+extern void	calltex(void);
+
+#endif /* TOPPERS_TASK_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task.trb	(revision 313)
@@ -0,0 +1,143 @@
+# -*- coding: utf-8 -*-
+#
+#   TOPPERS/ASP Kernel
+#       Toyohashi Open Platform for Embedded Real-Time Systems/
+#       Advanced Standard Profile Kernel
+# 
+#   Copyright (C) 2015 by FUJI SOFT INCORPORATED, JAPAN
+#   Copyright (C) 2015,2016 by Embedded and Real-Time Systems Laboratory
+#               Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   $Id: task.trb 668 2016-03-03 13:57:53Z ertl-hiro $
+# 
+
+#
+#		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®çæã¹ã¯ãªãã
+#
+
+class TaskObject < KernelObject
+  def initialize()
+    super("tsk", "task", "t")
+  end
+
+  def prepare(key, params)
+    # ãã©ã¡ã¼ã¿ãçç¥ãããæã®ããã©ã«ãå¤ã®è¨­å®
+    params[:stk] ||= "NULL"
+
+    # tskatrãç¡å¹ã®å ´åï¼E_RSATRï¼ï¼»NGKI1028ï¼½
+    #ï¼TA_ACTï¼TARGET_TSKATRä»¥å¤ã®ããããã»ããããã¦ããå ´åï¼
+    if (params[:tskatr] & ~($TA_ACT|$TARGET_TSKATR)) != 0
+      error_illegal_id("E_RSATR", params, :tskatr, :tskid)
+    end
+
+    # (TMIN_TPRI <= itskpri && itskpri <= TMAX_TPRI)ã§ãªãå ´åï¼»NGKI1034ï¼½
+    if !($TMIN_TPRI <= params[:itskpri] && params[:itskpri] <= $TMAX_TPRI)
+      error_illegal_id("E_PAR", params, :itskpri, :tskid)
+    end
+
+    # stkszãã¿ã¼ã²ããå®ç¾©ã®æå°å¤ï¼TARGET_MIN_STKSZï¼æªå®ç¾©ã®å ´åã¯1ï¼
+    # ãããå°ããå ´åï¼»NGKI1042ï¼½
+    if params[:stksz] < $TARGET_MIN_STKSZ
+      error_wrong_id("E_PAR", params, :stksz, :tskid, "too small")
+    end
+
+    # ã¹ã¿ãã¯é åã®è¨­å®ï¼»NGKI1041ï¼½
+    if params[:stk] == "NULL"
+      # ã¹ã¿ãã¯é åã®çæï¼»NGKI1049ï¼½
+      stkName = "_kernel_stack_#{params[:tskid]}"
+      params[:tinib_stksz] = AllocStack(stkName, params[:stksz])
+      params[:tinib_stk] = stkName
+    else
+      # stkszãã¹ã¿ãã¯é åã®ãµã¤ãºã¨ãã¦æ­£ãããªãå ´åï¼»NGKI1056ï¼½
+      if (params[:stksz] & ($CHECK_STKSZ_ALIGN - 1)) != 0
+        error_wrong_id("E_PAR", params, :stksz, :tskid, "not aligned")
+      end
+
+      params[:tinib_stksz] = params[:stksz]
+      params[:tinib_stk] = "(void *)(#{params[:stk]})"
+    end
+
+    # ã¿ã¹ã¯ä¾å¤ã®å¤ãè¨­å®
+    if $cfgData[:DEF_TEX].has_key?(key)
+      params[:texatr] ||= $cfgData[:DEF_TEX][key][:texatr]
+      params[:texrtn] ||= $cfgData[:DEF_TEX][key][:texrtn]
+    end
+    params[:texatr] ||= "TA_NULL"
+    params[:texrtn] ||= "NULL"
+  end
+
+  def generateInib(key, params)
+    if $USE_TSKINICTXB
+      tskinictxb = GenerateTskinictxb(key, params)
+    else
+      tskinictxb = "#{params[:tinib_stksz]}, #{params[:tinib_stk]}"
+    end
+    return("(#{params[:tskatr]}), (intptr_t)(#{params[:exinf]}), " \
+			"(TASK)(#{params[:task]}), INT_PRIORITY(#{params[:itskpri]}), " \
+			+ tskinictxb + ", #{params[:texatr]}, #{params[:texrtn]}")
+  end
+end
+
+#
+#  ã¿ã¹ã¯ç®¡çã«é¢ããæ
+å ±ã®çæ
+#
+$kernelCfgC.comment_header("Task Management Functions")
+if $cfgData[:CRE_TSK].size() == 0
+  error("no task is registered")
+end
+TaskObject.new.generate()
+
+# ã¿ã¹ã¯çæé åºãã¼ãã«ã®çæ
+$kernelCfgC.add("const ID _kernel_torder_table[TNUM_STSKID] = { ")
+$kernelCfgC.append("\t")
+$cfgData[:CRE_TSK].each_with_index do |(key, params), index|
+  $kernelCfgC.append(", ") if index > 0
+  $kernelCfgC.append("#{params[:tskid]}")
+end
+$kernelCfgC.add
+$kernelCfgC.add2("};")
Index: rubycfg_asp/trunk/asp_dcre/kernel/task_except.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task_except.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task_except.c	(revision 313)
@@ -0,0 +1,387 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ä¾å¤å¦çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_DEF_TEX_ENTER
+#define LOG_DEF_TEX_ENTER(tskid, pk_dtex)
+#endif /* LOG_DEF_TEX_ENTER */
+
+#ifndef LOG_DEF_TEX_LEAVE
+#define LOG_DEF_TEX_LEAVE(ercd)
+#endif /* LOG_DEF_TEX_LEAVE */
+
+#ifndef LOG_RAS_TEX_ENTER
+#define LOG_RAS_TEX_ENTER(tskid, rasptn)
+#endif /* LOG_RAS_TEX_ENTER */
+
+#ifndef LOG_RAS_TEX_LEAVE
+#define LOG_RAS_TEX_LEAVE(ercd)
+#endif /* LOG_RAS_TEX_LEAVE */
+
+#ifndef LOG_IRAS_TEX_ENTER
+#define LOG_IRAS_TEX_ENTER(tskid, rasptn)
+#endif /* LOG_IRAS_TEX_ENTER */
+
+#ifndef LOG_IRAS_TEX_LEAVE
+#define LOG_IRAS_TEX_LEAVE(ercd)
+#endif /* LOG_IRAS_TEX_LEAVE */
+
+#ifndef LOG_DIS_TEX_ENTER
+#define LOG_DIS_TEX_ENTER()
+#endif /* LOG_DIS_TEX_ENTER */
+
+#ifndef LOG_DIS_TEX_LEAVE
+#define LOG_DIS_TEX_LEAVE(ercd)
+#endif /* LOG_DIS_TEX_LEAVE */
+
+#ifndef LOG_ENA_TEX_ENTER
+#define LOG_ENA_TEX_ENTER()
+#endif /* LOG_ENA_TEX_ENTER */
+
+#ifndef LOG_ENA_TEX_LEAVE
+#define LOG_ENA_TEX_LEAVE(ercd)
+#endif /* LOG_ENA_TEX_LEAVE */
+
+#ifndef LOG_SNS_TEX_ENTER
+#define LOG_SNS_TEX_ENTER()
+#endif /* LOG_SNS_TEX_ENTER */
+
+#ifndef LOG_SNS_TEX_LEAVE
+#define LOG_SNS_TEX_LEAVE(state)
+#endif /* LOG_SNS_TEX_LEAVE */
+
+#ifndef LOG_REF_TEX_ENTER
+#define LOG_REF_TEX_ENTER(tskid, pk_rtex)
+#endif /* LOG_REF_TEX_ENTER */
+
+#ifndef LOG_REF_TEX_LEAVE
+#define LOG_REF_TEX_LEAVE(ercd, pk_rtex)
+#endif /* LOG_REF_TEX_LEAVE */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å®ç¾©
+ */
+#ifdef TOPPERS_def_tex
+
+ER_UINT
+def_tex(ID tskid, const T_DTEX *pk_dtex)
+{
+	TCB		*p_tcb;
+	TINIB	*p_tinib;
+	ER		ercd;
+
+	LOG_DEF_TEX_ENTER(tskid, pk_dtex);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	CHECK_RSATR(pk_dtex->texatr, TA_NULL);
+	if (pk_dtex->texrtn != NULL) {
+		CHECK_ALIGN_FUNC(pk_dtex->texrtn);
+		CHECK_NONNULL_FUNC(pk_dtex->texrtn);
+	}
+	p_tcb = get_tcb_self(tskid);
+	p_tinib = (TINIB *)(p_tcb->p_tinib);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSKID(p_tcb) > tmax_stskid) {
+		if (pk_dtex->texrtn != NULL) {
+			if (p_tinib->texrtn != NULL) {
+				ercd = E_OBJ;
+			}
+			else {
+				p_tinib->texatr = pk_dtex->texatr;
+				p_tinib->texrtn = pk_dtex->texrtn;
+				ercd = E_OK;
+			}
+		}
+		else {
+			if (p_tinib->texrtn != NULL) {
+				p_tinib->texrtn = NULL;
+				p_tcb->enatex = false;
+				p_tcb->texptn = 0U;
+				ercd = E_OK;
+			}
+			else {
+				ercd = E_OBJ;
+			}
+		}
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEF_TEX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_def_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±
+ */
+#ifdef TOPPERS_ras_tex
+
+ER
+ras_tex(ID tskid, TEXPTN rasptn)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_RAS_TEX_ENTER(tskid, rasptn);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	CHECK_PAR(rasptn != 0U);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat) || p_tcb->p_tinib->texrtn == NULL) {
+		ercd = E_OBJ;
+	}
+	else {
+		p_tcb->texptn |= rasptn;
+		if (p_tcb == p_runtsk && p_runtsk->enatex && ipmflg) {
+			call_texrtn();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_RAS_TEX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ras_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã®è¦æ±ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iras_tex
+
+ER
+iras_tex(ID tskid, TEXPTN rasptn)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_IRAS_TEX_ENTER(tskid, rasptn);
+	CHECK_INTCTX_UNL();
+	CHECK_TSKID(tskid);
+	CHECK_PAR(rasptn != 0U);
+	p_tcb = get_tcb(tskid);
+
+	i_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat) || p_tcb->p_tinib->texrtn == NULL) {
+		ercd = E_OBJ;
+	}
+	else {
+		p_tcb->texptn |= rasptn;
+		if (p_tcb == p_runtsk && p_runtsk->enatex && ipmflg) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IRAS_TEX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iras_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã®ç¦æ­¢
+ */
+#ifdef TOPPERS_dis_tex
+
+ER
+dis_tex(void)
+{
+	ER		ercd;
+
+	LOG_DIS_TEX_ENTER();
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	if (p_runtsk->p_tinib->texrtn == NULL) {
+		ercd = E_OBJ;
+	}
+	else {
+		p_runtsk->enatex = false;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DIS_TEX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_dis_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã®è¨±å¯
+ */
+#ifdef TOPPERS_ena_tex
+
+ER
+ena_tex(void)
+{
+	ER		ercd;
+
+	LOG_ENA_TEX_ENTER();
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	if (p_runtsk->p_tinib->texrtn == NULL) {
+		ercd = E_OBJ;
+	}
+	else {
+		p_runtsk->enatex = true;
+		if (p_runtsk->texptn != 0U && ipmflg) {
+			call_texrtn();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ENA_TEX_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ena_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ç¶æ
+ã®åç
+§
+ */
+#ifdef TOPPERS_sns_tex
+
+bool_t
+sns_tex(void)
+{
+	bool_t	state;
+
+	LOG_SNS_TEX_ENTER();
+	state = (p_runtsk != NULL && p_runtsk->enatex) ? false : true;
+	LOG_SNS_TEX_LEAVE(state);
+	return(state);
+}
+
+#endif /* TOPPERS_sns_tex */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_tex
+
+ER
+ref_tex(ID tskid, T_RTEX *pk_rtex)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_REF_TEX_ENTER(tskid, pk_rtex);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat) || p_tcb->p_tinib->texrtn == NULL) {
+		ercd = E_OBJ;
+	}
+	else {
+		pk_rtex->texstat = (p_tcb->enatex) ? TTEX_ENA : TTEX_DIS;
+		pk_rtex->pndptn = p_tcb->texptn;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_TEX_LEAVE(ercd, pk_rtex);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_tex */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task_manage.c	(revision 313)
@@ -0,0 +1,622 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2017 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ç®¡çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_ACRE_TSK_ENTER
+#define LOG_ACRE_TSK_ENTER(pk_ctsk)
+#endif /* LOG_ACRE_TSK_ENTER */
+
+#ifndef LOG_ACRE_TSK_LEAVE
+#define LOG_ACRE_TSK_LEAVE(ercd)
+#endif /* LOG_ACRE_TSK_LEAVE */
+
+#ifndef LOG_DEL_TSK_ENTER
+#define LOG_DEL_TSK_ENTER(tskid)
+#endif /* LOG_DEL_TSK_ENTER */
+
+#ifndef LOG_DEL_TSK_LEAVE
+#define LOG_DEL_TSK_LEAVE(ercd)
+#endif /* LOG_DEL_TSK_LEAVE */
+
+#ifndef LOG_ACT_TSK_ENTER
+#define LOG_ACT_TSK_ENTER(tskid)
+#endif /* LOG_ACT_TSK_ENTER */
+
+#ifndef LOG_ACT_TSK_LEAVE
+#define LOG_ACT_TSK_LEAVE(ercd)
+#endif /* LOG_ACT_TSK_LEAVE */
+
+#ifndef LOG_IACT_TSK_ENTER
+#define LOG_IACT_TSK_ENTER(tskid)
+#endif /* LOG_IACT_TSK_ENTER */
+
+#ifndef LOG_IACT_TSK_LEAVE
+#define LOG_IACT_TSK_LEAVE(ercd)
+#endif /* LOG_IACT_TSK_LEAVE */
+
+#ifndef LOG_CAN_ACT_ENTER
+#define LOG_CAN_ACT_ENTER(tskid)
+#endif /* LOG_CAN_ACT_ENTER */
+
+#ifndef LOG_CAN_ACT_LEAVE
+#define LOG_CAN_ACT_LEAVE(ercd)
+#endif /* LOG_CAN_ACT_LEAVE */
+
+#ifndef LOG_EXT_TSK_ENTER
+#define LOG_EXT_TSK_ENTER()
+#endif /* LOG_EXT_TSK_ENTER */
+
+#ifndef LOG_EXT_TSK_LEAVE
+#define LOG_EXT_TSK_LEAVE(ercd)
+#endif /* LOG_EXT_TSK_LEAVE */
+
+#ifndef LOG_TER_TSK_ENTER
+#define LOG_TER_TSK_ENTER(tskid)
+#endif /* LOG_TER_TSK_ENTER */
+
+#ifndef LOG_TER_TSK_LEAVE
+#define LOG_TER_TSK_LEAVE(ercd)
+#endif /* LOG_TER_TSK_LEAVE */
+
+#ifndef LOG_CHG_PRI_ENTER
+#define LOG_CHG_PRI_ENTER(tskid, tskpri)
+#endif /* LOG_CHG_PRI_ENTER */
+
+#ifndef LOG_CHG_PRI_LEAVE
+#define LOG_CHG_PRI_LEAVE(ercd)
+#endif /* LOG_CHG_PRI_LEAVE */
+
+#ifndef LOG_GET_PRI_ENTER
+#define LOG_GET_PRI_ENTER(tskid, p_tskpri)
+#endif /* LOG_GET_PRI_ENTER */
+
+#ifndef LOG_GET_PRI_LEAVE
+#define LOG_GET_PRI_LEAVE(ercd, tskpri)
+#endif /* LOG_GET_PRI_LEAVE */
+
+#ifndef LOG_GET_INF_ENTER
+#define LOG_GET_INF_ENTER(p_exinf)
+#endif /* LOG_GET_INF_ENTER */
+
+#ifndef LOG_GET_INF_LEAVE
+#define LOG_GET_INF_LEAVE(ercd, exinf)
+#endif /* LOG_GET_INF_LEAVE */
+
+/*
+ *  ã¿ã¹ã¯ã®çæ
+ */
+#ifdef TOPPERS_acre_tsk
+
+#ifndef TARGET_MIN_STKSZ
+#define TARGET_MIN_STKSZ	1U		/* æªå®ç¾©ã®å ´åã¯0ã§ãªããã¨ããã§ãã¯ */
+#endif /* TARGET_MIN_STKSZ */
+
+ER_UINT
+acre_tsk(const T_CTSK *pk_ctsk)
+{
+	TCB		*p_tcb;
+	TINIB	*p_tinib;
+	ATR		tskatr;
+	SIZE	stksz;
+	void	*stk;
+	ER		ercd;
+
+	LOG_ACRE_TSK_ENTER(pk_ctsk);
+	CHECK_TSKCTX_UNL();
+	CHECK_RSATR(pk_ctsk->tskatr, TA_ACT|TARGET_TSKATR);
+	CHECK_ALIGN_FUNC(pk_ctsk->task);
+	CHECK_NONNULL_FUNC(pk_ctsk->task);
+	CHECK_TPRI(pk_ctsk->itskpri);
+	CHECK_PAR(pk_ctsk->stksz >= TARGET_MIN_STKSZ);
+	if (pk_ctsk->stk != NULL) {
+		CHECK_ALIGN_STKSZ(pk_ctsk->stksz);
+		CHECK_ALIGN_STACK(pk_ctsk->stk);
+	}
+	tskatr = pk_ctsk->tskatr;
+	stksz = pk_ctsk->stksz;
+	stk = pk_ctsk->stk;
+
+	t_lock_cpu();
+	if (queue_empty(&free_tcb)) {
+		ercd = E_NOID;
+	}
+	else {
+		if (stk == NULL) {
+			stksz = ROUND_STK_T(stksz);
+			stk = kernel_malloc(stksz);
+			tskatr |= TA_MEMALLOC;
+		}
+		if (stk == NULL) {
+			ercd = E_NOMEM;
+		}
+		else {
+			p_tcb = ((TCB *) queue_delete_next(&free_tcb));
+			p_tinib = (TINIB *)(p_tcb->p_tinib);
+			p_tinib->tskatr = tskatr;
+			p_tinib->exinf = pk_ctsk->exinf;
+			p_tinib->task = pk_ctsk->task;
+			p_tinib->ipriority = INT_PRIORITY(pk_ctsk->itskpri);
+#ifdef USE_TSKINICTXB
+			init_tskinictxb(&(p_tinib->tskinictxb), stk, pk_ctsk);
+#else /* USE_TSKINICTXB */
+			p_tinib->stksz = stksz;
+			p_tinib->stk = stk;
+#endif /* USE_TSKINICTXB */
+			p_tinib->texatr = TA_NULL;
+			p_tinib->texrtn = NULL;
+
+			p_tcb->actque = false;
+			make_dormant(p_tcb);
+			if ((p_tcb->p_tinib->tskatr & TA_ACT) != 0U) {
+				if (make_active(p_tcb)) {
+					dispatch();
+				}
+			}
+			ercd = TSKID(p_tcb);
+		}
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACRE_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_acre_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®åé¤
+ */
+#ifdef TOPPERS_del_tsk
+
+ER
+del_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	TINIB	*p_tinib;
+	ER		ercd;
+
+	LOG_DEL_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSKID(p_tcb) > tmax_stskid && TSTAT_DORMANT(p_tcb->tstat)) {
+		p_tinib = (TINIB *)(p_tcb->p_tinib);
+#ifdef USE_TSKINICTXB
+		term_tskinictxb(&(p_tinib->tskinictxb));
+#else /* USE_TSKINICTXB */
+		if ((p_tinib->tskatr & TA_MEMALLOC) != 0U) {
+			kernel_free(p_tinib->stk);
+		}
+#endif /* USE_TSKINICTXB */
+		p_tinib->tskatr = TA_NOEXS;
+		queue_insert_prev(&free_tcb, &(p_tcb->task_queue));
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DEL_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_del_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®èµ·å
+ */
+#ifdef TOPPERS_act_tsk
+
+ER
+act_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_ACT_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		if (make_active(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (!(p_tcb->actque)) {
+		p_tcb->actque = true;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_ACT_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_act_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®èµ·åï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iact_tsk
+
+ER
+iact_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_IACT_TSK_ENTER(tskid);
+	CHECK_INTCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	i_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		if (make_active(p_tcb)) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	else if (!(p_tcb->actque)) {
+		p_tcb->actque = true;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IACT_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iact_tsk */
+
+/*
+ *  ã¿ã¹ã¯èµ·åè¦æ±ã®ã­ã£ã³ã»ã«
+ */
+#ifdef TOPPERS_can_act
+
+ER_UINT
+can_act(ID tskid)
+{
+	TCB		*p_tcb;
+	ER_UINT	ercd;
+
+	LOG_CAN_ACT_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		ercd = p_tcb->actque ? 1 : 0;
+		p_tcb->actque = false;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_CAN_ACT_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_can_act */
+
+/*
+ *  èªã¿ã¹ã¯ã®çµäº
+ */
+#ifdef TOPPERS_ext_tsk
+
+ER
+ext_tsk(void)
+{
+	ER		ercd;
+
+	LOG_EXT_TSK_ENTER();
+	CHECK_TSKCTX();
+
+	if (t_sense_lock()) {
+		/*
+		 *  CPUã­ãã¯ç¶æ
+ã§ext_tskãå¼ã°ããå ´åã¯ï¼CPUã­ãã¯ãè§£é¤ã
+		 *  ã¦ããã¿ã¹ã¯ãçµäºããï¼å®è£
+ä¸ã¯ï¼ãµã¼ãã¹ã³ã¼ã«å
+ã§ã®CPU
+		 *  ã­ãã¯ãçç¥ããã°ããã ãï¼
+		 */
+	}
+	else {
+		t_lock_cpu();
+	}
+	if (disdsp) {
+		/*
+		 *  ãã£ã¹ãããç¦æ­¢ç¶æ
+ã§ext_tskãå¼ã°ããå ´åã¯ï¼ãã£ã¹ãã
+		 *  ãè¨±å¯ç¶æ
+ã«ãã¦ããã¿ã¹ã¯ãçµäºããï¼
+		 */
+		disdsp = false;
+	}
+	if (!ipmflg) {
+		/*
+		 *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼IPMï¼ãTIPM_ENAALLä»¥å¤ã®ç¶æ
+ã§ext_tsk
+		 *  ãå¼ã°ããå ´åã¯ï¼IPMãTIPM_ENAALLã«ãã¦ããã¿ã¹ã¯ãçµäºã
+		 *  ãï¼
+		 */
+		t_set_ipm(TIPM_ENAALL);
+		ipmflg = true;
+	}
+	dspflg = true;
+
+	(void) make_non_runnable(p_runtsk);
+	make_dormant(p_runtsk);
+	if (p_runtsk->actque) {
+		p_runtsk->actque = false;
+		(void) make_active(p_runtsk);
+	}
+	exit_and_dispatch();
+	ercd = E_SYS;
+
+  error_exit:
+	LOG_EXT_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ext_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®å¼·å¶çµäº
+ */
+#ifdef TOPPERS_ter_tsk
+
+ER
+ter_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_TER_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+	CHECK_NONSELF(p_tcb);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		if (TSTAT_RUNNABLE(p_tcb->tstat)) {
+			/*
+			 *  p_tcbã¯èªã¿ã¹ã¯ã§ãªãããï¼ï¼ã·ã³ã°ã«ãã­ã»ããµã§ã¯ï¼å®
+			 *  è¡ç¶æ
+ã§ãªãï¼make_non_runnable(p_tcb)ã§ã¿ã¹ã¯ãã£ã¹ãã
+			 *  ããå¿
+è¦ã«ãªããã¨ã¯ãªãï¼
+			 */
+			(void) make_non_runnable(p_tcb);
+		}
+		else if (TSTAT_WAITING(p_tcb->tstat)) {
+			wait_dequeue_wobj(p_tcb);
+			wait_dequeue_tmevtb(p_tcb);
+		}
+		make_dormant(p_tcb);
+		if (p_tcb->actque) {
+			p_tcb->actque = false;
+			if (make_active(p_tcb)) {
+				dispatch();
+			}
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TER_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ter_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®ãã¼ã¹åªå
+åº¦ã®å¤æ´
+ */
+#ifdef TOPPERS_chg_pri
+
+ER
+chg_pri(ID tskid, PRI tskpri)
+{
+	TCB		*p_tcb;
+	uint_t	newpri;
+	ER		ercd;
+
+	LOG_CHG_PRI_ENTER(tskid, tskpri);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	CHECK_TPRI_INI(tskpri);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		newpri = (tskpri == TPRI_INI) ? p_tcb->p_tinib->ipriority
+											: INT_PRIORITY(tskpri);
+		if (change_priority(p_tcb, newpri)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_CHG_PRI_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_chg_pri */
+
+/*
+ *  ã¿ã¹ã¯åªå
+åº¦ã®åç
+§
+ */
+#ifdef TOPPERS_get_pri
+
+ER
+get_pri(ID tskid, PRI *p_tskpri)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_GET_PRI_ENTER(tskid, p_tskpri);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		*p_tskpri = EXT_TSKPRI(p_tcb->priority);
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_PRI_LEAVE(ercd, *p_tskpri);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_pri */
+
+/*
+ *  èªã¿ã¹ã¯ã®æ¡å¼µæ
+å ±ã®åç
+§
+ */
+#ifdef TOPPERS_get_inf
+
+ER
+get_inf(intptr_t *p_exinf)
+{
+	ER		ercd;
+
+	LOG_GET_INF_ENTER(p_exinf);
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	*p_exinf = p_runtsk->p_tinib->exinf;
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_INF_LEAVE(ercd, *p_exinf);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_inf */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task_refer.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task_refer.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task_refer.c	(revision 313)
@@ -0,0 +1,234 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2005-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ã®ç¶æ
+åç
+§æ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+#include "semaphore.h"
+#include "eventflag.h"
+#include "dataqueue.h"
+#include "pridataq.h"
+#include "mailbox.h"
+#include "mempfix.h"
+#include "time_event.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_REF_TSK_ENTER
+#define LOG_REF_TSK_ENTER(tskid, pk_rtsk)
+#endif /* LOG_REF_TSK_ENTER */
+
+#ifndef LOG_REF_TSK_LEAVE
+#define LOG_REF_TSK_LEAVE(ercd, pk_rtsk)
+#endif /* LOG_REF_TSK_LEAVE */
+
+/*
+ *  ã¿ã¹ã¯ã®ç¶æ
+åç
+§
+ */
+#ifdef TOPPERS_ref_tsk
+
+ER
+ref_tsk(ID tskid, T_RTSK *pk_rtsk)
+{
+	TCB		*p_tcb;
+	uint_t	tstat;
+	ER		ercd;
+
+	LOG_REF_TSK_ENTER(tskid, pk_rtsk);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else {
+		tstat = p_tcb->tstat;
+		if (TSTAT_DORMANT(tstat)) {
+			/*
+	 		 *  å¯¾è±¡ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ã®å ´å
+			 */
+			pk_rtsk->tskstat = TTS_DMT;
+		}
+		else {
+			/*
+	 		 *  ã¿ã¹ã¯ç¶æ
+ã®ååºã
+			 */
+			if (TSTAT_SUSPENDED(tstat)) {
+				if (TSTAT_WAITING(tstat)) {
+					pk_rtsk->tskstat = TTS_WAS;
+				}
+				else {
+					pk_rtsk->tskstat = TTS_SUS;
+				}
+			}
+			else if (TSTAT_WAITING(tstat)) {
+				pk_rtsk->tskstat = TTS_WAI;
+			}
+			else if (p_tcb == p_runtsk) {
+				pk_rtsk->tskstat = TTS_RUN;
+			}
+			else {
+				pk_rtsk->tskstat = TTS_RDY;
+			}
+
+			/*
+	 		 *  ç¾å¨åªå
+åº¦ã¨ãã¼ã¹åªå
+åº¦ã®ååºã
+			 */
+			pk_rtsk->tskpri = EXT_TSKPRI(p_tcb->priority);
+			pk_rtsk->tskbpri = EXT_TSKPRI(p_tcb->priority);
+
+			if (TSTAT_WAITING(tstat)) {
+				/*
+		 		 *  å¾
+ã¡è¦å ã¨å¾
+ã¡å¯¾è±¡ã®ãªãã¸ã§ã¯ãã®IDã®ååºã
+				 */
+				switch (tstat & TS_WAIT_MASK) {
+				case TS_WAIT_SLP:
+					pk_rtsk->tskwait = TTW_SLP;
+					break;
+				case TS_WAIT_DLY:
+					pk_rtsk->tskwait = TTW_DLY;
+					break;
+				case TS_WAIT_SEM:
+					pk_rtsk->tskwait = TTW_SEM;
+					pk_rtsk->wobjid = SEMID(((WINFO_SEM *)(p_tcb->p_winfo))
+																->p_semcb);
+					break;
+				case TS_WAIT_FLG:
+					pk_rtsk->tskwait = TTW_FLG;
+					pk_rtsk->wobjid = FLGID(((WINFO_FLG *)(p_tcb->p_winfo))
+																->p_flgcb);
+					break;
+				case TS_WAIT_SDTQ:
+					pk_rtsk->tskwait = TTW_SDTQ;
+					pk_rtsk->wobjid = DTQID(((WINFO_DTQ *)(p_tcb->p_winfo))
+																->p_dtqcb);
+					break;
+				case TS_WAIT_RDTQ:
+					pk_rtsk->tskwait = TTW_RDTQ;
+					pk_rtsk->wobjid = DTQID(((WINFO_DTQ *)(p_tcb->p_winfo))
+																->p_dtqcb);
+					break;
+				case TS_WAIT_SPDQ:
+					pk_rtsk->tskwait = TTW_SPDQ;
+					pk_rtsk->wobjid = PDQID(((WINFO_PDQ *)(p_tcb->p_winfo))
+																->p_pdqcb);
+					break;
+				case TS_WAIT_RPDQ:
+					pk_rtsk->tskwait = TTW_RPDQ;
+					pk_rtsk->wobjid = PDQID(((WINFO_PDQ *)(p_tcb->p_winfo))
+																->p_pdqcb);
+					break;
+				case TS_WAIT_MBX:
+					pk_rtsk->tskwait = TTW_MBX;
+					pk_rtsk->wobjid = MBXID(((WINFO_MBX *)(p_tcb->p_winfo))
+																->p_mbxcb);
+					break;
+				case TS_WAIT_MPF:
+					pk_rtsk->tskwait = TTW_MPF;
+					pk_rtsk->wobjid = MPFID(((WINFO_MPF *)(p_tcb->p_winfo))
+																->p_mpfcb);
+					break;
+				}
+
+				/*
+		 		 *  ã¿ã¤ã ã¢ã¦ãããã¾ã§ã®æéã®ååºã
+				 */
+				if (p_tcb->p_winfo->p_tmevtb != NULL) {
+					pk_rtsk->lefttmo
+							= (TMO) tmevt_lefttim(p_tcb->p_winfo->p_tmevtb);
+				}
+				else {
+					pk_rtsk->lefttmo = TMO_FEVR;
+				}
+			}
+
+			/*
+	 		 *  èµ·åºè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®ååºã
+			 */
+			pk_rtsk->wupcnt = p_tcb->wupque ? 1U : 0U;
+		}
+
+		/*
+		 *  èµ·åè¦æ±ã­ã¥ã¼ã¤ã³ã°æ°ã®ååºã
+		 */
+		pk_rtsk->actcnt = p_tcb->actque ? 1U : 0U;
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REF_TSK_LEAVE(ercd, pk_rtsk);
+	return(ercd);
+}
+
+#endif /* TOPPERS_ref_tsk */
Index: rubycfg_asp/trunk/asp_dcre/kernel/task_sync.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/task_sync.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/task_sync.c	(revision 313)
@@ -0,0 +1,592 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¹ã¯ä»å±åææ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "task.h"
+#include "wait.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_SLP_TSK_ENTER
+#define LOG_SLP_TSK_ENTER()
+#endif /* LOG_SLP_TSK_ENTER */
+
+#ifndef LOG_SLP_TSK_LEAVE
+#define LOG_SLP_TSK_LEAVE(ercd)
+#endif /* LOG_SLP_TSK_LEAVE */
+
+#ifndef LOG_TSLP_TSK_ENTER
+#define LOG_TSLP_TSK_ENTER(tmout)
+#endif /* LOG_TSLP_TSK_ENTER */
+
+#ifndef LOG_TSLP_TSK_LEAVE
+#define LOG_TSLP_TSK_LEAVE(ercd)
+#endif /* LOG_TSLP_TSK_LEAVE */
+
+#ifndef LOG_WUP_TSK_ENTER
+#define LOG_WUP_TSK_ENTER(tskid)
+#endif /* LOG_WUP_TSK_ENTER */
+
+#ifndef LOG_WUP_TSK_LEAVE
+#define LOG_WUP_TSK_LEAVE(ercd)
+#endif /* LOG_WUP_TSK_LEAVE */
+
+#ifndef LOG_IWUP_TSK_ENTER
+#define LOG_IWUP_TSK_ENTER(tskid)
+#endif /* LOG_IWUP_TSK_ENTER */
+
+#ifndef LOG_IWUP_TSK_LEAVE
+#define LOG_IWUP_TSK_LEAVE(ercd)
+#endif /* LOG_IWUP_TSK_LEAVE */
+
+#ifndef LOG_CAN_WUP_ENTER
+#define LOG_CAN_WUP_ENTER(tskid)
+#endif /* LOG_CAN_WUP_ENTER */
+
+#ifndef LOG_CAN_WUP_LEAVE
+#define LOG_CAN_WUP_LEAVE(ercd)
+#endif /* LOG_CAN_WUP_LEAVE */
+
+#ifndef LOG_REL_WAI_ENTER
+#define LOG_REL_WAI_ENTER(tskid)
+#endif /* LOG_REL_WAI_ENTER */
+
+#ifndef LOG_REL_WAI_LEAVE
+#define LOG_REL_WAI_LEAVE(ercd)
+#endif /* LOG_REL_WAI_LEAVE */
+
+#ifndef LOG_IREL_WAI_ENTER
+#define LOG_IREL_WAI_ENTER(tskid)
+#endif /* LOG_IREL_WAI_ENTER */
+
+#ifndef LOG_IREL_WAI_LEAVE
+#define LOG_IREL_WAI_LEAVE(ercd)
+#endif /* LOG_IREL_WAI_LEAVE */
+
+#ifndef LOG_SUS_TSK_ENTER
+#define LOG_SUS_TSK_ENTER(tskid)
+#endif /* LOG_SUS_TSK_ENTER */
+
+#ifndef LOG_SUS_TSK_LEAVE
+#define LOG_SUS_TSK_LEAVE(ercd)
+#endif /* LOG_SUS_TSK_LEAVE */
+
+#ifndef LOG_RSM_TSK_ENTER
+#define LOG_RSM_TSK_ENTER(tskid)
+#endif /* LOG_RSM_TSK_ENTER */
+
+#ifndef LOG_RSM_TSK_LEAVE
+#define LOG_RSM_TSK_LEAVE(ercd)
+#endif /* LOG_RSM_TSK_LEAVE */
+
+#ifndef LOG_DLY_TSK_ENTER
+#define LOG_DLY_TSK_ENTER(dlytim)
+#endif /* LOG_DLY_TSK_ENTER */
+
+#ifndef LOG_DLY_TSK_LEAVE
+#define LOG_DLY_TSK_LEAVE(ercd)
+#endif /* LOG_DLY_TSK_LEAVE */
+
+/*
+ *  èµ·åºå¾
+ã¡
+ */
+#ifdef TOPPERS_slp_tsk
+
+ER
+slp_tsk(void)
+{
+	WINFO	winfo;
+	ER		ercd;
+
+	LOG_SLP_TSK_ENTER();
+	CHECK_DISPATCH();
+
+	t_lock_cpu();
+	if (p_runtsk->wupque) {
+		p_runtsk->wupque = false;
+		ercd = E_OK;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SLP);
+		make_wait(&winfo);
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SLP_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_slp_tsk */
+
+/*
+ *  èµ·åºå¾
+ã¡ï¼ã¿ã¤ã ã¢ã¦ãããï¼
+ */
+#ifdef TOPPERS_tslp_tsk
+
+ER
+tslp_tsk(TMO tmout)
+{
+	WINFO	winfo;
+	TMEVTB	tmevtb;
+	ER		ercd;
+
+	LOG_TSLP_TSK_ENTER(tmout);
+	CHECK_DISPATCH();
+	CHECK_TMOUT(tmout);
+
+	t_lock_cpu();
+	if (p_runtsk->wupque) {
+		p_runtsk->wupque = false;
+		ercd = E_OK;
+	}
+	else if (tmout == TMO_POL) {
+		ercd = E_TMOUT;
+	}
+	else {
+		p_runtsk->tstat = (TS_WAITING | TS_WAIT_SLP);
+		make_wait_tmout(&winfo, &tmevtb, tmout);
+		LOG_TSKSTAT(p_runtsk);
+		dispatch();
+		ercd = winfo.wercd;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_TSLP_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_tslp_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®èµ·åº
+ */
+#ifdef TOPPERS_wup_tsk
+
+ER
+wup_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_WUP_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else if (TSTAT_WAIT_SLP(p_tcb->tstat)) {
+		if (wait_complete(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (!(p_tcb->wupque)) {
+		p_tcb->wupque = true;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_WUP_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_wup_tsk */
+
+/*
+ *  ã¿ã¹ã¯ã®èµ·åºï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_iwup_tsk
+
+ER
+iwup_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_IWUP_TSK_ENTER(tskid);
+	CHECK_INTCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	i_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else if (TSTAT_WAIT_SLP(p_tcb->tstat)) {
+		if (wait_complete(p_tcb)) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	else if (!(p_tcb->wupque)) {
+		p_tcb->wupque = true;
+		ercd = E_OK;
+	}
+	else {
+		ercd = E_QOVR;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IWUP_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_iwup_tsk */
+
+/*
+ *  ã¿ã¹ã¯èµ·åºè¦æ±ã®ã­ã£ã³ã»ã«
+ */
+#ifdef TOPPERS_can_wup
+
+ER_UINT
+can_wup(ID tskid)
+{
+	TCB		*p_tcb;
+	ER_UINT	ercd;
+
+	LOG_CAN_WUP_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		ercd = p_tcb->wupque ? 1 : 0;
+		p_tcb->wupque = false;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_CAN_WUP_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_can_wup */
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã®å¼·å¶è§£é¤
+ */
+#ifdef TOPPERS_rel_wai
+
+ER
+rel_wai(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_REL_WAI_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!TSTAT_WAITING(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		if (wait_release(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_REL_WAI_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rel_wai */
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã®å¼·å¶è§£é¤ï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ï¼
+ */
+#ifdef TOPPERS_irel_wai
+
+ER
+irel_wai(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_IREL_WAI_ENTER(tskid);
+	CHECK_INTCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	i_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!TSTAT_WAITING(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else {
+		if (wait_release(p_tcb)) {
+			reqflg = true;
+		}
+		ercd = E_OK;
+	}
+	i_unlock_cpu();
+
+  error_exit:
+	LOG_IREL_WAI_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_irel_wai */
+
+/*
+ *  å¼·å¶å¾
+ã¡ç¶æ
+ã¸ã®ç§»è¡
+ */
+#ifdef TOPPERS_sus_tsk
+
+ER
+sus_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_SUS_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID_SELF(tskid);
+	p_tcb = get_tcb_self(tskid);
+
+	t_lock_cpu();
+	if (p_tcb == p_runtsk && !dspflg) {
+		ercd = E_CTX;
+	}
+	else if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (TSTAT_DORMANT(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else if (TSTAT_RUNNABLE(p_tcb->tstat)) {
+		/*
+		 *  å®è¡ã§ããç¶æ
+ããå¼·å¶å¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat = TS_SUSPENDED;
+		LOG_TSKSTAT(p_tcb);
+		if (make_non_runnable(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else if (TSTAT_SUSPENDED(p_tcb->tstat)) {
+		ercd = E_QOVR;
+	}
+	else {
+		/*
+		 *  å¾
+ã¡ç¶æ
+ããäºéå¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat |= TS_SUSPENDED;
+		LOG_TSKSTAT(p_tcb);
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_SUS_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_sus_tsk */
+
+/*
+ *  å¼·å¶å¾
+ã¡ç¶æ
+ããã®åé
+ */
+#ifdef TOPPERS_rsm_tsk
+
+ER
+rsm_tsk(ID tskid)
+{
+	TCB		*p_tcb;
+	ER		ercd;
+
+	LOG_RSM_TSK_ENTER(tskid);
+	CHECK_TSKCTX_UNL();
+	CHECK_TSKID(tskid);
+	p_tcb = get_tcb(tskid);
+
+	t_lock_cpu();
+	if (p_tcb->p_tinib->tskatr == TA_NOEXS) {
+		ercd = E_NOEXS;
+	}
+	else if (!TSTAT_SUSPENDED(p_tcb->tstat)) {
+		ercd = E_OBJ;
+	}
+	else if (!TSTAT_WAITING(p_tcb->tstat)) {
+		/*
+		 *  å¼·å¶å¾
+ã¡ç¶æ
+ããå®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat = TS_RUNNABLE;
+		LOG_TSKSTAT(p_tcb);
+		if (make_runnable(p_tcb)) {
+			dispatch();
+		}
+		ercd = E_OK;
+	}
+	else {
+		/*
+		 *  äºéå¾
+ã¡ç¶æ
+ããå¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat &= ~TS_SUSPENDED;
+		LOG_TSKSTAT(p_tcb);
+		ercd = E_OK;
+	}
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_RSM_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_rsm_tsk */
+
+/*
+ *  èªã¿ã¹ã¯ã®é
+å»¶
+ */
+#ifdef TOPPERS_dly_tsk
+
+ER
+dly_tsk(RELTIM dlytim)
+{
+	WINFO	winfo;
+	TMEVTB	tmevtb;
+	ER		ercd;
+
+	LOG_DLY_TSK_ENTER(dlytim);
+	CHECK_DISPATCH();
+	CHECK_PAR(dlytim <= TMAX_RELTIM);
+
+	t_lock_cpu();
+	p_runtsk->tstat = (TS_WAITING | TS_WAIT_DLY);
+	(void) make_non_runnable(p_runtsk);
+	p_runtsk->p_winfo = &winfo;
+	winfo.p_tmevtb = &tmevtb;
+	tmevtb_enqueue(&tmevtb, dlytim, (CBACK) wait_tmout_ok, (void *) p_runtsk);
+	LOG_TSKSTAT(p_runtsk);
+	dispatch();
+	ercd = winfo.wercd;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_DLY_TSK_LEAVE(ercd);
+	return(ercd);
+}
+
+#endif /* TOPPERS_dly_tsk */
Index: rubycfg_asp/trunk/asp_dcre/kernel/time_event.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/time_event.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/time_event.c	(revision 313)
@@ -0,0 +1,437 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#include "kernel_impl.h"
+#include "time_event.h"
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãæä½ãã¯ã­
+ */
+#define	PARENT(index)		((index) >> 1)		/* è¦ªãã¼ããæ±ãã */
+#define	LCHILD(index)		((index) << 1)		/* å·¦ã®å­ãã¼ããæ±ãã */
+#define	TMEVT_NODE(index)	(tmevt_heap[(index) - 1])
+
+/*
+ *  ã¤ãã³ãçºçæå»æ¯è¼ãã¯ã­
+ *
+ *  ã¤ãã³ãçºçæå»ã¯ï¼min_timeããã®ç¸å¯¾å¤ã§æ¯è¼ããï¼ããªãã¡ï¼
+ *  min_timeãæå°å¤ï¼æãè¿ãæå»ï¼ï¼mit_time-1ãæå¤§å¤ï¼æãé ãæå»ï¼
+ *  ã¨ã¿ãªãã¦æ¯è¼ããï¼
+ */
+#define	EVTTIM_LT(t1, t2) (((t1) - min_time) < ((t2) - min_time))
+#define	EVTTIM_LE(t1, t2) (((t1) - min_time) <= ((t2) - min_time))
+
+#ifdef TOPPERS_tmeini
+
+/*
+ *  ç¾å¨ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ *
+ *  å³å¯ã«ã¯ï¼åã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ï¼
+ */
+EVTTIM	current_time;
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã§æå¹ãªæå°ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ */
+EVTTIM	min_time;
+
+/*
+ *  æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ */
+EVTTIM	next_time;
+
+/*
+ *  ã·ã¹ãã æå»ç©ç®ç¨å¤æ°ï¼åä½: 1/TIC_DENOããªç§ï¼
+ */
+#if TIC_DENO != 1U
+uint_t	next_subtime;
+#endif /* TIC_DENO != 1U */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã®æå¾ã®ä½¿ç¨é åã®ã¤ã³ããã¯ã¹
+ */
+uint_t	last_index;
+
+/*
+ *  ã¿ã¤ãã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+void
+initialize_tmevt(void)
+{
+	current_time = 0U;
+	min_time = 0U;
+	next_time = current_time + TIC_NUME / TIC_DENO;
+#if TIC_DENO != 1U
+	next_subtime = TIC_NUME % TIC_DENO;
+#endif /* TIC_DENO != 1U */
+	last_index = 0U;
+}
+
+#endif /* TOPPERS_tmeini */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
+¥ä½ç½®ãä¸åãã«æ¢ç´¢
+ *
+ *  æå»timeã«çºçããã¿ã¤ã ã¤ãã³ããæ¿å
+¥ãããã¼ããç©ºããããã«ï¼
+ *  ãã¼ãã®ä¸ã«åãã£ã¦ç©ºãã¼ããç§»åãããï¼ç§»ååã®ç©ºãã¼ãã®ä½ç½®ã
+ *  indexã«æ¸¡ãã¨ï¼ç§»åå¾ã®ç©ºãã¼ãã®ä½ç½®ï¼ããªãã¡æ¿å
+¥ä½ç½®ï¼ãè¿ãï¼
+ */
+#ifdef TOPPERS_tmeup
+
+uint_t
+tmevt_up(uint_t index, EVTTIM time)
+{
+	uint_t	parent;
+
+	while (index > 1) {
+		/*
+		 *  è¦ªãã¼ãã®ã¤ãã³ãçºçæå»ã®æ¹ãæ©ãï¼ã¾ãã¯åãï¼ãªãã°ï¼
+		 *  indexãæ¿å
+¥ä½ç½®ãªã®ã§ã«ã¼ããæããï¼
+		 */
+		parent = PARENT(index);
+		if (EVTTIM_LE(TMEVT_NODE(parent).time, time)) {
+			break;
+		}
+
+		/*
+		 *  è¦ªãã¼ããindexã®ä½ç½®ã«ç§»åãããï¼
+		 */
+		TMEVT_NODE(index) = TMEVT_NODE(parent);
+		TMEVT_NODE(index).p_tmevtb->index = index;
+
+		/*
+		 *  indexãè¦ªãã¼ãã®ä½ç½®ã«æ´æ°ï¼
+		 */
+		index = parent;
+	}
+	return(index);
+}
+
+#endif /* TOPPERS_tmeup */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
+¥ä½ç½®ãä¸åãã«æ¢ç´¢
+ *
+ *  æå»timeã«çºçããã¿ã¤ã ã¤ãã³ããæ¿å
+¥ãããã¼ããç©ºããããã«ï¼
+ *  ãã¼ãã®ä¸ã«åãã£ã¦ç©ºãã¼ããç§»åãããï¼ç§»ååã®ç©ºãã¼ãã®ä½ç½®ã 
+ *  indexã«æ¸¡ãã¨ï¼ç§»åå¾ã®ç©ºãã¼ãã®ä½ç½®ï¼ããªãã¡æ¿å
+¥ä½ç½®ï¼ãè¿ãï¼
+ */
+#ifdef TOPPERS_tmedown
+
+uint_t
+tmevt_down(uint_t index, EVTTIM time)
+{
+	uint_t	child;
+
+	while ((child = LCHILD(index)) <= last_index) {
+		/*
+		 *  å·¦å³ã®å­ãã¼ãã®ã¤ãã³ãçºçæå»ãæ¯è¼ãï¼æ©ãæ¹ã®å­ãã¼ã
+		 *  ã®ä½ç½®ãchildã«è¨­å®ããï¼ä»¥ä¸ã®å­ãã¼ãã¯ï¼ããã§é¸ã°ããæ¹
+		 *  ã®å­ãã¼ãã®ãã¨ï¼
+		 */
+		if (child + 1 <= last_index
+						&& EVTTIM_LT(TMEVT_NODE(child + 1).time,
+										TMEVT_NODE(child).time)) {
+			child = child + 1;
+		}
+
+		/*
+		 *  å­ãã¼ãã®ã¤ãã³ãçºçæå»ã®æ¹ãé
+ãï¼ã¾ãã¯åãï¼ãªãã°ï¼
+		 *  indexãæ¿å
+¥ä½ç½®ãªã®ã§ã«ã¼ããæããï¼
+		 */
+		if (EVTTIM_LE(time, TMEVT_NODE(child).time)) {
+			break;
+		}
+
+		/*
+		 *  å­ãã¼ããindexã®ä½ç½®ã«ç§»åãããï¼
+		 */
+		TMEVT_NODE(index) = TMEVT_NODE(child);
+		TMEVT_NODE(index).p_tmevtb->index = index;
+
+		/*
+		 *  indexãå­ãã¼ãã®ä½ç½®ã«æ´æ°ï¼
+		 */
+		index = child;
+	}
+	return(index);
+}
+
+#endif /* TOPPERS_tmedown */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã¸ã®ç»é²
+ *
+ *  p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãï¼timeã§æå®ããæéãçµ
+ *  éå¾ã«ã¤ãã³ããçºçããããã«ï¼ã¿ã¤ã ã¤ãã³ããã¼ãã«ç»é²ããï¼
+ */
+#ifdef TOPPERS_tmeins
+
+void
+tmevtb_insert(TMEVTB *p_tmevtb, EVTTIM time)
+{
+	uint_t	index;
+
+	/*
+	 *  last_indexãã¤ã³ã¯ãªã¡ã³ããï¼ããããä¸ã«æ¿å
+¥ä½ç½®ãæ¢ãï¼
+	 */
+	index = tmevt_up(++last_index, time);
+
+	/*
+	 *  ã¿ã¤ã ã¤ãã³ããindexã®ä½ç½®ã«æ¿å
+¥ããï¼
+	 */ 
+	TMEVT_NODE(index).time = time;
+	TMEVT_NODE(index).p_tmevtb = p_tmevtb;
+	p_tmevtb->index = index;
+}
+
+#endif /* TOPPERS_tmeins */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãããã®åé¤
+ */
+#ifdef TOPPERS_tmedel
+
+void
+tmevtb_delete(TMEVTB *p_tmevtb)
+{
+	uint_t	index = p_tmevtb->index;
+	uint_t	parent;
+	EVTTIM	event_time = TMEVT_NODE(last_index).time;
+
+	/*
+	 *  åé¤ã«ããã¿ã¤ã ã¤ãã³ããã¼ããç©ºã«ãªãå ´åã¯ä½ãããªãï¼
+	 */
+	if (--last_index == 0) {
+		return;
+	}
+
+	/*
+	 *  åé¤ãããã¼ãã®ä½ç½®ã«æå¾ã®ãã¼ãï¼last_index+1ã®ä½ç½®ã®ãã¼ãï¼
+	 *  ãæ¿å
+¥ãï¼ãããé©åãªä½ç½®ã¸ç§»åãããï¼å®éã«ã¯ï¼æå¾ã®ãã¼ã
+	 *  ãå®éã«æ¿å
+¥ããã®ã§ã¯ãªãï¼åé¤ãããã¼ãã®ä½ç½®ãç©ºãã¼ãã«ãª
+	 *  ãã®ã§ï¼æå¾ã®ãã¼ããæ¿å
+¥ãã¹ãä½ç½®ã¸åãã¦ç©ºãã¼ããç§»åãã
+	 *  ãï¼
+	 *  æå¾ã®ãã¼ãã®ã¤ãã³ãçºçæå»ãï¼åé¤ãããã¼ãã®è¦ªãã¼ãã®ã¤
+	 *  ãã³ãçºçæå»ããåã®å ´åã«ã¯ï¼ä¸ã«åãã£ã¦æ¿å
+¥ä½ç½®ãæ¢ãï¼ã
+	 *  ãã§ãªãå ´åã«ã¯ï¼ä¸ã«åãã£ã¦æ¢ãï¼
+	 */
+	if (index > 1 && EVTTIM_LT(event_time,
+								TMEVT_NODE(parent = PARENT(index)).time)) {
+		/*
+		 *  è¦ªãã¼ããindexã®ä½ç½®ã«ç§»åãããï¼
+		 */
+		TMEVT_NODE(index) = TMEVT_NODE(parent);
+		TMEVT_NODE(index).p_tmevtb->index = index;
+
+		/*
+		 *  åé¤ãããã¼ãã®è¦ªãã¼ãããä¸ã«åãã£ã¦æ¿å
+¥ä½ç½®ãæ¢ãï¼
+		 */
+		index = tmevt_up(parent, event_time);
+	}
+	else {
+		/*
+		 *  åé¤ãããã¼ãããä¸ã«åãã£ã¦æ¿å
+¥ä½ç½®ãæ¢ãï¼
+		 */
+		index = tmevt_down(index, event_time);
+	}
+
+	/*
+	 *  æå¾ã®ãã¼ããindexã®ä½ç½®ã«æ¿å
+¥ããï¼
+	 */ 
+	TMEVT_NODE(index) = TMEVT_NODE(last_index + 1);
+	TMEVT_NODE(index).p_tmevtb->index = index;
+}
+
+#endif /* TOPPERS_tmedel */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã®å
+é ­ã®ãã¼ãã®åé¤
+ */
+Inline void
+tmevtb_delete_top(void)
+{
+	uint_t	index;
+	EVTTIM	event_time = TMEVT_NODE(last_index).time;
+
+	/*
+	 *  åé¤ã«ããã¿ã¤ã ã¤ãã³ããã¼ããç©ºã«ãªãå ´åã¯ä½ãããªãï¼
+	 */
+	if (--last_index == 0) {
+		return;
+	}
+
+	/*
+	 *  ã«ã¼ããã¼ãã«æå¾ã®ãã¼ãï¼last_index + 1 ã®ä½ç½®ã®ãã¼ãï¼ã
+	 *  æ¿å
+¥ãï¼ãããé©åãªä½ç½®ã¸ç§»åãããï¼å®éã«ã¯ï¼æå¾ã®ãã¼ãã
+	 *  å®éã«æ¿å
+¥ããã®ã§ã¯ãªãï¼ã«ã¼ããã¼ããç©ºãã¼ãã«ãªãã®ã§ï¼æ
+	 *  å¾ã®ãã¼ããæ¿å
+¥ãã¹ãä½ç½®ã¸åãã¦ç©ºãã¼ããç§»åãããï¼
+	 */
+	index = tmevt_down(1, event_time);
+
+	/*
+	 *  æå¾ã®ãã¼ããindexã®ä½ç½®ã«æ¿å
+¥ããï¼
+	 */ 
+	TMEVT_NODE(index) = TMEVT_NODE(last_index + 1);
+	TMEVT_NODE(index).p_tmevtb->index = index;
+}
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãã¾ã§ã®æ®ãæéã®è¨ç®
+ */
+#ifdef TOPPERS_tmeltim
+
+RELTIM
+tmevt_lefttim(TMEVTB *p_tmevtb)
+{
+	EVTTIM	time;
+
+	time = TMEVT_NODE(p_tmevtb->index).time;
+	if (EVTTIM_LE(time, next_time)) {
+		/*
+		 *  æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã§å¦çãããå ´åã«ã¯0ãè¿ãï¼
+		 */
+		return(0U);
+	}
+	else {
+		return((RELTIM)(time - base_time));
+	}
+}
+
+#endif /* TOPPERS_tmeltim */
+
+/*
+ *  ã¿ã¤ã ãã£ãã¯ã®ä¾çµ¦
+ */
+#ifdef TOPPERS_sigtim
+
+void
+signal_time(void)
+{
+	TMEVTB	*p_tmevtb;
+
+	assert(sense_context());
+	assert(!i_sense_lock());
+
+	i_lock_cpu();
+
+	/*
+	 *  current_timeãæ´æ°ããï¼
+	 */
+	current_time = next_time;
+
+	/*
+	 *  next_timeï¼next_subtimeãæ´æ°ããï¼
+	 */
+#if TIC_DENO == 1U
+	next_time = current_time + TIC_NUME;
+#else /* TIC_DENO == 1U */
+	next_subtime += TIC_NUME % TIC_DENO;
+	next_time = current_time + TIC_NUME / TIC_DENO;
+	if (next_subtime >= TIC_DENO) {
+		next_subtime -= TIC_DENO;
+		next_time += 1U;
+	}
+#endif /* TIC_DENO == 1U */
+
+	/*
+	 *  current_timeããã¤ãã³ãçºçæå»ã®æ©ãï¼ã¾ãã¯åãï¼ã¿ã¤ã ã¤ã
+	 *  ã³ããï¼ã¿ã¤ã ã¤ãã³ããã¼ãããåé¤ãï¼ã³ã¼ã«ããã¯é¢æ°ãå¼ã³
+	 *  åºãï¼
+	 */
+	while (last_index > 0 && EVTTIM_LE(TMEVT_NODE(1).time, current_time)) {
+		p_tmevtb = TMEVT_NODE(1).p_tmevtb;
+		tmevtb_delete_top();
+		(*(p_tmevtb->callback))(p_tmevtb->arg);
+	}
+
+	/*
+	 *  min_timeãæ´æ°ããï¼
+	 */
+	min_time = current_time;
+
+	i_unlock_cpu();
+}
+
+#endif /* TOPPERS_sigtim */
Index: rubycfg_asp/trunk/asp_dcre/kernel/time_event.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/time_event.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/time_event.h	(revision 313)
@@ -0,0 +1,219 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#ifndef TOPPERS_TIME_EVENT_H
+#define TOPPERS_TIME_EVENT_H
+
+/*
+ *  ã¤ãã³ãçºçæå»ã®ãã¼ã¿åã®å®ç¾©
+ *
+ *  EVTTIMã¯ï¼RELTIMã¨ãã¦æå®ã§ããç¯å²ãããåºãç¯å²ãè¡¨ç¾ã§ããå¿
+è¦
+ *  ãããï¼Î¼ITRON4.0ä»æ§ã®ã¹ã¿ã³ãã¼ããã­ãã¡ã¤ã«ã§ã¯ï¼RELTIMã16ãã
+ *  ãä»¥ä¸ã§ãªããã°ãªããªãããï¼EVTTIMã¯17ãããä»¥ä¸ã§ãããã¨ãå¿
+è¦
+ *  ã§ããï¼ãã®ããï¼16ãããã«ãªãå ´åãããuint_tã§ã¯ãªãï¼ulong_tã«
+ *  å®ç¾©ãã¦ããï¼
+ */
+typedef ulong_t	EVTTIM;
+
+/* 
+ *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ãã¼ã¿åã®å®ç¾©
+ */
+typedef void	(*CBACK)(void *);	/* ã³ã¼ã«ããã¯é¢æ°ã®å */
+
+typedef struct time_event_block {
+	uint_t	index;			/* ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã§ã®ä½ç½® */
+	CBACK	callback;		/* ã³ã¼ã«ããã¯é¢æ° */
+	void	*arg;			/* ã³ã¼ã«ããã¯é¢æ°ã¸æ¸¡ãå¼æ° */
+} TMEVTB;
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã®ãã¼ãã®ãã¼ã¿åã®å®ç¾©
+ */
+typedef struct time_event_node {
+	EVTTIM	time;			/* ã¤ãã³ãçºçæå» */
+	TMEVTB	*p_tmevtb;		/* å¯¾å¿ããã¿ã¤ã ã¤ãã³ããã­ãã¯ */
+} TMEVTN;
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãï¼kernel_cfg.cï¼
+ */
+extern TMEVTN	tmevt_heap[];
+
+/*
+ *  ç¾å¨ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ *
+ *  ã·ã¹ãã èµ·åæã«0ã«åæåããï¼ä»¥éï¼ã¿ã¤ã ãã£ãã¯ãä¾çµ¦ãããåº¦ã«
+ *  åèª¿ã«å¢å ããï¼
+ */
+extern EVTTIM	current_time;
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãä¸­ã§æå¹ãªæå°ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ */
+extern EVTTIM	min_time;
+
+/*
+ *  æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ï¼åä½: 1ããªç§ï¼
+ */
+extern EVTTIM	next_time;
+
+/*
+ *  ã·ã¹ãã æå»ç©ç®ç¨å¤æ°ï¼åä½: 1/TIC_DENOããªç§ï¼
+ *
+ *  æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ã®ä¸ä½æ¡ãç¤ºãï¼ä¸ä½æ¡ã¯next_timeï¼ï¼
+ *  TIC_DENOã1ã®æã¯ï¼ä¸ä½æ¡ã¯å¸¸ã«0ã§ããããï¼ãã®å¤æ°ã¯å¿
+è¦ãªãï¼
+ */
+#if TIC_DENO != 1U
+extern uint_t	next_subtime;
+#endif /* TIC_DENO != 1U */
+
+/*
+ *  ç¸å¯¾æéã®åºæºæå»ï¼åä½: 1ããªç§ï¼
+ *
+ *  æ¬¡ã®ã¿ã¤ã ãã£ãã¯ã®ã·ã¹ãã æå»ãåãä¸ããæå»ï¼TIC_DENOã1ã®æ
+ *  ã¯ï¼next_timeã«ä¸è´ããï¼
+ */
+#if TIC_DENO == 1U
+#define	base_time	(next_time)
+#else /* TIC_DENO == 1U */
+#define	base_time	(next_time + (next_subtime > 0U ? 1U : 0U))
+#endif /* TIC_DENO == 1U */
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã®æå¾ã®ä½¿ç¨é åã®ã¤ã³ããã¯ã¹
+ *
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã«ç»é²ããã¦ããã¿ã¤ã ã¤ãã³ãã®æ°ã«ä¸è´ããï¼
+ */
+extern uint_t	last_index;
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãç®¡çã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+extern void	initialize_tmevt(void);
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãã®æ¿å
+¥ä½ç½®ã®æ¢ç´¢
+ */
+extern uint_t	tmevt_up(uint_t index, EVTTIM time);
+extern uint_t	tmevt_down(uint_t index, EVTTIM time);
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã¼ãã¸ã®ç»é²ã¨åé¤
+ */
+extern void	tmevtb_insert(TMEVTB *p_tmevtb, EVTTIM time);
+extern void	tmevtb_delete(TMEVTB *p_tmevtb);
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²ï¼ç¸å¯¾æéæå®ï¼
+ *
+ *  timeã§æå®ããç¸å¯¾æéãçµéããå¾ã«ï¼argãå¼æ°ã¨ãã¦callbackãå¼
+ *  ã³åºãããããã«ï¼p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ã
+ *  ãï¼
+ *  
+ */
+Inline void
+tmevtb_enqueue(TMEVTB *p_tmevtb, RELTIM time, CBACK callback, void *arg)
+{
+	assert(time <= TMAX_RELTIM);
+
+	p_tmevtb->callback = callback;
+	p_tmevtb->arg = arg;
+	tmevtb_insert(p_tmevtb, base_time + time);
+}
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²ï¼ã¤ãã³ãçºçæå»æå®ï¼
+ *
+ *  timeã§æå®ããã¤ãã³ãçºçæå»ã«ï¼argãå¼æ°ã¨ãã¦callbackãå¼ã³åº
+ *  ãããããã«ï¼p_tmevtbã§æå®ããã¿ã¤ã ã¤ãã³ããã­ãã¯ãç»é²ããï¼
+ */
+Inline void
+tmevtb_enqueue_evttim(TMEVTB *p_tmevtb, EVTTIM time, CBACK callback, void *arg)
+{
+	p_tmevtb->callback = callback;
+	p_tmevtb->arg = arg;
+	tmevtb_insert(p_tmevtb, time);
+}
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²è§£é¤
+ */
+Inline void
+tmevtb_dequeue(TMEVTB *p_tmevtb)
+{
+	tmevtb_delete(p_tmevtb);
+}
+
+/*
+ *  ã¿ã¤ã ã¤ãã³ãã¾ã§ã®æ®ãæéã®è¨ç®
+ */
+extern RELTIM	tmevt_lefttim(TMEVTB *p_tmevtb);
+
+/*
+ *  ã¿ã¤ã ãã£ãã¯ã®ä¾çµ¦
+ */
+extern void	signal_time(void);
+
+#endif /* TOPPERS_TIME_EVENT_H */
Index: rubycfg_asp/trunk/asp_dcre/kernel/time_manage.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/time_manage.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/time_manage.c	(revision 313)
@@ -0,0 +1,161 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã·ã¹ãã æå»ç®¡çæ©è½
+ */
+
+#include "kernel_impl.h"
+#include "check.h"
+#include "time_event.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_GET_TIM_ENTER
+#define LOG_GET_TIM_ENTER(p_systim)
+#endif /* LOG_GET_TIM_ENTER */
+
+#ifndef LOG_GET_TIM_LEAVE
+#define LOG_GET_TIM_LEAVE(ercd, systim)
+#endif /* LOG_GET_TIM_LEAVE */
+
+#ifndef LOG_GET_UTM_ENTER
+#define LOG_GET_UTM_ENTER(p_sysutm)
+#endif /* LOG_GET_UTM_ENTER */
+
+#ifndef LOG_GET_UTM_LEAVE
+#define LOG_GET_UTM_LEAVE(ercd, sysutm)
+#endif /* LOG_GET_UTM_LEAVE */
+
+/*
+ *  ã·ã¹ãã æå»ã®åç
+§
+ */
+#ifdef TOPPERS_get_tim
+
+ER
+get_tim(SYSTIM *p_systim)
+{
+	ER		ercd;
+
+	LOG_GET_TIM_ENTER(p_systim);
+	CHECK_TSKCTX_UNL();
+
+	t_lock_cpu();
+	*p_systim = current_time;
+	ercd = E_OK;
+	t_unlock_cpu();
+
+  error_exit:
+	LOG_GET_TIM_LEAVE(ercd, *p_systim);
+	return(ercd);
+}
+
+#endif /* TOPPERS_get_tim */
+
+/*
+ *  æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã®åç
+§
+ */
+#ifdef TOPPERS_get_utm
+#ifdef TOPPERS_SUPPORT_GET_UTM
+#ifndef OMIT_GET_UTM
+#include "target_timer.h"
+
+ER
+get_utm(SYSUTM *p_sysutm)
+{
+	SYSUTM	utime;
+	SYSTIM	time;
+#if TIC_DENO != 1
+	uint_t	subtime;
+#endif /* TIC_DENO != 1 */
+	CLOCK	clock1, clock2;
+	bool_t	ireq;
+	SIL_PRE_LOC;
+
+	LOG_GET_UTM_ENTER(p_sysutm);
+
+	SIL_LOC_INT();
+	time = next_time;
+#if TIC_DENO != 1
+	subtime = next_subtime;
+#endif /* TIC_DENO != 1 */
+	clock1 = target_timer_get_current();
+	ireq = target_timer_probe_int();
+	clock2 = target_timer_get_current();
+	SIL_UNL_INT();
+
+	utime = ((SYSUTM) time) * 1000U;
+#if TIC_DENO != 1
+	utime += subtime * 1000U / TIC_DENO;
+#endif /* TIC_DENO != 1 */
+
+	if (!ireq || clock1 > clock2) {
+		utime -= TIC_NUME * 1000U / TIC_DENO;
+	}
+	utime += TO_USEC(clock1);
+	*p_sysutm = utime;
+
+	LOG_GET_UTM_LEAVE(E_OK, *p_sysutm);
+	return(E_OK);
+}
+
+#endif /* OMIT_GET_UTM */
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+#endif /* TOPPERS_get_utm */
Index: rubycfg_asp/trunk/asp_dcre/kernel/wait.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/wait.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/wait.c	(revision 313)
@@ -0,0 +1,247 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å¾
+ã¡ç¶æ
+ç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#include "kernel_impl.h"
+#include "wait.h"
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã¸ã®é·ç§»ï¼ã¿ã¤ã ã¢ã¦ãæå®ï¼
+ */
+#ifdef TOPPERS_waimake
+
+void
+make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout)
+{
+	(void) make_non_runnable(p_runtsk);
+	p_runtsk->p_winfo = p_winfo;
+	if (tmout > 0) {
+		p_winfo->p_tmevtb = p_tmevtb;
+		tmevtb_enqueue(p_tmevtb, (RELTIM) tmout,
+						(CBACK) wait_tmout, (void *) p_runtsk);
+	}
+	else {
+		assert(tmout == TMO_FEVR);
+		p_winfo->p_tmevtb = NULL;
+	}
+}
+
+#endif /* TOPPERS_waimake */
+
+/*
+ *  å¾
+ã¡è§£é¤
+ */
+#ifdef TOPPERS_waicmp
+
+bool_t
+wait_complete(TCB *p_tcb)
+{
+	wait_dequeue_tmevtb(p_tcb);
+	p_tcb->p_winfo->wercd = E_OK;
+	return(make_non_wait(p_tcb));
+}
+
+#endif /* TOPPERS_waicmp */
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãã«ä¼´ãå¾
+ã¡è§£é¤
+ */
+#ifdef TOPPERS_waitmo
+
+void
+wait_tmout(TCB *p_tcb)
+{
+	wait_dequeue_wobj(p_tcb);
+	p_tcb->p_winfo->wercd = E_TMOUT;
+	if (make_non_wait(p_tcb)) {
+		reqflg = true;
+	}
+
+	/*
+	 *  ããã§åªå
+åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããï¼
+	 */
+	i_unlock_cpu();
+	i_lock_cpu();
+}
+
+#endif /* TOPPERS_waitmo */
+#ifdef TOPPERS_waitmook
+
+void
+wait_tmout_ok(TCB *p_tcb)
+{
+	p_tcb->p_winfo->wercd = E_OK;
+	if (make_non_wait(p_tcb)) {
+		reqflg = true;
+	}
+
+	/*
+	 *  ããã§åªå
+åº¦ã®é«ãå²è¾¼ã¿ãåãä»ããï¼
+	 */
+	i_unlock_cpu();
+	i_lock_cpu();
+}
+
+#endif /* TOPPERS_waitmook */
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã®å¼·å¶è§£é¤
+ */
+#ifdef TOPPERS_wairel
+
+bool_t
+wait_release(TCB *p_tcb)
+{
+	wait_dequeue_wobj(p_tcb);
+	wait_dequeue_tmevtb(p_tcb);
+	p_tcb->p_winfo->wercd = E_RLWAI;
+	return(make_non_wait(p_tcb));
+}
+
+#endif /* TOPPERS_wairel */
+
+/*
+ *  å®è¡ä¸­ã®ã¿ã¹ã¯ã®åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã¸ã®æ¿å
+¥
+ *
+ *  å®è¡ä¸­ã®ã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã¸æ¿å
+¥ããï¼ãª
+ *  ãã¸ã§ã¯ãã®å±æ§ã«å¿ãã¦ï¼FIFOé ã¾ãã¯ã¿ã¹ã¯åªå
+åº¦é ã§æ¿å
+¥ããï¼
+ */
+Inline void
+wobj_queue_insert(WOBJCB *p_wobjcb)
+{
+	if ((p_wobjcb->p_wobjinib->wobjatr & TA_TPRI) != 0U) {
+		queue_insert_tpri(&(p_wobjcb->wait_queue), p_runtsk);
+	}
+	else {
+		queue_insert_prev(&(p_wobjcb->wait_queue), &(p_runtsk->task_queue));
+	}
+}
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+ */
+#ifdef TOPPERS_wobjwai
+
+void
+wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo_wobj)
+{
+	make_wait(&(p_winfo_wobj->winfo));
+	wobj_queue_insert(p_wobjcb);
+	p_winfo_wobj->p_wobjcb = p_wobjcb;
+	LOG_TSKSTAT(p_runtsk);
+}
+
+#endif /* TOPPERS_wobjwai */
+#ifdef TOPPERS_wobjwaitmo
+
+void
+wobj_make_wait_tmout(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo_wobj,
+								TMEVTB *p_tmevtb, TMO tmout)
+{
+	make_wait_tmout(&(p_winfo_wobj->winfo), p_tmevtb, tmout);
+	wobj_queue_insert(p_wobjcb);
+	p_winfo_wobj->p_wobjcb = p_wobjcb;
+	LOG_TSKSTAT(p_runtsk);
+}
+
+#endif /* TOPPERS_wobjwaitmo */
+
+/*
+ *  å¾
+ã¡ã­ã¥ã¼ã®åæå
+ */
+#ifdef TOPPERS_iniwque
+
+bool_t
+init_wait_queue(QUEUE *p_wait_queue)
+{
+	TCB		*p_tcb;
+	bool_t	dspreq = false;
+
+	while (!queue_empty(p_wait_queue)) {
+		p_tcb = (TCB *) queue_delete_next(p_wait_queue);
+		wait_dequeue_tmevtb(p_tcb);
+		p_tcb->p_winfo->wercd = E_DLT;
+		if (make_non_wait(p_tcb)) {
+			dspreq = true;
+		}
+	}
+	return(dspreq);
+}
+
+#endif /* TOPPERS_iniwque */
Index: rubycfg_asp/trunk/asp_dcre/kernel/wait.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/kernel/wait.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/kernel/wait.h	(revision 313)
@@ -0,0 +1,412 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å¾
+ã¡ç¶æ
+ç®¡çã¢ã¸ã¥ã¼ã«
+ */
+
+#ifndef TOPPERS_WAIT_H
+#define TOPPERS_WAIT_H
+
+#include "task.h"
+#include "time_event.h"
+
+/*
+ *  ã¿ã¹ã¯ã®åªå
+åº¦é ã®å¾
+ã¡ã­ã¥ã¼ã¸ã®æ¿å
+¥
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼ã¿ã¹ã¯åªå
+åº¦é ã®ã­ã¥ã¼p_queueã«æ¿å
+¥ããï¼
+ *  ã­ã¥ã¼ã®ä¸­ã«åãåªå
+åº¦ã®ã¿ã¹ã¯ãããå ´åã«ã¯ï¼ãã®æå¾ã«æ¿å
+¥ããï¼
+ */
+Inline void
+queue_insert_tpri(QUEUE *p_queue, TCB *p_tcb)
+{
+	QUEUE	*p_entry;
+	uint_t	pri = p_tcb->priority;
+
+	for (p_entry = p_queue->p_next; p_entry != p_queue;
+										p_entry = p_entry->p_next) {
+		if (pri < ((TCB *) p_entry)->priority) {
+			break;
+		}
+	}
+	queue_insert_prev(p_entry, &(p_tcb->task_queue));
+}
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+ *
+ *  å®è¡ä¸­ã®ã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ã«é·ç§»ãããï¼å
+·ä½çã«ã¯ï¼å®è¡ä¸­ã®ã¿ã¹ã¯ã
+ *  ã¬ãã£ã­ã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼ã«ãï¼WINFOã®p_tmevtbãã£ã¼
+ *  ã«ããè¨­å®ããï¼
+ */
+Inline void
+make_wait(WINFO *p_winfo)
+{
+	(void) make_non_runnable(p_runtsk);
+	p_runtsk->p_winfo = p_winfo;
+	p_winfo->p_tmevtb = NULL;
+}
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã¸ã®é·ç§»ï¼ã¿ã¤ã ã¢ã¦ãæå®ï¼
+ *
+ *  å®è¡ä¸­ã®ã¿ã¹ã¯ãï¼ã¿ã¤ã ã¢ã¦ãæå®ä»ãã§å¾
+ã¡ç¶æ
+ã«é·ç§»ãããï¼å
+·ä½
+ *  çã«ã¯ï¼å®è¡ä¸­ã®ã¿ã¹ã¯ãã¬ãã£ã­ã¥ã¼ããåé¤ãï¼TCBã®p_winfoãã£ã¼
+ *  ã«ãï¼WINFOã®p_tmevtbãã£ã¼ã«ããè¨­å®ããï¼ã¾ãï¼ã¿ã¤ã ã¤ãã³ãã
+ *  ã­ãã¯ãç»é²ããï¼
+ */
+extern void	make_wait_tmout(WINFO *p_winfo, TMEVTB *p_tmevtb, TMO tmout);
+
+/*
+ *  å¾
+ã¡è§£é¤ã®ããã®ã¿ã¹ã¯ç¶æ
+ã®æ´æ°
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾
+ã¡è§£é¤ããããã¿ã¹ã¯ç¶æ
+ãæ´æ°ããï¼
+ *  å¾
+ã¡è§£é¤ããã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«ãªãå ´åã¯ï¼ã¬ãã£ã­ã¥ã¼ã«ã¤ãª
+ *  ãï¼ã¾ãï¼ãã£ã¹ããããå¿
+è¦ãªå ´åã«ã¯trueãè¿ãï¼
+ */
+Inline bool_t
+make_non_wait(TCB *p_tcb)
+{
+	assert(TSTAT_WAITING(p_tcb->tstat));
+
+	if (!TSTAT_SUSPENDED(p_tcb->tstat)) {
+		/*
+		 *  å¾
+ã¡ç¶æ
+ããå®è¡ã§ããç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat = TS_RUNNABLE;
+		LOG_TSKSTAT(p_tcb);
+		return(make_runnable(p_tcb));
+	}
+	else {
+		/*
+		 *  äºéå¾
+ã¡ç¶æ
+ããå¼·å¶å¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+		 */
+		p_tcb->tstat = TS_SUSPENDED;
+		LOG_TSKSTAT(p_tcb);
+		return(false);
+	}
+}
+
+/*
+ *  ãªãã¸ã§ã¯ãå¾
+ã¡ã­ã¥ã¼ããã®åé¤
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼ã«ã¤
+ *  ãªããã¦ããã°ï¼å¾
+ã¡ã­ã¥ã¼ããåé¤ããï¼
+ */
+Inline void
+wait_dequeue_wobj(TCB *p_tcb)
+{
+	if (TSTAT_WAIT_WOBJ(p_tcb->tstat)) {
+		queue_delete(&(p_tcb->task_queue));
+	}
+}
+
+/*
+ *  æéå¾
+ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²è§£é¤
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã«å¯¾ãã¦ï¼æéå¾
+ã¡ã®ããã®ã¿ã¤ã ã¤ãã³ãã
+ *  ã­ãã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼
+ */
+Inline void
+wait_dequeue_tmevtb(TCB *p_tcb)
+{
+	if (p_tcb->p_winfo->p_tmevtb != NULL) {
+		tmevtb_dequeue(p_tcb->p_winfo->p_tmevtb);
+	}
+}
+
+/*
+ *  å¾
+ã¡è§£é¤
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã®å¾
+ã¡ç¶æ
+ãè§£é¤ããï¼å
+·ä½çã«ã¯ï¼ã¿ã¤ã ã¤
+ *  ãã³ããã­ãã¯ãç»é²ããã¦ããã°ï¼ãããç»é²è§£é¤ããï¼ã¾ãï¼ã¿ã¹ã¯
+ *  ç¶æ
+ãæ´æ°ãï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿å¤ãE_OKã¨ããï¼å¾
+ã¡ã­ã¥ã¼
+ *  ããã®åé¤ã¯è¡ããªãï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã¸ã®ãã£ã¹ããããå¿
+è¦ãªå ´
+ *  åã«ã¯trueãè¿ãï¼
+ */
+extern bool_t	wait_complete(TCB *p_tcb);
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãã«ä¼´ãå¾
+ã¡è§£é¤
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ãï¼å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããã°å¾
+ã¡ã­ã¥ã¼
+ *  ããåé¤ãï¼ã¿ã¹ã¯ç¶æ
+ãæ´æ°ããï¼ã¾ãï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿
+ *  å¤ãï¼wait_tmoutã§ã¯E_TMOUTï¼wait_tmout_okã§ã¯E_OKã¨ããï¼å¾
+ã¡è§£é¤
+ *  ããã¿ã¹ã¯ã¸ã®ãã£ã¹ããããå¿
+è¦ãªæã¯ï¼reqflgãtrueã«ããï¼
+ *
+ *  wait_tmout_okã¯ï¼dly_tskã§ä½¿ãããã®ãã®ã§ï¼å¾
+ã¡ã­ã¥ã¼ããåé¤ãã
+ *  å¦çãè¡ããªãï¼
+ *
+ *  ãããã®é¢æ°ãï¼ã¿ã¤ã ã¤ãã³ãã®ã³ã¼ã«ããã¯é¢æ°ã¨ãã¦ç¨ããããã®
+ *  ãã®ã§ï¼å²è¾¼ã¿ãã³ãã©ããå¼ã³åºããããã¨ãæ³å®ãã¦ããï¼
+ */
+extern void	wait_tmout(TCB *p_tcb);
+extern void	wait_tmout_ok(TCB *p_tcb);
+
+/*
+ *  å¾
+ã¡ç¶æ
+ã®å¼·å¶è§£é¤
+ *
+ *  p_tcbã§æå®ãããã¿ã¹ã¯ã®å¾
+ã¡ç¶æ
+ãå¼·å¶çã«è§£é¤ããï¼å
+·ä½çã«ã¯ï¼
+ *  ã¿ã¹ã¯ãå¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããã°å¾
+ã¡ã­ã¥ã¼ããåé¤ãï¼ã¿ã¤ã ã¤
+ *  ãã³ããã­ãã¯ãç»é²ããã¦ããã°ãããç»é²è§£é¤ããï¼ã¾ãï¼ã¿ã¹ã¯ã®
+ *  ç¶æ
+ãæ´æ°ãï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ããã®è¿å¤ãE_RLWAIã¨ããï¼ã¾ãï¼
+ *  å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã¸ã®ãã£ã¹ããããå¿
+è¦ãªå ´åã«ã¯trueãè¿ãï¼
+ */
+extern bool_t	wait_release(TCB *p_tcb);
+
+/*
+ *  å¾
+ã¡ã­ã¥ã¼ã®å
+é ­ã®ã¿ã¹ã¯ID
+ *
+ *  p_wait_queueã§æå®ããå¾
+ã¡ã­ã¥ã¼ã®å
+é ­ã®ã¿ã¹ã¯IDãè¿ãï¼å¾
+ã¡ã­ã¥ã¼
+ *  ãç©ºã®å ´åã«ã¯ï¼TSK_NONEãè¿ãï¼
+ */
+Inline ID
+wait_tskid(QUEUE *p_wait_queue)
+{
+	if (!queue_empty(p_wait_queue)) {
+		return(TSKID((TCB *) p_wait_queue->p_next));
+	}
+	else {
+		return(TSK_NONE);
+	}
+}
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨åæä½ã«ã¼ãã³
+ *
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã¨ç®¡çãã­ãã¯ã®å
+é ­é¨åã¯å
+±
+ *  éã«ãªã£ã¦ããï¼ä»¥ä¸ã¯ï¼ãã®å
+±éé¨åãæ±ãããã®åããã³ã«ã¼ãã³ç¾¤
+ *  ã§ããï¼
+ *
+ *  è¤æ°ã®å¾
+ã¡ã­ã¥ã¼ãæã¤åæã»éä¿¡ãªãã¸ã§ã¯ãã®å ´åï¼å
+é ­ä»¥å¤ã®å¾
+ã¡
+ *  ã­ã¥ã¼ãæä½ããå ´åã«ã¯ï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼ã¾ãï¼ãªãã¸ã§
+ *  ã¯ãå±æ§ã®TA_TPRIããããåç
+§ããã®ã§ï¼ãã®ããããä»ã®ç®çã«ä½¿ã£ã¦
+ *  ããå ´åãï¼ãããã®ã«ã¼ãã³ã¯ä½¿ããªãï¼
+ */
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®åæåãã­ãã¯ã®å
+±éé¨å
+ */
+typedef struct wait_object_initialization_block {
+	ATR			wobjatr;		/* ãªãã¸ã§ã¯ãå±æ§ */
+} WOBJINIB;
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ã®å
+±éé¨å
+ */
+typedef struct wait_object_control_block {
+	QUEUE		wait_queue;		/* å¾
+ã¡ã­ã¥ã¼ */
+	const WOBJINIB *p_wobjinib;	/* åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ */
+} WOBJCB;
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡æ
+å ±ãã­ãã¯ã®å
+±éé¨å
+ *
+ *  ãã®æ§é ä½ã¯ï¼å¾
+ã¡æ
+å ±ãã­ãã¯ï¼WINFOï¼ãæ¡å¼µï¼ãªãã¸ã§ã¯ãæåè¨
+ *  èªã®ç¶æ¿ã«ç¸å½ï¼ãããã®ã§ãããï¼WINFOãå
+±ç¨ä½ã§å®ç¾©ããã¦ããã
+ *  ãã«ï¼1ã¤ã®ãã£ã¼ã«ãã¨ãã¦å«ãã¦ããï¼
+ */
+typedef struct wait_object_waiting_information {
+	WINFO	winfo;			/* æ¨æºã®å¾
+ã¡æ
+å ±ãã­ãã¯ */
+	WOBJCB	*p_wobjcb;		/* å¾
+ã¡ãªãã¸ã§ã¯ãã®ç®¡çãã­ãã¯ */
+} WINFO_WOBJ;
+
+/*
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+ã¸ã®é·ç§»
+ *  
+ *  å®è¡ä¸­ã®ã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ã«é·ç§»ããï¼åæã»éä¿¡ãªãã¸ã§ã¯ãã®å¾
+ã¡ã­ã¥ã¼
+ *  ã«ã¤ãªãï¼ã¾ãï¼å¾
+ã¡æ
+å ±ãã­ãã¯ï¼WINFOï¼ã®p_wobjcbãè¨­å®ããï¼
+ *  wobj_make_wait_tmoutã¯ï¼ã¿ã¤ã ã¤ãã³ããã­ãã¯ã®ç»é²ãè¡ãï¼
+ */
+extern void	wobj_make_wait(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo);
+extern void	wobj_make_wait_tmout(WOBJCB *p_wobjcb, WINFO_WOBJ *p_winfo,
+											TMEVTB *p_tmevtb, TMO tmout);
+
+/*
+ *  ã¿ã¹ã¯åªå
+åº¦å¤æ´æã®å¦ç
+ *
+ *  åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+ã«ããã¿ã¹ã¯ã®åªå
+åº¦ãå¤æ´ã
+ *  ããå ´åã«ï¼å¾
+ã¡ã­ã¥ã¼ã®ä¸­ã§ã®ã¿ã¹ã¯ã®ä½ç½®ãä¿®æ­£ããï¼
+ */
+Inline void
+wobj_change_priority(WOBJCB *p_wobjcb, TCB *p_tcb)
+{
+	if ((p_wobjcb->p_wobjinib->wobjatr & TA_TPRI) != 0U) {
+		queue_delete(&(p_tcb->task_queue));
+		queue_insert_tpri(&(p_wobjcb->wait_queue), p_tcb);
+	}
+}
+
+/*
+ *  å¾
+ã¡ã­ã¥ã¼ã®åæå
+ *
+ *  å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªããã¦ããã¿ã¹ã¯ããã¹ã¦å¾
+ã¡è§£é¤ããï¼å¾
+ã¡è§£é¤ãã
+ *  ã¿ã¹ã¯ããã®è¿å¤ã¯ï¼E_DLTã¨ããï¼å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã¸ã®ãã£ã¹ããã
+ *  ãå¿
+è¦ãªå ´åã¯trueï¼ããã§ãªãå ´åã¯falseãè¿ãï¼
+ */
+extern bool_t	init_wait_queue(QUEUE *p_wait_queue);
+
+#endif /* TOPPERS_WAIT_H */
Index: rubycfg_asp/trunk/asp_dcre/library/histogram.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/histogram.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/histogram.c	(revision 313)
@@ -0,0 +1,205 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å®è¡æéåå¸éè¨ã¢ã¸ã¥ã¼ã«
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "target_test.h"
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ã®æ°
+ */
+#ifndef TNUM_HIST
+#define TNUM_HIST		10
+#endif /* TNUM_HIST */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­é¨ã§è¨­å®å¤æ´ããããã®ãã¯ã­
+ */
+#ifndef HISTTIM						/* å®è¡æéè¨æ¸¬ç¨ã®æå»ã®ãã¼ã¿å */
+#define HISTTIM			SYSUTM
+#endif /* HISTTIM */
+
+#ifndef HIST_GET_TIM				/* å®è¡æéè¨æ¸¬ç¨ã®ç¾å¨æå»ã®åå¾ */
+#ifndef TOPPERS_SUPPORT_GET_UTM
+#error get_utm is not supported.
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+#define HIST_GET_TIM(p_time)	((void) get_utm(p_time))
+#endif /* HIST_GET_TIM */
+
+#ifndef HIST_CONV_TIM				/* æå»ã®å·®ããå®è¡æéã¸ã®å¤æ */
+#define HIST_CONV_TIM(time)		((uint_t)(time))
+#endif /* HIST_CONV_TIM */
+
+#ifndef HIST_BM_HOOK				/* å®è¡æéè¨æ¸¬ç´åã«è¡ãã¹ãå¦ç */
+#define HIST_BM_HOOK()			((void) 0)
+#endif
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ç®¡çãã­ãã¯
+ */
+typedef struct histogram_control_block {
+	HISTTIM		begin_time;			/* è¨æ¸¬éå§æå» */
+	uint_t		maxval;				/* åå¸ãè¨é²ããæå¤§æé */
+	uint_t		*histarea;			/* åå¸ãè¨é²ããã¡ã¢ãªé å */
+	uint_t		over;				/* æå¤§æéãè¶
+ããåº¦æ° */
+	uint_t		under;				/* æéã®éè»¢ãçãããåº¦æ° */
+} HISTCB;
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ç®¡çãã­ãã¯ã®ã¨ãªã¢
+ */
+static HISTCB	histcb_table[TNUM_HIST];
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬IDã®æå°å¤ã¨æå¤§å¤
+ */
+#define TMIN_HISTID		1
+#define TMAX_HISTID		(TMIN_HISTID + TNUM_HIST - 1)
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ã®åæå
+ */
+void
+init_hist(ID histid, uint_t maxval, uint_t histarea[])
+{
+	HISTCB	*p_histcb;
+	uint_t	i;
+
+	assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
+	p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+	for (i = 0; i <= maxval; i++) {
+		histarea[i] = 0U;
+	}
+	p_histcb->maxval = maxval;
+	p_histcb->histarea = histarea;
+	p_histcb->over = 0U;
+	p_histcb->under = 0U;
+}
+
+/*
+ *  å®è¡æéè¨æ¸¬ã®éå§
+ */
+void
+begin_measure(ID histid)
+{
+	HISTCB	*p_histcb;
+
+	assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
+	p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+	HIST_BM_HOOK();
+	HIST_GET_TIM(&(p_histcb->begin_time));
+}
+
+/*
+ *  å®è¡æéè¨æ¸¬ã®çµäº
+ */
+void
+end_measure(ID histid)
+{
+	HISTCB	*p_histcb;
+	HISTTIM	end_time;
+	uint_t	val;
+
+	HIST_GET_TIM(&end_time);
+
+	assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
+	p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+	val = HIST_CONV_TIM(end_time - p_histcb->begin_time);
+	if (val <= p_histcb->maxval) {
+		p_histcb->histarea[val]++;
+	}
+	else if (val <= ((uint_t) INT_MAX)) {
+		p_histcb->over++;
+	}
+	else {
+		p_histcb->under++;
+	}
+}
+
+/*
+ *  å®è¡æéåå¸è¨æ¸¬ã®è¡¨ç¤º
+ */
+void
+print_hist(ID histid)
+{
+	HISTCB	*p_histcb;
+	uint_t	i;
+
+	assert(TMIN_HISTID <= histid && histid <= TMAX_HISTID);
+	p_histcb = &(histcb_table[histid - TMIN_HISTID]);
+
+	for (i = 0; i <= p_histcb->maxval; i++) {
+		if (p_histcb->histarea[i] > 0) {
+			syslog_2(LOG_NOTICE, "%d : %d", i, p_histcb->histarea[i]);
+			syslog_flush();
+		}
+	}
+	if (p_histcb->over > 0) {
+		syslog_2(LOG_NOTICE, "> %d : %d", p_histcb->maxval, p_histcb->over);
+	}
+	if (p_histcb->under > 0) {
+		syslog_1(LOG_NOTICE, "> INT_MAX : %d", p_histcb->under);
+	}
+	syslog_flush();
+}
Index: rubycfg_asp/trunk/asp_dcre/library/log_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/log_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/log_output.c	(revision 313)
@@ -0,0 +1,218 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°ã®ãã©ã¼ãããåºå
+ */
+
+#include <t_stddef.h>
+#include <t_syslog.h>
+#include <log_output.h>
+
+/*
+ *  æ°å¤ãæå­åã«å¤æ
+ */
+#define CONVERT_BUFLEN	((sizeof(uintptr_t) * CHAR_BIT + 2) / 3)
+										/* uintptr_tåã®æ°å¤ã®æå¤§æå­æ° */
+static void
+convert(uintptr_t val, uint_t radix, const char *radchar,
+			uint_t width, bool_t minus, bool_t padzero, void (*putc)(char))
+{
+	char	buf[CONVERT_BUFLEN];
+	uint_t	i, j;
+
+	i = 0U;
+	do {
+		buf[i++] = radchar[val % radix];
+		val /= radix;
+	} while (i < CONVERT_BUFLEN && val != 0);
+
+	if (minus && width > 0) {
+		width -= 1;
+	}
+	if (minus && padzero) {
+		(*putc)('-');
+	}
+	for (j = i; j < width; j++) {
+		(*putc)(padzero ? '0' : ' ');
+	}
+	if (minus && !padzero) {
+		(*putc)('-');
+	}
+	while (i > 0U) {
+		(*putc)(buf[--i]);
+	}
+}
+
+/*
+ *  æå­åæ´å½¢åºå
+ */
+static const char raddec[] = "0123456789";
+static const char radhex[] = "0123456789abcdef";
+static const char radHEX[] = "0123456789ABCDEF";
+
+void
+syslog_printf(const char *format, const intptr_t *p_args, void (*putc)(char))
+{
+	char		c;
+	uint_t		width;
+	bool_t		padzero;
+	intptr_t	val;
+	const char	*str;
+
+	while ((c = *format++) != '\0') {
+		if (c != '%') {
+			(*putc)(c);
+			continue;
+		}
+
+		width = 0U;
+		padzero = false;
+		if ((c = *format++) == '0') {
+			padzero = true;
+			c = *format++;
+		}
+		while ('0' <= c && c <= '9') {
+			width = width * 10U + c - '0';
+			c = *format++;
+		}
+		if (c == 'l') {
+			c = *format++;
+		}
+		switch (c) {
+		case 'd':
+			val = (intptr_t)(*p_args++);
+			if (val >= 0) {
+				convert((uintptr_t) val, 10U, raddec,
+										width, false, padzero, putc);
+			}
+			else {
+				convert((uintptr_t)(-val), 10U, raddec,
+										width, true, padzero, putc);
+			}
+			break;
+		case 'u':
+			val = (intptr_t)(*p_args++);
+			convert((uintptr_t) val, 10U, raddec, width, false, padzero, putc);
+			break;
+		case 'x':
+		case 'p':
+			val = (intptr_t)(*p_args++);
+			convert((uintptr_t) val, 16U, radhex, width, false, padzero, putc);
+			break;
+		case 'X':
+			val = (intptr_t)(*p_args++);
+			convert((uintptr_t) val, 16U, radHEX, width, false, padzero, putc);
+			break;
+		case 'c':
+			(*putc)((char)(intptr_t)(*p_args++));
+			break;
+		case 's':
+			str = (const char *)(*p_args++);
+			while ((c = *str++) != '\0') {
+				(*putc)(c);
+			}
+			break;
+		case '%':
+			(*putc)('%');
+			break;
+		case '\0':
+			format--;
+			break;
+		default:
+			break;
+		}
+	}
+}
+
+/*
+ *  ã­ã°æ
+å ±ã®åºå
+ */
+void
+syslog_print(const SYSLOG *p_syslog, void (*putc)(char))
+{
+	switch (p_syslog->logtype) {
+	case LOG_TYPE_COMMENT:
+		syslog_printf((const char *)(p_syslog->loginfo[0]),
+								&(p_syslog->loginfo[1]), putc);
+		break;
+	case LOG_TYPE_ASSERT:
+		syslog_printf("%s:%u: Assertion `%s' failed.",
+								&(p_syslog->loginfo[0]), putc);
+		break;
+	default:
+		/*
+		 *  ä»ã®ç¨®å¥ã®ã­ã°æ
+å ±ã«ã¯å¯¾å¿ãã¦ããªãï¼
+		 */
+		break;
+	}
+}
+
+/*
+ *  ã­ã°æ
+å ±åªå¤±ã¡ãã»ã¼ã¸ã®åºå
+ */
+void
+syslog_lostmsg(uint_t lostlog, void (*putc)(char))
+{
+	intptr_t	lostinfo[1];
+
+	lostinfo[0] = (intptr_t) lostlog;
+	syslog_printf("%d messages are lost.", lostinfo, putc);
+	(*putc)('\n');
+}
Index: rubycfg_asp/trunk/asp_dcre/library/strerror.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/strerror.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/strerror.c	(revision 313)
@@ -0,0 +1,125 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¨ã©ã¼ã¡ãã»ã¼ã¸æå­åãè¿ãé¢æ°
+ */
+
+#include <t_stddef.h>
+#include <t_stdlib.h>
+
+const char *
+itron_strerror(ER ercd)
+{
+	switch (MERCD(ercd)) {
+	case E_OK:
+		return("E_OK");
+
+	case E_SYS:
+		return("E_SYS");
+	case E_NOSPT:
+		return("E_NOSPT");
+	case E_RSFN:
+		return("E_RSFN");
+	case E_RSATR:
+		return("E_RSATR");
+
+	case E_PAR:
+		return("E_PAR");
+	case E_ID:
+		return("E_ID");
+
+	case E_CTX:
+		return("E_CTX");
+	case E_MACV:
+		return("E_MACV");
+	case E_OACV:
+		return("E_OACV");
+	case E_ILUSE:
+		return("E_ILUSE");
+
+	case E_NOMEM:
+		return("E_NOMEM");
+	case E_NOID:
+		return("E_NOID");
+	case E_NORES:
+		return("E_NORES");
+
+	case E_OBJ:
+		return("E_OBJ");
+	case E_NOEXS:
+		return("E_NOEXS");
+	case E_QOVR:
+		return("E_QOVR");
+
+	case E_RLWAI:
+		return("E_RLWAI");
+	case E_TMOUT:
+		return("E_TMOUT");
+	case E_DLT:
+		return("E_DLT");
+	case E_CLS:
+		return("E_CLS");
+
+	case E_WBLK:
+		return("E_WBLK");
+	case E_BOVR:
+		return("E_BOVR");
+
+	default:
+		return("unknown error");
+	}
+}
Index: rubycfg_asp/trunk/asp_dcre/library/t_perror.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/t_perror.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/t_perror.c	(revision 313)
@@ -0,0 +1,71 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2006 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¨ã©ã¼ã¡ãã»ã¼ã¸ã®åºå
+ */
+
+#include <t_stddef.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+
+void
+t_perror(uint_t prio, const char *file, int_t line, const char *expr, ER ercd)
+{
+	syslog_5(prio, "%s (%d) reported by `%s' in line %d of `%s'.",
+						itron_strerror(ercd), SERCD(ercd), expr, line, file);
+
+}
Index: rubycfg_asp/trunk/asp_dcre/library/test_lib.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/test_lib.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/test_lib.c	(revision 313)
@@ -0,0 +1,223 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2005-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ãã¹ããã­ã°ã©ã ç¨ã©ã¤ãã©ãª
+ */
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+#include <log_output.h>
+#include "syssvc/syslog.h"
+#include "target_syssvc.h"
+#include <test_lib.h>
+
+/*
+ *	ãã§ãã¯ãã¤ã³ã
+ */
+static uint_t	check_count = 0u;
+
+/*
+ *	èªå·±è¨ºæ­é¢æ°
+ */
+static BIT_FUNC	check_bit_func = NULL;
+
+/*
+ *	èªå·±è¨ºæ­é¢æ°ã®è¨­å®
+ */
+void
+set_bit_func(BIT_FUNC bit_func)
+{
+	check_bit_func = bit_func;
+}
+
+/*
+ *  ãã¹ããã­ã°ã©ã ã®éå§
+ */
+void
+test_start(char *progname)
+{
+	syslog_1(LOG_NOTICE, "Test program: %s", progname);
+}
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®åºåå¦ç
+ */
+void
+syslog_flush(void)
+{
+	SYSLOG	logbuf;
+	ER_UINT	rercd;
+
+	/*
+	 *  ã­ã°ãããã¡ã«è¨é²ãããã­ã°æ
+å ±ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åº
+	 *  åããï¼
+	 */
+	while ((rercd = syslog_rea_log(&logbuf)) >= 0) {
+		if (rercd > 0) {
+			syslog_lostmsg((uint_t) rercd, target_fput_log);
+		}
+		if (logbuf.logtype >= LOG_TYPE_COMMENT) {
+			syslog_print(&logbuf, target_fput_log);
+			target_fput_log('\n');
+		}
+	}
+}
+
+/*
+ *	ãã¹ããã­ã°ã©ã ã®çµäº
+ */
+void
+test_finish(void)
+{
+	SIL_PRE_LOC;
+
+	SIL_LOC_INT();
+	syslog_flush();
+	(void) ext_ker();
+
+	/* ããã¸æ¥ããã¨ã¯ãªãã¯ã */
+	SIL_UNL_INT();
+}
+
+/*
+ *	ãã§ãã¯ãã¤ã³ã
+ */
+void
+check_point(uint_t count)
+{
+	bool_t	errorflag = false;
+	ER		rercd;
+	SIL_PRE_LOC;
+
+	/*
+	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
+ã«
+	 */
+	SIL_LOC_INT();
+
+	/*
+	 *  ã·ã¼ã±ã³ã¹ãã§ãã¯
+	 */
+	if (++check_count == count) {
+		syslog_1(LOG_NOTICE, "Check point %d passed.", count);
+	}
+	else {
+		syslog_1(LOG_ERROR, "## Unexpected check point %d.", count);
+		errorflag = true;
+	}
+
+	/*
+	 *  ã«ã¼ãã«ã®å
+é¨ç¶æ
+ã®æ¤æ»
+	 */
+	if (check_bit_func != NULL) {
+		rercd = (*check_bit_func)();
+		if (rercd < 0) {
+			syslog_2(LOG_ERROR, "## Internal inconsistency detected (%s, %d).",
+								itron_strerror(rercd), SERCD(rercd));
+			errorflag = true;
+		}
+	}
+
+	/*
+	 *  ã¨ã©ã¼ãæ¤åºãããå ´åã¯ï¼ãã¹ããã­ã°ã©ã ãçµäºããï¼
+	 */
+	if (errorflag) {
+		test_finish();
+	}
+
+	/*
+	 *  å²è¾¼ã¿ã­ãã¯ç¶æ
+ãè§£é¤
+	 */
+	SIL_UNL_INT();
+}
+
+/*
+ *	å®äºãã§ãã¯ãã¤ã³ã
+ */
+void
+check_finish(uint_t count)
+{
+	check_point(count);
+	syslog_0(LOG_NOTICE, "All check points passed.");
+	test_finish();
+}
+
+/*
+ *	æ¡ä»¶ãã§ãã¯ã®ã¨ã©ã¼å¦ç
+ */
+void
+_check_assert(const char *expr, const char *file, int_t line)
+{
+	syslog_3(LOG_ERROR, "## Assertion `%s' failed at %s:%u.",
+								expr, file, line);
+	test_finish();
+}
+
+/*
+ *	ã¨ã©ã¼ã³ã¼ããã§ãã¯ã®ã¨ã©ã¼å¦ç
+ */
+void
+_check_ercd(ER ercd, const char *file, int_t line)
+{
+	syslog_3(LOG_ERROR, "## Unexpected error %s detected at %s:%u.",
+								itron_strerror(ercd), file, line);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/library/vasyslog.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/library/vasyslog.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/library/vasyslog.c	(revision 313)
@@ -0,0 +1,126 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		å¯å¤æ°å¼æ°ã®ã·ã¹ãã ã­ã°ã©ã¤ãã©ãª
+ */
+
+#include <t_stddef.h>
+#include <t_syslog.h>
+#include <stdarg.h>
+
+#ifndef TOPPERS_OMIT_SYSLOG
+
+void
+syslog(uint_t prio, const char *format, ...)
+{
+	SYSLOG	logbuf;
+	va_list	ap;
+	uint_t	i;
+	char	c;
+	bool_t	lflag;
+
+	logbuf.logtype = LOG_TYPE_COMMENT;
+	logbuf.loginfo[0] = (intptr_t) format;
+	i = 1U;
+	va_start(ap, format);
+
+	while ((c = *format++) != '\0' && i < TMAX_LOGINFO) {
+		if (c != '%') {
+			continue;
+		}
+
+		lflag = false;
+		c = *format++;
+		while ('0' <= c && c <= '9') {
+			c = *format++;
+		}
+		if (c == 'l') {
+			lflag = true;
+			c = *format++;
+		}
+		switch (c) {
+		case 'd':
+			logbuf.loginfo[i++] = lflag ? (intptr_t) va_arg(ap, long_t)
+										: (intptr_t) va_arg(ap, int_t);
+			break;
+		case 'u':
+		case 'x':
+		case 'X':
+			logbuf.loginfo[i++] = lflag ? (intptr_t) va_arg(ap, ulong_t)
+										: (intptr_t) va_arg(ap, uint_t);
+			break;
+		case 'p':
+			logbuf.loginfo[i++] = (intptr_t) va_arg(ap, void *);
+			break;
+		case 'c':
+			logbuf.loginfo[i++] = (intptr_t) va_arg(ap, int);
+			break;
+		case 's':
+			logbuf.loginfo[i++] = (intptr_t) va_arg(ap, const char *);
+			break;
+		case '\0':
+			format--;
+			break;
+		default:
+			break;
+		}
+	}
+	va_end(ap);
+	(void) syslog_wri_log(prio, &logbuf);
+}
+
+#endif /* TOPPERS_OMIT_SYSLOG */
Index: rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.c	(revision 313)
@@ -0,0 +1,483 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+
+/*
+ * UARTç¨ ç°¡æSIOãã©ã¤ã
+ */
+
+#include <sil.h>
+#include <kernel.h>
+#include <t_syslog.h>
+#include "target_syssvc.h"
+#include "rx630_uart.h"
+
+/* ã·ãªã¢ã«ã¢ã¼ãã¬ã¸ã¹ã¿ï¼SMR) */
+#define CKS			UINT_C(0x03)
+#define STOP		UINT_C(0x08)
+#define PM			UINT_C(0x10)
+#define PE			UINT_C(0x20)
+#define CHR			UINT_C(0x40)
+#define CM			UINT_C(0x80)
+#define ASYNC_7BIT	UINT_C(0x00)
+#define ASYNC_8BIT	UINT_C(0x40)
+
+/* ã·ãªã¢ã«ã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ï¼SCR) */
+#define CKE			UINT_C(0x03)
+#define TEIE		UINT_C(0x04)
+#define RE			UINT_C(0x10)
+#define TE			UINT_C(0x20)
+#define RIE			UINT_C(0x40)
+#define TIE			UINT_C(0x80)
+
+/* ã·ãªã¢ã«ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SSRï¼ */
+#define TEND		UINT_C(0x04)
+#define PER			UINT_C(0x08)
+#define FER			UINT_C(0x10)
+#define ORER		UINT_C(0x20)
+
+/* ã·ãªã¢ã«æ¡å¼µã¢ã¼ãã¬ã¸ã¹ã¿ï¼SEMR) */
+#define ACS0		UINT_C(0x01)
+#define ABCS		UINT_C(0x10)
+
+#define SCI_SCR_FLG_ENABLE	(RE | TE)
+#define SCI_SMR_FLG_ENABLE	(STOP | PM | PE | CHR | CM)
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãåæåãã­ãã¯ã®å®ç¾©
+ */
+typedef struct sio_port_initialization_block {
+	volatile uint8_t	*ctlreg;		/* ã·ãªã¢ã«ã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ï¼SCR) */
+	volatile uint8_t	*modereg;		/* ã·ãªã¢ã«ã¢ã¼ãã¬ã¸ã¹ã¿ï¼SMR) */
+	volatile uint8_t	*extmodereg;	/* ã·ãªã¢ã«æ¡å¼µã¢ã¼ãã¬ã¸ã¹ã¿ï¼SEMR) */	
+	volatile uint8_t	*statusreg;		/* ã·ãªã¢ã«ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ï¼SSRï¼ */
+	volatile uint8_t	*tdreg;			/* ãã©ã³ã¹ããããã¼ã¿ã¬ã¸ã¹ã¿ï¼TDR)*/
+	volatile uint8_t	*rdreg;			/* ã¬ã·ã¼ããã¼ã¿ã¬ã¸ã¹ã¿ï¼RDR) */
+	volatile uint8_t	*bitratereg;	/* ãããã¬ã¼ãã¬ã¸ã¹ã¿ï¼BRR) */
+	volatile uint32_t	*mstpcrreg;		/* ã¢ã¸ã¥ã¼ã«ã¹ãããã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ï¼MSTPCRï¼ */
+	volatile uint8_t	*ssrreg;		/* ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ */
+	volatile uint8_t	*rxiirreg;		/* RXIç¨å²è¾¼ã¿è¦æ±ã¬ã¸ã¹ã¿ */
+	uint8_t				tx_intno;		/* éä¿¡ï¼ãã¼ã¿ã¨ã³ããã£ï¼å²ãè¾¼ã¿çªå· */
+	uint8_t				rx_intno;		/* åä¿¡ï¼ãã¼ã¿ãã«ï¼å²ãè¾¼ã¿çªå· */
+	uint8_t				te_intno;		/* éä¿¡ï¼çµäºï¼å²ãè¾¼ã¿çªå· */
+	uint8_t				sci_no;			/* SCIã®çªå·(SCI0ï½SCI6) */
+	uint32_t			mstpcr_offset;	/* MSTPCRã®å¯¾å¿ããããããªãã»ãã */
+} SIOPINIB;
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ã®å®ç¾©
+ */
+struct sio_port_control_block {
+	const SIOPINIB	*p_siopinib; 				/* ã·ãªã¢ã«I/Oãã¼ãåæåãã­ãã¯ */
+	intptr_t 	exinf;			 				/* æ¡å¼µæ
+å ± */
+	bool_t		openflag;						/* ãªã¼ãã³æ¸ã¿ãã©ã° */
+	bool_t		sendflag;						/* éä¿¡å²è¾¼ã¿ã¤ãã¼ãã«ãã©ã° */
+	bool_t		getready;						/* æå­ãåä¿¡ããç¶æ
+ */
+	bool_t		putready;						/* æå­ãéä¿¡ã§ããç¶æ
+ */
+	bool_t		is_initialized; 				/* ããã¤ã¹åæåæ¸ã¿ãã©ã° */
+};
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ã®ã¨ãªã¢
+ */
+static SIOPCB	siopcb_table[TNUM_SIOP];
+
+/* ã¬ã¸ã¹ã¿ãã¼ãã« */
+static const SIOPINIB siopinib_table[TNUM_SIOP] =
+{
+	{
+		(volatile uint8_t *)SCI0_SCR_ADDR,
+		(volatile uint8_t *)SCI0_SMR_ADDR,
+		(volatile uint8_t *)SCI0_SEMR_ADDR,
+		(volatile uint8_t *)SCI0_SSR_ADDR,
+		(volatile uint8_t *)SCI0_TDR_ADDR,
+		(volatile uint8_t *)SCI0_RDR_ADDR,
+		(volatile uint8_t *)SCI0_BRR_ADDR,
+		(volatile uint32_t *)SYSTEM_MSTPCRB_ADDR,
+		(volatile uint8_t *)SCI0_SSR_ADDR,
+		(volatile uint8_t *)ICU_IR215_ADDR,
+		INT_SCI0_TXI,
+		INT_SCI0_RXI,
+		INT_SCI0_TEI,
+		0,
+		SYSTEM_MSTPCRB_MSTPB31_BIT,
+	} ,			/* UART0 */
+#if TNUM_SIOP > 1
+	{
+		(volatile uint8_t *)SCI2_SCR_ADDR,
+		(volatile uint8_t *)SCI2_SMR_ADDR,
+		(volatile uint8_t *)SCI2_SEMR_ADDR,
+		(volatile uint8_t *)SCI2_SSR_ADDR,
+		(volatile uint8_t *)SCI2_TDR_ADDR,
+		(volatile uint8_t *)SCI2_RDR_ADDR,
+		(volatile uint8_t *)SCI2_BRR_ADDR,
+		(volatile uint32_t *)SYSTEM_MSTPCRB_ADDR,
+		(volatile uint8_t *)SCI2_SSR_ADDR,
+		(volatile uint8_t *)ICU_IR223_ADDR,
+		INT_SCI2_TXI,
+		INT_SCI2_RXI,
+		INT_SCI2_TEI,
+		2,
+		SYSTEM_MSTPCRB_MSTPB29_BIT,
+	} ,			/* UART2 */
+#endif
+};
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãIDããç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_SIOP(siopid)	 ((uint_t)((siopid) - 1))
+#define get_siopcb(siopid)	 (&(siopcb_table[INDEX_SIOP(siopid)]))
+#define get_siopinib(siopid) (&(siopinib_table[INDEX_SIOP(siopid)]))
+
+
+/*
+ *  SIOãã©ã¤ãã®ã·ãªã¢ã«ã¢ã¼ãã¬ã¸ã¹ã¿(SMR)
+ */
+static void
+rx630_uart_setmode(const SIOPINIB *p_siopinib, uint8_t bitrate, uint8_t clksrc)
+{
+	volatile uint8_t i;
+
+	/*
+	 *  SCIãã©ã¤ãã®åæåã«ã¼ãã³
+	 */
+
+	/*
+	 *  å²ãè¾¼ã¿è¦æ±å
+ã¬ã¸ã¹ã¿ã®è¨­å®(ISELRi)
+	 *
+	 *  ãªã»ããå¤ã¨åãå¤ãè¨­å®ãããã¨ã«ãªããã,
+	 *  å¦çã¯çç¥ãã.
+	 */
+
+	/*
+	 *  ã¢ã¸ã¥ã¼ã«ã¹ãããæ©è½ã®è¨­å®
+	 */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA502);	/* æ¸è¾¼ã¿è¨±å¯ */
+	sil_wrw_mem(p_siopinib->mstpcrreg,
+		sil_rew_mem(p_siopinib->mstpcrreg) & ~p_siopinib->mstpcr_offset);
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, (uint16_t)0xA500);	/* æ¸è¾¼ã¿ç¦æ­¢ */
+
+	/* éåä¿¡ç¦æ­¢, SCKnç«¯å­ã¯å
+¥åºåãã¼ãã¨ãã¦ä½¿ç¨ */
+	sil_wrb_mem(p_siopinib->ctlreg, 0x00U);
+
+	/* ã¯ã­ãã¯é¸æããã(SMR.CKS[1:0]ããããè¨­å®) */
+	sil_wrb_mem(p_siopinib->modereg, 
+					sil_reb_mem(p_siopinib->modereg) | clksrc);
+
+	/* SMRã«éä¿¡ï¼ åä¿¡ãã©ã¼ããããè¨­å®) */
+	sil_wrb_mem(p_siopinib->modereg, 
+			sil_reb_mem(p_siopinib->modereg) & (~SCI_SMR_FLG_ENABLE));
+
+	/* ãããã¬ã¼ããè¨­å® */
+	sil_wrb_mem(p_siopinib->bitratereg, bitrate);
+
+	/* ãããæé(åºæ¬ã¯ã­ãã¯16ãµã¤ã¯ã«ã®æéã1ãããæéã¨ãªã) */
+	for(i = 0; i < 16; i++) { }
+
+	/* éåä¿¡è¨±å¯ */
+	sil_wrb_mem(p_siopinib->ctlreg, 
+		(sil_reb_mem(p_siopinib->ctlreg) | SCI_SCR_FLG_ENABLE));
+}
+
+
+/*
+ *  SIOãã©ã¤ãã®åæåã«ã¼ãã³
+ */
+void
+rx630_uart_initialize(void)
+{
+	SIOPCB	*p_siopcb;
+	uint_t	i;
+
+	/*
+	 *  ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ã®åæå
+	 */
+	for (p_siopcb = siopcb_table, i = 0; i < TNUM_SIOP; p_siopcb++, i++){
+		p_siopcb->p_siopinib = &(siopinib_table[i]);
+		p_siopcb->openflag = false;
+		p_siopcb->sendflag = false;
+	}
+}
+
+/*
+ *  ã«ã¼ãã«èµ·åæã®ããã¼åºåç¨ã®åæå
+ */
+void
+rx630_uart_init(ID siopid, uint8_t bitrate, uint8_t clksrc)
+{
+	SIOPCB          *p_siopcb   = get_siopcb(siopid);
+	const SIOPINIB  *p_siopinib = get_siopinib(siopid);
+	/*  ãã®æç¹ã§ã¯ãp_siopcb->p_siopinibã¯åæåããã¦ããªã  */
+
+	/*  äºéåæåã®é²æ­¢  */
+	p_siopcb->is_initialized = true;
+
+	/*  ãã¼ãã¦ã§ã¢ã®åæåå¦çã¨éä¿¡è¨±å¯  */
+	rx630_uart_setmode(p_siopinib , bitrate, clksrc);
+	sil_wrb_mem(p_siopinib->ctlreg, 
+		(uint8_t)(sil_reb_mem((uint8_t *)p_siopinib->ctlreg) | TE));
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®ãã¼ãªã³ã°ã§ã®åºå
+ */
+void
+rx630_uart_pol_putc(char c, ID siopid)
+{
+	const SIOPINIB *p_siopinib;
+
+	p_siopinib = get_siopinib(siopid);
+
+	/*
+	 *  éä¿¡ã¬ã¸ã¹ã¿ãç©ºã«ãªãã¾ã§å¾
+ã¤
+	 */
+	while((sil_reb_mem(p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) == 0U);
+
+	sil_wrb_mem(p_siopinib->tdreg, (uint8_t)c);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+SIOPCB *
+rx630_uart_opn_por
+	(ID siopid, intptr_t exinf, uint8_t bitrate, uint8_t clksrc)
+{
+	SIOPCB          *p_siopcb;
+	const SIOPINIB  *p_siopinib;
+
+	p_siopcb = get_siopcb(siopid);
+	p_siopinib = p_siopcb->p_siopinib;
+
+	/*
+	 *  ãã¼ãã¦ã§ã¢ã®åæå
+	 *
+	 *  æ¢ã«åæåãã¦ããå ´åã¯, äºéã«åæåããªã.
+	 */
+	if(!(p_siopcb->is_initialized)){
+		rx630_uart_setmode(p_siopinib, bitrate, clksrc);
+		p_siopcb->is_initialized = true;
+	}
+
+	p_siopcb->exinf = exinf;
+	p_siopcb->getready = p_siopcb->putready = false;
+	p_siopcb->openflag = true;
+
+	return (p_siopcb);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+void
+rx630_uart_cls_por(SIOPCB *p_siopcb)
+{
+	/*
+	 *  UARTåæ­¢
+	 */
+	sil_wrh_mem((volatile uint16_t *)p_siopcb->p_siopinib->ctlreg, 0x00U);
+	p_siopcb->openflag = false;
+	p_siopcb->is_initialized = false;
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+bool_t
+rx630_uart_snd_chr(SIOPCB *p_siopcb, char c)
+{
+	bool_t ercd = false;
+
+	if((sil_reb_mem(p_siopcb->p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) != 0){
+		sil_wrb_mem(p_siopcb->p_siopinib->tdreg, (uint8_t)c);
+		ercd = true;
+	}
+
+	return ercd;
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+int_t
+rx630_uart_rcv_chr(SIOPCB *p_siopcb)
+{
+	int_t c = -1;
+
+	/*
+	 *  åä¿¡ãã©ã°ãONã®ã¨ãã®ã¿åä¿¡ãããã¡ããæå­ãåå¾ãã.
+	 *  ããã¯, ãã¼ãªã³ã°åä¿¡ã«å¯¾å¿ããããã§ãã.
+	 *  ããã, RX600ã·ãªã¼ãºã§ã¯åä¿¡ãã©ã°ããªããã¨, ã·ã¹ãã ãµã¼ãã¹
+	 *  ã§ã¯åä¿¡å²è¾¼ã¿ã®ä¸­ãããããã¼ã¿ãåä¿¡ãã«æ¥ãªããã¨ãã, å¸¸ã«
+	 *  åä¿¡ãããã¡ããæå­ãåå¾ãã.
+	 */
+	c = (int)(sil_reb_mem(p_siopcb->p_siopinib->rdreg));
+
+	return c;
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+void
+rx630_uart_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
+{
+	switch (cbrtn) {
+		case SIO_RDY_SND:
+			sil_wrb_mem(p_siopcb->p_siopinib->ctlreg, 
+				(sil_reb_mem(p_siopcb->p_siopinib->ctlreg) | SCI_SCR_TEIE_BIT));
+			break;
+		case SIO_RDY_RCV:
+			sil_wrb_mem(p_siopcb->p_siopinib->ctlreg, 
+				(sil_reb_mem(p_siopcb->p_siopinib->ctlreg) | SCI_SCR_RIE_BIT));
+			break;
+		default:
+			assert(1);
+			break;
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+void
+rx630_uart_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn)
+{
+	switch (cbrtn) {
+		case SIO_RDY_SND:
+			sil_wrb_mem(p_siopcb->p_siopinib->ctlreg, 
+				(sil_reb_mem(p_siopcb->p_siopinib->ctlreg) & (~SCI_SCR_TEIE_BIT)));
+			break;
+		case SIO_RDY_RCV:
+			sil_wrb_mem(p_siopcb->p_siopinib->ctlreg, 
+				(sil_reb_mem(p_siopcb->p_siopinib->ctlreg) & (~SCI_SCR_RIE_BIT)));
+			break;
+		default:
+			assert(1);
+			break;
+	}
+}
+
+/*
+ *  SIOã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³
+ */
+void
+rx630_uart_tx_isr(ID siopid)
+{
+	SIOPCB	*p_siopcb = get_siopcb(siopid);
+
+	if((sil_reb_mem(
+		(void *)p_siopcb->p_siopinib->ssrreg) & SCI_SSR_TEND_BIT) != 0U){
+		/*
+		 *  éä¿¡å¯è½ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+		 */
+		rx630_uart_irdy_snd(p_siopcb->exinf);
+	}
+}
+
+void
+rx630_uart_rx_isr(ID siopid)
+{
+	SIOPCB	*p_siopcb = get_siopcb(siopid);
+
+	/*
+	 *  åä¿¡ãã©ã°ãONã®ã¨ãã®ã¿åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã.
+	 *  ããã, RX600ã·ãªã¼ãºã§ã¯åä¿¡ãã©ã°ããªããã, å¸¸ã«åä¿¡éç¥
+	 *  ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºã.
+	 *  ããã§ã¯åä¿¡å²è¾¼ã¿ã®çºçãä¿¡ãã.
+	 */
+	/*
+	 *  åä¿¡éç¥ã³ã¼ã«ããã¯ã«ã¼ãã³ãå¼ã³åºãï¼
+	 */
+	rx630_uart_irdy_rcv(p_siopcb->exinf);
+}
+
+
+/*
+ *  ãã¼ãçªå·ããç®¡çãã­ãã¯ã®å
+é ­çªå°ã¸ã®å¤æ
+ */
+SIOPCB *
+rx630_uart_get_siopcb(ID siopid) {
+	SIOPCB *p_siopcb = get_siopcb(siopid);
+	return(p_siopcb);
+}
+
+/*
+ * ç®¡çãã­ãã¯ã®å
+é ­çªå°ããåä¿¡å²è¾¼ã¿çªå·ã¸ã®å¤æ
+ */
+INTNO 
+rx630_uart_intno_rx(SIOPCB *p_siopcb) {
+	INTNO intno = p_siopcb->p_siopinib->rx_intno;
+	return(intno);
+}
+
+/*
+ * ç®¡çãã­ãã¯ã®å
+é ­çªå°ããéä¿¡å²è¾¼ã¿çªå·ã¸ã®å¤æ
+ */
+INTNO 
+rx630_uart_intno_tx(SIOPCB *p_siopcb) {
+	INTNO intno = p_siopcb->p_siopinib->te_intno;
+	return(intno);
+}
Index: rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/pdic/rx600/rx630_uart.h	(revision 313)
@@ -0,0 +1,165 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UARTç¨ ç°¡æSIOãã©ã¤ã
+ */
+
+#ifndef TOPPERS_RX630_UART_H
+#define TOPPERS_RX630_UART_H
+
+/* æå®å¯è½ãªã¯ã­ãã¯ã½ã¼ã¹ */
+#define CLK_F1	UINT_C(0x00)
+#define CLK_F4	UINT_C(0x01)
+#define CLK_F16	UINT_C(0x02)
+#define CLK_F64	UINT_C(0x03)
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ã®å®ç¾©
+ */
+typedef struct sio_port_control_block	SIOPCB;
+
+/*
+ *  ã³ã¼ã«ããã¯ã«ã¼ãã³ã®è­å¥çªå·
+ */
+#define SIO_RDY_SND    (1U)        /* éä¿¡å¯è½ã³ã¼ã«ããã¯ */
+#define SIO_RDY_RCV    (2U)        /* åä¿¡éç¥ã³ã¼ã«ããã¯ */
+
+/*
+ *  SIOãã©ã¤ãã®åæåã«ã¼ãã³
+ */
+extern void rx630_uart_initialize(void);
+
+/*
+ * ã«ã¼ãã«èµ·åæã®ããã¼åºåç¨ã®åæå
+ */
+extern void rx630_uart_init(ID siopid , uint8_t baud , uint8_t clksrc);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®ãã¼ãªã³ã°ã§ã®åºå
+ */
+extern void rx630_uart_pol_putc(char c, ID siopid);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+extern SIOPCB *rx630_uart_opn_por
+	(ID siopid, intptr_t exinf , uint8_t baud , uint8_t clksrc);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+extern void rx630_uart_cls_por(SIOPCB *p_siopcb);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+extern bool_t rx630_uart_snd_chr(SIOPCB *p_siopcb, char c);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+extern int_t rx630_uart_rcv_chr(SIOPCB *p_siopcb);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+extern void  rx630_uart_ena_cbr(SIOPCB *p_siopcb, uint_t cbrtn);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+extern void rx630_uart_dis_cbr(SIOPCB *p_siopcb, uint_t cbrtn);
+
+/*
+ *  SIOã®å²è¾¼ã¿ãµã¼ãã¹ã«ã¼ãã³
+ */
+extern void rx630_uart_tx_isr(ID siopid);
+extern void rx630_uart_rx_isr(ID siopid);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+extern void rx630_uart_irdy_snd(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+extern void rx630_uart_irdy_rcv(intptr_t exinf);
+
+
+/*
+ *  ãã¼ãçªå·ããç®¡çãã­ãã¯ã®å
+é ­çªå°ã¸ã®å¤æ
+ */
+extern SIOPCB *rx630_uart_get_siopcb(ID siopid);
+
+/*
+ * ç®¡çãã­ãã¯ã®å
+é ­çªå°ããåä¿¡å²è¾¼ã¿çªå·ã¸ã®å¤æ
+ */
+extern INTNO rx630_uart_intno_rx(SIOPCB *p_siopcb);
+
+/*
+ * ç®¡çãã­ãã¯ã®å
+é ­çªå°ããéä¿¡å²è¾¼ã¿çªå·ã¸ã®å¤æ
+ */
+extern INTNO rx630_uart_intno_tx(SIOPCB *p_siopcb);
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_RX630_UART_H */
Index: rubycfg_asp/trunk/asp_dcre/sample/Makefile
===================================================================
--- rubycfg_asp/trunk/asp_dcre/sample/Makefile	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/sample/Makefile	(revision 313)
@@ -0,0 +1,653 @@
+#
+#  TOPPERS/ASP Kernel
+#      Toyohashi Open Platform for Embedded Real-Time Systems/
+#      Advanced Standard Profile Kernel
+# 
+#  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2006-2014 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: Makefile 2594 2014-01-02 07:08:54Z ertl-hiro $
+# 
+
+#
+#  ã¿ã¼ã²ããã®æå®ï¼Makefile.targetã§ä¸æ¸ããããã®ãé²ãããï¼
+#
+all:
+
+#
+#  ã¿ã¼ã²ããç¥ç§°ã®å®ç¾©
+#
+TARGET = @(TARGET)
+
+#
+#  ãã­ã°ã©ãã³ã°è¨èªã®å®ç¾©
+#
+SRCLANG = @(SRCLANG)
+ifeq ($(SRCLANG),c)
+  LIBS = -lc
+endif
+ifeq ($(SRCLANG),c++)
+  USE_CXX = true
+  CXXLIBS = -lstdc++ -lm -lc
+  CXXRTS = cxxrt.o newlibrt.o
+endif
+
+#
+#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#
+SRCDIR = @(SRCDIR)
+
+#
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®æ¡å¼µå­ã®è¨­å®
+#
+OBJEXT = @(OBJEXT)
+
+#
+#  å®è¡ç°å¢ã®å®ç¾©ï¼ã¿ã¼ã²ããä¾å­ã«ä¸æ¸ããããå ´åãããï¼
+#
+DBGENV := @(DBGENV)
+
+#
+#  ã«ã¼ãã«ã©ã¤ãã©ãªï¼libkernel.aï¼ã®ãã£ã¬ã¯ããªå
+#  ï¼ã«ã¼ãã«ã©ã¤ãã©ãªãmakeå¯¾è±¡ã«ããæã¯ï¼ç©ºã«å®ç¾©ããï¼
+#
+KERNEL_LIB = @(KERNEL_LIB)
+
+#
+#  ã«ã¼ãã«ãé¢æ°åä½ã§ã³ã³ãã¤ã«ãããã©ããã®å®ç¾©
+#
+KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
+
+#
+#  ãã¬ã¼ã¹ã­ã°ãåå¾ãããã©ããã®å®ç¾©
+#
+ENABLE_TRACE = @(ENABLE_TRACE)
+
+#
+#  ã¦ã¼ãã£ãªãã£ãã­ã°ã©ã ã®åç§°
+#
+PERL = @(PERL)
+CFG = @(CFG)
+
+#
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«åã®å®ç¾©
+#
+OBJNAME = asp_dcre
+ifdef OBJEXT
+  OBJFILE = $(OBJNAME).$(OBJEXT)
+  CFG1_OUT = cfg1_out.$(OBJEXT)
+else
+  OBJFILE = $(OBJNAME)
+  CFG1_OUT = cfg1_out
+endif
+
+#
+#  ã¿ã¼ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#
+TARGETDIR = $(SRCDIR)/target/$(TARGET)
+
+#
+#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(TARGETDIR)/Makefile.target
+
+#
+#  å
+±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
+#
+COPTS := $(COPTS) -g @(COPTS)
+ifndef OMIT_WARNING_ALL
+  COPTS := $(COPTS) -Wall
+endif
+ifndef OMIT_OPTIMIZATION
+  COPTS := $(COPTS) -Og
+endif
+CDEFS := $(CDEFS) @(CDEFS)
+INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) -I$(SRCDIR)/kernel $(INCLUDES)
+LDFLAGS := $(LDFLAGS) @(LDFLAGS)
+CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) @(LDFLAGS)
+LIBS := $(LIBS) $(CXXLIBS)
+CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
+
+#
+#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#
+APPLNAME = @(APPLNAME)
+APPLDIR = @(APPLDIR)
+APPL_CFG = $(APPLNAME).cfg
+
+APPL_DIR = $(APPLDIR) $(SRCDIR)/library
+APPL_ASMOBJS =
+ifdef USE_CXX
+  APPL_CXXOBJS = @(APPLOBJS)
+  APPL_COBJS =
+else
+  APPL_COBJS = @(APPLOBJS)
+endif
+APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
+APPL_CFLAGS =
+APPL_LIBS =
+ifdef APPLDIR
+  INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
+endif
+
+TINETDIR = @(TINETDIR)
+ifdef TINETDIR
+	#
+	#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+	#
+
+	NO_USE_TINET_LIBRARY = false
+
+	#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+
+	NET_IF = @(NET_IF)
+
+	#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+
+	NET_DEV = @(NET_DEV)
+
+	#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+
+	SUPPORT_INET6 = @(SUPPORT_INET6)
+	SUPPORT_INET4 = @(SUPPORT_INET4)
+
+	#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+
+	API_CFG_IP4MAPPED_ADDR = @(API_CFG_IP4MAPPED_ADDR)
+
+	#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+
+	SUPPORT_TCP = @(SUPPORT_TCP)
+	SUPPORT_UDP = @(SUPPORT_UDP)
+
+	#
+	#  ãããã¯ã¼ã¯ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+	#
+	include $(SRCDIR)/$(TINETDIR)/Makefile.tinet
+endif
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#
+SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library
+SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
+SYSSVC_COBJS := $(SYSSVC_COBJS) banner.o syslog.o serial.o logtask.o \
+				@(SYSSVCOBJS) $(CXXRTS)
+SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
+SYSSVC_LIBS := $(SYSSVC_LIBS)
+INCLUDES := $(INCLUDES)
+
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#
+ifndef TINETDIR
+	CFG_TRB := -T $(TARGETDIR)/target_kernel.trb
+	CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.def \
+				--symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
+else
+	CFG_TRB := -T $(TINET_ROOT)/tinet.trb:tcpip -T $(TARGETDIR)/target_kernel.trb:kernel
+	CFG_TABS := --api-table $(TINET_ROOT)/tcpip_api.def:tcpip \
+				--api-table $(SRCDIR)/kernel/kernel_api.def:kernel \
+				--symval-table $(SRCDIR)/tinet/tcpip_sym.def \
+				--symval-table $(SRCDIR)/kernel/kernel_sym.def $(CFG_TABS)
+endif
+CFG_ASMOBJS := kernel_cfg_asm.o $(CFG_ASMOBJS)
+CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
+CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
+CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
+
+#
+#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#
+#  KERNEL_ASMOBJS: ã«ã¼ãã«ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãã¢ã»ã³ããªè¨èªã®
+#				   ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  KERNEL_COBJS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããï¼ã½ã¼ã¹ãCè¨èªã§ï¼ã½ã¼ã¹
+#				 ãã¡ã¤ã«ã¨1å¯¾1ã«å¯¾å¿ãããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  KERNEL_LCSRCS: ã«ã¼ãã«ã®ã©ã¤ãã©ãªã«å«ããCè¨èªã®ã½ã¼ã¹ãã¡ã¤ã«ã§ï¼
+#				  1ã¤ã®ã½ã¼ã¹ãã¡ã¤ã«ããè¤æ°ã®ãªãã¸ã§ã¯ããã¡ã¤ã«ãç
+#				  æãããã®ï¼
+#  KERNEL_LCOBJS: ä¸ã®ã½ã¼ã¹ãã¡ã¤ã«ããçæããããªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#  KERNEL_AUX_COBJS: ã­ã¼ãã¢ã¸ã¥ã¼ã«ã«å«ããªããï¼ã«ã¼ãã«ã®ã½ã¼ã¹ãã¡
+#					 ã¤ã«ã¨åããªãã·ã§ã³ãé©ç¨ãã¦ã³ã³ãã¤ã«ãã¹ãï¼ã½ã¼
+#					 ã¹ãCè¨èªã®ãªãã¸ã§ã¯ããã¡ã¤ã«ï¼
+#
+KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS)
+KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
+ifdef OMIT_MAKEOFFSET
+  OFFSET_H =
+else
+  OFFSET_H = offset.h
+ifndef OFFSET_TRB
+  KERNEL_AUX_COBJS := $(KERNEL_AUX_COBJS) makeoffset.o
+endif
+endif
+
+#
+#  ã¿ã¼ã²ãããã¡ã¤ã«ï¼è¤æ°ãåæã«é¸æãã¦ã¯ãªããªãï¼
+#
+#all: check $(OBJFILE)
+#all: check $(OBJNAME).bin
+all: check $(OBJNAME).srec
+
+##### ä»¥ä¸ã¯ç·¨éããªããã¨ #####
+
+#
+#  ç°å¢ã«ä¾å­ããã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©
+#
+ifdef DBGENV
+  CDEFS := $(CDEFS) -D$(DBGENV)
+endif
+
+#
+#  ã«ã¼ãã«ã®ãã¡ã¤ã«æ§æã®å®ç¾©
+#
+include $(SRCDIR)/kernel/Makefile.kernel
+ifdef KERNEL_FUNCOBJS
+  KERNEL_LCSRCS := $(KERNEL_FCSRCS)
+  KERNEL_LCOBJS := $(foreach file,$(KERNEL_FCSRCS),$($(file:.c=)))
+else
+  KERNEL_CFLAGS := -DALLFUNC $(KERNEL_CFLAGS)
+  KERNEL_COBJS := $(KERNEL_COBJS) \
+					$(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
+endif
+
+#
+#  ã½ã¼ã¹ãã¡ã¤ã«ã®ãããã£ã¬ã¯ããªã«é¢ããå®ç¾©
+#
+vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
+vpath %.S $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
+vpath %.cfg $(APPL_DIR)
+
+#
+#  ã³ã³ãã¤ã«ã®ããã®å¤æ°ã®å®ç¾©
+#
+KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
+SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS) $(HIDDEN_OBJS)
+APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
+ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
+											$(END_OBJS) $(HIDDEN_OBJS)
+ifdef KERNEL_LIB
+  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) -lkernel $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
+  LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
+  REALCLEAN_FILES := libkernel.a $(REALCLEAN_FILES)
+else
+  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) libkernel.a $(LIBS)
+  LIBS_DEP = $(filter %.a,$(ALL_LIBS))
+endif
+
+ifdef TEXT_START_ADDRESS
+  LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
+endif
+ifdef DATA_START_ADDRESS
+  LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
+endif
+ifdef LDSCRIPT
+  LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
+  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -T $(LDSCRIPT)
+endif
+
+#
+#  ã«ã¼ãã«ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®çæ
+#
+cfg1_out.c cfg1_out.db: cfg1_out.timestamp ;
+cfg1_out.timestamp: $(APPL_CFG)
+	$(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) $<
+
+$(CFG1_OUT): $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS)
+	$(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
+						$(START_OBJS) cfg1_out.o $(END_OBJS)
+
+cfg1_out.syms: $(CFG1_OUT)
+	$(NM) -n $(CFG1_OUT) > cfg1_out.syms
+
+cfg1_out.srec: $(CFG1_OUT)
+	$(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
+
+$(CFG2_OUT_SRCS) cfg2_out.db: kernel_cfg.timestamp ;
+kernel_cfg.timestamp: cfg1_out.db cfg1_out.syms cfg1_out.srec
+	$(CFG) --pass 2 --kernel asp $(INCLUDES) \
+		$(CFG_TRB) $(CFG_TABS) $<
+	touch -r kernel_cfg.c kernel_cfg.timestamp
+
+#
+#  ãªãã»ãããã¡ã¤ã«ï¼offset.hï¼ã®çæè¦å
+#
+ifdef OFFSET_TRB
+offset.h: $(APPL_CFG) kernel_cfg.timestamp
+	$(CFG) --pass 2 -O --kernel asp $(INCLUDES) \
+				--rom-image cfg1_out.srec --rom-symbol cfg1_out.syms \
+				-T $(OFFSET_TRB) $(CFG_TABS) $<
+else
+offset.h: makeoffset.s $(SRCDIR)/utils/genoffset
+	$(PERL) $(SRCDIR)/utils/genoffset makeoffset.s > offset.h
+endif
+
+#
+#  ã«ã¼ãã«ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#
+libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
+	rm -f libkernel.a
+	$(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
+	$(RANLIB) libkernel.a
+
+#
+#  ç¹å¥ãªä¾å­é¢ä¿ã®å®ç¾©
+#
+banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) $(LIBS_DEP)
+
+#
+#  å
+¨ä½ã®ãªã³ã¯
+#
+$(OBJFILE): $(APPL_CFG) kernel_cfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
+	$(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
+			$(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
+	$(OBJDUMP) -h $(OBJFILE)
+	$(SIZE) $(OBJFILE)
+
+#
+#  ã·ã³ãã«ãã¡ã¤ã«ã®çæ
+#
+$(OBJNAME).syms: $(OBJFILE)
+	$(NM) -n $(OBJFILE) > $(OBJNAME).syms
+
+#
+#  ãã¤ããªãã¡ã¤ã«ã®çæ
+#
+$(OBJNAME).bin: $(OBJFILE)
+	$(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
+
+#
+#  Sã¬ã³ã¼ããã¡ã¤ã«ã®çæ
+#
+$(OBJNAME).srec: $(OBJFILE)
+	$(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
+
+#
+#  ã¨ã©ã¼ãã§ãã¯å¦ç
+#
+.PHONY: check
+check: check.timestamp ;
+check.timestamp: cfg2_out.db $(OBJNAME).syms $(OBJNAME).srec
+	$(CFG) --pass 3 --kernel asp -O $(INCLUDES) -T $(TARGETDIR)/target_check.trb \
+				--rom-symbol $(OBJNAME).syms --rom-image $(OBJNAME).srec
+	@echo "configuration check passed"
+
+#
+#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#
+.PHONY: clean
+clean:
+	rm -f \#* *~ *.o *.timestamp *.db $(CLEAN_FILES)
+	rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
+	rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS)
+	rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
+ifndef KERNEL_LIB
+	rm -f libkernel.a
+endif
+	rm -f makeoffset.s offset.h
+
+.PHONY: cleankernel
+cleankernel:
+	rm -rf $(KERNEL_LIB_OBJS)
+	rm -f makeoffset.s offset.h
+
+.PHONY: cleandep
+cleandep:
+	if ! [ -f Makefile.depend ]; then \
+		rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS); \
+		rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
+		rm -f makeoffset.s offset.h; \
+	fi
+	rm -f Makefile.depend
+
+.PHONY: realclean
+realclean: cleandep clean
+	rm -f $(REALCLEAN_FILES)
+
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã®ã³ã³ãã¤ã«ã«ã¼ã«ã¨ä¾å­é¢ä¿ä½æ
+#  ã«ã¼ã«ã®å®ç¾©
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãããã¡ã¤ã«ã¯ï¼ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ç¨ï¼
+#  ã·ã¹ãã ãµã¼ãã¹ç¨ï¼ã«ã¼ãã«ç¨ã®ãã¹ã¦ã®ãªãã·ã§ã³ãä»ãã¦ã³ã³ãã¤ã«
+#  ããï¼
+#
+ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
+ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
+CFG_CFLAGS = $(APPL_CFLAGS) $(SYSSVC_CFLAGS) $(KERNEL_CFLAGS)
+
+$(ALL_CFG_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(CFG_CFLAGS)" $< >> Makefile.depend
+
+$(ALL_CFG_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
+
+$(ALL_CFG_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(CFG_CFLAGS)" $< >> Makefile.depend
+
+#
+#  ç¹æ®ãªä¾å­é¢ä¿ä½æã«ã¼ã«ã®å®ç¾©
+#
+cfg1_out.depend: $(APPL_CFG)
+	@$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
+
+makeoffset.d: makeoffset.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-T "makeoffset.s" -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+#
+#  ä¾å­é¢ä¿ãã¡ã¤ã«ã®çæ
+#
+.PHONY: gendepend
+gendepend:
+	@echo "Generating Makefile.depend."
+
+.PHONY: depend
+ifdef KERNEL_LIB
+depend: cleandep kernel_cfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(ALL_OBJS:.o=.d)
+else
+depend: cleandep $(OFFSET_H) kernel_cfg.timestamp gendepend \
+		cfg1_out.depend cfg1_out.d \
+		$(KERNEL_AUX_COBJS:.o=.d) $(KERNEL_ASMOBJS:.o=.d) \
+		$(KERNEL_COBJS:.o=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.o=.d)
+endif
+
+#
+#  ä¾å­é¢ä¿ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+#
+-include Makefile.depend
+
+#
+#  éçºãã¼ã«ã®ã³ãã³ãåã®å®ç¾©
+#
+ifeq ($(TOOL),gcc)
+  #
+  #  GNUéçºç°å¢ç¨
+  #
+  ifdef GCC_TARGET
+    GCC_TARGET_PREFIX = $(GCC_TARGET)-
+  else
+    GCC_TARGET_PREFIX =
+  endif
+  CC = $(GCC_TARGET_PREFIX)gcc
+  CXX = $(GCC_TARGET_PREFIX)g++
+  AS = $(GCC_TARGET_PREFIX)as
+  LD = $(GCC_TARGET_PREFIX)ld
+  AR = $(GCC_TARGET_PREFIX)ar
+  NM = $(GCC_TARGET_PREFIX)nm
+  RANLIB = $(GCC_TARGET_PREFIX)ranlib
+  OBJCOPY = $(GCC_TARGET_PREFIX)objcopy
+  OBJDUMP = $(GCC_TARGET_PREFIX)objdump
+  SIZE := $(GCC_TARGET_PREFIX)size
+endif
+
+ifdef USE_CXX
+  LINK = $(CXX)
+else
+  LINK = $(CC)
+endif
+
+#
+#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#
+KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
+
+$(KERNEL_ALL_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ALL_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS): %.o:
+	$(CC) -DTOPPERS_$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_LCOBJS:.o=.s): %.s:
+	$(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(KERNEL_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(SYSSVC_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(SYSSVC_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+$(APPL_COBJS): %.o: %.c
+	$(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_COBJS:.o=.s): %.s: %.c
+	$(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS): %.o: %.cpp
+	$(CXX) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
+	$(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
+
+$(APPL_ASMOBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
+
+#
+#  ä¾å­é¢ä¿ä½æã«ã¼ã«ã®å®ç¾©
+#
+$(KERNEL_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(KERNEL_LCSRCS:.c=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) -T "$($*)" \
+		-O "-DALLFUNC $(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(KERNEL_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+$(SYSSVC_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
+
+$(SYSSVC_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_COBJS:.o=.d): %.d: %.c
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_CXXOBJS:.o=.d): %.d: %.cpp
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CXX) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+$(APPL_ASMOBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
+
+#
+#  ããã©ã«ãã³ã³ãã¤ã«ã«ã¼ã«ãä¸æ¸ã
+#
+%.o: %.c
+	@echo "*** Default compile rules should not be used."
+	$(CC) -c $(CFLAGS) $<
+
+%.s: %.c
+	@echo "*** Default compile rules should not be used."
+	$(CC) -S $(CFLAGS) $<
+
+%.o: %.cpp
+	@echo "*** Default compile rules should not be used."
+	$(CXX) -c $(CFLAGS) $<
+
+%.s: %.cpp
+	@echo "*** Default compile rules should not be used."
+	$(CXX) -S $(CFLAGS) $<
+
+%.o: %.S
+	@echo "*** Default compile rules should not be used."
+	$(CC) -c $(CFLAGS) $<
Index: rubycfg_asp/trunk/asp_dcre/sample/sample1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/sample/sample1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/sample/sample1.c	(revision 313)
@@ -0,0 +1,605 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *
+ *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
+ *
+ *  ãã­ã°ã©ã ã®æ¦è¦:
+ *
+ *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
+ *  å
+åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
+ *  TASK1ï½TASK3ï¼åæåªå
+åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
+ *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
+ *
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
+ *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
+ *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
+ *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
+ *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
+ *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
+ *
+ *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
+ *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
+ *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
+ã«ãªã£ã¦ããï¼
+ *
+ *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
+¥åãè¡ãï¼æå­å
+¥åã
+ *  å¾
+ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
+¥åããã
+ *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
+¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
+ *  Control-Cã¾ãã¯'Q'ãå
+¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
+ *
+ *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
+ *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
+ *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
+ *  'a' : å¯¾è±¡ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼
+ *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ããã­ã£ã³ã»ã«ããï¼
+ *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼
+ *  't' : å¯¾è±¡ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼
+ *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãHIGH_PRIORITYã«ããï¼
+ *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãMID_PRIORITYã«ããï¼
+ *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãLOW_PRIORITYã«ããï¼
+ *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãget_priã§èª­ã¿åºãï¼
+ *  's' : å¯¾è±¡ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'w' : å¯¾è±¡ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼
+ *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ããã­ã£ã³ã»ã«ããï¼
+ *  'l' : å¯¾è±¡ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾
+ã¡è§£é¤ã«ããï¼
+ *  'u' : å¯¾è±¡ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾
+ã¡ç¶æ
+ã«ããï¼
+ *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
+ã¡ç¶æ
+ãrsm_tskã«ããè§£é¤ããï¼
+ *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾
+ã¡ã«ãããï¼
+ *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0001ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'X' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0002ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«dis_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãç¦æ­¢ããï¼
+ *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«ena_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãè¨±å¯ããï¼
+ *  'r' : 3ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
+ *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
+ *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
+ *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
+ *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
+ *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
+ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
+ *        çµäºããï¼ï¼
+ *  '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæãï¼def_texã«ããã¿ã¹ã¯ä¾å¤å¦ç
+ *        ã«ã¼ãã³ãè¨­å®ããï¼
+ *  '!' : å¯¾è±¡ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼
+ *  'V' : get_utmã§æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã2åèª­ãï¼
+ *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
+ *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+#include "syssvc/serial.h"
+#include "syssvc/syslog.h"
+#include "kernel_cfg.h"
+#include "sample1.h"
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ */
+Inline void
+svc_perror(const char *file, int_t line, const char *expr, ER ercd)
+{
+	if (ercd < 0) {
+		t_perror(LOG_ERROR, file, line, expr, ercd);
+	}
+}
+
+#define	SVC_PERROR(expr)	svc_perror(__FILE__, __LINE__, #expr, (expr))
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ */
+char	message[3];
+
+/*
+ *  ã«ã¼ãåæ°
+ */
+ulong_t	task_loop;		/* ã¿ã¹ã¯å
+ã§ã®ã«ã¼ãåæ° */
+ulong_t	tex_loop;		/* ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ã«ã¼ãåæ° */
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ */
+void task(intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t		n = 0;
+	int_t		tskno = (int_t) exinf;
+	const char	*graph[] = { "|", "  +", "    *" };
+	char		c;
+
+	SVC_PERROR(ena_tex());
+	while (true) {
+		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
+										tskno, ++n, graph[tskno-1]);
+		for (i = 0; i < task_loop; i++);
+		c = message[tskno-1];
+		message[tskno-1] = 0;
+		switch (c) {
+		case 'e':
+			syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+			SVC_PERROR(ext_tsk());
+			assert(0);
+		case 's':
+			syslog(LOG_INFO, "#%d#slp_tsk()", tskno);
+			SVC_PERROR(slp_tsk());
+			break;
+		case 'S':
+			syslog(LOG_INFO, "#%d#tslp_tsk(10000)", tskno);
+			SVC_PERROR(tslp_tsk(10000));
+			break;
+		case 'd':
+			syslog(LOG_INFO, "#%d#dly_tsk(10000)", tskno);
+			SVC_PERROR(dly_tsk(10000));
+			break;
+		case 'y':
+			syslog(LOG_INFO, "#%d#dis_tex()", tskno);
+			SVC_PERROR(dis_tex());
+			break;
+		case 'Y':
+			syslog(LOG_INFO, "#%d#ena_tex()", tskno);
+			SVC_PERROR(ena_tex());
+			break;
+#ifdef CPUEXC1
+		case 'z':
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			break;
+		case 'Z':
+			SVC_PERROR(loc_cpu());
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* CPUEXC1 */
+		default:
+			break;
+		}
+	}
+}
+
+/*
+ *  ä¸¦è¡ãã¦å®è¡ãããã¿ã¹ã¯ç¨ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+ */
+void tex_routine(TEXPTN texptn, intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t	tskno = (int_t) exinf;
+
+	syslog(LOG_NOTICE, "task%d receives exception 0x%04x.", tskno, texptn);
+	for (i = 0; i < tex_loop; i++);
+
+	if ((texptn & 0x8000U) != 0U) {
+		syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+		SVC_PERROR(ext_tsk());
+		assert(0);
+	}
+}
+
+/*
+ *  CPUä¾å¤ãã³ãã©
+ */
+#ifdef CPUEXC1
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ID		tskid;
+
+	syslog(LOG_NOTICE, "CPU exception handler (p_excinf = %08p).", p_excinf);
+	if (sns_ctx() != true) {
+		syslog(LOG_WARNING,
+					"sns_ctx() is not true in CPU exception handler.");
+	}
+	if (sns_dpn() != true) {
+		syslog(LOG_WARNING,
+					"sns_dpn() is not true in CPU exception handler.");
+	}
+	syslog(LOG_INFO, "sns_loc = %d sns_dsp = %d sns_tex = %d",
+									sns_loc(), sns_dsp(), sns_tex());
+	syslog(LOG_INFO, "xsns_dpn = %d xsns_xpn = %d",
+									xsns_dpn(p_excinf), xsns_xpn(p_excinf));
+
+	if (xsns_xpn(p_excinf)) {
+		syslog(LOG_NOTICE, "Sample program ends with exception.");
+		SVC_PERROR(ext_ker());
+		assert(0);
+	}
+
+	SVC_PERROR(iget_tid(&tskid));
+	SVC_PERROR(iras_tex(tskid, 0x8000U));
+}
+
+#endif /* CPUEXC1 */
+
+/*
+ *  å¨æãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void cyclic_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void alarm_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯
+ */
+void main_task(intptr_t exinf)
+{
+	char	c;
+	ID		tskid = TASK1;
+	int_t	tskno = 1;
+	ER_UINT	ercd;
+	PRI		tskpri;
+#ifndef TASK_LOOP
+	volatile ulong_t	i;
+	SYSTIM	stime1, stime2;
+#endif /* TASK_LOOP */
+#ifdef TOPPERS_SUPPORT_GET_UTM
+	SYSUTM	utime1, utime2;
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+	T_CTSK	ctsk;
+	T_DTEX	dtex;
+	ID		TASK3 = -1;
+
+	SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_EMERG)));
+	syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf);
+
+	/*
+	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *
+	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
+	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
+	 *  ãªãï¼
+	 */
+	ercd = serial_opn_por(TASK_PORTID);
+	if (ercd < 0 && MERCD(ercd) != E_OBJ) {
+		syslog(LOG_ERROR, "%s (%d) reported by `serial_opn_por'.",
+									itron_strerror(ercd), SERCD(ercd));
+	}
+	SVC_PERROR(serial_ctl_por(TASK_PORTID,
+							(IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV)));
+
+	/*
+ 	 *  ã«ã¼ãåæ°ã®è¨­å®
+	 *
+	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
+	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
+	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
+	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *
+	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
+	 *  ãé
+ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
+	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
+	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *
+	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
+	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *
+	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
+	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
+	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *
+	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
+	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
+	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
+	 * ãä½¿ãï¼
+	 *
+	 *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼tex_loopï¼ã¯ï¼
+	 *  task_loopã®4åã®1ã®å¤ï¼ç©ºã«ã¼ãã®å®è¡æéã0.1ç§ã«ãªãã«ã¼ãå
+	 *  æ°ï¼ã«è¨­å®ããï¼
+	 */
+#ifdef TASK_LOOP
+	task_loop = TASK_LOOP;
+#else /* TASK_LOOP */
+
+#ifdef MEASURE_TWICE
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+#endif /* MEASURE_TWICE */
+
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+	task_loop = LOOP_REF * 400UL / (stime2 - stime1);
+
+#endif /* TASK_LOOP */
+	tex_loop = task_loop / 4;
+
+	/*
+ 	 *  ã¿ã¹ã¯ã®èµ·å
+	 */
+	SVC_PERROR(act_tsk(TASK1));
+	SVC_PERROR(act_tsk(TASK2));
+
+	/*
+ 	 *  ã¡ã¤ã³ã«ã¼ã
+	 */
+	do {
+		SVC_PERROR(serial_rea_dat(TASK_PORTID, &c, 1));
+		switch (c) {
+		case 'e':
+		case 's':
+		case 'S':
+		case 'd':
+		case 'y':
+		case 'Y':
+		case 'z':
+		case 'Z':
+			message[tskno-1] = c;
+			break;
+		case '1':
+			tskno = 1;
+			tskid = TASK1;
+			break;
+		case '2':
+			tskno = 2;
+			tskid = TASK2;
+			break;
+		case '3':
+			tskno = 3;
+			tskid = TASK3;
+			break;
+		case 'a':
+			syslog(LOG_INFO, "#act_tsk(%d)", tskno);
+			SVC_PERROR(act_tsk(tskid));
+			break;
+		case 'A':
+			syslog(LOG_INFO, "#can_act(%d)", tskno);
+			SVC_PERROR(ercd = can_act(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_act(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 't':
+			syslog(LOG_INFO, "#ter_tsk(%d)", tskno);
+			SVC_PERROR(ter_tsk(tskid));
+			break;
+		case '>':
+			syslog(LOG_INFO, "#chg_pri(%d, HIGH_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, HIGH_PRIORITY));
+			break;
+		case '=':
+			syslog(LOG_INFO, "#chg_pri(%d, MID_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, MID_PRIORITY));
+			break;
+		case '<':
+			syslog(LOG_INFO, "#chg_pri(%d, LOW_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, LOW_PRIORITY));
+			break;
+		case 'G':
+			syslog(LOG_INFO, "#get_pri(%d, &tskpri)", tskno);
+			SVC_PERROR(ercd = get_pri(tskid, &tskpri));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "priority of task %d is %d", tskno, tskpri);
+			}
+			break;
+		case 'w':
+			syslog(LOG_INFO, "#wup_tsk(%d)", tskno);
+			SVC_PERROR(wup_tsk(tskid));
+			break;
+		case 'W':
+			syslog(LOG_INFO, "#can_wup(%d)", tskno);
+			SVC_PERROR(ercd = can_wup(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_wup(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 'l':
+			syslog(LOG_INFO, "#rel_wai(%d)", tskno);
+			SVC_PERROR(rel_wai(tskid));
+			break;
+		case 'u':
+			syslog(LOG_INFO, "#sus_tsk(%d)", tskno);
+			SVC_PERROR(sus_tsk(tskid));
+			break;
+		case 'm':
+			syslog(LOG_INFO, "#rsm_tsk(%d)", tskno);
+			SVC_PERROR(rsm_tsk(tskid));
+			break;
+		case 'x':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0001U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0001U));
+			break;
+		case 'X':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0002U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0002U));
+			break;
+		case 'r':
+			syslog(LOG_INFO, "#rot_rdq(three priorities)");
+			SVC_PERROR(rot_rdq(HIGH_PRIORITY));
+			SVC_PERROR(rot_rdq(MID_PRIORITY));
+			SVC_PERROR(rot_rdq(LOW_PRIORITY));
+			break;
+		case 'c':
+			syslog(LOG_INFO, "#sta_cyc(1)");
+			SVC_PERROR(sta_cyc(CYCHDR1));
+			break;
+		case 'C':
+			syslog(LOG_INFO, "#stp_cyc(1)");
+			SVC_PERROR(stp_cyc(CYCHDR1));
+			break;
+		case 'b':
+			syslog(LOG_INFO, "#sta_alm(1, 5000)");
+			SVC_PERROR(sta_alm(ALMHDR1, 5000));
+			break;
+		case 'B':
+			syslog(LOG_INFO, "#stp_alm(1)");
+			SVC_PERROR(stp_alm(ALMHDR1));
+			break;
+		case '@':
+			ctsk.tskatr = TA_NULL;
+			ctsk.exinf = 3;
+			ctsk.task = task;
+			ctsk.itskpri = MID_PRIORITY;
+			ctsk.stksz = STACK_SIZE;
+			ctsk.stk = NULL;
+			SVC_PERROR(TASK3 = acre_tsk(&ctsk));
+
+			dtex.texatr = TA_NULL;
+			dtex.texrtn = tex_routine;
+			SVC_PERROR(def_tex(TASK3, &dtex));
+
+			syslog(LOG_NOTICE, "task3 is created with tskid = %d.",
+														(int_t) TASK3);
+			break;
+		case '!':
+			syslog(LOG_INFO, "#del_tsk(%d)", tskno);
+			SVC_PERROR(del_tsk(tskid));
+			break;
+
+		case 'V':
+#ifdef TOPPERS_SUPPORT_GET_UTM
+			SVC_PERROR(get_utm(&utime1));
+			SVC_PERROR(get_utm(&utime2));
+			syslog(LOG_NOTICE, "utime1 = %ld, utime2 = %ld",
+										(ulong_t) utime1, (ulong_t) utime2);
+#else /* TOPPERS_SUPPORT_GET_UTM */
+			syslog(LOG_NOTICE, "get_utm is not supported.");
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+			break;
+
+		case 'v':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+		case 'q':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_NOTICE),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+
+#ifdef BIT_KERNEL
+		case ' ':
+			SVC_PERROR(loc_cpu());
+			{
+				extern ER	bit_kernel(void);
+
+				SVC_PERROR(ercd = bit_kernel());
+				if (ercd >= 0) {
+					syslog(LOG_NOTICE, "bit_kernel passed.");
+				}
+			}
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* BIT_KERNEL */
+
+		default:
+			break;
+		}
+	} while (c != '\003' && c != 'Q');
+
+	syslog(LOG_NOTICE, "Sample program ends.");
+	SVC_PERROR(ext_ker());
+	assert(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/sample/sample1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/sample/sample1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/sample/sample1.cfg	(revision 313)
@@ -0,0 +1,26 @@
+/*
+ *  $Id$
+ */
+
+/*
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+INCLUDE("syssvc/logtask.cfg");
+
+#include "sample1.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+AID_TSK(3);
+DEF_TEX(TASK1, { TA_NULL, tex_routine });
+DEF_TEX(TASK2, { TA_NULL, tex_routine });
+CRE_CYC(CYCHDR1, { TA_NULL, 0, cyclic_handler, 2000, 0 });
+CRE_ALM(ALMHDR1, { TA_NULL, 0, alarm_handler });
+#ifdef CPUEXC1
+DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
+#endif /* CPUEXC1 */
+DEF_KMM({ KMM_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/sample/sample1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/sample/sample1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/sample/sample1.h	(revision 313)
@@ -0,0 +1,116 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ *
+ *  $Id$
+ */
+
+/*
+ *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+
+#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+								/* HIGH_PRIORITYããé«ããããã¨ */
+
+#define HIGH_PRIORITY	9		/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã®åªå
+åº¦ */
+#define MID_PRIORITY	10
+#define LOW_PRIORITY	11
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+
+#ifndef TASK_PORTID
+#define	TASK_PORTID		1			/* æå­å
+¥åããã·ãªã¢ã«ãã¼ãID */
+#endif /* TASK_PORTID */
+
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+#ifndef KMM_SIZE
+#define	KMM_SIZE		(STACK_SIZE * 16)	/* ã«ã¼ãã«ãå²ãä»ãã   */
+#endif /* KMM_SIZE */						/*     ã¡ã¢ãªé åã®ãµã¤ãº */
+
+#ifndef LOOP_REF
+#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#endif /* LOOP_REF */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
+extern void	tex_routine(TEXPTN texptn, intptr_t exinf);
+#ifdef CPUEXC1
+extern void	cpuexc_handler(void *p_excinf);
+#endif /* CPUEXC1 */
+extern void	cyclic_handler(intptr_t exinf);
+extern void	alarm_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/syssvc/banner.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/banner.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/banner.c	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "target_syssvc.h"
+#include "banner.h"
+
+#ifndef TARGET_COPYRIGHT
+#define TARGET_COPYRIGHT
+#endif /* TARGET_COPYRIGHT */
+
+static const char banner[] = "\n"
+"TOPPERS/ASP Kernel Release %d.%X.%d for " TARGET_NAME
+" (" __DATE__ ", " __TIME__ ")\n"
+"Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory\n"
+"                            Toyohashi Univ. of Technology, JAPAN\n"
+"Copyright (C) 2004-2014 by Embedded and Real-Time Systems Laboratory\n"
+"            Graduate School of Information Science, Nagoya Univ., JAPAN\n"
+TARGET_COPYRIGHT;
+
+void
+print_banner(intptr_t exinf)
+{
+	syslog_3(LOG_NOTICE, banner,
+				(TKERNEL_PRVER >> 12) & 0x0fU,
+				(TKERNEL_PRVER >> 4) & 0xffU,
+				TKERNEL_PRVER & 0x0fU);
+}
Index: rubycfg_asp/trunk/asp_dcre/syssvc/banner.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/banner.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/banner.cfg	(revision 313)
@@ -0,0 +1,10 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºåã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "syssvc/banner.h"
+ATT_INI({ TA_NULL, 0, print_banner });
Index: rubycfg_asp/trunk/asp_dcre/syssvc/banner.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/banner.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/banner.h	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2008 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+ */
+
+#ifndef TOPPERS_BANNER_H
+#define TOPPERS_BANNER_H
+
+/*
+ *  ã«ã¼ãã«èµ·åã¡ãã»ã¼ã¸ã®åºå
+ */
+extern void	print_banner(intptr_t exinf) throw();
+
+#endif /* TOPPERS_BANNER_H */
Index: rubycfg_asp/trunk/asp_dcre/syssvc/logtask.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/logtask.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/logtask.c	(revision 313)
@@ -0,0 +1,218 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <log_output.h>
+#include "syssvc/serial.h"
+#include "syssvc/syslog.h"
+#include "logtask.h"
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åºåå
+ã®ãã¼ãID
+ */
+static ID	logtask_portid;
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ã¸ã®1æå­åºå
+ */
+static void
+logtask_putc(char c)
+{
+	(void) serial_wri_dat(logtask_portid, &c, 1);
+}
+
+/*
+ *  ã·ã¹ãã ã­ã°åºåã®å¾
+ã¡åãã
+ */
+ER
+logtask_flush(uint_t count)
+{
+	T_SYSLOG_RLOG	rlog;
+	T_SERIAL_RPOR	rpor;
+	ER				ercd, rercd;
+
+	if (sns_dpn()) {
+		ercd = E_CTX;
+	}
+	else {
+		for (;;) {
+			if (syslog_ref_log(&rlog) < 0) {
+				ercd = E_SYS;
+				goto error_exit;
+			}
+			if (rlog.count <= count) {
+				if (count == 0U) {
+					/*
+					 *  countã0ã®å ´åã«ã¯ï¼ã·ãªã¢ã«ãããã¡ãç©ºããç¢º
+					 *  èªããï¼
+					 */
+					if (serial_ref_por(logtask_portid, &rpor) < 0) {
+						ercd = E_SYS;
+						goto error_exit;
+					}
+					if (rpor.wricnt == 0U) {
+						ercd = E_OK;
+						goto error_exit;
+					}
+				}
+				else {
+					ercd = E_OK;
+					goto error_exit;
+				}
+			}
+
+			/*
+			 *  LOGTASK_FLUSH_WAITããªç§å¾
+ã¤ï¼
+			 */
+			rercd = dly_tsk(LOGTASK_FLUSH_WAIT);
+			if (rercd < 0) {
+				ercd = (rercd == E_RLWAI) ? rercd : E_SYS;
+				goto error_exit;
+			}
+		}
+	}
+
+  error_exit:
+	return(ercd);
+}
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®æ¬ä½
+ */
+void
+logtask_main(intptr_t exinf)
+{
+	SYSLOG	logbuf;
+	uint_t	lostlog;
+	ER_UINT	rercd;
+
+	logtask_portid = (ID) exinf;
+	(void) serial_opn_por(logtask_portid);
+	(void) syslog_msk_log(LOG_UPTO(LOG_NOTICE), LOG_UPTO(LOG_EMERG));
+	syslog_1(LOG_NOTICE, "System logging task is started on port %d.",
+													logtask_portid);
+	for (;;) {
+		lostlog = 0U;
+		while ((rercd = syslog_rea_log(&logbuf)) >= 0) {
+			lostlog += (uint_t) rercd;
+			if (logbuf.logtype >= LOG_TYPE_COMMENT) {
+				if (lostlog > 0U) {
+					syslog_lostmsg(lostlog, logtask_putc);
+					lostlog = 0U;
+				}
+				syslog_print(&logbuf, logtask_putc);
+				logtask_putc('\n');
+			}
+		}
+		if (lostlog > 0U) {
+			syslog_lostmsg(lostlog, logtask_putc);
+		}
+		(void) dly_tsk(LOGTASK_INTERVAL);
+	}
+}
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦ç
+ */
+void
+logtask_terminate(intptr_t exinf)
+{
+	char	c;
+	SYSLOG	logbuf;
+	bool_t	msgflg = false;
+	ER_UINT	rercd;
+
+	/*
+	 *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®éä¿¡ãããã¡ã«èç©ããããã¼ã¿
+	 *  ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åºåããï¼
+	 */
+	while (serial_get_chr(logtask_portid, &c)) {
+		target_fput_log(c);
+	}
+
+	/*
+	 *  ã­ã°ãããã¡ã«è¨é²ãããã­ã°æ
+å ±ãï¼ä½ã¬ãã«åºåæ©è½ãç¨ãã¦åº
+	 *  åããï¼
+	 */
+	while ((rercd = syslog_rea_log(&logbuf)) >= 0) {
+		if (!msgflg) {
+			/*
+			 *  ã­ã°ãããã¡ã«æ®ã£ãã­ã°æ
+å ±ã§ãããã¨ãç¤ºãæå­åãåº
+			 *  åããï¼
+			 */
+			syslog_printf("-- buffered messages --\n", NULL, target_fput_log);
+			msgflg = true;
+		}
+		if (rercd > 0) {
+			syslog_lostmsg((uint_t) rercd, target_fput_log);
+		}
+		if (logbuf.logtype >= LOG_TYPE_COMMENT) {
+			syslog_print(&logbuf, target_fput_log);
+			target_fput_log('\n');
+		}
+	}
+}
Index: rubycfg_asp/trunk/asp_dcre/syssvc/logtask.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/logtask.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/logtask.cfg	(revision 313)
@@ -0,0 +1,12 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "syssvc/logtask.h"
+CRE_TSK(LOGTASK, { TA_ACT, LOGTASK_PORTID, logtask_main,
+						LOGTASK_PRIORITY, LOGTASK_STACK_SIZE, NULL });
+ATT_TER({ TA_NULL, 0, logtask_terminate });
Index: rubycfg_asp/trunk/asp_dcre/syssvc/logtask.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/logtask.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/logtask.h	(revision 313)
@@ -0,0 +1,121 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2008 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°ã¿ã¹ã¯
+ */
+
+#ifndef TOPPERS_LOGTASK_H
+#define TOPPERS_LOGTASK_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "target_syssvc.h"
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯é¢é£ã®å®æ°ã®ããã©ã«ãå¤ã®å®ç¾©
+ */ 
+#ifndef LOGTASK_PRIORITY
+#define LOGTASK_PRIORITY	3		/* åæåªå
+åº¦ */
+#endif /* LOGTASK_PRIORITY */
+
+#ifndef LOGTASK_STACK_SIZE
+#define LOGTASK_STACK_SIZE	1024	/* ã¹ã¿ãã¯é åã®ãµã¤ãº */
+#endif /* LOGTASK_STACK_SIZE */
+
+#ifndef LOGTASK_PORTID
+#define LOGTASK_PORTID		1		/* ã·ã¹ãã ã­ã°ç¨ã®ã·ãªã¢ã«ãã¼ãçªå· */
+#endif /* LOGTASK_PORTID */
+
+#ifndef LOGTASK_INTERVAL
+#define LOGTASK_INTERVAL	10U		/* ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®åä½ééï¼ããªç§ï¼*/
+#endif /* LOGTASK_INTERVAL */
+
+#ifndef LOGTASK_FLUSH_WAIT
+#define LOGTASK_FLUSH_WAIT	1U		/* ãã©ãã·ã¥å¾
+ã¡ã®åä½æéï¼ããªç§ï¼*/
+#endif /* LOGTASK_FLUSH_WAIT */
+
+/*
+ *  ã·ã¹ãã ã­ã°åºåã®å¾
+ã¡åãã
+ *
+ *  ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ°ãcountä»¥ä¸ã«ãªãã¾ã§å¾
+ã¤ï¼countã0ã®å ´åã«
+ *  ã¯ï¼ã·ãªã¢ã«ãããã¡ãç©ºã«ãªãã®ãå¾
+ã¤ï¼
+ */
+extern ER	logtask_flush(uint_t count) throw();
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®æ¬ä½
+ */
+extern void	logtask_main(intptr_t exinf) throw();
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã®çµäºå¦ç
+ */
+extern void	logtask_terminate(intptr_t exinf) throw();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_LOGTASK_H */
Index: rubycfg_asp/trunk/asp_dcre/syssvc/serial.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/serial.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/serial.c	(revision 313)
@@ -0,0 +1,817 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2006-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "target_syssvc.h"
+#include "target_serial.h"
+#include "serial.h"
+#include "kernel_cfg.h"
+
+/*
+ *  ãããã¡ãµã¤ãºã®ããã©ã«ãå¤ã¨ãããã¡ã®å®ç¾©
+ */
+#ifndef SERIAL_RCV_BUFSZ1
+#define	SERIAL_RCV_BUFSZ1	256			/* ãã¼ã1ã®åä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_RCV_BUFSZ1 */
+
+#ifndef SERIAL_SND_BUFSZ1
+#define	SERIAL_SND_BUFSZ1	256			/* ãã¼ã1ã®éä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_SND_BUFSZ1 */
+
+static char	rcv_buffer1[SERIAL_RCV_BUFSZ1];
+static char	snd_buffer1[SERIAL_SND_BUFSZ1];
+
+#if TNUM_PORT >= 2						/* ãã¼ã2ã«é¢ããå®ç¾© */
+
+#ifndef SERIAL_RCV_BUFSZ2
+#define	SERIAL_RCV_BUFSZ2	256			/* ãã¼ã2ã®åä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_RCV_BUFSZ2 */
+
+#ifndef SERIAL_SND_BUFSZ2
+#define	SERIAL_SND_BUFSZ2	256			/* ãã¼ã2ã®éä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_SND_BUFSZ2 */
+
+static char	rcv_buffer2[SERIAL_RCV_BUFSZ2];
+static char	snd_buffer2[SERIAL_SND_BUFSZ2];
+
+#endif /* TNUM_PORT >= 2 */
+
+#if TNUM_PORT >= 3						/* ãã¼ã3ã«é¢ããå®ç¾© */
+
+#ifndef SERIAL_RCV_BUFSZ3
+#define	SERIAL_RCV_BUFSZ3	256			/* ãã¼ã3ã®åä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_RCV_BUFSZ3 */
+
+#ifndef SERIAL_SND_BUFSZ3
+#define	SERIAL_SND_BUFSZ3	256			/* ãã¼ã3ã®éä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_SND_BUFSZ3 */
+
+static char	rcv_buffer3[SERIAL_RCV_BUFSZ3];
+static char	snd_buffer3[SERIAL_SND_BUFSZ3];
+
+#endif /* TNUM_PORT >= 3 */
+
+#if TNUM_PORT >= 4						/* ãã¼ã4ã«é¢ããå®ç¾© */
+
+#ifndef SERIAL_RCV_BUFSZ4
+#define	SERIAL_RCV_BUFSZ4	256			/* ãã¼ã4ã®åä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_RCV_BUFSZ4 */
+
+#ifndef SERIAL_SND_BUFSZ4
+#define	SERIAL_SND_BUFSZ4	256			/* ãã¼ã4ã®éä¿¡ãããã¡ãµã¤ãº */
+#endif /* SERIAL_SND_BUFSZ4 */
+
+static char	rcv_buffer4[SERIAL_RCV_BUFSZ4];
+static char	snd_buffer4[SERIAL_SND_BUFSZ4];
+
+#endif /* TNUM_PORT >= 4 */
+
+#if TNUM_PORT >= 5
+#error Serial interface driver supports up to 4 ports.
+#endif /* TNUM_PORT >= 5 */
+
+/*
+ *  ãã­ã¼å¶å¾¡ã«é¢é£ããå®æ°ã¨ãã¯ã­
+ */
+#define	FC_STOP			'\023'		/* ã³ã³ãã­ã¼ã«-S */
+#define	FC_START		'\021'		/* ã³ã³ãã­ã¼ã«-Q */
+
+#define BUFCNT_STOP(bufsz)		((bufsz) * 3 / 4)	/* STOPãéãåºæºæå­æ° */
+#define BUFCNT_START(bufsz)		((bufsz) / 2)		/* STARTãéãåºæºæå­æ° */
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãåæåãã­ãã¯
+ */
+typedef struct serial_port_initialization_block {
+	ID		rcv_semid;		/* åä¿¡ãããã¡ç®¡çç¨ã»ããã©ã®ID */
+	ID		snd_semid;		/* éä¿¡ãããã¡ç®¡çç¨ã»ããã©ã®ID */
+	uint_t	rcv_bufsz;		/* åä¿¡ãããã¡ãµã¤ãº */
+	char	*rcv_buffer;	/* åä¿¡ãããã¡ */
+	uint_t	snd_bufsz;		/* éä¿¡ãããã¡ãµã¤ãº */
+	char	*snd_buffer;	/* éä¿¡ãããã¡ */
+} SPINIB;
+
+static const SPINIB spinib_table[TNUM_PORT] = {
+	{ SERIAL_RCV_SEM1, SERIAL_SND_SEM1,
+	  SERIAL_RCV_BUFSZ1, rcv_buffer1,
+	  SERIAL_SND_BUFSZ1, snd_buffer1 },
+#if TNUM_PORT >= 2
+	{ SERIAL_RCV_SEM2, SERIAL_SND_SEM2,
+	  SERIAL_RCV_BUFSZ2, rcv_buffer2,
+	  SERIAL_SND_BUFSZ2, snd_buffer2 },
+#endif /* TNUM_PORT >= 2 */
+#if TNUM_PORT >= 3
+	{ SERIAL_RCV_SEM3, SERIAL_SND_SEM3,
+	  SERIAL_RCV_BUFSZ3, rcv_buffer3,
+	  SERIAL_SND_BUFSZ3, snd_buffer3 },
+#endif /* TNUM_PORT >= 3 */
+#if TNUM_PORT >= 4
+	{ SERIAL_RCV_SEM4, SERIAL_SND_SEM4,
+	  SERIAL_RCV_BUFSZ4, rcv_buffer4,
+	  SERIAL_SND_BUFSZ4, snd_buffer4 },
+#endif /* TNUM_PORT >= 4 */
+};
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãç®¡çãã­ãã¯
+ */
+typedef struct serial_port_control_block {
+	const SPINIB *p_spinib;		/* ã·ãªã¢ã«ãã¼ãåæåãã­ãã¯ */
+	SIOPCB	*p_siopcb;			/* ã·ãªã¢ã«I/Oãã¼ãç®¡çãã­ãã¯ */
+	bool_t	openflag;			/* ãªã¼ãã³æ¸ã¿ãã©ã° */
+	bool_t	errorflag;			/* ã¨ã©ã¼ãã©ã° */
+	uint_t	ioctl;				/* åä½å¶å¾¡ã®è¨­å®å¤ */
+
+	uint_t	rcv_read_ptr;		/* åä¿¡ãããã¡èª­åºããã¤ã³ã¿ */
+	uint_t	rcv_write_ptr;		/* åä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */
+	uint_t	rcv_count;			/* åä¿¡ãããã¡ä¸­ã®æå­æ° */
+	char	rcv_fc_chr;			/* éãã¹ãSTART/STOP */
+	bool_t	rcv_stopped;		/* STOPãéã£ãç¶æ
+ãï¼ */
+
+	uint_t	snd_read_ptr;		/* éä¿¡ãããã¡èª­åºããã¤ã³ã¿ */
+	uint_t	snd_write_ptr;		/* éä¿¡ãããã¡æ¸è¾¼ã¿ãã¤ã³ã¿ */
+	uint_t	snd_count;			/* éä¿¡ãããã¡ä¸­ã®æå­æ° */
+	bool_t	snd_stopped;		/* STOPãåãåã£ãç¶æ
+ãï¼ */
+} SPCB;
+
+static SPCB	spcb_table[TNUM_PORT];
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãIDããã·ãªã¢ã«ãã¼ãç®¡çãã­ãã¯ãåãåºãããã®ãã¯ã­
+ */
+#define INDEX_PORT(portid)	((uint_t)((portid) - 1))
+#define get_spcb(portid)	(&(spcb_table[INDEX_PORT(portid)]))
+
+/*
+ *  ãã¤ã³ã¿ã®ã¤ã³ã¯ãªã¡ã³ã
+ */
+#define INC_PTR(ptr, bufsz) do {	\
+	if (++(ptr) == (bufsz)) {		\
+		(ptr) = 0;					\
+	 }								\
+} while (false)
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«å¼åºããã¯ã­
+ *
+ *  ãµã¼ãã¹ã³ã¼ã«å¼åºããå«ãå¼expãè©ä¾¡ãï¼è¿å¤ãã¨ã©ã¼ï¼è² ã®å¤ï¼ã®å ´
+ *  åã«ã¯ï¼ercã«ercd_expãè©ä¾¡ããå¤ãä»£å
+¥ãï¼error_exitã«gotoããï¼
+ */
+#define SVC(exp, ercd_exp) do {		\
+	if ((exp) < 0) {				\
+		ercd = (ercd_exp);			\
+		goto error_exit;			\
+	}								\
+} while (false)
+
+/*
+ *  E_SYSã¨ã©ã¼ã®çæ
+ */
+static ER
+gen_ercd_sys(SPCB *p_spcb)
+{
+	p_spcb->errorflag = true;
+	return(E_SYS);
+}
+
+/*
+ *  å¾
+ã¡ã«å
+¥ããµã¼ãã¹ã³ã¼ã«ããã®ã¨ã©ã¼ã®å¤æ
+ */
+static ER
+gen_ercd_wait(ER rercd, SPCB *p_spcb)
+{
+	switch (MERCD(rercd)) {
+	case E_RLWAI:
+	case E_DLT:
+		return(rercd);
+	default:
+		p_spcb->errorflag = true;
+		return(E_SYS);
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®åæåã«ã¼ãã³
+ */
+void
+serial_initialize(intptr_t exinf)
+{
+	uint_t	i;
+	SPCB	*p_spcb;
+
+	for (i = 0; i < TNUM_PORT; i++) {
+		p_spcb = &(spcb_table[i]);
+		p_spcb->p_spinib = &(spinib_table[i]);
+		p_spcb->openflag = false;
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®ãªã¼ãã³ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER
+serial_opn_por(ID portid)
+{
+	SPCB	*p_spcb;
+	ER		ercd;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+	p_spcb = get_spcb(portid);
+
+	SVC(dis_dsp(), gen_ercd_sys(p_spcb));
+	if (p_spcb->openflag) {			/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		ercd = E_OBJ;
+	}
+	else {
+		/*
+		 *  å¤æ°ã®åæå
+		 */
+		p_spcb->ioctl = (IOCTL_ECHO | IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV);
+
+		p_spcb->rcv_read_ptr = 0U;
+		p_spcb->rcv_write_ptr = 0U;
+		p_spcb->rcv_count = 0U;
+		p_spcb->rcv_fc_chr = '\0';
+		p_spcb->rcv_stopped = false;
+
+		p_spcb->snd_read_ptr = 0U;
+		p_spcb->snd_write_ptr = 0U;
+		p_spcb->snd_count = 0U;
+		p_spcb->snd_stopped = false;
+
+		/*
+		 *  ããä»¥éï¼å²è¾¼ã¿ãç¦æ­¢ããï¼
+		 */
+		if (loc_cpu() < 0) {
+			ercd = E_SYS;
+			goto error_exit_enadsp;
+		}
+
+		/*
+		 *  ãã¼ãã¦ã§ã¢ä¾å­ã®ãªã¼ãã³å¦ç
+		 */
+		p_spcb->p_siopcb = sio_opn_por(portid, (intptr_t) p_spcb);
+
+		/*
+		 *  åä¿¡éç¥ã³ã¼ã«ããã¯ãè¨±å¯ããï¼
+		 */
+		sio_ena_cbr(p_spcb->p_siopcb, SIO_RDY_RCV);
+		p_spcb->openflag = true;
+		p_spcb->errorflag = false;
+
+		if (unl_cpu() < 0) {
+			p_spcb->errorflag = true;
+			ercd = E_SYS;
+			goto error_exit_enadsp;
+		}
+		ercd = E_OK;
+	}
+
+  error_exit_enadsp:
+	SVC(ena_dsp(), gen_ercd_sys(p_spcb));
+
+  error_exit:
+	return(ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®ã¯ã­ã¼ãºï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER
+serial_cls_por(ID portid)
+{
+	SPCB	*p_spcb;
+	ER		ercd;
+	bool_t	eflag = false;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+	p_spcb = get_spcb(portid);
+
+	SVC(dis_dsp(), gen_ercd_sys(p_spcb));
+	if (!(p_spcb->openflag)) {		/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		ercd = E_OBJ;
+	}
+	else {
+		/*
+		 *  ãã¼ãã¦ã§ã¢ä¾å­ã®ã¯ã­ã¼ãºå¦ç
+		 */
+		if (loc_cpu() < 0) {
+			eflag = true;
+		}
+		sio_cls_por(p_spcb->p_siopcb);
+		p_spcb->openflag = false;
+		if (unl_cpu() < 0) {
+			eflag = true;
+		}
+
+		/*
+		 *  ã»ããã©ã®åæå
+		 */
+		if (ini_sem(p_spcb->p_spinib->snd_semid) < 0) {
+			eflag = true;
+		}
+		if (ini_sem(p_spcb->p_spinib->rcv_semid) < 0) {
+			eflag = true;
+		}
+
+		/*
+		 *  ã¨ã©ã¼ã³ã¼ãã®è¨­å®
+		 */
+		if (eflag) {
+			ercd = gen_ercd_sys(p_spcb);
+		}
+		else {
+			ercd = E_OK;
+		}
+	}
+	SVC(ena_dsp(), gen_ercd_sys(p_spcb));
+
+  error_exit:
+	return(ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã¸ã®æå­éä¿¡
+ *
+ *  p_spcbã§æå®ãããã·ãªã¢ã«I/Oãã¼ãã«å¯¾ãã¦ï¼æå­cãéä¿¡ããï¼æå­
+ *  ãéä¿¡ã¬ã¸ã¹ã¿ã«ãããå ´åã«ã¯trueãè¿ãï¼ããã§ãªãå ´åã«ã¯ï¼éä¿¡
+ *  ã¬ã¸ã¹ã¿ãç©ºãããã¨ãéç¥ããã³ã¼ã«ããã¯é¢æ°ãè¨±å¯ãï¼falseãè¿ãï¼
+ *  ãã®é¢æ°ã¯ï¼CPUã­ãã¯ç¶æ
+ã§å¼ã³åºãããï¼
+ */
+Inline bool_t
+serial_snd_chr(SPCB *p_spcb, char c)
+{
+	if (sio_snd_chr(p_spcb->p_siopcb, c)) {
+		return(true);
+	}
+	else {
+		sio_ena_cbr(p_spcb->p_siopcb, SIO_RDY_SND);
+		return(false);
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã¸ã®1æå­éä¿¡
+ */
+static ER_BOOL
+serial_wri_chr(SPCB *p_spcb, char c)
+{
+	bool_t	buffer_full;
+	ER		ercd, rercd;
+
+	/*
+	 *  LFã®åã«CRãéä¿¡ããï¼
+	 */
+	if (c == '\n' && (p_spcb->ioctl & IOCTL_CRLF) != 0U) {
+		/*
+		 *  ä»¥ä¸ã®ã³ã¼ãã¯åå¸°å¼åºãã«ãªã£ã¦ãããï¼å¼æ°cã'\n'ã®å ´åã«
+		 *  å¼æ°cã'\r'ã¨ãã¦å¼ã³åºããã¨ããï¼ãã®åå¸°å¼åºãã¯2åç®ã®
+		 *  å¼ã³åºãã§å¿
+ãæ­¢ã¾ãï¼
+		 */
+		SVC(rercd = serial_wri_chr(p_spcb, '\r'), rercd);
+		if ((bool_t) rercd) {
+			SVC(rercd = wai_sem(p_spcb->p_spinib->snd_semid),
+										gen_ercd_wait(rercd, p_spcb));
+		}
+	}
+
+	SVC(loc_cpu(), gen_ercd_sys(p_spcb));
+	if (p_spcb->snd_count == 0U && !(p_spcb->snd_stopped)
+								&& serial_snd_chr(p_spcb, c)) {
+		/*
+		 *  ã·ãªã¢ã«I/Oããã¤ã¹ã®éä¿¡ã¬ã¸ã¹ã¿ã«æå­ãå
+¥ãããã¨ã«æåã
+		 *  ãå ´åï¼
+		 */
+		buffer_full = false;
+	}
+	else {
+		/*
+		 *  éä¿¡ãããã¡ã«æå­ãå
+¥ããï¼
+		 */
+		p_spcb->p_spinib->snd_buffer[p_spcb->snd_write_ptr] = c;
+		INC_PTR(p_spcb->snd_write_ptr, p_spcb->p_spinib->snd_bufsz);
+		p_spcb->snd_count++;
+		buffer_full = (p_spcb->snd_count == p_spcb->p_spinib->snd_bufsz);
+	}
+
+	SVC(unl_cpu(), gen_ercd_sys(p_spcb));
+	ercd = (ER_BOOL) buffer_full;
+
+  error_exit:
+	return(ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã¸ã®æå­åéä¿¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER_UINT
+serial_wri_dat(ID portid, const char *buf, uint_t len)
+{
+	SPCB	*p_spcb;
+	bool_t	buffer_full;
+	uint_t	wricnt = 0U;
+	ER		ercd, rercd;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+
+	p_spcb = get_spcb(portid);
+	if (!(p_spcb->openflag)) {		/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_OBJ);
+	}
+	if (p_spcb->errorflag) {		/* ã¨ã©ã¼ç¶æ
+ãã®ãã§ãã¯ */
+		return(E_SYS);
+	}
+
+	buffer_full = true;				/* ã«ã¼ãã®1åãã¯wai_semãã */
+	while (wricnt < len) {
+		if (buffer_full) {
+			SVC(rercd = wai_sem(p_spcb->p_spinib->snd_semid),
+										gen_ercd_wait(rercd, p_spcb));
+		}
+		SVC(rercd = serial_wri_chr(p_spcb, *buf++), rercd);
+		wricnt++;
+		buffer_full = (bool_t) rercd;
+	}
+	if (!buffer_full) {
+		SVC(sig_sem(p_spcb->p_spinib->snd_semid), gen_ercd_sys(p_spcb));
+	}
+	ercd = E_OK;
+
+  error_exit:
+	return(wricnt > 0U ? (ER_UINT) wricnt : ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®1æå­åä¿¡
+ */
+static bool_t
+serial_rea_chr(SPCB *p_spcb, char *p_c)
+{
+	bool_t	buffer_empty;
+	ER		ercd;
+
+	SVC(loc_cpu(), gen_ercd_sys(p_spcb));
+
+	/*
+	 *  åä¿¡ãããã¡ããæå­ãåãåºãï¼
+	 */
+	*p_c = p_spcb->p_spinib->rcv_buffer[p_spcb->rcv_read_ptr];
+	INC_PTR(p_spcb->rcv_read_ptr, p_spcb->p_spinib->rcv_bufsz);
+	p_spcb->rcv_count--;
+	buffer_empty = (p_spcb->rcv_count == 0U);
+
+	/*
+	 *  STARTãéä¿¡ããï¼
+	 */
+	if (p_spcb->rcv_stopped && p_spcb->rcv_count
+								<= BUFCNT_START(p_spcb->p_spinib->rcv_bufsz)) {
+		if (!serial_snd_chr(p_spcb, FC_START)) {
+			p_spcb->rcv_fc_chr = FC_START;
+		}
+		p_spcb->rcv_stopped = false;
+	}
+
+	SVC(unl_cpu(), gen_ercd_sys(p_spcb));
+	ercd = (ER_BOOL) buffer_empty;
+
+  error_exit:
+	return(ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®æå­ååä¿¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER_UINT
+serial_rea_dat(ID portid, char *buf, uint_t len)
+{
+	SPCB	*p_spcb;
+	bool_t	buffer_empty;
+	uint_t	reacnt = 0U;
+	char	c = '\0';		/* ã³ã³ãã¤ã©ã®è­¦åãææ­¢ããããã«åæåãã */
+	ER		ercd, rercd;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+
+	p_spcb = get_spcb(portid);
+	if (!(p_spcb->openflag)) {		/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_OBJ);
+	}
+	if (p_spcb->errorflag) {		/* ã¨ã©ã¼ç¶æ
+ãã®ãã§ãã¯ */
+		return(E_SYS);
+	}
+
+	buffer_empty = true;			/* ã«ã¼ãã®1åãã¯wai_semãã */
+	while (reacnt < len) {
+		if (buffer_empty) {
+			SVC(rercd = wai_sem(p_spcb->p_spinib->rcv_semid),
+										gen_ercd_wait(rercd, p_spcb));
+		}
+		SVC(rercd = serial_rea_chr(p_spcb, &c), rercd);
+		*buf++ = c;
+		reacnt++;
+		buffer_empty = (bool_t) rercd;
+
+		/*
+		 *  ã¨ã³ã¼ããã¯å¦çï¼
+		 */
+		if ((p_spcb->ioctl & IOCTL_ECHO) != 0U) {
+			SVC(rercd = wai_sem(p_spcb->p_spinib->snd_semid),
+										gen_ercd_wait(rercd, p_spcb));
+			SVC(rercd = serial_wri_chr(p_spcb, c), rercd);
+			if (!((bool_t) rercd)) {
+				SVC(sig_sem(p_spcb->p_spinib->snd_semid),
+										gen_ercd_sys(p_spcb));
+			}
+		}
+	}
+	if (!buffer_empty) {
+		SVC(sig_sem(p_spcb->p_spinib->rcv_semid), gen_ercd_sys(p_spcb));
+	}
+	ercd = E_OK;
+
+  error_exit:
+	return(reacnt > 0U ? (ER_UINT) reacnt : ercd);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER
+serial_ctl_por(ID portid, uint_t ioctl)
+{
+	SPCB	*p_spcb;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+
+	p_spcb = get_spcb(portid);
+	if (!(p_spcb->openflag)) {		/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_OBJ);
+	}
+	if (p_spcb->errorflag) {		/* ã¨ã©ã¼ç¶æ
+ãã®ãã§ãã¯ */
+		return(E_SYS);
+	}
+
+	p_spcb->ioctl = ioctl;
+	return(E_OK);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãç¶æ
+ã®åç
+§ï¼ãµã¼ãã¹ã³ã¼ã«ï¼
+ */
+ER
+serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor)
+{
+	SPCB	*p_spcb;
+
+	if (sns_dpn()) {				/* ã³ã³ãã­ã¹ãã®ãã§ãã¯ */
+		return(E_CTX);
+	}
+	if (!(1 <= portid && portid <= TNUM_PORT)) {
+		return(E_ID);				/* ãã¼ãçªå·ã®ãã§ãã¯ */
+	}
+
+	p_spcb = get_spcb(portid);
+	if (!(p_spcb->openflag)) {		/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+		return(E_OBJ);
+	}
+	if (p_spcb->errorflag) {		/* ã¨ã©ã¼ç¶æ
+ãã®ãã§ãã¯ */
+		return(E_SYS);
+	}
+
+	pk_rpor->reacnt = p_spcb->rcv_count;
+	pk_rpor->wricnt = p_spcb->snd_count;
+	return(E_OK);
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+void
+sio_irdy_snd(intptr_t exinf)
+{
+	SPCB	*p_spcb;
+
+	p_spcb = (SPCB *) exinf;
+	if (p_spcb->rcv_fc_chr != '\0') {
+		/*
+		 *  START/STOP ãéä¿¡ããï¼
+		 */
+		(void) sio_snd_chr(p_spcb->p_siopcb, p_spcb->rcv_fc_chr);
+		p_spcb->rcv_fc_chr = '\0';
+	}
+	else if (!(p_spcb->snd_stopped) && p_spcb->snd_count > 0U) {
+		/*
+		 *  éä¿¡ãããã¡ä¸­ããæå­ãåãåºãã¦éä¿¡ããï¼
+		 */
+		(void) sio_snd_chr(p_spcb->p_siopcb,
+					p_spcb->p_spinib->snd_buffer[p_spcb->snd_read_ptr]);
+		INC_PTR(p_spcb->snd_read_ptr, p_spcb->p_spinib->snd_bufsz);
+		if (p_spcb->snd_count == p_spcb->p_spinib->snd_bufsz) {
+			if (isig_sem(p_spcb->p_spinib->snd_semid) < 0) {
+				p_spcb->errorflag = true;
+			}
+		}
+		p_spcb->snd_count--;
+	}
+	else {
+		/*
+		 *  éä¿¡ãã¹ãæå­ããªãå ´åã¯ï¼éä¿¡å¯è½ã³ã¼ã«ããã¯ãç¦æ­¢ããï¼
+		 */
+		sio_dis_cbr(p_spcb->p_siopcb, SIO_RDY_SND);
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+void
+sio_irdy_rcv(intptr_t exinf)
+{
+	SPCB	*p_spcb;
+	char	c;
+
+	p_spcb = (SPCB *) exinf;
+	c = (char) sio_rcv_chr(p_spcb->p_siopcb);
+	if ((p_spcb->ioctl & IOCTL_FCSND) != 0U && c == FC_STOP) {
+		/*
+		 *  éä¿¡ãä¸æåæ­¢ããï¼éä¿¡ä¸­ã®æå­ã¯ãã®ã¾ã¾éä¿¡ããï¼
+		 */
+		p_spcb->snd_stopped = true;
+	}
+	else if (p_spcb->snd_stopped && (c == FC_START
+				|| (p_spcb->ioctl & IOCTL_FCANY) != 0U)) {
+		/*
+		 *  éä¿¡ãåéããï¼
+		 */
+		p_spcb->snd_stopped = false;
+		if (p_spcb->snd_count > 0U) {
+			c = p_spcb->p_spinib->snd_buffer[p_spcb->snd_read_ptr];
+			if (serial_snd_chr(p_spcb, c)) {
+				INC_PTR(p_spcb->snd_read_ptr, p_spcb->p_spinib->snd_bufsz);
+				if (p_spcb->snd_count == p_spcb->p_spinib->snd_bufsz) {
+					if (isig_sem(p_spcb->p_spinib->snd_semid) < 0) {
+						p_spcb->errorflag = true;
+					}
+				}
+				p_spcb->snd_count--;
+			}
+		}
+	}
+	else if ((p_spcb->ioctl & IOCTL_FCSND) != 0U && c == FC_START) {
+		/*
+		 *  éä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãã¦ããå ´åï¼START ã¯æ¨ã¦ãï¼
+		 */
+	}
+	else if (p_spcb->rcv_count == p_spcb->p_spinib->rcv_bufsz) {
+		/*
+		 *  ãããã¡ãã«ã®å ´åï¼åä¿¡ããæå­ãæ¨ã¦ãï¼
+		 */
+	}
+	else {
+		/*
+		 *  åä¿¡ããæå­ãåä¿¡ãããã¡ã«å
+¥ããï¼
+		 */
+		p_spcb->p_spinib->rcv_buffer[p_spcb->rcv_write_ptr] = c;
+		INC_PTR(p_spcb->rcv_write_ptr, p_spcb->p_spinib->rcv_bufsz);
+		if (p_spcb->rcv_count == 0U) {
+			if (isig_sem(p_spcb->p_spinib->rcv_semid) < 0) {
+				p_spcb->errorflag = true;
+			}
+		}
+		p_spcb->rcv_count++;
+
+		/*
+		 *  STOPãéä¿¡ããï¼
+		 */
+		if ((p_spcb->ioctl & IOCTL_FCRCV) != 0U && !(p_spcb->rcv_stopped)
+						&& p_spcb->rcv_count
+							>= BUFCNT_STOP(p_spcb->p_spinib->rcv_bufsz)) {
+			if (!serial_snd_chr(p_spcb, FC_STOP)) {
+				p_spcb->rcv_fc_chr = FC_STOP;
+			}
+			p_spcb->rcv_stopped = true;
+		}
+	}
+}
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããã®æªéä¿¡æå­ã®ååºã
+ */
+bool_t
+serial_get_chr(ID portid, char *p_c)
+{
+	SPCB	*p_spcb;
+
+	if (1 <= portid && portid <= TNUM_PORT) {	/* ãã¼ãçªå·ã®ãã§ãã¯ */
+		p_spcb = get_spcb(portid);
+		if (p_spcb->openflag) {					/* ãªã¼ãã³æ¸ã¿ãã®ãã§ãã¯ */
+			if (p_spcb->snd_count > 0U) {
+				*p_c = p_spcb->p_spinib->snd_buffer[p_spcb->snd_read_ptr];
+				INC_PTR(p_spcb->snd_read_ptr, p_spcb->p_spinib->snd_bufsz);
+				p_spcb->snd_count--;
+				return(true);
+			}
+		}
+	}
+	return(false);
+}
Index: rubycfg_asp/trunk/asp_dcre/syssvc/serial.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/serial.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/serial.cfg	(revision 313)
@@ -0,0 +1,28 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "target_syssvc.h"
+INCLUDE("target_serial.cfg");
+
+#include "syssvc/serial.h"
+ATT_INI({ TA_NULL, 0, serial_initialize });
+
+CRE_SEM(SERIAL_RCV_SEM1, { TA_TPRI, 0, 1 });
+CRE_SEM(SERIAL_SND_SEM1, { TA_TPRI, 1, 1 });
+#if TNUM_PORT >= 2
+CRE_SEM(SERIAL_RCV_SEM2, { TA_TPRI, 0, 1 });
+CRE_SEM(SERIAL_SND_SEM2, { TA_TPRI, 1, 1 });
+#endif /* TNUM_PORT >= 2 */
+#if TNUM_PORT >= 3
+CRE_SEM(SERIAL_RCV_SEM3, { TA_TPRI, 0, 1 });
+CRE_SEM(SERIAL_SND_SEM3, { TA_TPRI, 1, 1 });
+#endif /* TNUM_PORT >= 3 */
+#if TNUM_PORT >= 4
+CRE_SEM(SERIAL_RCV_SEM4, { TA_TPRI, 0, 1 });
+CRE_SEM(SERIAL_SND_SEM4, { TA_TPRI, 1, 1 });
+#endif /* TNUM_PORT >= 4 */
Index: rubycfg_asp/trunk/asp_dcre/syssvc/serial.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/serial.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/serial.h	(revision 313)
@@ -0,0 +1,113 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ã
+ */
+
+#ifndef TOPPERS_SERIAL_H
+#define TOPPERS_SERIAL_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ç¨ãããã±ãã
+ */
+typedef struct {
+	uint_t		reacnt;			/* åä¿¡ãããã¡ä¸­ã®æå­æ° */
+	uint_t		wricnt;			/* éä¿¡ãããã¡ä¸­ã®æå­æ° */
+} T_SERIAL_RPOR;
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®åæåã«ã¼ãã³
+ */
+extern void		serial_initialize(intptr_t exinf) throw();
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãããã®æªéä¿¡æå­ã®ååºã
+ */
+extern bool_t	serial_get_chr(ID portid, char *p_c) throw();
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®ãµã¼ãã¹ã³ã¼ã«
+ */
+extern ER		serial_opn_por(ID portid) throw();
+extern ER		serial_cls_por(ID portid) throw();
+extern ER_UINT	serial_rea_dat(ID portid, char *buf, uint_t len) throw();
+extern ER_UINT	serial_wri_dat(ID portid, const char *buf, uint_t len) throw();
+extern ER		serial_ctl_por(ID portid, uint_t ioctl) throw();
+extern ER		serial_ref_por(ID portid, T_SERIAL_RPOR *pk_rpor) throw();
+
+/*
+ *  ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã®åä½å¶å¾¡ç¨ã®ããã®å®æ°
+ *
+ *  ä»¥ä¸ã®å®æ°ã¯ï¼ãããæ¯ã«è«çåãã¨ã£ã¦ç¨ããï¼
+ */
+#define	IOCTL_NULL	0U			/* æå®ãªã */
+#define	IOCTL_ECHO	0x0001U		/* åä¿¡ããæå­ãã¨ã³ã¼ããã¯ */
+#define	IOCTL_CRLF	0x0010U		/* LFãéä¿¡ããåã«CRãä»å  */
+#define	IOCTL_FCSND	0x0100U		/* éä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãè¡ã */
+#define	IOCTL_FCANY	0x0200U		/* ã©ã®ãããªæå­ã§ãéä¿¡åé */
+#define	IOCTL_FCRCV	0x0400U		/* åä¿¡ã«å¯¾ãã¦ãã­ã¼å¶å¾¡ãè¡ã */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_SERIAL_H */
Index: rubycfg_asp/trunk/asp_dcre/syssvc/syslog.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/syslog.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/syslog.c	(revision 313)
@@ -0,0 +1,270 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2015 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°æ©è½
+ */
+
+#include <sil.h>
+#undef TOPPERS_OMIT_SYSLOG
+#include <t_syslog.h>
+#include <log_output.h>
+#include "target_syssvc.h"
+#include "syslog.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ãã¯ã­ã®ããã©ã«ãå®ç¾©
+ */
+#ifndef LOG_SYSLOG_WRI_LOG_ENTER
+#define LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog)
+#endif /* LOG_SYSLOG_WRI_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_WRI_LOG_LEAVE
+#define LOG_SYSLOG_WRI_LOG_LEAVE(ercd)
+#endif /* LOG_SYSLOG_WRI_LOG_LEAVE */
+
+#ifndef LOG_SYSLOG_REA_LOG_ENTER
+#define LOG_SYSLOG_REA_LOG_ENTER(p_syslog)
+#endif /* LOG_SYSLOG_REA_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_REA_LOG_LEAVE
+#define LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog)
+#endif /* LOG_SYSLOG_REA_LOG_LEAVE */
+
+#ifndef LOG_SYSLOG_MSK_LOG_ENTER
+#define LOG_SYSLOG_MSK_LOG_ENTER(logmask, lowmask)
+#endif /* LOG_SYSLOG_MSK_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_MSK_LOG_LEAVE
+#define LOG_SYSLOG_MSK_LOG_LEAVE(ercd)
+#endif /* LOG_SYSLOG_MSK_LOG_LEAVE */
+
+#ifndef LOG_SYSLOG_REF_LOG_ENTER
+#define LOG_SYSLOG_REF_LOG_ENTER(pk_rlog)
+#endif /* LOG_SYSLOG_REF_LOG_ENTER */
+
+#ifndef LOG_SYSLOG_REF_LOG_LEAVE
+#define LOG_SYSLOG_REF_LOG_LEAVE(ercd, pk_rlog)
+#endif /* LOG_SYSLOG_REF_LOG_LEAVE */
+
+/*
+ *  ç¾å¨ã®ã·ã¹ãã æå»
+ *
+ *  ã­ã°æå»ãåãåºãããã«ï¼ãããªãï¼ã«ã¼ãã«ã®å
+é¨å¤æ°ãåç
+§ãã¦ã
+ *  ãï¼
+ */
+extern ulong_t	_kernel_current_time;
+
+/*
+ *  ã­ã°ãããã¡ã¨ããã«ã¢ã¯ã»ã¹ããããã®ãã¤ã³ã¿
+ */
+static SYSLOG	syslog_buffer[TCNT_SYSLOG_BUFFER];	/* ã­ã°ãããã¡ */
+static uint_t	syslog_count;			/* ã­ã°ãããã¡ä¸­ã®ã­ã°ã®æ° */
+static uint_t	syslog_head;			/* å
+é ­ã®ã­ã°ã®æ ¼ç´ä½ç½® */
+static uint_t	syslog_tail;			/* æ¬¡ã®ã­ã°ã®æ ¼ç´ä½ç½® */
+static uint_t	syslog_lost;			/* å¤±ãããã­ã°ã®æ° */
+
+/*
+ *  åºåãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ï¼ããããããï¼
+ */
+static uint_t	syslog_logmask;			/* ã­ã°ãããã¡ã«è¨é²ãã¹ãéè¦åº¦ */
+static uint_t	syslog_lowmask_not;		/* ä½ã¬ãã«åºåãã¹ãéè¦åº¦ï¼åè»¢ï¼*/
+
+/*
+ *  ã·ã¹ãã ã­ã°æ©è½ã®åæå
+ */
+void
+syslog_initialize(intptr_t exinf)
+{
+	syslog_count = 0U;
+	syslog_head = 0U;
+	syslog_tail = 0U;
+	syslog_lost = 0U;
+	syslog_logmask = 0U;
+	syslog_lowmask_not = 0U;
+}     
+
+/* 
+ *  ã­ã°æ
+å ±ã®åºå
+ *
+ *  CPUã­ãã¯ç¶æ
+ãå®è¡ã³ã³ãã­ã¹ãã«ãããåä½ã§ããããã«å®è£
+ãã¦ããï¼
+ */
+ER
+syslog_wri_log(uint_t prio, const SYSLOG *p_syslog)
+{
+	SIL_PRE_LOC;
+
+	LOG_SYSLOG_WRI_LOG_ENTER(prio, p_syslog);
+	SIL_LOC_INT();
+
+	/*
+	 *  ã­ã°æå»ã®è¨­å®
+	 */
+	((SYSLOG *) p_syslog)->logtim = _kernel_current_time;
+
+	/*
+	 *  ã­ã°ãããã¡ã«è¨é²
+	 */
+	if ((syslog_logmask & LOG_MASK(prio)) != 0U) {
+		syslog_buffer[syslog_tail] = *p_syslog;
+		syslog_tail++;
+		if (syslog_tail >= TCNT_SYSLOG_BUFFER) {
+			syslog_tail = 0U;
+		}
+		if (syslog_count < TCNT_SYSLOG_BUFFER) {
+			syslog_count++;
+		}
+		else {
+			syslog_head = syslog_tail;
+			syslog_lost++;
+		}
+	}
+
+	/*
+	 *  ä½ã¬ãã«åºå
+	 */
+	if (((~syslog_lowmask_not) & LOG_MASK(prio)) != 0U) {
+		syslog_print(p_syslog, target_fput_log);
+		target_fput_log('\n');
+	}
+
+	SIL_UNL_INT();
+	LOG_SYSLOG_WRI_LOG_LEAVE(E_OK);
+	return(E_OK);
+}
+
+/*
+ *  ã­ã°ãããã¡ããã®èª­åºã
+ *
+ *  CPUã­ãã¯ç¶æ
+ãå®è¡ã³ã³ãã­ã¹ãã«ãããåä½ã§ããããã«å®è£
+ãã¦ããï¼
+ */
+ER_UINT
+syslog_rea_log(SYSLOG *p_syslog)
+{
+	ER_UINT	ercd;
+	SIL_PRE_LOC;
+
+	LOG_SYSLOG_REA_LOG_ENTER(p_syslog);
+	SIL_LOC_INT();
+
+	/*
+	 *  ã­ã°ãããã¡ããã®ååºã
+	 */
+	if (syslog_count > 0U) {
+		*p_syslog = syslog_buffer[syslog_head];
+		syslog_count--;
+		syslog_head++;
+		if (syslog_head >= TCNT_SYSLOG_BUFFER) {
+			syslog_head = 0U;
+		}
+		ercd = (ER_UINT) syslog_lost;
+		syslog_lost = 0U;
+	}
+	else {
+		ercd = E_OBJ;
+	}
+
+	SIL_UNL_INT();
+	LOG_SYSLOG_REA_LOG_LEAVE(ercd, p_syslog);
+	return(ercd);
+}
+
+/* 
+ *  åºåãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ã®è¨­å®
+ */
+ER
+syslog_msk_log(uint_t logmask, uint_t lowmask)
+{
+	LOG_SYSLOG_MSK_LOG_ENTER(logmask, lowmask);
+	syslog_logmask = logmask;
+	syslog_lowmask_not = ~lowmask;
+	LOG_SYSLOG_MSK_LOG_LEAVE(E_OK);
+	return(E_OK);
+}
+
+/*
+ *  ã­ã°ãããã¡ã®ç¶æ
+åç
+§
+ */
+ER
+syslog_ref_log(T_SYSLOG_RLOG *pk_rlog)
+{
+	SIL_PRE_LOC;
+
+	LOG_SYSLOG_REF_LOG_ENTER(pk_rlog);
+	SIL_LOC_INT();
+
+	pk_rlog->count = syslog_count;
+	pk_rlog->lost = syslog_lost;
+	pk_rlog->logmask = syslog_logmask;
+	pk_rlog->lowmask = ~syslog_lowmask_not;
+
+	SIL_UNL_INT();
+	LOG_SYSLOG_REF_LOG_LEAVE(E_OK, pk_rlog);
+	return(E_OK);
+}
Index: rubycfg_asp/trunk/asp_dcre/syssvc/syslog.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/syslog.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/syslog.cfg	(revision 313)
@@ -0,0 +1,10 @@
+/*
+ *  $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°æ©è½ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "syssvc/syslog.h"
+ATT_INI({ TA_NULL, 0, syslog_initialize });
Index: rubycfg_asp/trunk/asp_dcre/syssvc/syslog.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/syssvc/syslog.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/syssvc/syslog.h	(revision 313)
@@ -0,0 +1,115 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2008 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ã­ã°æ©è½
+ */
+
+#ifndef TOPPERS_SYSLOG_H
+#define TOPPERS_SYSLOG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ *  ã·ã¹ãã ã­ã°åºåãè¡ãããã®å®ç¾©
+ */
+#include <t_syslog.h>
+
+/*
+ *  ã­ã°ãããã¡ã¨ããã«ã¢ã¯ã»ã¹ããããã®ãã¤ã³ã¿
+ */
+#ifndef TCNT_SYSLOG_BUFFER
+#define TCNT_SYSLOG_BUFFER	32		/* ã­ã°ãããã¡ã®ãµã¤ãº */
+#endif /* TCNT_SYSLOG_BUFFER */
+
+/*
+ *  ã·ã¹ãã ã­ã°æ©è½ã®åæå
+ */
+extern void	syslog_initialize(intptr_t exinf) throw();
+
+/*
+ *  ã­ã°æ
+å ±ã®åºå
+ */
+extern ER	syslog_wri_log(uint_t prio, const SYSLOG *p_syslog) throw();
+
+/*
+ *  ã­ã°ãããã¡ããã®ã­ã°æ
+å ±ã®èª­åºã
+ */
+extern ER_UINT	syslog_rea_log(SYSLOG *p_syslog) throw();
+
+/* 
+ *  åºåãã¹ãã­ã°æ
+å ±ã®éè¦åº¦ã®è¨­å®
+ */
+extern ER	syslog_msk_log(uint_t logmask, uint_t lowmask) throw();
+
+/* 
+ *  ã­ã°ãããã¡ã®ç¶æ
+åç
+§
+ */
+extern ER	syslog_ref_log(T_SYSLOG_RLOG *pk_rlog) throw();
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* TOPPERS_SYSLOG_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/E_PACKAGE
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/E_PACKAGE	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/E_PACKAGE	(revision 313)
@@ -0,0 +1,7 @@
+E_PACKAGE asp_gr_sakura_ccrx
+VERSION %date
+
+INCLUDE ../../MANIFEST
+INCLUDE ../../arch/rx630_ccrx/MANIFEST
+#INCLUDE ../../arch/ccrx/MANIFEST
+INCLUDE ../../cfg/MANIFEST
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/MANIFEST	(revision 313)
@@ -0,0 +1,34 @@
+PACKAGE asp_target_rsk_rx_hew
+
+E_PACKAGE
+MANIFEST
+asm_config.cfg
+gr_sakura.h
+sectrx.inc
+target.tf
+target_asm_config.tf
+target_ccrx_echonet.tf
+target_cfg1_out.h
+target_check.tf
+target_config.c
+target_config.h
+target_sym.def
+target_kernel.h
+target_offset.tf
+target_rename.def
+target_rename.h
+target_serial.c
+target_serial.cfg
+target_serial.h
+target_sil.h
+target_stddef.h
+target_support.src
+target_syssvc.h
+target_test.h
+target_timer.c
+target_timer.cfg
+target_timer.h
+target_unrename.h
+tinet_target_config.c
+tinet_target_config.h
+tinet_target_defs.h
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.target
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.target	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.target	(revision 313)
@@ -0,0 +1,85 @@
+#
+#		Makefileã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+#
+
+#
+#  ãã¼ãåï¼ãã­ã»ããµåï¼éçºç°å¢åã®å®ç¾©
+#
+BOARD = gr_sakura
+PRC = rx630
+TOOL = gcc
+
+#
+#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#
+INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/pdic
+
+#
+#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#
+KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_support.o target_timer.o
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#
+SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/pdic/rx600
+SYSSVC_COBJS := $(SYSSVC_COBJS) target_serial.o rx630_uart.o
+
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#
+CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def
+
+#
+#  ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
+#
+ifeq ($(ENABLE_TRACE),true)
+	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+	KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
+	KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
+endif
+
+#
+#  åã»ã°ã¡ã³ãã®éå§ã¢ãã¬ã¹ã®å®ç¾©
+#
+#TEXT_START_ADDRESS = 00010000
+#DATA_START_ADDRESS = 00100000
+
+#
+#  ãªã³ã«ã¹ã¯ãªããã®å®ç¾©
+#
+LDSCRIPT = $(TARGETDIR)/gr_sakura.ld
+
+#
+#  ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«é¢ããå®ç¾©
+#
+#  m68kelf.ldã«ãSTARTUP(start.o)ããè¨è¿°ããããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼
+#  ã«ã®ååãHIDDEN_OBJSã«å®ç¾©ããï¼ã¾ãï¼LDFLAGSã«-nostdlibãè¿½å ãã¦ããï¼
+#
+HIDDEN_OBJS = start.o
+
+$(HIDDEN_OBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(HIDDEN_OBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+LDFLAGS := -nostdlib $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
+LIBS := $(LIBS) -lgcc
+CFG2_OUT_SRCS := $(CFG2_OUT_SRCS) kernel_cfg_asm.S
+
+#
+#  ä¾å­é¢ä¿ã®å®ç¾©
+#
+cfg1_out.c: $(TARGETDIR)/target_sym.def
+kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
+$(OBJFILE): $(TARGETDIR)/target_check.trb
+
+#
+#  ãã­ã»ããµä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/arch/$(PRC)_$(TOOL)/Makefile.prc
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.tinet
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.tinet	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/Makefile.tinet	(revision 313)
@@ -0,0 +1,53 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+#   ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#  
+#   @(#) $Id: $
+#
+
+#
+#  Makefile.tinet ã®ã·ã¹ãã ä¾å­é¨åï¼GR-SAKURAç¨ï¼
+
+ifeq ($(NET_IF),ether)
+
+	TINET_COBJS := $(TINET_COBJS) tinet_target_config.o
+
+endif
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/gr_sakura.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/gr_sakura.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/gr_sakura.h	(revision 313)
@@ -0,0 +1,98 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013 by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef	TOPPERS_GRSAKURA_H
+#define	TOPPERS_GRSAKURA_H
+
+
+/*
+ *  MCUä¾å­æ
+å ±ã®èª­ã¿è¾¼ã¿
+ */
+#include "rx630.h"
+
+/*
+ *  ã¯ã­ãã¯è¨­å®
+ */
+
+/*
+ *  ã·ã¹ãã ã¯ã­ãã¯ICLK(kHz)
+ *
+ *  CPUï¼DTCï¼DMACAï¼ETHERCï¼EDMACï¼ROMï¼RAMç¨
+ *  
+ */
+#define FREQ_ICLK  (96000000)
+
+/*
+ *  ã¯ã­ãã¯PCLK(kHz)
+ *
+ *  ã¿ã¤ãï¼ã·ãªã¢ã«ãªã©å¨è¾ºã¢ã¸ã¥ã¼ã«ç¨
+ */
+#define FREQ_PCLK  (48000000)
+
+
+/*
+ *  ãã¼ã¬ã¼ãè¨­å®
+ */
+#define BAUD_115200BPS		UINT_C( FREQ_PCLK / 32 / 115200 - 1 )
+
+#define UART_BAUDRATE		BAUD_115200BPS
+
+
+/*
+ *  ã¯ã­ãã¯ã½ã¼ã¹
+ */
+#define UART_CLKSRC			CLK_F1
+
+#endif	/* TOPPERS_GRSAKURA_H */
+
+ 
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/sectrx.inc
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/sectrx.inc	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/sectrx.inc	(revision 313)
@@ -0,0 +1,136 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+;*  Copyright (C) 2013      by Mitsuhiro Matsuura
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼Free Software Foundation ã«ãã£ã¦å
+¬è¡¨ããã¦ãã 
+;*  GNU General Public License ã® Version 2 ã«è¨è¿°ããã¦ããæ¡ä»¶ãï¼ä»¥
+;*  ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§
+;*  ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+;*  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãåå©ç¨å¯è½ãªãã¤ããªã³ã¼ãï¼ãªã­ã±ã¼ã¿ãã«ãªã
+;*      ã¸ã§ã¯ããã¡ã¤ã«ãã©ã¤ãã©ãªãªã©ï¼ã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼å©ç¨
+;*      ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼
+;*      ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãåå©ç¨ä¸å¯è½ãªãã¤ããªã³ã¼ãã®å½¢ã¾ãã¯æ©å¨ã«çµ
+;*      ã¿è¾¼ãã å½¢ã§å©ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
+;*    (a) å©ç¨ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
+;*        æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) å©ç¨ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼ä¸è¨èä½æ¨©è
+ã«å ±åãã
+;*        ãã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ãå
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã¯ï¼
+;*  æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
+;*  ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
+;*  ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+;* 
+
+
+;
+;  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã»ã¯ã·ã§ã³å®ç¾©ãã¡ã¤ã«(ã¹ã¿ã¼ã¿ã¼ã­ããç¨)
+;
+
+;
+;  ã»ã¯ã·ã§ã³ã®å®ç¾©
+;
+;  ã»ã¯ã·ã§ã³ã®ã¢ãã¬ã¹å®ç¾©ã¯HEWä¸ã®æé©åãªã³ã«ã®
+;  ãªãã·ã§ã³ã«ã¦å®æ½ãã.
+;
+
+	;
+	;  åæå¤æããã¼ã¿é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	.section	D, ROMDATA
+	.section	D_2, ROMDATA, ALIGN = 2
+	.section	D_1, ROMDATA
+
+
+	;
+	;  åæå¤ç¡ããã¼ã¿é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	.section	B, DATA, ALIGN = 4
+	.section	B_2, DATA, ALIGN = 2
+	.section	B_1, DATA
+	.section	W, ROMDATA,ALIGN = 4
+	.section	W_1, ROMDATA
+	.section	W_2, ROMDATA, ALIGN = 2
+
+
+	;
+	;  ã«ã¼ãã«ã¹ã¿ãã¯é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	;  ä»¥ä¸.blkbå½ä»¤ã§ç¢ºä¿ãã¦ããã«ã¼ãã«ã¹ã¿ãã¯é åã®ãµã¤ãºã
+	;  å¤æ´ããå ´åã¯, target_config.hã®DEFAULT_ISTKSZã®å¤ã, åã
+	;  å¤ã«å¤æ´ãããã¨.
+	;
+	.section	SI, DATA, ALIGN = 4
+	.glb _DEFAULT_ISTACK
+_DEFAULT_ISTACK:
+	.blkb		0500H
+	.glb DEFAULT_ISTACK_TOP
+DEFAULT_ISTACK_TOP:
+
+	;
+	;  å®æ°é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	C, ROMDATA, ALIGN = 4
+	.section	C_2, ROMDATA, ALIGN = 2
+	.section	C_1, ROMDATA
+
+	;
+	;  åæå¤æããã¼ã¿é åã®åæå¤
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	R, DATA, ALIGN = 4
+	.section	R_2, DATA, ALIGN = 2
+	.section	R_1, DATA
+
+	;
+	;  å¯å¤ãã¯ã¿ãã¼ãã«é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	C$VECT, ROMDATA, ALIGN = 4
+	.glb VVECTOR_TOP
+
+	;
+	;  ãã­ã°ã©ã é åã®ã»ã¯ã·ã§ã³
+	;
+	;  FFE80000h - FFFFFF7Fh
+	;
+	.section	P, CODE
+
+	;
+	;  åºå®ãã¯ã¿ãã¼ãã«é åã®ã»ã¯ã·ã§ã³
+	;
+	;  FFFFFF80h - FFFFFFFFh
+	;
+	.section	FVECT, ROMDATA, ALIGN = 4
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target.py	(revision 313)
@@ -0,0 +1,11 @@
+MAIN_CLK = '20000'
+
+CFG1_DEF_TABLES = CFG1_DEF_TABLES + ["target/gr_sakura_ccrx/target_sym.def"]
+INCLUDES = INCLUDES + ["target/" + TARGET, "target/gr_sakura_ccrx", "pdic/rx600"]
+
+statup_file = 'arch/rx630_ccrx/start.src'
+kernel_target_files = ['target/' + TARGET + '/target_config.c', 'target/' + TARGET + '/target_serial.c', 'target/' + TARGET + '/target_support.src', 'target/' + TARGET + '/target_timer.c']
+kernel_pdic_files = ['pdic/rx600/rx630_uart.c']
+
+# soucre prc file
+execfile(srcdir + "arch/rx630_ccrx/prc.py")
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_cfg1_out.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_cfg1_out.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_cfg1_out.h	(revision 313)
@@ -0,0 +1,8 @@
+/*
+ *		cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©
+ */
+
+#include "prc_cfg1_out.h"
+#include "sil.h"
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_check.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_check.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_check.trb	(revision 313)
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+#
+#		ãã¹3ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#
+
+#
+#  çæã¹ã¯ãªããã®ãã­ã»ããµä¾å­é¨
+#
+IncludeTrb("prc_check.trb")
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.c	(revision 313)
@@ -0,0 +1,146 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼Free Software Foundation ã«ãã£ã¦å
+¬è¡¨ããã¦ãã 
+ *  GNU General Public License ã® Version 2 ã«è¨è¿°ããã¦ããæ¡ä»¶ãï¼ä»¥
+ *  ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§
+ *  ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãåå©ç¨å¯è½ãªãã¤ããªã³ã¼ãï¼ãªã­ã±ã¼ã¿ãã«ãªã
+ *      ã¸ã§ã¯ããã¡ã¤ã«ãã©ã¤ãã©ãªãªã©ï¼ã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼å©ç¨
+ *      ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼
+ *      ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãåå©ç¨ä¸å¯è½ãªãã¤ããªã³ã¼ãã®å½¢ã¾ãã¯æ©å¨ã«çµ
+ *      ã¿è¾¼ãã å½¢ã§å©ç¨ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) å©ç¨ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½
+ *        æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) å©ç¨ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼ä¸è¨èä½æ¨©è
+ã«å ±åãã
+ *        ãã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ãå
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã¯ï¼
+ *  æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
+ *  ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
+ *  ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã¢ã¸ã¥ã¼ã«
+ */
+
+#include "kernel_impl.h"
+#include <sil.h>
+#include "gr_sakura.h"
+#include "rx630_uart.h"
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ åæåã«ã¼ãã³
+ */
+void
+target_initialize( void )
+{
+#ifdef USE_SERIALDEBUG
+	/*
+	 *  CubeSuite+ RXã·ãªã¢ã«ãããã¬ãä½¿ç¨ããå ´å
+	 *  æ¥ç¶ãåããªãããå²è¾¼ã¿è§£é¤ç¶æ
+ã§æéå¾
+ã¡ãå¿
+è¦
+	 */
+	volatile int i;
+	enaint();
+	for(i = 0; i < 0x100000; i++);
+	disint();
+#endif /* USE_SERIALDEBUG */
+
+	/*
+	 *  ãã­ã»ããµä¾å­ã®åæå
+	 */
+	prc_initialize();
+
+	/*
+	 *  ãã¼ãã®è¨­å®
+	 */
+	rx630_uart_init(TARGET_PUTC_PORTID, UART_BAUDRATE, UART_CLKSRC);
+
+	/* ãã¼ãP20ãTxD0, ãã¼ãP21ãRxD0ã« */
+	sil_wrb_mem((void *)PORT2_PMR_ADDR , 0x03);
+
+	/* ãã¼ã¿ãã£ã¬ã¯ã·ã§ã³ã¬ã¸ã¹ã¿(PDR)ã®è¨­å® P21(RxD0)ãå
+¥åãã¼ãã«ãã */
+	sil_wrb_mem((void *)(PORT2_PDR_ADDR) , 
+					sil_reb_mem((void *)(PORT2_PDR_ADDR)) & ~PORT_PDR_B1_BIT);
+
+	/* ãã¼ã¿ãã£ã¬ã¯ã·ã§ã³ã¬ã¸ã¹ã¿(PDR)ã®è¨­å® P20(TxD0)ãåºåãã¼ãã«ãã */
+	sil_wrb_mem((void *)(PORT2_PDR_ADDR) , 
+					sil_reb_mem((void *)(PORT2_PDR_ADDR)) | PORT_PDR_B0_BIT);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PFSWEãããã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem((void *)(MPC_PWPR_ADDR) , 0x00);
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PxxFSã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem((void *)(MPC_PWPR_ADDR) , 0x40);
+
+	/* P21ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ P21ãRXD0ã¨ãã */
+	sil_wrb_mem((void *)(MPC_P21PFS_ADDR) , 0x0a);
+	/* P20ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ P20ãTXD0ã¨ãã */
+	sil_wrb_mem((void *)(MPC_P20PFS_ADDR) , 0x0a);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® æ¸ãè¾¼ã¿ãç¦æ­¢ */
+	sil_wrb_mem((void *)(MPC_PWPR_ADDR) , 0x80);
+}
+
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®çµäºã«ã¼ãã³
+ */
+void
+target_exit( void )
+{
+	/*
+	 *	ãã­ã»ããµä¾å­ã®çµäºå¦ç
+	 */
+	prc_terminate();
+
+	while ( 1 );
+}
+
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºå
+ */
+void
+target_fput_log( char c )
+{
+	if( c == '\n' ){
+		rx630_uart_pol_putc( '\r' , TARGET_PUTC_PORTID );
+	}
+
+	rx630_uart_pol_putc( c , TARGET_PUTC_PORTID );
+}
+
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_config.h	(revision 313)
@@ -0,0 +1,138 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«
+ *
+ *  ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼kernel_impl.hã®ã¿ã¼
+ *  ã²ããä¾å­é¨ã®ä½ç½®ä»ãã¨ãªãï¼
+ */
+
+#ifndef TOPPERS_TARGET_CONFIG_H
+#define TOPPERS_TARGET_CONFIG_H
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ */
+#include "gr_sakura.h"
+
+
+/*
+ *  ããã©ã«ãã®éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å®ç¾©
+ *
+ *  ã¹ã¿ãã¯ãµã¤ãºãå¤æ´ããå ´åã¯, sectrx.incã®_DEFAULT_ISTACK
+ *  ã©ãã«ã®ä½ç½®ã«ãã.blkbå½ä»¤ã®ãµã¤ãºã¨, ä»¥ä¸DEFAULT_ISTKSZã®
+ *  ãµã¤ãºãåããã¦åãå¤ã«å¤æ´ãããã¨.
+ */
+extern uint32_t	DEFAULT_ISTACK[];
+#define DEFAULT_ISTKSZ		( 0x500U )
+#define DEFAULT_ISTK		( (void *)&DEFAULT_ISTACK[0] )
+
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®æå­åºåã«ä½¿ç¨ãããã¼ãã®å®ç¾©  
+ */
+#define TARGET_PUTC_PORTID	( 1 )
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã®åæå
+ */
+extern void	target_initialize( void );
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®çµäº
+ *
+ *  ã·ã¹ãã ãçµäºããæã«ä½¿ãï¼
+ */
+extern void	target_exit( void )	NoReturn;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«
+ */
+#include "rx630_config.h"
+
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ */
+#define TCNT_TRACE_BUFFER	( 32 )
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°åºåããç®æã®é¸æ
+ *    ã­ã°åºåããç®æã1ã§å®ç¾©
+ *    ã­ã°åºåããªãç®æã0ã§å®ç¾©
+ */
+#define LOG_DSP_ENTER	( 0 )
+#define LOG_DSP_LEAVE	( 0 )
+#define LOG_INH_ENTER	( 0 )
+#define LOG_INH_LEAVE	( 0 )
+#define LOG_EXC_ENTER	( 0 )
+#define LOG_EXC_LEAVE	( 0 )
+
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+#endif /* TOPPERS_TARGET_CONFIG_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_inline_symbols.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_inline_symbols.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_inline_symbols.h	(revision 313)
@@ -0,0 +1,76 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã³ã³ãã¤ã©ä¾å­å®ç¾©
+ */
+
+#ifndef TARGET_INLINE_SYMBOL_H
+#define TARGET_INLINE_SYMBOL_H
+
+#include "prc_inline_symbols.h"
+
+/* target_stddef.h	*/
+#pragma inline TOPPERS_assert_abort
+
+/* target_timer.h	*/
+#pragma inline rx630_cmt_getcount
+#pragma inline rx630_cmt_setcount
+#pragma inline target_timer_get_current
+#pragma inline target_timer_probe_int
+
+#endif /* TARGET_INLINE_SYMBOL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.h	(revision 313)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ */
+
+/*
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼kernel.hã§ã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡
+ *  ã¤ã«ããç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+ *  ããåã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ãããã«ä¾å­ãã¦ãã
+ *  ãï¼
+ */
+
+#ifndef TOPPERS_TARGET_KERNEL_H
+#define TOPPERS_TARGET_KERNEL_H
+
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "prc_kernel.h"
+
+
+/*
+ *  ãµãã¼ãããæ©è½ã®å®ç¾©
+ */
+#define	TOPPERS_TARGET_SUPPORT_GET_UTM		/* get_utmããµãã¼ããã */
+
+
+/*
+ *  ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
+ */
+#define	TIC_NUME		( 1U )		/* ã¿ã¤ã ãã£ãã¯ã®å¨æã®åå­ */
+#define	TIC_DENO		( 1U )		/* ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯ */
+
+#endif /* TOPPERS_TARGET_KERNEL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_kernel.trb	(revision 313)
@@ -0,0 +1,20 @@
+# -*- coding: utf-8 -*-
+#
+#		ãã¹2ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#
+
+#
+#  çæã¹ã¯ãªããã®ãã­ã»ããµä¾å­é¨
+#
+IncludeTrb("prc_kernel.trb")
+
+$asmConfig.add(<<EOS)
+	LOG_INH_ENTER	.equ	#{$LOG_INH_ENTER}
+	LOG_INH_LEAVE	.equ	#{$LOG_INH_LEAVE}
+	LOG_EXC_ENTER	.equ	#{$LOG_EXC_ENTER}
+	LOG_EXC_LEAVE	.equ	#{$LOG_EXC_LEAVE}
+	LOG_DSP_ENTER	.equ	#{$LOG_DSP_ENTER}
+	LOG_DSP_LEAVE	.equ	#{$LOG_DSP_LEAVE}
+	SIL_DLY_TIM1	.equ	#{$SIL_DLY_TIM1}
+	SIL_DLY_TIM2	.equ	#{$SIL_DLY_TIM2}
+EOS
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_offset.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_offset.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_offset.trb	(revision 313)
@@ -0,0 +1,11 @@
+# -*- coding: utf-8 -*-
+#
+#		ãªãã»ãããã¡ã¤ã«çæç¨Rubyãã³ãã¬ã¼ãï¼ARMç¨ï¼
+#
+#  $Id: core_offset.trb 572 2016-02-01 14:40:09Z ertl-hiro $
+#
+
+#
+#  ãã­ã»ããµä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+IncludeTrb("prc_offset.trb")
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.def	(revision 313)
@@ -0,0 +1,13 @@
+# target_config.c
+target_initialize
+target_exit
+
+#trace_config.c
+log_dsp_enter
+log_dsp_leave
+log_inh_enter
+log_inh_leave
+log_exc_enter
+log_exc_leave
+
+INCLUDE "rx_rxc/prc"
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_rename.h	(revision 313)
@@ -0,0 +1,49 @@
+/* This file is generated from target_rename.def by genrename. */
+
+#ifndef TOPPERS_TARGET_RENAME_H
+#define TOPPERS_TARGET_RENAME_H
+
+/*
+ *  target_config.c
+ */
+#define target_initialize			_kernel_target_initialize
+#define target_exit					_kernel_target_exit
+
+/*
+ *  trace_config.c
+ */
+#define log_dsp_enter				_kernel_log_dsp_enter
+#define log_dsp_leave				_kernel_log_dsp_leave
+#define log_inh_enter				_kernel_log_inh_enter
+#define log_inh_leave				_kernel_log_inh_leave
+#define log_exc_enter				_kernel_log_exc_enter
+#define log_exc_leave				_kernel_log_exc_leave
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  target_config.c
+ */
+#define _board_id					__kernel_board_id
+#define _board_addr					__kernel_board_addr
+#define _target_initialize			__kernel_target_initialize
+#define _target_exit				__kernel_target_exit
+#define _x_config_int				__kernel_x_config_int
+
+/*
+ *  trace_config.c
+ */
+#define _log_dsp_enter				__kernel_log_dsp_enter
+#define _log_dsp_leave				__kernel_log_dsp_leave
+#define _log_inh_enter				__kernel_log_inh_enter
+#define _log_inh_leave				__kernel_log_inh_leave
+#define _log_exc_enter				__kernel_log_exc_enter
+#define _log_exc_leave				__kernel_log_exc_leave
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "rx630_ccrx/prc_rename.h"
+
+#endif /* TOPPERS_TARGET_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.c	(revision 313)
@@ -0,0 +1,215 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UARTç¨ã·ãªã¢ã«I/Oã¢ã¸ã¥ã¼ã«
+ */
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "gr_sakura.h"
+#include "target_serial.h"
+
+/*
+ *  SIOãã©ã¤ãã®åæå
+ */
+void
+sio_initialize(intptr_t exinf)
+{
+	rx630_uart_initialize();
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+SIOPCB *
+sio_opn_por(ID siopid, intptr_t exinf)
+{
+	SIOPCB  *p_siopcb = NULL;
+	ER      ercd;
+	INTNO	intno_sio_tx, intno_sio_rx;
+	
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯ããï¼
+	 *  (dis_inté¢æ°ã¯ã"\kernel\interrupt.c"ã«è¨è¿°)
+	 */
+	p_siopcb = rx630_uart_get_siopcb(siopid);
+	intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
+	intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
+	ercd = dis_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = dis_int(intno_sio_rx);
+	assert(ercd == E_OK);
+	
+	p_siopcb = 
+		rx630_uart_opn_por(siopid , exinf , UART_BAUDRATE , UART_CLKSRC);
+
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯è§£é¤ããï¼
+	 *  (ena_inté¢æ°ã¯ã"\kernel\interrupt.c"ã«è¨è¿°)
+	 */
+	ercd = ena_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = ena_int(intno_sio_rx);
+	assert(ercd == E_OK);
+
+	return(p_siopcb);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+void
+sio_cls_por(SIOPCB *p_siopcb)
+{
+	ER        ercd;
+	INTNO	intno_sio_tx, intno_sio_rx;
+
+	/*
+	 *  ããã¤ã¹ä¾å­ã®ã¯ã­ã¼ãºå¦çï¼
+	 */
+	rx630_uart_cls_por(p_siopcb);
+	
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯ããï¼
+	 */
+	intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
+	intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
+	ercd = dis_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = dis_int(intno_sio_rx);
+	assert(ercd == E_OK);
+}
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+void sio_tx_isr(intptr_t exinf)
+{
+	rx630_uart_tx_isr(exinf);
+}
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+void sio_rx_isr(intptr_t exinf)
+{
+	rx630_uart_rx_isr(exinf);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+bool_t
+sio_snd_chr(SIOPCB *siopcb, char c)
+{
+	return(rx630_uart_snd_chr(siopcb, c));
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+int_t
+sio_rcv_chr(SIOPCB *siopcb)
+{
+	return(rx630_uart_rcv_chr(siopcb));
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+void
+sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
+{
+	rx630_uart_ena_cbr(siopcb, cbrtn);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+void
+sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
+{
+	rx630_uart_dis_cbr(siopcb, cbrtn);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+void
+rx630_uart_irdy_snd(intptr_t exinf)
+{
+	/* å
+±éé¨ï¼syssvc\serial.cï¼ã«ããsio_irdy_sndé¢æ°ãå¼ã³åºã*/
+	sio_irdy_snd(exinf);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+void
+rx630_uart_irdy_rcv(intptr_t exinf)
+{
+	/* å
+±éé¨ï¼syssvc\serial.cï¼ã«ããsio_irdy_rcvé¢æ°ãå¼ã³åºã*/
+	sio_irdy_rcv(exinf);
+}
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.cfg	(revision 313)
@@ -0,0 +1,11 @@
+/*
+ *	SIOãã©ã¤ãï¼GR-SAKURAç¨ï¼ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include <target_serial.h>
+ATT_INI({ TA_NULL, 0, sio_initialize });
+CFG_INT(INTNO_SIO_TX, { INTATR_SIO, INTPRI_SIO });
+CFG_INT(INTNO_SIO_RX, { INTATR_SIO, INTPRI_SIO });
+
+ATT_ISR({TA_NULL, SIO_PORTID, INTNO_SIO_TX, sio_tx_isr, 1});
+ATT_ISR({TA_NULL, SIO_PORTID, INTNO_SIO_RX, sio_rx_isr, 1});
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_serial.h	(revision 313)
@@ -0,0 +1,139 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ãªã¢ã«I/Oããã¤ã¹ï¼SIOï¼ãã©ã¤ã
+ */
+
+#ifndef TOPPERS_TARGET_SERIAL_H
+#define TOPPERS_TARGET_SERIAL_H
+
+#include "gr_sakura.h"
+#include "rx630_uart.h"
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©ã®ãã¯ã¿çªå·
+ */
+#define INHNO_SIO_TX	INT_SCI0_TEI			/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_SIO_TX	INT_SCI0_TEI			/* å²è¾¼ã¿çªå· */
+#define INHNO_SIO_RX	INT_SCI0_RXI			/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_SIO_RX	INT_SCI0_RXI			/* å²è¾¼ã¿çªå· */
+#define INTPRI_SIO		-4						/* å²è¾¼ã¿åªå
+åº¦ */
+#define INTATR_SIO		(TA_NULL)				/* å²è¾¼ã¿å±æ§ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+
+/*
+ *  SIOãã©ã¤ãã®åæå
+ */
+extern void		sio_initialize(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+extern SIOPCB	*sio_opn_por(ID siopid, intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+extern void		sio_cls_por(SIOPCB *p_siopcb);
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+extern void 	sio_tx_isr(intptr_t exinf);
+extern void 	sio_rx_isr(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+extern bool_t	sio_snd_chr(SIOPCB *siopcb, char c);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+extern int_t	sio_rcv_chr(SIOPCB *siopcb);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+extern void		sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+extern void		sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+extern void		sio_irdy_snd(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+extern void		sio_irdy_rcv(intptr_t exinf);
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_TARGET_SERIAL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sil.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sil.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sil.h	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		sil.hã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼sil.hã®å
+é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡
+ *  ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼
+ *  ãããåã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ãããã«ä¾å­ãã¦ã
+ *  ããï¼
+ */
+
+#ifndef TOPPERS_TARGET_SIL_H
+#define TOPPERS_TARGET_SIL_H
+
+/*
+ *  å¾®å°æéå¾
+ã¡ã®ããã®å®ç¾©
+ */
+#define SIL_DLY_TIM1     69
+#define SIL_DLY_TIM2     50
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "rx630_ccrx/prc_sil.h"
+
+#endif /* TOPPERS_TARGET_SIL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_stddef.h	(revision 313)
@@ -0,0 +1,109 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  t_stddef.hã®ã¿ã¼ã²ããä¾å­é¨
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼t_stddef.hã®å
+é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼
+ *  ä»ã®ãã¡ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ä»ã®ã¤ã³ã¯ã«ã¼ã
+ *  ãã¡ã¤ã«ã«å
+ç«ã£ã¦å¦çãããããï¼ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«ä¾å­ã
+ *  ã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_TARGET_STDDEF_H
+#define TOPPERS_TARGET_STDDEF_H
+
+/*
+ *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ */
+#define TOPPERS_GRSAKURA			/* ã·ã¹ãã ç¥ç§° */
+
+
+/*
+ *  éçºç°å¢ã§å
+±éãªå®ç¾©
+ */
+/*#define TOPPERS_STDINT_TYPE1*/
+#include "tool_stddef.h"
+
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "prc_stddef.h"
+
+
+/*
+ *  ã¢ãµã¼ã·ã§ã³ã®å¤±ææã®å®è¡ä¸­æ­å¦ç
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+Inline void
+TOPPERS_assert_abort( void )
+{
+}
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TARGET_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_support.src
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_support.src	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_support.src	(revision 313)
@@ -0,0 +1,185 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+;*                              Toyohashi Univ. of Technology, JAPAN
+;*  Copyright (C) 2001 by OAKS16KIT support
+;*  Copyright (C) 2003-2004 by Naoki Saito
+;*             Nagoya Municipal Industrial Research Institute, JAPAN
+;*  Copyright (C) 2003-2004 by Ryosuke Takeuchi
+;*               Platform Development Center RICOH COMPANY,LTD. JAPAN
+;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+;*  Copyright (C) 2013      by Mitsuhiro Matsuura
+;* 
+;*  ãLì ÒÍCFree Software Foundation ÉæÁÄö\³êÄ¢é 
+;*  GNU General Public License Ì Version 2 ÉLq³êÄ¢éð©CÈ
+;*  ºÌ(1)`(4)Ìðð½·êÉÀèC{\tgEFAi{\tgEF
+;*  AðüÏµ½àÌðÜÞDÈº¯¶jðgpE¡»EüÏEÄzziÈºC
+;*  pÆÄÔj·é±Æð³Åø·éD
+;*  (1) {\tgEFAð\[XR[hÌ`Åp·éêÉÍCãLÌì
+;*       \¦C±Ìpð¨æÑºLÌ³ÛØKèªC»ÌÜÜÌ`Å\[
+;*      XR[hÉÜÜêÄ¢é±ÆD
+;*  (2) {\tgEFAðÄpÂ\ÈoCiR[hiP[^uIu
+;*      WFNgt@CâCuÈÇjÌ`Åp·éêÉÍCp
+;*      Éº¤hL
+gipÒ}j
+AÈÇjÉCãLÌì \¦C
+;*      ±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
+;*  (3) {\tgEFAðÄpsÂ\ÈoCiR[hÌ`Ü½Í@íÉg
+;*      Ýñ¾`Åp·éêÉÍCÌ¢¸ê©Ìðð½·±ÆD
+;*    (a) pÉº¤hL
+gipÒ}j
+AÈÇjÉCãLÌì
+;*         \¦C±Ìpð¨æÑºLÌ³ÛØKèðfÚ·é±ÆD
+;*    (b) pÌ`ÔðCÊÉèßéû@ÉæÁÄCãLì ÒÉñ·é
+;*        ±ÆD
+;*  (4) {\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶é¢©Èé¹
+;*      Q©çàCãLì ÒðÆÓ·é±ÆD
+;* 
+;*  {\tgEFAÍC³ÛØÅñ³êÄ¢éàÌÅ éDãLì ÒÍC
+;*  {\tgEFAÉÖµÄC»ÌKpÂ\«àÜßÄC¢©ÈéÛØàsí
+;*  È¢DÜ½C{\tgEFAÌpÉæè¼ÚIÜ½ÍÔÚIÉ¶¶½¢
+;*  ©Èé¹QÉÖµÄàC»ÌÓCðíÈ¢D
+
+	.section	P, CODE
+
+
+	.glb	_hardware_init_hook
+	.glb	_software_init_hook
+
+
+_hardware_init_hook:
+	;
+	;  ®ì[hÝè
+	;
+	;  ®ì[hÍ{[hãÌ[qÉæÁÄè³êé½ß,
+	;  ±±ÅÍÁÊÝèµÈ¢.
+	;  ½¾µ, gGfBA/VO`bv[h
+	;  Å é±ÆðOñÆ·é.
+	;
+	;  Ü½Zbgã, à ROMFLø, à RAMFLø, OoXF³ø
+	;  Å é.
+	;
+
+	;
+	;  NbNÝè
+	;
+	;  üÍF12MHz
+	;  PLLñHF12 x 8 = 96MHz
+	;  VXeNbNF96MHz
+	;  üÓW
+[NbNF48MHz
+	;  OoXNbNF96MHz
+	;  Æ·é.
+	;
+
+	;PORT3.PDR.BIT.B6 = 0;
+	MOV.L	#08C003H,R11
+	MOV.B	[R11],R10
+	BCLR	#6,R10
+	MOV.B	R10,[R11]
+	;PORT3.PDR.BIT.B7 = 0;
+	MOV.L	#08C003H,R11
+	MOV.B	[R11],R10
+	BCLR	#7,R10
+	MOV.B	R10,[R11]
+	;PORT3.PMR.BIT.B6 = 0;
+	MOV.L	#08C003H,R11
+	MOV.B	60H[R11],R10
+	BCLR	#6,R10
+	MOV.B	R10,60H[R11]
+	;PORT3.PMR.BIT.B7 = 0;
+	MOV.L	#08C003H,R11
+	MOV.B	60H[R11],R10
+	BCLR	#7,R10
+	MOV.B	R10,60H[R11]
+	;
+	;SYSTEM.PRCR.WORD = 0xa503;
+	MOV.L	#080000H,R10
+	MOV.W	#-5AFDH,03FEH[R10]
+	;
+	;while(SYSTEM.MOFCR.BIT.MOFXIN == 0)
+	BRA.B	_hardware_init_hook_01
+	;SYSTEM.MOFCR.BIT.MOFXIN = 1;	// CNbN­Uí­§­U
+_hardware_init_hook_00:
+	MOV.L	#080000H,R11
+	MOV.B	0C293H[R11],R10
+	BSET	#0,R10
+	MOV.B	R10,0C293H[R11]
+_hardware_init_hook_01:
+	MOV.L	#080000H,R10
+	MOV.B	0C293H[R10],R10
+	AND		#1H,R10
+	MOVU.B	R10,R10
+	CMP		#0H,R10
+	BEQ.B	_hardware_init_hook_00
+	;
+	;while(SYSTEM.MOSCCR.BIT.MOSTP == 1)
+	BRA.B	_hardware_init_hook_11
+	;SYSTEM.MOSCCR.BIT.MOSTP = 0;	// CNbN­Uí®ì
+_hardware_init_hook_10:
+	MOV.L	#080000H,R11
+	MOV.B	32H[R11],R10
+	BCLR	#0,R10
+	MOV.B	R10,32H[R11]
+_hardware_init_hook_11:
+	MOV.L	#080000H,R10
+	MOV.B	32H[R10],R10
+	AND		#1H,R10
+	MOVU.B	R10,R10
+	CMP		#0H,R10
+	BNE.B	_hardware_init_hook_10
+	;
+	;SYSTEM.PLLCR.BIT.STC = 0x0f;
+	MOV.L	#080000H,R10
+	MOV.W	28H[R10],R11
+	AND		#-3F01H,R11
+	OR		#0F00H,R11
+	MOV.W	R11,28H[R10]
+	;SYSTEM.PLLCR2.BIT.PLLEN = 0;
+	MOV.L	#080000H,R11
+	MOV.B	2AH[R11],R10
+	BCLR	#0,R10
+	MOV.B	R10,2AH[R11]
+	;
+	;SYSTEM.SCKCR.LONG = 0x21021211;
+	MOV.L	#080000H,R10
+	MOV.L	#21021211H,20H[R10]
+	;
+	;SYSTEM.SCKCR3.BIT.CKSEL = 4;		// PLLñHIð
+	MOV.L	#080000H,R10
+	MOV.W	26H[R10],R11
+	AND		#-0701H,R11
+	OR		#0400H,R11
+	MOV.W	R11,26H[R10]
+
+	;
+	;  W
+[Xgbv
+	;
+	;  Zbgã, ®ìµÄ¢éà üÓW
+[ÍDMAC, DTC,
+	;  à RAMÌÝÅ é.
+	;  »êÈOÌà üÓW
+[ÉÖµÄÍgp·é¤Å
+	;  Ýè·é±Æ.
+	;
+
+	;SYSTEM.PRCR.WORD = 0xa500;
+	MOV.L	#080000H,R10
+	MOV.W	#-5B00H,03FEH[R10]
+	rts
+
+
+_software_init_hook:
+	;
+	;  {RpCÅÍweak definitionÌ@\ª³¢½ß,
+	;  ÁÉKvÈÍÈ¢ª, K¸ÄÑo·±ÆÆ·é.
+	;
+	rts
+
+
+	.end
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_sym.def	(revision 313)
@@ -0,0 +1,9 @@
+LOG_DSP_ENTER
+LOG_DSP_LEAVE
+LOG_INH_ENTER
+LOG_INH_LEAVE
+LOG_EXC_ENTER
+LOG_EXC_LEAVE
+SIL_DLY_TIM1
+SIL_DLY_TIM2
+INTATR_TIMER
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_syssvc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_syssvc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_syssvc.h	(revision 313)
@@ -0,0 +1,139 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨
+ *
+ *  ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼ãã®ãã¡
+ *  ã¤ã«ã®å
+å®¹ã¯ï¼ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã«è¨è¿°ããï¼ãã®ãã¡ã¤ã«ã¯
+ *  ç¡ããªãè¦è¾¼ã¿ï¼
+ */
+
+#ifndef TOPPERS_TARGET_SYSSVC_H
+#define TOPPERS_TARGET_SYSSVC_H
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®å®ç¾©
+ */
+#include "prc_syssvc.h"
+
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+
+/*
+ *  ãã¼ãä¾å­æ
+å ±ã®èª­ã¿è¾¼ã¿
+ */
+#include "gr_sakura.h"
+
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã®ã¿ã¼ã²ããã·ã¹ãã å
+ */
+#define	TARGET_NAME	"RX63N/GRSAKURA"
+
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºå
+ *
+ *  ã¿ã¼ã²ããä¾å­ã®æ¹æ³ã§ï¼æå­cãè¡¨ç¤º/åºå/ä¿å­ããï¼
+ */
+extern void	target_fput_log( char c );
+
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºã
+ *  è¿½å ããããã®ãã¯ã­ï¼
+ */
+#ifdef PRC_COPYRIGHT
+#define	TARGET_COPYRIGHT	PRC_COPYRIGHT
+#endif /* PRC_COPYRIGHT */
+
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãæ°ã®å®ç¾©
+ */
+#define	TNUM_PORT			UINT_C( 2 )
+
+
+/*
+ *  ä½¿ç¨ããã·ãªã¢ã«ãã¼ãID
+ */
+#define	SIO_PORTID			UINT_C( 1 )
+
+#define LOGTASK_PORTID		SIO_PORTID
+
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯é¢é£ã®å®æ°ã®å®ç¾©
+ *
+ *  ããã©ã«ãå¤ã®éãï¼
+ */
+
+#endif /* TOPPERS_TARGET_SYSSVC_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_test.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_test.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_test.h	(revision 313)
@@ -0,0 +1,81 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©
+ */
+
+#ifndef TOPPERS_TARGET_TEST_H
+#define TOPPERS_TARGET_TEST_H
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "prc_test.h"
+
+/*
+ *  ã¿ã¹ã¯ã§ä½¿ç¨ããã·ãªã¢ã«ãã¼ãID
+ */
+#define	TASK_PORTID		( 1 )
+
+
+#endif /* TOPPERS_TARGET_TEST_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.c	(revision 313)
@@ -0,0 +1,149 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¤ããã©ã¤ã
+ */
+
+#include "kernel_impl.h"
+#include "time_event.h"
+#include <sil.h>
+#include "target_timer.h"
+
+/*
+ *  ã¿ã¤ãã®åæåå¦ç
+ */
+void
+target_timer_initialize(intptr_t exinf)
+{
+	/*
+	 * ã¢ã¸ã¥ã¼ã«ã¹ãããæ©è½ã®è¨­å®
+	 */
+	sil_wrh_mem((void *)SYSTEM_PRCR_ADDR, (uint16_t)0xA502);	/* æ¸è¾¼ã¿è¨±å¯ */
+	*SYSTEM_MSTPCRA_ADDR &= ~(SYSTEM_MSTPCRA_MSTPA15_BIT);
+	sil_wrh_mem((void *)SYSTEM_PRCR_ADDR, (uint16_t)0xA500);	/* æ¸è¾¼ã¿ç¦æ­¢ */
+
+	/* 
+	 * ã¿ã¤ãåæ­¢ 
+	 */
+	*CMT_CMSTR0_ADDR &= ~CMT_CMSTR0_STR0_BIT;
+	
+	/*
+ 	 * ã«ã¦ã³ãã¢ããã«ç¨ããããã¯ã­ãã¯è¨­å®
+	 * PCLK/32ãé¸æ
+	 */
+	*CMT0_CMCR_ADDR = CMT_PCLK_DIV_8;
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãã«ã¦ã³ã¿è¨­å®
+	 */
+	*CMT0_CMCNT_ADDR = 0U;
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãå¨æè¨­å®
+	 */
+	*CMT0_CMCOR_ADDR = CMCOR_PERIOD;
+
+	/*
+	 * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿ï¼ISELR28ï¼
+	 */
+	*ICU_ISELR028_ADDR = ICU_ISEL_CPU;
+
+	/*
+	 *  ã¿ã¤ãåä½éå§åã®å²è¾¼ã¿è¦æ±ãã¯ãªã¢
+	 */
+	x_clear_int(INTNO_TIMER);
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿ãè¨±å¯
+	 */
+	*CMT0_CMCR_ADDR |= CMT0_CMCR_CMIE_BIT;
+	
+	/* 
+	 * ã¿ã¤ãåä½éå§
+	 */
+	*CMT_CMSTR0_ADDR |= CMT_CMSTR0_STR0_BIT;
+}
+
+/*
+ *  ã¿ã¤ãã®åæ­¢å¦ç
+ */
+void
+target_timer_terminate(intptr_t exinf)
+{
+	/* 
+	 * ã¿ã¤ãåæ­¢ 
+	 */
+	*CMT_CMSTR0_ADDR &= ~CMT_CMSTR0_STR0_BIT;
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ */
+void target_timer_handler(void)
+{
+	i_begin_int(INTNO_TIMER);
+	
+	signal_time();				/* ã¿ã¤ã ãã£ãã¯ã®ä¾çµ¦ */
+	
+	i_end_int(INTNO_TIMER);
+}
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.cfg	(revision 313)
@@ -0,0 +1,9 @@
+/*
+ *  ã¿ã¤ããã©ã¤ãï¼RX630ç¨ï¼ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "target_timer.h"
+ATT_INI({ TA_NULL, 0, target_timer_initialize });
+ATT_TER({ TA_NULL, 0, target_timer_terminate });
+DEF_INH(INHNO_TIMER, { TA_NULL, target_timer_handler });
+CFG_INT(INTNO_TIMER, { INTATR_TIMER, INTPRI_TIMER });
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_timer.h	(revision 313)
@@ -0,0 +1,202 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¤ããã©ã¤ã
+ */
+ 
+#ifndef TOPPERS_TARGET_TIMER_H
+#define TOPPERS_TARGET_TIMER_H
+
+#include <sil.h>
+#include "gr_sakura.h"
+#include "target_syssvc.h"
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ç»é²ã®ããã®å®æ°
+ */
+#define INHNO_TIMER		INT_CMT0_CMI				/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_TIMER		INT_CMT0_CMI				/* å²è¾¼ã¿çªå· */
+#define INTPRI_TIMER	-5							/* å²è¾¼ã¿åªå
+åº¦ */
+#define INTATR_TIMER	(TA_ENAINT | TA_EDGE)		/* å²è¾¼ã¿å±æ§ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ã®å
+ */
+typedef uint16_t	CLOCK;
+
+/*
+ *  ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ã¨ããªç§åä½ã¨ã®å¤æ
+ *
+ *  1msã®ã¿ã¤ãã¼å²ãè¾¼ã¿ãä½¿ç¨ããã®ã§ãã®ã¯ã­ãã¯ãå®ç¾©ããï¼
+ */
+#define TIMER_CLOCK				(48000U / 8U)		/* PCLK/æä½åå¨æ¯8 = 6MHz */
+#define TO_CLOCK(nume, deno)	((CLOCK)(TIMER_CLOCK * (nume) / (deno)))
+#define	TO_USEC(clock)			((SYSUTM)((clock) * 1000U / TIMER_CLOCK))
+
+/*
+ *  è¨­å®ã§ããæå¤§ã®ã¿ã¤ãå¨æï¼åä½ã¯å
+é¨è¡¨ç¾ï¼
+ */
+#define	MAX_CLOCK	((CLOCK) 0xFFFFU)
+
+/*
+ *  æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåãåºãéã®å¦çæéã®è¦ç©ãå¤ï¼åä½ã¯å
+é¨è¡¨ç¾ï¼
+ */
+#define	GET_TOLERANCE	(100U)	/* å¦çé
+ãã®è¦ç©ãå¤ï¼åä½ã¯å
+é¨è¡¨ç¾ï¼*/
+#define	BEFORE_IREQ(clock) \
+		((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE))
+
+/*
+ *  ã³ã³ãã¢ãããã¿ã¤ãã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã®è¨­å®å¤
+ */
+/*
+ *  ã¯ã­ãã¯é¸æããã
+ *
+ *  bit7ã¯äºç´é åã§ãã, æ¸è¾¼ã¿ã¯1åºå®
+ */
+#define CMT_PCLK_DIV_8			(0x0080U)
+#define CMT_PCLK_DIV_32			(0x0081U)
+#define CMT_PCLK_DIV_128		(0x0082U)
+#define CMT_PCLK_DIV_512		(0x0083U)
+
+/*
+ *  ã³ã³ãã¢ãããã¿ã¤ãã³ã³ã¹ã¿ã³ãã¬ã¸ã¹ã¿ï¼CMCORï¼
+ *
+ *  ã³ã³ãã¢ãããå¨æã1msã¨ããï¼
+ *  å¨è¾ºã¢ã¸ã¥ã¼ã«ã¯ã­ãã¯ï¼PCLKï¼48MHzã8åå¨ããã®ã§ï¼
+ *  1å¨æããã166nsecã¨ãªãï¼6000å¨æã§1msï¼ã¿ã¤ã ãã£ãã¯ã®å¨æï¼ã¨ããï¼
+ */
+#define CMCOR_PERIOD			(TIMER_CLOCK)
+
+/*
+ * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿iï¼ISELRiï¼ï¼i= å²ãè¾¼ã¿ãã¯ã¿çªå·ï¼
+ */
+#define ICU_ISEL_CPU			(0x00U)
+
+
+
+
+/*
+ *  ã¿ã¤ãã®èµ·åå¦ç
+ *
+ *  ã¿ã¤ããåæåãï¼å¨æçãªã¿ã¤ãå²è¾¼ã¿è¦æ±ãçºçãããï¼
+ */
+extern void	target_timer_initialize(intptr_t exinf);
+
+/*
+ *  ã¿ã¤ãã®åæ­¢å¦ç
+ *
+ *  ã¿ã¤ãã®åä½ãåæ­¢ãããï¼
+ */
+extern void	target_timer_terminate(intptr_t exinf);
+
+/*
+ *  ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®èª­ã¿åºã
+ */
+Inline uint16_t rx630_cmt_getcount(void)
+{
+	return *CMT0_CMCNT_ADDR;
+}
+
+/*
+ *  ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®æ¸ãè¾¼ã¿
+ */
+Inline void rx630_cmt_setcount(uint16_t count)
+{
+	*CMT0_CMCNT_ADDR = count;
+}
+
+/*
+ *  ã¿ã¤ãã®ç¾å¨å¤ã®èª­åºã
+ */
+Inline CLOCK
+target_timer_get_current(void)
+{
+	/* ã¢ããã«ã¦ã³ãã®ããã¿ã¤ãã¬ã¸ã¹ã¿å¤ããã®ã¾ã¾è¿ã	*/
+	return (rx630_cmt_getcount());
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ãã§ãã¯
+ */
+Inline bool_t
+target_timer_probe_int(void)
+{
+	return(x_probe_int(INTNO_TIMER));
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ */
+extern void	target_timer_handler(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_TARGET_TIMER_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_unrename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_unrename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/target_unrename.h	(revision 313)
@@ -0,0 +1,46 @@
+/* This file is generated from target_rename.def by genrename. */
+
+#ifndef TOPPERS_TARGET_RENAME_H
+#define TOPPERS_TARGET_RENAME_H
+
+/*
+ *  target_config.c
+ */
+#undef target_initialize
+#undef target_exit
+
+/*
+ *  trace_config.c
+ */
+#undef log_dsp_enter
+#undef log_dsp_leave
+#undef log_inh_enter
+#undef log_inh_leave
+#undef log_exc_enter
+#undef log_exc_leave
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  target_config.c
+ */
+#undef _target_initialize
+#undef _target_exit
+
+/*
+ *  trace_config.c
+ */
+#undef _log_dsp_enter
+#undef _log_dsp_leave
+#undef _log_inh_enter
+#undef _log_inh_leave
+#undef _log_exc_enter
+#undef _log_exc_leave
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "rx630_ccrx/prc_unrename.h"
+
+#endif /* TOPPERS_TARGET_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target.py	(revision 313)
@@ -0,0 +1,2 @@
+if NET_IF == 'ether':
+	TINET_COBJS = TINET_COBJS + ['tinet_target_config.c']
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.c	(revision 313)
@@ -0,0 +1,129 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX63Nç¨ï¼
+ */
+
+#include <sil.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+#include <rx630_ccrx/rx630.h>
+
+#if defined(SUPPORT_ETHER)
+
+/*
+ *  rx62n_bus_init -- ã¿ã¼ã²ããä¾å­é¨ã®ãã¹ã®åæå
+ */
+
+void
+rx62n_bus_init (void)
+{
+	/* ã¤ã¼ãµãããã»ã³ã³ãã­ã¼ã©ã®åä½ãè¨±å¯ */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA502);	/* æ¸è¾¼ã¿è¨±å¯ */
+	sil_wrw_mem(SYSTEM_MSTPCRB_ADDR,
+		sil_rew_mem(SYSTEM_MSTPCRB_ADDR) & ~SYSTEM_MSTPCRB_MSTPB15_BIT);
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA500);	/* æ¸è¾¼ã¿ç¦æ­¢ */
+
+	/* EtherNETæå¹ */
+	/* PA3ï½5 RMII_MDIO, RMII_MDC, RMII_LINKSTA */
+	sil_wrb_mem(PORTA_PMR_ADDR,
+		sil_reb_mem(PORTA_PMR_ADDR) | (1 << 3) | (1 << 4) | (1 << 5));
+	/* PB0ï½7 RXD1, RXD0, REF50CK, RX-ER, TXD-EN, TXD0, TXD1, CRS */
+	sil_wrb_mem(PORTB_PMR_ADDR,
+		sil_reb_mem(PORTB_PMR_ADDR) | 0xFF);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PFSWEãããã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x00);
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PxxFSã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x40);
+
+	/* PA3ãET_MDIOã¨ãã */
+	sil_wrb_mem(MPC_PA3PFS_ADDR, 0x11); 
+	/* PA4ãET_MDCã¨ãã */
+	sil_wrb_mem(MPC_PA4PFS_ADDR, 0x11); 
+	/* PA5ãET_LINKSTAã¨ãã */
+	sil_wrb_mem(MPC_PA5PFS_ADDR, 0x11); 
+
+	/* PB0ãRXD1ã¨ãã */
+	sil_wrb_mem(MPC_PB0PFS_ADDR, 0x12);
+	/* PB1ãRXD0ã¨ãã */
+	sil_wrb_mem(MPC_PB1PFS_ADDR, 0x12);
+	/* PB2ãREF50CKã¨ãã */
+	sil_wrb_mem(MPC_PB2PFS_ADDR, 0x12);
+	/* PB3ãRX-ERã¨ãã */
+	sil_wrb_mem(MPC_PB3PFS_ADDR, 0x12);
+	/* PB4ãTXD-ENã¨ãã */
+	sil_wrb_mem(MPC_PB4PFS_ADDR, 0x12);
+	/* PB5ãTXD0ã¨ãã */
+	sil_wrb_mem(MPC_PB5PFS_ADDR, 0x12);
+	/* PB6ãTXD1ã¨ãã */
+	sil_wrb_mem(MPC_PB6PFS_ADDR, 0x12);
+	/* PB7ãCRSã¨ãã */
+	sil_wrb_mem(MPC_PB7PFS_ADDR, 0x12);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® æ¸ãè¾¼ã¿ãç¦æ­¢ */
+	sil_wrb_mem(MPC_PWPR_ADDR , 0x80);
+}
+
+/*
+ *  rx62n_inter_init -- ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿ã®åæå
+ */
+
+void
+rx62n_inter_init (void)
+{
+}
+
+#endif	/* of #if defined(SUPPORT_ETHER) */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_config.h	(revision 313)
@@ -0,0 +1,548 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_TARGET_CONFIG_H_
+#define _TINET_TARGET_CONFIG_H_
+
+/*
+ *  TCP/IP ã«é¢ããå®ç¾©
+ */
+
+/* TCP ã«é¢ããå®ç¾© */
+
+/*
+ *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
+ *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ */
+
+#ifndef MAX_TCP_SND_SEG
+#define MAX_TCP_SND_SEG		(IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+#endif	/* of #ifndef MAX_TCP_SND_SEG */
+
+/*
+ *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifndef DEF_TCP_RCV_SEG
+#define DEF_TCP_RCV_SEG		(IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+#endif	/* of #ifndef DEF_TCP_RCV_SEG */
+
+/* 
+ *  ã»ã°ã¡ã³ãã®é çªãå
+¥ãæ¿ããã¨ãã«æ°ãã«ãããã¯ã¼ã¯ãããã¡ãå²å½ã¦ã¦ã
+ *  ãã¼ã¿ãã³ãã¼ãããµã¤ãºã®ãããå¤
+ */
+#define MAX_TCP_REALLOC_SIZE	1024	
+
+#define TCP_CFG_OPT_MSS		/* ã³ãã¯ã·ã§ã³éè¨­æã«ãã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ãã¤ãã¦éä¿¡ããã*/
+#define TCP_CFG_DELAY_ACK	/* ACK ãé
+ãããã¨ãã¯ã³ã¡ã³ããå¤ãã			*/
+#define TCP_CFG_ALWAYS_KEEP	/* å¸¸ã«ã­ã¼ãã¢ã©ã¤ãããæã¯ã³ã¡ã³ããå¤ãã		*/
+
+/* UDP ã«é¢ããå®ç¾© */
+
+#define UDP_CFG_IN_CHECKSUM	/* UDP ã®å
+¥åãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define UDP_CFG_OUT_CHECKSUM	/* UDP ã®åºåãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+
+/* ICMPv4/v6 ã«é¢ããå®ç¾© */
+
+#define ICMP_REPLY_ERROR		/* ICMP ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+//#define IP4_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define NUM_IP4_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
+#define IP4_CFG_FRAG_REASSM_SIZE	4096	/* IPv4 åæ§æãããã¡ãµã¤ãº			*/
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#define NUM_IP6_DAD_COUNT	1	/* éè¤ã¢ãã¬ã¹æ¤åºã§éä¿¡ããè¿é£è¦è«ã®åæ°ã		*/
+					/*  0 ãæå®ããã¨ãéè¤ã¢ãã¬ã¹æ¤åºãè¡ããªãã	*/
+#define NUM_ND6_CACHE_ENTRY	10	/* è¿é£ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°			*/
+
+/*
+ *  IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã
+ *  0 ãæå®ããã¨IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ãçµè¾¼ã¾ãªãã
+ */
+#define NUM_IN6_HOSTCACHE_ENTRY	4
+
+#ifdef SUPPORT_ETHER
+
+#define IP6_CFG_AUTO_LINKLOCAL		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®èªåè¨­å®ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã
+ *  æå¤§å¤ã¯ 16ã0 ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãã
+ */
+#define NUM_ND6_DEF_RTR_ENTRY		4
+
+/*
+ *  ãã¬ãã£ãã¯ã¹ãªã¹ãã«é¢ããå®ç¾©ã
+ *  æå¤§å¤ã¯ 16ã
+ */
+#define NUM_ND6_PREFIX_ENTRY		4	/*  ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°			*/
+
+/*
+ *  èµ·åæã®ã«ã¼ã¿è¦è«åºååæ°ã
+ *  0 ãæå®ããã¨ã«ã¼ã¿è¦è«ãåºåããªãã
+ */
+#define NUM_ND6_RTR_SOL_RETRY	3	
+
+#define IP6_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define NUM_IP6_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
+#define IP6_CFG_FRAG_REASSM_SIZE	4096	/* IPv6 åæ§æãããã¡ãµã¤ãº			*/
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  PPPãã¢ãã ã«é¢ããå®ç¾©
+ */
+
+#define MODEM_CFG_DIAL		"ATD"	/* ãã¤ã¢ã«ã³ãã³ãæå­å			*/
+#define MODEM_CFG_RETRY_CNT	3	/* ãã¤ã¢ã«ãªãã©ã¤åæ°			*/
+#define MODEM_CFG_RETRY_WAIT	10000	/* ãã¤ã¢ã«ãªãã©ã¤ã¾ã§ã®å¾
+ã¡æé [ms]	*/
+
+/*
+ *  PPPãHDLC ã«é¢ããå®ç¾©
+ */
+
+#define DEF_LOCAL_ACCM		ULONG_C(0x000a0000)	/* èªåã® ACCMãXON ã¨ XOFF ã®ã¿å¤æ	*/
+#define DEF_REMOTE_ACCM		ULONG_C(0xffffffff)	/* ç¸æã® ACCMãåæå¤ã¯å
+¨ã¦å¤æ		*/
+
+/*
+ *  PPPãLCP ã«é¢ããå®ç¾©
+ */
+
+#define LCP_CFG_MRU		UINT_C(0x0001)	/* MRU					*/
+#define LCP_CFG_ACCM		UINT_C(0x0002)	/* ACCM					*/
+#define LCP_CFG_MAGIC		UINT_C(0x0004)	/* ãã¸ãã¯çªå·				*/
+#define LCP_CFG_PCOMP		UINT_C(0x0008)	/* ãã­ãã³ã«é¨å§ç¸®æ©è½			*/
+#define LCP_CFG_ACCOMP		UINT_C(0x0010)	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®			*/
+#define LCP_CFG_PAP		UINT_C(0x0020)	/* PAP					*/
+/*#define LCP_CFG_CHAP		UINT_C(0x0040)	   CHAP ã¯å®è£
+äºå®			*/
+
+#ifdef LCP_CFG_MAGIC
+
+#define LCP_ECHO_INTERVAL	(20*NET_TIMER_HZ)	/* ã¤ã³ã¿ã¼ãã«æé		*/
+#define LCP_ECHO_FAILS		9			/* å¤±æé¾å¤			*/
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+/*
+ *  PPPãPAP ã«é¢ããå®ç¾©
+ */
+
+#define DEF_PAP_TIMEOUT		(3*NET_TIMER_HZ)
+#define DEF_PAP_REQTIME		(30*NET_TIMER_HZ)	/* ã¿ã¤ã ã¢ã¦ãå¦çãè¡ãã¨ãã¯ã³ã¡ã³ããå¤ãã*/
+#define MAX_PAP_REXMT		10			/* èªè¨¼è¦æ±ã®æå¤§åéåæ°	*/
+
+/*
+ *  RX63N Ethernet Controler ã«é¢ããå®ç¾©
+ */
+
+#define NUM_IF_RX62N_TXBUF		2	/* éä¿¡ãããã¡æ°			*/
+#define NUM_IF_RX62N_RXBUF		2	/* åä¿¡ãããã¡æ°			*/
+#define IF_RX62N_BUF_PAGE_SIZE	1518	/* ãããã¡ãµã¤ãº */
+
+#define TMO_IF_RX62N_GET_NET_BUF	1	/* [ms]ãåä¿¡ç¨ net_buf ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+					/* [s]ã éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
+#define TMO_IF_RX62N_XMIT		(2*IF_TIMER_HZ)
+
+/*#define IF_RX62N_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  ã¤ã¼ãµãããåºåæã«ãNIC ã§ net_buf ãéæ¾ããå ´åã«æå®ããã
+ *
+ *  æ³¨æ: ä»¥ä¸ã®æå®ã¯ãæå®ä¾ã§ãããif_rx62n ã§ã¯ã
+ *        éæ¾ããªãã®ã§ãä»¥ä¸ã®ã³ã¡ã³ããå¤ãã¦ã¯ãªããªãã
+ */
+
+/*#define ETHER_NIC_CFG_RELEASE_NET_BUF*/
+
+/*
+ *  RX63N Ethernet Controller ã«é¢ããå®ç¾©
+ */
+
+#define RX63N_BASE_ADDRESS		ULONG_C(0x00200000)	/* NIC ã®ã¬ã¸ã¹ã¿ãã¼ã¹ã¢ãã¬ã¹ */
+
+#define INHNO_IF_RX62N_TRX	INT_ETH_EINT	/* ãã±ããéåä¿¡ */
+#define INTNO_IF_RX62N_TRX	INT_ETH_EINT	/* ãã±ããéåä¿¡ */
+#define INTATR_IF_RX62N_TRX	(TA_NULL)	/* å²è¾¼ã¿å±æ§	*/
+#define INTPRI_IF_RX62N_TRX	(-1)		/* å²è¾¼ã¿åªå
+åº¦	*/
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+#define NUM_ARP_ENTRY		10			/* ARP ã­ã£ãã·ã¥ã¨ã³ããªæ°	*/
+
+/*
+ *  DHCP ã«é¢ããå®ç¾©
+ *
+ *    ã»æ³¨æ: TINET ã¯ãDHCP ãå®è£
+ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ã
+ *            DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã
+ *            ã¾ããç¾å¨ã¯ IPv4 ã®ã¿æå¹ã§ããã
+ */
+
+/*#define DHCP_CFG					 DHCP ãå¦çããå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  Ethernet ã«é¢ããå®ç¾©
+ */
+
+/*#define ETHER_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã	*/
+/*#define ETHER_CFG_UNEXP_WARNING	 éãµãã¼ããã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+/*#define ETHER_CFG_802_WARNING		 IEEE 802.3 ãã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+/*#define ETHER_CFG_MCAST_WARNING	 ãã«ãã­ã£ã¹ãã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+#define ETHER_CFG_MULTICAST			/* ãã«ãã­ã£ã¹ããéåä¿¡ */
+
+/*
+ *  ã¢ãã¬ã¹ãªã¹ãã«é¢ããå®ç¾©ã
+ */
+#define NUM_IN6_IFADDR_ENTRY		5	/*  ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãã®ã¨ã³ããªæ°		*/
+
+/*
+ *  æ±ç¨ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ */
+
+/* ãããã¯ã¼ã¯ãããã¡æ° */
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  PPP ã§ã¯ãåä¿¡ç¨ã® ãããã¯ã¼ã¯ãããã¡ã¯ PDU (1502) ãµã¤ãºãå¸¸ã«
+ *  å²ãå½ã¦ãªããã°ãªããªãã®ã§ PDU ãµã¤ãºãå¤ãã«ç¢ºä¿ããã
+ */
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCPã2 ä»¥ä¸*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	2	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#ifndef NUM_MPF_NET_BUF4_REASSM
+
+#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF4_REASSM */
+
+#ifndef NUM_MPF_NET_BUF6_REASSM
+
+#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF6_REASSM */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
+ */
+
+/*
+ *  æ³¨æ!!
+ *
+ *  RX63N Ethernet Controler ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_rx62nï¼ã®æä½å²å½ã¦é·ã¯
+ *  60ï¼ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã®ãã IF + IP +TCP ããã¯
+ *  64 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã®æ¹ãæé©ã§ããã
+ */
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	0	/* IF + IP + TCP	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	2	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#if defined(SUPPORT_INET4)
+
+#ifndef NUM_MPF_NET_BUF_IP_MSS
+#define NUM_MPF_NET_BUF_IP_MSS	0	/* IF + 576 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IP_MSS */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#if defined(SUPPORT_INET6)
+
+#ifndef NUM_MPF_NET_BUF_IPV6_MMTU
+#define NUM_MPF_NET_BUF_IPV6_MMTU	0	/* IF + 1280	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IPV6_MMTU */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#ifndef NUM_MPF_NET_BUF4_REASSM
+
+#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF4_REASSM */
+
+#ifndef NUM_MPF_NET_BUF6_REASSM
+
+#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF6_REASSM */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_LOOP
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCP	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ãããã2 ä»¥ä¸	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+/*
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬
+ *
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬ãè¡ãå ´åã¯ãtinet/include/net/net.h
+ *  ã§å®ç¾©ããã¦ãããã­ãã³ã«è­å¥ãã©ã°ãæå®ããã
+ */
+
+#if 1
+
+#ifdef SUPPORT_INET6
+
+#ifdef SUPPORT_INET4
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_IP6		\
+				| PROTO_FLG_ICMP6	\
+				| PROTO_FLG_ND6		\
+				| PROTO_FLG_ARP		\
+				| PROTO_FLG_IP4		\
+				| PROTO_FLG_ICMP4	\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#else	/* of #ifdef SUPPORT_INET4 */
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_IP6		\
+				| PROTO_FLG_ICMP6	\
+				| PROTO_FLG_ND6		\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_ARP		\
+				| PROTO_FLG_IP4		\
+				| PROTO_FLG_ICMP4	\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#else	/* of #if 0 */
+
+#define NET_COUNT_ENABLE	(0			\
+				)
+
+#endif	/* of #if 0 */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  é¢æ°
+ */
+
+extern void rx62n_bus_init (void);
+extern void rx62n_inter_init (void);
+
+#endif	/* of #ifndef TOPPERS_MACRO_ONLY */
+
+#endif /* _TINET_TARGET_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_defs.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_defs.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_ccrx/tinet_target_defs.h	(revision 313)
@@ -0,0 +1,70 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_TARGET_DEFS_H_
+#define _TINET_TARGET_DEFS_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  CPU ã®ã¢ã©ã¤ã¡ã³ãã«é¢ããå®ç¾©
+ *
+ *  4 ãªã¯ãããåä½ã§ãã¢ã©ã¤ã³ããå¿
+è¦ãããå ´åã¯ 4 ãæå®ããã
+ */
+
+#define CPU_NET_ALIGN		2
+
+#endif /* _TINET_TARGET_DEFS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/E_PACKAGE
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/E_PACKAGE	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/E_PACKAGE	(revision 313)
@@ -0,0 +1,7 @@
+E_PACKAGE asp_gr_sakura_gcc
+VERSION %date
+
+INCLUDE ../../MANIFEST
+INCLUDE ../../arch/rx630_gcc/MANIFEST
+#INCLUDE ../../arch/gcc/MANIFEST
+INCLUDE ../../cfg/MANIFEST
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/MANIFEST	(revision 313)
@@ -0,0 +1,34 @@
+PACKAGE asp_target_rsk_rx_hew
+
+E_PACKAGE
+MANIFEST
+asm_config.cfg
+gr_sakura.h
+sectrx.inc
+target.tf
+target_asm_config.tf
+target_ccrx_echonet.tf
+target_cfg1_out.h
+target_check.tf
+target_config.c
+target_config.h
+target_sym.def
+target_kernel.h
+target_offset.tf
+target_rename.def
+target_rename.h
+target_serial.c
+target_serial.cfg
+target_serial.h
+target_sil.h
+target_stddef.h
+target_support.src
+target_syssvc.h
+target_test.h
+target_timer.c
+target_timer.cfg
+target_timer.h
+target_unrename.h
+tinet_target_config.c
+tinet_target_config.h
+tinet_target_defs.h
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.target
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.target	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.target	(revision 313)
@@ -0,0 +1,85 @@
+#
+#		Makefileã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+#
+
+#
+#  ãã¼ãåï¼ãã­ã»ããµåï¼éçºç°å¢åã®å®ç¾©
+#
+BOARD = gr_sakura
+PRC = rx630
+TOOL = gcc
+
+#
+#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#
+INCLUDES := $(INCLUDES) -I$(TARGETDIR) -I$(SRCDIR)/pdic
+
+#
+#  ã«ã¼ãã«ã«é¢ããå®ç¾©
+#
+KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
+KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
+KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_support.o target_timer.o
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã«é¢ããå®ç¾©
+#
+SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/pdic/rx600
+SYSSVC_COBJS := $(SYSSVC_COBJS) target_serial.o rx630_uart.o
+
+#
+#  ã³ã³ãã£ã®ã¥ã¬ã¼ã¿é¢ä¿ã®å¤æ°ã®å®ç¾©
+#
+CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def
+
+#
+#  ãã¬ã¼ã¹ã­ã°è¨é²ã®ãµã³ãã«ã³ã¼ãã«é¢ããå®ç¾©
+#
+ifeq ($(ENABLE_TRACE),true)
+	COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
+	KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
+	KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
+endif
+
+#
+#  åã»ã°ã¡ã³ãã®éå§ã¢ãã¬ã¹ã®å®ç¾©
+#
+#TEXT_START_ADDRESS = 00010000
+#DATA_START_ADDRESS = 00100000
+
+#
+#  ãªã³ã«ã¹ã¯ãªããã®å®ç¾©
+#
+LDSCRIPT = $(TARGETDIR)/gr_sakura.ld
+
+#
+#  ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼ã«ã«é¢ããå®ç¾©
+#
+#  m68kelf.ldã«ãSTARTUP(start.o)ããè¨è¿°ããããï¼ã¹ã¿ã¼ãã¢ããã¢ã¸ã¥ã¼
+#  ã«ã®ååãHIDDEN_OBJSã«å®ç¾©ããï¼ã¾ãï¼LDFLAGSã«-nostdlibãè¿½å ãã¦ããï¼
+#
+HIDDEN_OBJS = start.o
+
+$(HIDDEN_OBJS): %.o: %.S
+	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
+
+$(HIDDEN_OBJS:.o=.d): %.d: %.S
+	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
+		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
+
+LDFLAGS := -nostdlib $(LDFLAGS)
+CFG1_OUT_LDFLAGS := -nostdlib $(CFG1_OUT_LDFLAGS)
+LIBS := $(LIBS) -lgcc
+CFG2_OUT_SRCS := $(CFG2_OUT_SRCS) kernel_cfg_asm.S
+
+#
+#  ä¾å­é¢ä¿ã®å®ç¾©
+#
+cfg1_out.c: $(TARGETDIR)/target_sym.def
+kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
+$(OBJFILE): $(TARGETDIR)/target_check.trb
+
+#
+#  ãã­ã»ããµä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/arch/$(PRC)_$(TOOL)/Makefile.prc
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.tinet
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.tinet	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/Makefile.tinet	(revision 313)
@@ -0,0 +1,53 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+#   ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#  
+#   @(#) $Id: $
+#
+
+#
+#  Makefile.tinet ã®ã·ã¹ãã ä¾å­é¨åï¼GR-SAKURAç¨ï¼
+
+ifeq ($(NET_IF),ether)
+
+	TINET_COBJS := $(TINET_COBJS) tinet_target_config.o
+
+endif
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.h	(revision 313)
@@ -0,0 +1,105 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* GR-SAKURAç¨ããããã¡ã« */
+
+#ifndef	TOPPERS_GRSAKURA_H
+#define	TOPPERS_GRSAKURA_H
+
+
+/*
+ *  MCUä¾å­æ
+å ±ã®èª­ã¿è¾¼ã¿
+ */
+#include "rx630_gcc/rx630.h"
+
+/*
+ *  ã¯ã­ãã¯è¨­å®
+ */
+
+/*
+ *  ã·ã¹ãã ã¯ã­ãã¯ICLK(kHz)
+ *
+ *  CPUï¼DTCï¼DMACAï¼ETHERCï¼EDMACï¼ROMï¼RAMç¨
+ *  
+ */
+#define FREQ_ICLK  (96000U)
+
+/*
+ *  ã¯ã­ãã¯PCLK(kHz)
+ *
+ *  ã¿ã¤ãï¼ã·ãªã¢ã«ãªã©å¨è¾ºã¢ã¸ã¥ã¼ã«ç¨
+ */
+#define FREQ_PCLK  (48000U)
+
+
+/*
+ *  ãã¼ã¬ã¼ãè¨­å®
+ */
+#define BAUD_19200BPS		UINT_C( 78 )
+#define BAUD_38400BPS		UINT_C( 39 )
+#define BAUD_57600BPS		UINT_C( 25 )
+#define BAUD_115200BPS		UINT_C( 12 )
+
+#define UART_BAUDRATE		BAUD_38400BPS
+
+
+/*
+ *  ã¯ã­ãã¯ã½ã¼ã¹
+ */
+#define UART_CLKSRC			CLK_F1
+
+#endif	/* TOPPERS_GRSAKURA_H */
+
+ 
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.ld
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.ld	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/gr_sakura.ld	(revision 313)
@@ -0,0 +1,135 @@
+MEMORY
+{
+	RAM : ORIGIN = 0x0, LENGTH = 131072
+	ROM : ORIGIN = 0xFFF00000, LENGTH = 1048576
+}
+
+SECTIONS
+{
+	.fvectors 0xFFFFFF80 : AT (0xFFFFFF80)
+	{
+		KEEP(*(.fvectors))
+	} > ROM
+	.text 0xFFF00000 : AT (0xFFF00000)
+	{
+		*(.text)
+		*(.text.*)
+		*(P)
+		etext = .;
+	} > ROM
+	.rvectors : 
+	{
+		_rvectors_start = .;
+		KEEP(*(.rvectors))
+		_rvectors_end = .;
+	} > ROM
+	.init : 
+	{
+		*(.init)
+		__preinit_array_start = .;
+		*(.preinit_array)
+		__preinit_array_end = .;
+		__init_array_start = (. + 3) & ~ 3;
+		*(.init_array)
+		*(SORT(.init_array.*))
+		__init_array_end = .;
+		__fini_array_start = .;
+		*(.fini_array)
+		*(SORT(.fini_array.*))
+		__fini_array_end = .;
+	} > ROM
+	.fini : 
+	{
+		*(.fini)
+	} > ROM
+	.got : 
+	{
+		*(.got)
+		*(.got.plt)
+	} > ROM
+	.rodata : 
+	{
+		_brodata = .;
+		*(.rodata)
+		*(.rodata.*)
+		*(C_1)
+		*(C_2)
+		*(C)
+		_erodata = .;
+	} > ROM
+	.eh_frame_hdr : 
+	{
+		*(.eh_frame_hdr)
+	} > ROM
+	.eh_frame : 
+	{
+		*(.eh_frame)
+	} > ROM
+	.jcr : 
+	{
+		*(.jcr)
+	} > ROM
+	.tors : 
+	{
+		__CTOR_LIST__ = .;
+		. = ALIGN(2);
+		___ctors = .;
+		*(.ctors)
+		___ctors_end = .;
+		__CTOR_END__ = .;
+		__DTOR_LIST__ = .;
+		___dtors = .;
+		*(.dtors)
+		___dtors_end = .;
+		__DTOR_END__ = .;
+		. = ALIGN(2);
+		_mdata = .;
+	} > ROM
+	.istack 0x1FC00 (NOLOAD) : AT (0x1FC00)
+	{
+		*(SI)
+		_istack = .;
+	} > RAM
+	.ustack 0x1C000 (NOLOAD) : AT (0x1C000)
+	{
+		_heap_stop = .;
+		*(SU)
+		_ustack = .;
+	} > RAM
+	.eth_memory 0x400 (NOLOAD) : AT (0x400)
+	{
+		. = ALIGN(32);
+		KEEP(*(ETH_MEMORY))
+	} > RAM
+	.gcc_exc :
+	{
+		*(.gcc_exc)
+	} > RAM
+	.data : AT (_mdata)
+	{
+		_data = .;
+		*(.data)
+		*(.data.*)
+		. = ALIGN(4);
+		*(D)
+		*(D_1)
+		. = ALIGN(2);
+		*(D_2)
+		_edata = .;
+	} > RAM
+	.bss : 
+	{
+		_bss = .;
+		*(.bss)
+		*(.bss.**)
+		*(COMMON)
+		. = ALIGN(4);
+		*(B)
+		*(B_1)
+		. = ALIGN(2);
+		*(B_2)
+		_ebss = .;
+		. = ALIGN(4);
+		_end = .;
+	} > RAM
+}
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/sectrx.inc
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/sectrx.inc	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/sectrx.inc	(revision 313)
@@ -0,0 +1,145 @@
+;*
+;*  TOPPERS/ASP Kernel
+;*      Toyohashi Open Platform for Embedded Real-Time Systems/
+;*      Advanced Standard Profile Kernel
+;* 
+;*  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+;* 
+;*  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+;*  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+;*  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+;*  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+;*      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+;*      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+;*  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+;*      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+;*      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+;*      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+;*      ã¨ï¼
+;*    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+;*        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+;*    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+;*        å ±åãããã¨ï¼
+;*  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+;*      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+;*      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+;*      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+;*      å
+è²¬ãããã¨ï¼
+;* 
+;*  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+;*  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+;*  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+;*  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+;*  ã®è²¬ä»»ãè² ããªãï¼
+;* 
+;*  @(#) $Id$
+;* 
+
+;
+;  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã»ã¯ã·ã§ã³å®ç¾©ãã¡ã¤ã«(ã¹ã¿ã¼ã¿ã¼ã­ããç¨)
+;
+
+;
+;  ã»ã¯ã·ã§ã³ã®å®ç¾©
+;
+;  ã»ã¯ã·ã§ã³ã®ã¢ãã¬ã¹å®ç¾©ã¯HEWä¸ã®æé©åãªã³ã«ã®
+;  ãªãã·ã§ã³ã«ã¦å®æ½ãã.
+;
+
+	;
+	;  åæå¤æããã¼ã¿é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	.section	D, ROMDATA
+	.section	D_2, ROMDATA, ALIGN = 2
+	.section	D_1, ROMDATA
+
+
+	;
+	;  åæå¤ç¡ããã¼ã¿é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	.section	B, DATA, ALIGN = 4
+	.section	B_2, DATA, ALIGN = 2
+	.section	B_1, DATA
+	.section	W, ROMDATA,ALIGN = 4
+	.section	W_1, ROMDATA
+	.section	W_2, ROMDATA, ALIGN = 2
+
+
+	;
+	;  ã«ã¼ãã«ã¹ã¿ãã¯é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00000000h - 00020000h
+	;
+	;  ä»¥ä¸.blkbå½ä»¤ã§ç¢ºä¿ãã¦ããã«ã¼ãã«ã¹ã¿ãã¯é åã®ãµã¤ãºã
+	;  å¤æ´ããå ´åã¯, target_config.hã®DEFAULT_ISTKSZã®å¤ã, åã
+	;  å¤ã«å¤æ´ãããã¨.
+	;
+;	.section	SI, DATA, ALIGN = 4
+;	.global _DEFAULT_ISTACK
+;_DEFAULT_ISTACK:
+;	.blkb		DEFAULT_ISTKSZ
+;	.global DEFAULT_ISTACK_TOP
+;DEFAULT_ISTACK_TOP:
+
+	;
+	;  å®æ°é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	C, ROMDATA, ALIGN = 4
+	.section	C_2, ROMDATA, ALIGN = 2
+	.section	C_1, ROMDATA
+
+	;
+	;  åæå¤æããã¼ã¿é åã®åæå¤
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	R, DATA, ALIGN = 4
+	.section	R_2, DATA, ALIGN = 2
+	.section	R_1, DATA
+
+	;
+	;  å¯å¤ãã¯ã¿ãã¼ãã«é åã®ã»ã¯ã·ã§ã³
+	;
+	;  00100000h - 00107FFFh
+	;
+	.section	.fvectors, ROMDATA, ALIGN = 4
+	.global VVECTOR_TOP
+VVECTOR_TOP:
+
+	;
+	;  ãã­ã°ã©ã é åã®ã»ã¯ã·ã§ã³
+	;
+	;  FFE80000h - FFFFFF7Fh
+	;
+	.section	P, CODE
+
+	;
+	;  åºå®ãã¯ã¿ãã¼ãã«é åã®ã»ã¯ã·ã§ã³
+	;
+	;  FFFFFF80h - FFFFFFFFh
+	;
+	.section	FVECT, ROMDATA, ALIGN = 4
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_cfg1_out.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_cfg1_out.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_cfg1_out.h	(revision 313)
@@ -0,0 +1,7 @@
+/*
+ *		cfg1_out.cã®ãªã³ã¯ã«å¿
+è¦ãªã¹ã¿ãã®å®ç¾©
+ */
+
+#include "rx630_gcc/prc_cfg1_out.h"
+#include "sil.h"
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_check.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_check.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_check.trb	(revision 313)
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+#
+#		ãã¹3ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#
+
+#
+#  çæã¹ã¯ãªããã®ãã­ã»ããµä¾å­é¨
+#
+IncludeTrb("rx630_gcc/prc_check.trb")
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.c	(revision 313)
@@ -0,0 +1,182 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã¢ã¸ã¥ã¼ã«ï¼GR-SAKURAç¨ï¼
+ */
+
+#include "kernel_impl.h"
+#include <sil.h>
+#include "gr_sakura.h"
+#include "rx600/rx630_uart.h"
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ åæåã«ã¼ãã³
+ */
+void
+target_initialize( void )
+{
+	/*
+	 *  ãã­ã»ããµä¾å­ã®åæå
+	 */
+	prc_initialize();
+
+	/* IOãã¼ãåæå */
+	/* P25ãåºåãã¼ãã«ãã */
+	sil_wrb_mem(PORT2_PDR_ADDR, 
+		sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B5_BIT);
+	/* PA0, PA1, PA2, PA6ãåºåãã¼ãã«ãã */
+	sil_wrb_mem(PORTA_PDR_ADDR,
+		sil_reb_mem(PORTA_PDR_ADDR) | PORT_PDR_B0_BIT | PORT_PDR_B1_BIT | PORT_PDR_B2_BIT | PORT_PDR_B6_BIT);
+	/* PA7ãå
+¥åãã¼ãã«ãã */
+	sil_wrb_mem(PORTA_PDR_ADDR,
+		sil_reb_mem(PORTA_PDR_ADDR) & ~PORT_PDR_B7_BIT);
+
+	/*
+	 *  ã·ãªã¢ã«ãã¼ãã®è¨­å®
+	 */
+	rx630_uart_init(TARGET_PUTC_PORTID, UART_BAUDRATE, UART_CLKSRC);
+
+	/* ãã¼ãP20ãTxD0, ãã¼ãP21ãRxD0ã« */
+	sil_wrb_mem(PORT2_PMR_ADDR, 0x03);
+
+	/* ãã¼ã¿ãã£ã¬ã¯ã·ã§ã³ã¬ã¸ã¹ã¿(PDR)ã®è¨­å® P21(RxD0)ãå
+¥åãã¼ãã«ãã */
+	sil_wrb_mem(PORT2_PDR_ADDR, 
+		sil_reb_mem(PORT2_PDR_ADDR) & ~PORT_PDR_B1_BIT);
+
+	/* ãã¼ã¿ãã£ã¬ã¯ã·ã§ã³ã¬ã¸ã¹ã¿(PDR)ã®è¨­å® P20(TxD0)ãåºåãã¼ãã«ãã */
+	sil_wrb_mem(PORT2_PDR_ADDR, 
+		sil_reb_mem(PORT2_PDR_ADDR) | PORT_PDR_B0_BIT);
+
+	/* ãã¼ãP40ï½P47ãå¨è¾ºæ©å¨ã« */
+	sil_wrb_mem(PORT4_PMR_ADDR, 0xFF);
+
+	/* ãã¼ãP40ï½P47ãå
+¥åãã¼ãã«ãã */
+	sil_wrb_mem(PORT4_PDR_ADDR, 0x00);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PFSWEãããã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x00);
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PxxFSã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x40);
+
+	/* P21ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ RXD0ã¨ãã */
+	sil_wrb_mem(MPC_P21PFS_ADDR, 0x0a);
+	/* P20ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ TXD0ã¨ãã */
+	sil_wrb_mem(MPC_P20PFS_ADDR, 0x0a);
+
+	/* P40ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN000ã¨ãã */
+	sil_wrb_mem(MPC_P40PFS_ADDR, 0x80);
+	/* P41ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN001ã¨ãã */
+	sil_wrb_mem(MPC_P41PFS_ADDR, 0x80);
+	/* P42ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN002ã¨ãã */
+	sil_wrb_mem(MPC_P42PFS_ADDR, 0x80);
+	/* P43ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN003ã¨ãã */
+	sil_wrb_mem(MPC_P43PFS_ADDR, 0x80);
+	/* P44ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN004ã¨ãã */
+	sil_wrb_mem(MPC_P44PFS_ADDR, 0x80);
+	/* P45ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN005ã¨ãã */
+	sil_wrb_mem(MPC_P45PFS_ADDR, 0x80);
+	/* P46ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN006ã¨ãã */
+	sil_wrb_mem(MPC_P46PFS_ADDR, 0x80);
+	/* P47ç«¯å­æ©è½å¶å¾¡ã¬ã¸ã¹ã¿ ã¢ãã­ã°å
+¥åAN007ã¨ãã */
+	sil_wrb_mem(MPC_P47PFS_ADDR, 0x80);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® æ¸ãè¾¼ã¿ãç¦æ­¢ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x80);
+}
+
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®çµäºã«ã¼ãã³
+ */
+void
+target_exit( void )
+{
+	/*
+	 *	ãã­ã»ããµä¾å­ã®çµäºå¦ç
+	 */
+	prc_terminate();
+
+	while ( 1 );
+}
+
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºå
+ */
+void
+target_fput_log( char c )
+{
+	if( c == '\n' ){
+		rx630_uart_pol_putc( '\r' , TARGET_PUTC_PORTID );
+	}
+
+	rx630_uart_pol_putc( c , TARGET_PUTC_PORTID );
+}
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_config.h	(revision 313)
@@ -0,0 +1,143 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2005-2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼GR-SAKURAç¨ï¼
+ *
+ *  ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼kernel_impl.hã®ã¿ã¼
+ *  ã²ããä¾å­é¨ã®ä½ç½®ä»ãã¨ãªãï¼
+ */
+
+#ifndef TOPPERS_TARGET_CONFIG_H
+#define TOPPERS_TARGET_CONFIG_H
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®ãã¼ãã¦ã§ã¢è³æºã®å®ç¾©
+ */
+#include "gr_sakura.h"
+
+
+/*
+ *  ããã©ã«ãã®éã¿ã¹ã¯ã³ã³ãã­ã¹ãç¨ã®ã¹ã¿ãã¯é åã®å®ç¾©
+ *
+ *  ã¹ã¿ãã¯ãµã¤ãºãå¤æ´ããå ´åã¯, sectrx.incã®_DEFAULT_ISTACK
+ *  ã©ãã«ã®ä½ç½®ã«ãã.blkbå½ä»¤ã®ãµã¤ãºã¨, ä»¥ä¸DEFAULT_ISTKSZã®
+ *  ãµã¤ãºãåããã¦åãå¤ã«å¤æ´ãããã¨.
+ */
+#define DEFAULT_ISTKSZ		( 0x400 )
+
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®æå­åºåã«ä½¿ç¨ãããã¼ãã®å®ç¾©  
+ */
+#define TARGET_PUTC_PORTID	( 1 )
+
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã®åæå
+ */
+extern void	target_initialize( void );
+
+/*
+ *  ã¿ã¼ã²ããã·ã¹ãã ã®çµäº
+ *
+ *  ã·ã¹ãã ãçµäºããæã«ä½¿ãï¼
+ */
+extern void	target_exit( void )	NoReturn;
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX630ç¨ï¼
+ */
+#include "rx630_gcc/rx630_config.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ */
+#define TCNT_TRACE_BUFFER	( 32 )
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°åºåããç®æã®é¸æ
+ *    ã­ã°åºåããç®æã1ã§å®ç¾©
+ *    ã­ã°åºåããªãç®æã0ã§å®ç¾©
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#define LOG_DSP_ENTER_ENABLE	( 1 )
+#define LOG_DSP_LEAVE_ENABLE	( 1 )
+#define LOG_INH_ENTER_ENABLE	( 1 )
+#define LOG_INH_LEAVE_ENABLE	( 1 )
+#define LOG_EXC_ENTER_ENABLE	( 1 )
+#define LOG_EXC_LEAVE_ENABLE	( 1 )
+#else
+#define LOG_DSP_ENTER_ENABLE	( 0 )
+#define LOG_DSP_LEAVE_ENABLE	( 0 )
+#define LOG_INH_ENTER_ENABLE	( 0 )
+#define LOG_INH_LEAVE_ENABLE	( 0 )
+#define LOG_EXC_ENTER_ENABLE	( 0 )
+#define LOG_EXC_LEAVE_ENABLE	( 0 )
+#endif
+
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+#endif /* TOPPERS_TARGET_CONFIG_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.h	(revision 313)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼GR-SAKURAç¨ï¼
+ */
+
+/*
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼kernel.hã§ã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡
+ *  ã¤ã«ããç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+ *  ããåã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ãããã«ä¾å­ãã¦ãã
+ *  ãï¼
+ */
+
+#ifndef TOPPERS_TARGET_KERNEL_H
+#define TOPPERS_TARGET_KERNEL_H
+
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "rx630_gcc/prc_kernel.h"
+
+/*
+ *  ãµãã¼ãããæ©è½ã®å®ç¾©
+ */
+#define	TOPPERS_TARGET_SUPPORT_GET_UTM		/* get_utmããµãã¼ããã */
+
+
+/*
+ *  ã¿ã¤ã ãã£ãã¯ã®å®ç¾©
+ */
+#define	TIC_NUME		( 1U )		/* ã¿ã¤ã ãã£ãã¯ã®å¨æã®åå­ */
+#define	TIC_DENO		( 1U )		/* ã¿ã¤ã ãã£ãã¯ã®å¨æã®åæ¯ */
+
+#endif /* TOPPERS_TARGET_KERNEL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_kernel.trb	(revision 313)
@@ -0,0 +1,9 @@
+# -*- coding: utf-8 -*-
+#
+#		ãã¹2ã®çæã¹ã¯ãªããã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-PEACHç¨ï¼
+#
+
+#
+#  çæã¹ã¯ãªããã®ãã­ã»ããµä¾å­é¨
+#
+IncludeTrb("rx630_gcc/prc_kernel.trb")
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.def	(revision 313)
@@ -0,0 +1,13 @@
+# target_config.c
+target_initialize
+target_exit
+
+#trace_config.c
+log_dsp_enter
+log_dsp_leave
+log_inh_enter
+log_inh_leave
+log_exc_enter
+log_exc_leave
+
+INCLUDE "rx_rxc/prc"
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_rename.h	(revision 313)
@@ -0,0 +1,49 @@
+/* This file is generated from target_rename.def by genrename. */
+
+#ifndef TOPPERS_TARGET_RENAME_H
+#define TOPPERS_TARGET_RENAME_H
+
+/*
+ *  target_config.c
+ */
+#define target_initialize			_kernel_target_initialize
+#define target_exit					_kernel_target_exit
+
+/*
+ *  trace_config.c
+ */
+#define log_dsp_enter				_kernel_log_dsp_enter
+#define log_dsp_leave				_kernel_log_dsp_leave
+#define log_inh_enter				_kernel_log_inh_enter
+#define log_inh_leave				_kernel_log_inh_leave
+#define log_exc_enter				_kernel_log_exc_enter
+#define log_exc_leave				_kernel_log_exc_leave
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  target_config.c
+ */
+#define _board_id					__kernel_board_id
+#define _board_addr					__kernel_board_addr
+#define _target_initialize			__kernel_target_initialize
+#define _target_exit				__kernel_target_exit
+#define _x_config_int				__kernel_x_config_int
+
+/*
+ *  trace_config.c
+ */
+#define _log_dsp_enter				__kernel_log_dsp_enter
+#define _log_dsp_leave				__kernel_log_dsp_leave
+#define _log_inh_enter				__kernel_log_inh_enter
+#define _log_inh_leave				__kernel_log_inh_leave
+#define _log_exc_enter				__kernel_log_exc_enter
+#define _log_exc_leave				__kernel_log_exc_leave
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "rx630_gcc/prc_rename.h"
+
+#endif /* TOPPERS_TARGET_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.c	(revision 313)
@@ -0,0 +1,213 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	RX630 UARTç¨ã·ãªã¢ã«I/Oã¢ã¸ã¥ã¼ã«
+ */
+#include "kernel_impl.h"
+#include <sil.h>
+#include "target_serial.h"
+
+/*
+ *  SIOãã©ã¤ãã®åæå
+ */
+void
+sio_initialize(intptr_t exinf)
+{
+	rx630_uart_initialize();
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+SIOPCB *
+sio_opn_por(ID siopid, intptr_t exinf)
+{
+	SIOPCB  *p_siopcb = NULL;
+	ER      ercd;
+	INTNO	intno_sio_tx, intno_sio_rx;
+	
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯ããï¼
+	 *  (dis_inté¢æ°ã¯ã"\kernel\interrupt.c"ã«è¨è¿°)
+	 */
+	p_siopcb = rx630_uart_get_siopcb(siopid);
+	intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
+	intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
+	ercd = dis_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = dis_int(intno_sio_rx);
+	assert(ercd == E_OK);
+	
+	p_siopcb = 
+		rx630_uart_opn_por(siopid , exinf , UART_BAUDRATE , UART_CLKSRC);
+
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯è§£é¤ããï¼
+	 *  (ena_inté¢æ°ã¯ã"\kernel\interrupt.c"ã«è¨è¿°)
+	 */
+	ercd = ena_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = ena_int(intno_sio_rx);
+	assert(ercd == E_OK);
+
+	return(p_siopcb);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+void
+sio_cls_por(SIOPCB *p_siopcb)
+{
+	ER        ercd;
+	INTNO	intno_sio_tx, intno_sio_rx;
+
+	/*
+	 *  ããã¤ã¹ä¾å­ã®ã¯ã­ã¼ãºå¦çï¼
+	 */
+	rx630_uart_cls_por(p_siopcb);
+	
+	/*
+	 *  ã·ãªã¢ã«I/Oå²è¾¼ã¿ããã¹ã¯ããï¼
+	 */
+	intno_sio_tx = rx630_uart_intno_tx(p_siopcb);
+	intno_sio_rx = rx630_uart_intno_rx(p_siopcb);
+	ercd = dis_int(intno_sio_tx);
+	assert(ercd == E_OK);
+	ercd = dis_int(intno_sio_rx);
+	assert(ercd == E_OK);
+}
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+void sio_tx_isr(intptr_t exinf)
+{
+	rx630_uart_tx_isr(exinf);
+}
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+void sio_rx_isr(intptr_t exinf)
+{
+	rx630_uart_rx_isr(exinf);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+bool_t
+sio_snd_chr(SIOPCB *siopcb, char c)
+{
+	return(rx630_uart_snd_chr(siopcb, c));
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+int_t
+sio_rcv_chr(SIOPCB *siopcb)
+{
+	return(rx630_uart_rcv_chr(siopcb));
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+void
+sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn)
+{
+	rx630_uart_ena_cbr(siopcb, cbrtn);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+void
+sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn)
+{
+	rx630_uart_dis_cbr(siopcb, cbrtn);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+void
+rx630_uart_irdy_snd(intptr_t exinf)
+{
+	/* å
+±éé¨ï¼syssvc\serial.cï¼ã«ããsio_irdy_sndé¢æ°ãå¼ã³åºã*/
+	sio_irdy_snd(exinf);
+}
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+void
+rx630_uart_irdy_rcv(intptr_t exinf)
+{
+	/* å
+±éé¨ï¼syssvc\serial.cï¼ã«ããsio_irdy_rcvé¢æ°ãå¼ã³åºã*/
+	sio_irdy_rcv(exinf);
+}
+
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.cfg	(revision 313)
@@ -0,0 +1,11 @@
+/*
+ *	SIOãã©ã¤ãï¼GR-SAKURAç¨ï¼ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include <target_serial.h>
+ATT_INI({ TA_NULL, 0, sio_initialize });
+CFG_INT(INTNO_SIO_TX, { INTATR_SIO, INTPRI_SIO });
+CFG_INT(INTNO_SIO_RX, { INTATR_SIO, INTPRI_SIO });
+
+ATT_ISR({TA_NULL, SIO_PORTID, INTNO_SIO_TX, sio_tx_isr, 1});
+ATT_ISR({TA_NULL, SIO_PORTID, INTNO_SIO_RX, sio_rx_isr, 1});
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_serial.h	(revision 313)
@@ -0,0 +1,139 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ãªã¢ã«I/Oããã¤ã¹ï¼SIOï¼ãã©ã¤ãï¼GR-SAKURAç¨ï¼
+ */
+
+#ifndef TOPPERS_TARGET_SERIAL_H
+#define TOPPERS_TARGET_SERIAL_H
+
+#include "gr_sakura.h"
+#include "rx600/rx630_uart.h"
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©ã®ãã¯ã¿çªå·
+ */
+#define INHNO_SIO_TX	INT_SCI0_TEI			/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_SIO_TX	INT_SCI0_TEI			/* å²è¾¼ã¿çªå· */
+#define INHNO_SIO_RX	INT_SCI0_RXI			/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_SIO_RX	INT_SCI0_RXI			/* å²è¾¼ã¿çªå· */
+#define INTPRI_SIO		-4						/* å²è¾¼ã¿åªå
+åº¦ */
+#define INTATR_SIO		(TA_NULL)				/* å²è¾¼ã¿å±æ§ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+
+/*
+ *  SIOãã©ã¤ãã®åæå
+ */
+extern void		sio_initialize(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ãªã¼ãã³
+ */
+extern SIOPCB	*sio_opn_por(ID siopid, intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã®ã¯ã­ã¼ãº
+ */
+extern void		sio_cls_por(SIOPCB *p_siopcb);
+
+/*
+ *  SIOã®å²è¾¼ã¿ãã³ãã©
+ */
+extern void 	sio_tx_isr(intptr_t exinf);
+extern void 	sio_rx_isr(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãã¸ã®æå­éä¿¡
+ */
+extern bool_t	sio_snd_chr(SIOPCB *siopcb, char c);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®æå­åä¿¡
+ */
+extern int_t	sio_rcv_chr(SIOPCB *siopcb);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®è¨±å¯
+ */
+extern void		sio_ena_cbr(SIOPCB *siopcb, uint_t cbrtn);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®ã³ã¼ã«ããã¯ã®ç¦æ­¢
+ */
+extern void		sio_dis_cbr(SIOPCB *siopcb, uint_t cbrtn);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®éä¿¡å¯è½ã³ã¼ã«ããã¯
+ */
+extern void		sio_irdy_snd(intptr_t exinf);
+
+/*
+ *  ã·ãªã¢ã«I/Oãã¼ãããã®åä¿¡éç¥ã³ã¼ã«ããã¯
+ */
+extern void		sio_irdy_rcv(intptr_t exinf);
+
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_TARGET_SERIAL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sil.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sil.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sil.h	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		sil.hã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼sil.hã®å
+é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼ä»ã®ãã¡
+ *  ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ãã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼
+ *  ãããåã«ï¼t_stddef.hãã¤ã³ã¯ã«ã¼ããããã®ã§ï¼ãããã«ä¾å­ãã¦ã
+ *  ããï¼
+ */
+
+#ifndef TOPPERS_TARGET_SIL_H
+#define TOPPERS_TARGET_SIL_H
+
+/*
+ *  å¾®å°æéå¾
+ã¡ã®ããã®å®ç¾©
+ */
+#define SIL_DLY_TIM1     69
+#define SIL_DLY_TIM2     50
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "rx630_gcc/prc_sil.h"
+
+#endif /* TOPPERS_TARGET_SIL_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_stddef.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_stddef.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_stddef.h	(revision 313)
@@ -0,0 +1,106 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  t_stddef.hã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+ *
+ *  ãã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã¯ï¼t_stddef.hã®å
+é ­ã§ã¤ã³ã¯ã«ã¼ããããï¼
+ *  ä»ã®ãã¡ã¤ã«ããã¯ç´æ¥ã¤ã³ã¯ã«ã¼ããããã¨ã¯ãªãï¼ä»ã®ã¤ã³ã¯ã«ã¼ã
+ *  ãã¡ã¤ã«ã«å
+ç«ã£ã¦å¦çãããããï¼ä»ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«ä¾å­ã
+ *  ã¦ã¯ãªããªãï¼
+ */
+
+#ifndef TOPPERS_TARGET_STDDEF_H
+#define TOPPERS_TARGET_STDDEF_H
+
+/*
+ *  ã¿ã¼ã²ãããè­å¥ããããã®ãã¯ã­ã®å®ç¾©
+ */
+#define TOPPERS_GRSAKURA			/* ã·ã¹ãã ç¥ç§° */
+
+
+/*
+ *  éçºç°å¢ã§å
+±éãªå®ç¾©
+ */
+/*#define TOPPERS_STDINT_TYPE1*/
+#include "gcc/tool_stddef.h"
+
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "rx630_gcc/prc_stddef.h"
+
+/*
+ *  ã¢ãµã¼ã·ã§ã³ã®å¤±ææã®å®è¡ä¸­æ­å¦ç
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+Inline void
+TOPPERS_assert_abort( void )
+{
+}
+
+#endif /* TOPPERS_MACRO_ONLY */
+
+#endif /* TOPPERS_TARGET_STDDEF_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_support.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_support.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_support.c	(revision 313)
@@ -0,0 +1,148 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	ã¿ã¼ã²ããã·ã¹ãã ä¾å­ã¢ã¸ã¥ã¼ã«ï¼GR-SAKURAç¨ï¼
+ */
+
+#include "kernel_impl.h"
+#include <sil.h>
+
+void hardware_init_hook()
+{
+	/*
+	 * åä½ã¢ã¼ãè¨­å®
+	 *
+	 * åä½ã¢ã¼ãã¯ãã¼ãä¸ã®ç«¯å­ã«ãã£ã¦æ±ºå®ããããã,
+	 * ããã§ã¯ç¹å¥è¨­å®ããªã.
+	 * ãã ã, ãªãã«ã¨ã³ãã£ã¢ã³/ã·ã³ã°ã«ãããã¢ã¼ã
+	 * ã§ãããã¨ãåæã¨ãã.
+	 *
+	 * ã¾ããªã»ããå¾, å
+èµROMï¼æå¹, å
+èµRAMï¼æå¹, å¤é¨ãã¹ï¼ç¡å¹
+	 * ã§ãã.
+	 */
+
+	/*
+	 * ã¯ã­ãã¯è¨­å®
+	 *
+	 * å
+¥åï¼12MHz
+	 * PLLåè·¯ï¼12 x 8 = 96MHz
+	 * ã·ã¹ãã ã¯ã­ãã¯ï¼96MHz
+	 * å¨è¾ºã¢ã¸ã¥ã¼ã«ã¯ã­ãã¯ï¼48MHz
+	 * å¤é¨ãã¹ã¯ã­ãã¯ï¼96MHz
+	 * ã¨ãã.
+	 */
+	sil_wrb_mem(PORT3_PDR_ADDR,
+		sil_reb_mem(PORT3_PDR_ADDR) & ~PORT_PDR_B6_BIT);
+	sil_wrb_mem(PORT3_PDR_ADDR,
+		sil_reb_mem(PORT3_PDR_ADDR) & ~PORT_PDR_B7_BIT);
+	sil_wrb_mem(PORT3_PMR_ADDR,
+		sil_reb_mem(PORT3_PMR_ADDR) & ~PORT_PDR_B6_BIT);
+	sil_wrb_mem(PORT3_PMR_ADDR,
+		sil_reb_mem(PORT3_PMR_ADDR) & ~PORT_PDR_B7_BIT);
+
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa503);
+
+	/* ã¡ã¤ã³ã¯ã­ãã¯çºæ¯å¨å¼·å¶çºæ¯ */
+	while((sil_reb_mem(SYSTEM_MOFCR_ADDR) & SYSTEM_MOFCR_MOFXIN) == 0)
+		sil_wrb_mem(SYSTEM_MOFCR_ADDR,
+			sil_reb_mem(SYSTEM_MOFCR_ADDR) | SYSTEM_MOFCR_MOFXIN);
+
+	/* ã¡ã¤ã³ã¯ã­ãã¯çºæ¯å¨åä½ */
+	while((sil_reb_mem(SYSTEM_MOSCCR_ADDR) & SYSTEM_MOSCCR_MOSTP) != 0)
+		sil_wrb_mem(SYSTEM_MOSCCR_ADDR,
+			sil_reb_mem(SYSTEM_MOSCCR_ADDR) & ~SYSTEM_MOSCCR_MOSTP);
+
+	sil_wrh_mem(SYSTEM_PLLCR_ADDR,
+		(sil_reh_mem(SYSTEM_PLLCR_ADDR) & ~SYSTEM_PLLCR_STC_MASK)
+		| (0x0f << SYSTEM_PLLCR_STC_OFFSET));
+
+	sil_wrb_mem(SYSTEM_PLLCR2_ADDR,
+		sil_reb_mem(SYSTEM_PLLCR2_ADDR) & ~SYSTEM_PLLCR2_PLLEN);
+
+	sil_wrw_mem(SYSTEM_SCKCR_ADDR, 0x21021211);
+
+	sil_wrh_mem(SYSTEM_SCKCR2_ADDR, 0x0033);
+
+	/* PLLåè·¯é¸æ */
+	sil_wrh_mem(SYSTEM_SCKCR3_ADDR,
+		(sil_reh_mem(SYSTEM_SCKCR3_ADDR) & ~SYSTEM_SCKCR3_CKSEL_MASK)
+		| (4 << SYSTEM_SCKCR3_CKSEL_OFFSET));
+
+	/*
+	 * ã¢ã¸ã¥ã¼ã«ã¹ããã
+	 *
+	 * ãªã»ããå¾, åä½ãã¦ããå
+èµå¨è¾ºã¢ã¸ã¥ã¼ã«ã¯DMAC, DTC,
+	 * å
+èµRAMã®ã¿ã§ãã.
+	 * ããä»¥å¤ã®å
+èµå¨è¾ºã¢ã¸ã¥ã¼ã«ã«é¢ãã¦ã¯ä½¿ç¨ããå´ã§
+	 * è¨­å®ãããã¨.
+	 */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xa500);
+}
+
+void software_init_hook()
+{
+	/*
+	 * æ¬ã³ã³ãã¤ã©ã§ã¯weak definitionã®æ©è½ãç¡ããã,
+	 * ç¹ã«å¿
+è¦ãªå¦çã¯ãªãã, å¿
+ãå¼ã³åºããã¨ã¨ãã.
+	 */
+}
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_sym.def	(revision 313)
@@ -0,0 +1,9 @@
+LOG_DSP_ENTER_ENABLE
+LOG_DSP_LEAVE_ENABLE
+LOG_INH_ENTER_ENABLE
+LOG_INH_LEAVE_ENABLE
+LOG_EXC_ENTER_ENABLE
+LOG_EXC_LEAVE_ENABLE
+SIL_DLY_TIM1
+SIL_DLY_TIM2
+INTATR_TIMER
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_syssvc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_syssvc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_syssvc.h	(revision 313)
@@ -0,0 +1,137 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ï¼GR-SAKURAç¨ï¼
+ *
+ *  ã·ã¹ãã ãµã¼ãã¹ã®ã¿ã¼ã²ããä¾å­é¨ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ï¼ãã®ãã¡
+ *  ã¤ã«ã®å
+å®¹ã¯ï¼ã³ã³ãã¼ãã³ãè¨è¿°ãã¡ã¤ã«ã«è¨è¿°ããï¼ãã®ãã¡ã¤ã«ã¯
+ *  ç¡ããªãè¦è¾¼ã¿ï¼
+ */
+
+#ifndef TOPPERS_TARGET_SYSSVC_H
+#define TOPPERS_TARGET_SYSSVC_H
+
+
+/*
+ *  ãã­ã»ããµä¾å­ã®å®ç¾©
+ */
+#include "rx630_gcc/prc_syssvc.h"
+
+/*
+ *  ãã¬ã¼ã¹ã­ã°ã«é¢ããè¨­å®
+ */
+#ifdef TOPPERS_ENABLE_TRACE
+#include "logtrace/trace_config.h"
+#endif /* TOPPERS_ENABLE_TRACE */
+
+
+/*
+ *  ãã¼ãä¾å­æ
+å ±ã®èª­ã¿è¾¼ã¿
+ */
+#include "gr_sakura.h"
+
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã®ã¿ã¼ã²ããã·ã¹ãã å
+ */
+#define	TARGET_NAME	"GRSAKURA"
+
+
+/*
+ *  ã·ã¹ãã ã­ã°ã®ä½ã¬ãã«åºåã®ããã®æå­åºå
+ *
+ *  ã¿ã¼ã²ããä¾å­ã®æ¹æ³ã§ï¼æå­cãè¡¨ç¤º/åºå/ä¿å­ããï¼
+ */
+extern void	target_fput_log( char c );
+
+
+/*
+ *  èµ·åã¡ãã»ã¼ã¸ã«ã¿ã¼ã²ããä¾å­é¨ã®èä½æ¨©è¡¨ç¤ºã
+ *  è¿½å ããããã®ãã¯ã­ï¼
+ */
+#ifdef PRC_COPYRIGHT
+#define	TARGET_COPYRIGHT	PRC_COPYRIGHT
+#endif /* PRC_COPYRIGHT */
+
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãæ°ã®å®ç¾©
+ */
+#define	TNUM_PORT			UINT_C( 2 )
+
+/*
+ *  ä½¿ç¨ããã·ãªã¢ã«ãã¼ãID
+ */
+#define	SIO_PORTID			UINT_C( 1 )
+
+#define LOGTASK_PORTID		SIO_PORTID
+
+#define STACK_SIZE			(512)
+
+/*
+ *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯é¢é£ã®å®æ°ã®å®ç¾©
+ *
+ *  ããã©ã«ãå¤ã®éãï¼
+ */
+
+#endif /* TOPPERS_TARGET_SYSSVC_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_test.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_test.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_test.h	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ãã¹ããã­ã°ã©ã ã®ã¿ã¼ã²ããä¾å­å®ç¾©ï¼GR-SAKURAç¨ï¼
+ */
+
+#ifndef TOPPERS_TARGET_TEST_H
+#define TOPPERS_TARGET_TEST_H
+
+/*
+ *  ãã­ã»ããµã§å
+±éãªå®ç¾©
+ */
+#include "rx630_gcc/prc_test.h"
+
+/*
+ *  ã¿ã¹ã¯ã§ä½¿ç¨ããã·ãªã¢ã«ãã¼ãID
+ */
+#define	TASK_PORTID		( 1 )
+
+
+#endif /* TOPPERS_TARGET_TEST_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.c	(revision 313)
@@ -0,0 +1,154 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¤ããã©ã¤ãï¼GR-SAKURAç¨ï¼
+ */
+
+#include "kernel_impl.h"
+#include "time_event.h"
+#include <sil.h>
+#include "target_timer.h"
+
+/*
+ *  ã¿ã¤ãã®åæåå¦ç
+ */
+void
+target_timer_initialize(intptr_t exinf)
+{
+	/*
+	 * ã¢ã¸ã¥ã¼ã«ã¹ãããæ©è½ã®è¨­å®
+	 */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA502);	/* æ¸è¾¼ã¿è¨±å¯ */
+	sil_wrw_mem(SYSTEM_MSTPCRA_ADDR,
+		sil_rew_mem(SYSTEM_MSTPCRA_ADDR) & ~SYSTEM_MSTPCRA_MSTPA15_BIT); /* CMT0 */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA500);	/* æ¸è¾¼ã¿ç¦æ­¢ */
+
+	/* 
+	 * ã¿ã¤ãåæ­¢ 
+	 */
+	sil_wrh_mem(CMT_CMSTR0_ADDR,
+		sil_reh_mem(CMT_CMSTR0_ADDR) & ~CMT_CMSTR0_STR0_BIT);
+	
+	/*
+ 	 * ã«ã¦ã³ãã¢ããã«ç¨ããããã¯ã­ãã¯è¨­å®
+	 * PCLK/32ãé¸æ
+	 */
+	sil_wrh_mem(CMT0_CMCR_ADDR, CMT_PCLK_DIV_8);
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãã«ã¦ã³ã¿è¨­å®
+	 */
+	sil_wrh_mem(CMT0_CMCNT_ADDR, 0U);
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãå¨æè¨­å®
+	 */
+	sil_wrh_mem(CMT0_CMCOR_ADDR, CMCOR_PERIOD);
+
+	/*
+	 * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿ï¼ISELR28ï¼
+	 */
+	sil_wrb_mem(ICU_ISELR028_ADDR, ICU_ISEL_CPU);
+
+	/*
+	 *  ã¿ã¤ãåä½éå§åã®å²è¾¼ã¿è¦æ±ãã¯ãªã¢
+	 */
+	x_clear_int(INTNO_TIMER);
+
+	/* 
+	 * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿ãè¨±å¯
+	 */
+	sil_wrh_mem(CMT0_CMCR_ADDR,
+		sil_reh_mem(CMT0_CMCR_ADDR) | CMT0_CMCR_CMIE_BIT);
+
+	/* 
+	 * ã¿ã¤ãåä½éå§
+	 */
+	sil_wrh_mem(CMT_CMSTR0_ADDR,
+		sil_reh_mem(CMT_CMSTR0_ADDR) | CMT_CMSTR0_STR0_BIT);
+}
+
+/*
+ *  ã¿ã¤ãã®åæ­¢å¦ç
+ */
+void
+target_timer_terminate(intptr_t exinf)
+{
+	/* 
+	 * ã¿ã¤ãåæ­¢
+	 */
+	sil_wrh_mem(CMT_CMSTR0_ADDR,
+		sil_reh_mem(CMT_CMSTR0_ADDR) & ~CMT_CMSTR0_STR0_BIT);
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ */
+void target_timer_handler(void)
+{
+	i_begin_int(INTNO_TIMER);
+
+	signal_time();				/* ã¿ã¤ã ãã£ãã¯ã®ä¾çµ¦ */
+
+	i_end_int(INTNO_TIMER);
+}
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.cfg	(revision 313)
@@ -0,0 +1,9 @@
+/*
+ *  ã¿ã¤ããã©ã¤ãï¼RX630ç¨ï¼ã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "target_timer.h"
+ATT_INI({ TA_NULL, 0, target_timer_initialize });
+ATT_TER({ TA_NULL, 0, target_timer_terminate });
+DEF_INH(INHNO_TIMER, { TA_NULL, target_timer_handler });
+CFG_INT(INTNO_TIMER, { INTATR_TIMER, INTPRI_TIMER });
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_timer.h	(revision 313)
@@ -0,0 +1,202 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2003-2004 by Naoki Saito
+ *             Nagoya Municipal Industrial Research Institute, JAPAN
+ *  Copyright (C) 2003-2004 by Platform Development Center
+ *                                          RICOH COMPANY,LTD. JAPAN
+ *  Copyright (C) 2008-2010 by Witz Corporation, JAPAN
+ *  Copyright (C) 2013      by Mitsuhiro Matsuura
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã¿ã¤ããã©ã¤ãï¼GR-SAKURAç¨ï¼
+ */
+ 
+#ifndef TOPPERS_TARGET_TIMER_H
+#define TOPPERS_TARGET_TIMER_H
+
+#include <sil.h>
+#include "gr_sakura.h"
+#include "target_syssvc.h"
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©ç»é²ã®ããã®å®æ°
+ */
+#define INHNO_TIMER		INT_CMT0_CMI				/* å²è¾¼ã¿ãã³ãã©çªå· */
+#define INTNO_TIMER		INT_CMT0_CMI				/* å²è¾¼ã¿çªå· */
+#define INTPRI_TIMER	-5							/* å²è¾¼ã¿åªå
+åº¦ */
+#define INTATR_TIMER	(TA_ENAINT | TA_EDGE)		/* å²è¾¼ã¿å±æ§ */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ã®å
+ */
+typedef uint16_t	CLOCK;
+
+/*
+ *  ã¿ã¤ãå¤ã®å
+é¨è¡¨ç¾ã¨ããªç§åä½ã¨ã®å¤æ
+ *
+ *  1msã®ã¿ã¤ãã¼å²ãè¾¼ã¿ãä½¿ç¨ããã®ã§ãã®ã¯ã­ãã¯ãå®ç¾©ããï¼
+ */
+#define TIMER_CLOCK				(FREQ_PCLK / 8U)		/* PCLK/æä½åå¨æ¯8 = 6MHz */
+#define TO_CLOCK(nume, deno)	((CLOCK)(TIMER_CLOCK * (nume) / (deno)))
+#define	TO_USEC(clock)			((SYSUTM)((clock) * 1000U / TIMER_CLOCK))
+
+/*
+ *  è¨­å®ã§ããæå¤§ã®ã¿ã¤ãå¨æï¼åä½ã¯å
+é¨è¡¨ç¾ï¼
+ */
+#define	MAX_CLOCK	((CLOCK) 0xFFFFU)
+
+/*
+ *  æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåãåºãéã®å¦çæéã®è¦ç©ãå¤ï¼åä½ã¯å
+é¨è¡¨ç¾ï¼
+ */
+#define	GET_TOLERANCE	(100U)	/* å¦çé
+ãã®è¦ç©ãå¤ï¼åä½ã¯å
+é¨è¡¨ç¾ï¼*/
+#define	BEFORE_IREQ(clock) \
+		((clock) >= (TO_CLOCK(TIC_NUME, TIC_DENO) - GET_TOLERANCE))
+
+/*
+ *  ã³ã³ãã¢ãããã¿ã¤ãã³ã³ãã­ã¼ã«ã¬ã¸ã¹ã¿ã®è¨­å®å¤
+ */
+/*
+ *  ã¯ã­ãã¯é¸æããã
+ *
+ *  bit7ã¯äºç´é åã§ãã, æ¸è¾¼ã¿ã¯1åºå®
+ */
+#define CMT_PCLK_DIV_8			(0x0080U)
+#define CMT_PCLK_DIV_32			(0x0081U)
+#define CMT_PCLK_DIV_128		(0x0082U)
+#define CMT_PCLK_DIV_512		(0x0083U)
+
+/*
+ *  ã³ã³ãã¢ãããã¿ã¤ãã³ã³ã¹ã¿ã³ãã¬ã¸ã¹ã¿ï¼CMCORï¼
+ *
+ *  ã³ã³ãã¢ãããå¨æã1msã¨ããï¼
+ *  å¨è¾ºã¢ã¸ã¥ã¼ã«ã¯ã­ãã¯ï¼PCLKï¼48MHzã8åå¨ããã®ã§ï¼
+ *  1å¨æããã166.7nsecã¨ãªãï¼6000å¨æã§1msï¼ã¿ã¤ã ãã£ãã¯ã®å¨æï¼ã¨ããï¼
+ */
+#define CMCOR_PERIOD			(TIMER_CLOCK)
+
+/*
+ * ã³ã³ãã¢ãããã¿ã¤ãå²ãè¾¼ã¿è¦æ±å
+è¨­å®ã¬ã¸ã¹ã¿iï¼ISELRiï¼ï¼i= å²ãè¾¼ã¿ãã¯ã¿çªå·ï¼
+ */
+#define ICU_ISEL_CPU			(0x00U)
+
+
+
+
+/*
+ *  ã¿ã¤ãã®èµ·åå¦ç
+ *
+ *  ã¿ã¤ããåæåãï¼å¨æçãªã¿ã¤ãå²è¾¼ã¿è¦æ±ãçºçãããï¼
+ */
+extern void	target_timer_initialize(intptr_t exinf);
+
+/*
+ *  ã¿ã¤ãã®åæ­¢å¦ç
+ *
+ *  ã¿ã¤ãã®åä½ãåæ­¢ãããï¼
+ */
+extern void	target_timer_terminate(intptr_t exinf);
+
+/*
+ *  ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®èª­ã¿åºã
+ */
+Inline uint16_t rx630_cmt_getcount(void)
+{
+	return sil_reh_mem((uint16_t *)CMT0_CMCNT_ADDR);
+}
+
+/*
+ *  ã¿ã¤ãã¬ã¸ã¹ã¿å¤ã®æ¸ãè¾¼ã¿
+ */
+Inline void rx630_cmt_setcount(uint16_t count)
+{
+	sil_wrh_mem(CMT0_CMCNT_ADDR, count);
+}
+
+/*
+ *  ã¿ã¤ãã®ç¾å¨å¤ã®èª­åºã
+ */
+Inline CLOCK
+target_timer_get_current(void)
+{
+	/* ã¢ããã«ã¦ã³ãã®ããã¿ã¤ãã¬ã¸ã¹ã¿å¤ããã®ã¾ã¾è¿ã	*/
+	return (rx630_cmt_getcount());
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿è¦æ±ã®ãã§ãã¯
+ */
+Inline bool_t
+target_timer_probe_int(void)
+{
+	return(x_probe_int(INTNO_TIMER));
+}
+
+/*
+ *  ã¿ã¤ãå²è¾¼ã¿ãã³ãã©
+ */
+extern void	target_timer_handler(void);
+
+#endif /* TOPPERS_MACRO_ONLY */
+#endif /* TOPPERS_TARGET_TIMER_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_unrename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_unrename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/target_unrename.h	(revision 313)
@@ -0,0 +1,46 @@
+/* This file is generated from target_rename.def by genrename. */
+
+#ifndef TOPPERS_TARGET_RENAME_H
+#define TOPPERS_TARGET_RENAME_H
+
+/*
+ *  target_config.c
+ */
+#undef target_initialize
+#undef target_exit
+
+/*
+ *  trace_config.c
+ */
+#undef log_dsp_enter
+#undef log_dsp_leave
+#undef log_inh_enter
+#undef log_inh_leave
+#undef log_exc_enter
+#undef log_exc_leave
+
+
+#ifdef TOPPERS_LABEL_ASM
+
+/*
+ *  target_config.c
+ */
+#undef _target_initialize
+#undef _target_exit
+
+/*
+ *  trace_config.c
+ */
+#undef _log_dsp_enter
+#undef _log_dsp_leave
+#undef _log_inh_enter
+#undef _log_inh_leave
+#undef _log_exc_enter
+#undef _log_exc_leave
+
+
+#endif /* TOPPERS_LABEL_ASM */
+
+#include "rx630_gcc/prc_unrename.h"
+
+#endif /* TOPPERS_TARGET_RENAME_H */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.c	(revision 313)
@@ -0,0 +1,129 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã¢ã¸ã¥ã¼ã«ï¼RX63Nç¨ï¼
+ */
+
+#include <sil.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+#include <rx630_gcc/rx630.h>
+
+#if defined(SUPPORT_ETHER)
+
+/*
+ *  rx62n_bus_init -- ã¿ã¼ã²ããä¾å­é¨ã®ãã¹ã®åæå
+ */
+
+void
+rx62n_bus_init (void)
+{
+	/* ã¤ã¼ãµãããã»ã³ã³ãã­ã¼ã©ã®åä½ãè¨±å¯ */
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA502);	/* æ¸è¾¼ã¿è¨±å¯ */
+	sil_wrw_mem(SYSTEM_MSTPCRB_ADDR,
+		sil_rew_mem(SYSTEM_MSTPCRB_ADDR) & ~SYSTEM_MSTPCRB_MSTPB15_BIT);
+	sil_wrh_mem(SYSTEM_PRCR_ADDR, 0xA500);	/* æ¸è¾¼ã¿ç¦æ­¢ */
+
+	/* EtherNETæå¹ */
+	/* PA3ï½5 RMII_MDIO, RMII_MDC, RMII_LINKSTA */
+	sil_wrb_mem(PORTA_PMR_ADDR,
+		sil_reb_mem(PORTA_PMR_ADDR) | (1 << 3) | (1 << 4) | (1 << 5));
+	/* PB0ï½7 RXD1, RXD0, REF50CK, RX-ER, TXD-EN, TXD0, TXD1, CRS */
+	sil_wrb_mem(PORTB_PMR_ADDR,
+		sil_reb_mem(PORTB_PMR_ADDR) | 0xFF);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PFSWEãããã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x00);
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® PxxFSã¬ã¸ã¹ã¿ã¸ã®æ¸ãè¾¼ã¿ãè¨±å¯ */
+	sil_wrb_mem(MPC_PWPR_ADDR, 0x40);
+
+	/* PA3ãET_MDIOã¨ãã */
+	sil_wrb_mem(MPC_PA3PFS_ADDR, 0x11); 
+	/* PA4ãET_MDCã¨ãã */
+	sil_wrb_mem(MPC_PA4PFS_ADDR, 0x11); 
+	/* PA5ãET_LINKSTAã¨ãã */
+	sil_wrb_mem(MPC_PA5PFS_ADDR, 0x11); 
+
+	/* PB0ãRXD1ã¨ãã */
+	sil_wrb_mem(MPC_PB0PFS_ADDR, 0x12);
+	/* PB1ãRXD0ã¨ãã */
+	sil_wrb_mem(MPC_PB1PFS_ADDR, 0x12);
+	/* PB2ãREF50CKã¨ãã */
+	sil_wrb_mem(MPC_PB2PFS_ADDR, 0x12);
+	/* PB3ãRX-ERã¨ãã */
+	sil_wrb_mem(MPC_PB3PFS_ADDR, 0x12);
+	/* PB4ãTXD-ENã¨ãã */
+	sil_wrb_mem(MPC_PB4PFS_ADDR, 0x12);
+	/* PB5ãTXD0ã¨ãã */
+	sil_wrb_mem(MPC_PB5PFS_ADDR, 0x12);
+	/* PB6ãTXD1ã¨ãã */
+	sil_wrb_mem(MPC_PB6PFS_ADDR, 0x12);
+	/* PB7ãCRSã¨ãã */
+	sil_wrb_mem(MPC_PB7PFS_ADDR, 0x12);
+
+	/* æ¸ãè¾¼ã¿ãã­ãã¯ãã¬ã¸ã¹ã¿ã®è¨­å® æ¸ãè¾¼ã¿ãç¦æ­¢ */
+	sil_wrb_mem(MPC_PWPR_ADDR , 0x80);
+}
+
+/*
+ *  rx62n_inter_init -- ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿ã®åæå
+ */
+
+void
+rx62n_inter_init (void)
+{
+}
+
+#endif	/* of #if defined(SUPPORT_ETHER) */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_config.h	(revision 313)
@@ -0,0 +1,548 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_TARGET_CONFIG_H_
+#define _TINET_TARGET_CONFIG_H_
+
+/*
+ *  TCP/IP ã«é¢ããå®ç¾©
+ */
+
+/* TCP ã«é¢ããå®ç¾© */
+
+/*
+ *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
+ *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ */
+
+#ifndef MAX_TCP_SND_SEG
+#define MAX_TCP_SND_SEG		(IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+#endif	/* of #ifndef MAX_TCP_SND_SEG */
+
+/*
+ *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifndef DEF_TCP_RCV_SEG
+#define DEF_TCP_RCV_SEG		(IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+#endif	/* of #ifndef DEF_TCP_RCV_SEG */
+
+/* 
+ *  ã»ã°ã¡ã³ãã®é çªãå
+¥ãæ¿ããã¨ãã«æ°ãã«ãããã¯ã¼ã¯ãããã¡ãå²å½ã¦ã¦ã
+ *  ãã¼ã¿ãã³ãã¼ãããµã¤ãºã®ãããå¤
+ */
+#define MAX_TCP_REALLOC_SIZE	1024	
+
+#define TCP_CFG_OPT_MSS		/* ã³ãã¯ã·ã§ã³éè¨­æã«ãã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ãã¤ãã¦éä¿¡ããã*/
+#define TCP_CFG_DELAY_ACK	/* ACK ãé
+ãããã¨ãã¯ã³ã¡ã³ããå¤ãã			*/
+#define TCP_CFG_ALWAYS_KEEP	/* å¸¸ã«ã­ã¼ãã¢ã©ã¤ãããæã¯ã³ã¡ã³ããå¤ãã		*/
+
+/* UDP ã«é¢ããå®ç¾© */
+
+#define UDP_CFG_IN_CHECKSUM	/* UDP ã®å
+¥åãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define UDP_CFG_OUT_CHECKSUM	/* UDP ã®åºåãã§ãã¯ãµã ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+
+/* ICMPv4/v6 ã«é¢ããå®ç¾© */
+
+#define ICMP_REPLY_ERROR		/* ICMP ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+//#define IP4_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define NUM_IP4_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
+#define IP4_CFG_FRAG_REASSM_SIZE	4096	/* IPv4 åæ§æãããã¡ãµã¤ãº			*/
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#define NUM_IP6_DAD_COUNT	1	/* éè¤ã¢ãã¬ã¹æ¤åºã§éä¿¡ããè¿é£è¦è«ã®åæ°ã		*/
+					/*  0 ãæå®ããã¨ãéè¤ã¢ãã¬ã¹æ¤åºãè¡ããªãã	*/
+#define NUM_ND6_CACHE_ENTRY	10	/* è¿é£ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°			*/
+
+/*
+ *  IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã
+ *  0 ãæå®ããã¨IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ãçµè¾¼ã¾ãªãã
+ */
+#define NUM_IN6_HOSTCACHE_ENTRY	4
+
+#ifdef SUPPORT_ETHER
+
+#define IP6_CFG_AUTO_LINKLOCAL		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®èªåè¨­å®ãè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã
+ *  æå¤§å¤ã¯ 16ã0 ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãã
+ */
+#define NUM_ND6_DEF_RTR_ENTRY		4
+
+/*
+ *  ãã¬ãã£ãã¯ã¹ãªã¹ãã«é¢ããå®ç¾©ã
+ *  æå¤§å¤ã¯ 16ã
+ */
+#define NUM_ND6_PREFIX_ENTRY		4	/*  ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°			*/
+
+/*
+ *  èµ·åæã®ã«ã¼ã¿è¦è«åºååæ°ã
+ *  0 ãæå®ããã¨ã«ã¼ã¿è¦è«ãåºåããªãã
+ */
+#define NUM_ND6_RTR_SOL_RETRY	3	
+
+#define IP6_CFG_FRAGMENT		/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã¯ã³ã¡ã³ããå¤ãã	*/
+#define NUM_IP6_FRAG_QUEUE	2	/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãº			*/
+#define IP6_CFG_FRAG_REASSM_SIZE	4096	/* IPv6 åæ§æãããã¡ãµã¤ãº			*/
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  PPPãã¢ãã ã«é¢ããå®ç¾©
+ */
+
+#define MODEM_CFG_DIAL		"ATD"	/* ãã¤ã¢ã«ã³ãã³ãæå­å			*/
+#define MODEM_CFG_RETRY_CNT	3	/* ãã¤ã¢ã«ãªãã©ã¤åæ°			*/
+#define MODEM_CFG_RETRY_WAIT	10000	/* ãã¤ã¢ã«ãªãã©ã¤ã¾ã§ã®å¾
+ã¡æé [ms]	*/
+
+/*
+ *  PPPãHDLC ã«é¢ããå®ç¾©
+ */
+
+#define DEF_LOCAL_ACCM		ULONG_C(0x000a0000)	/* èªåã® ACCMãXON ã¨ XOFF ã®ã¿å¤æ	*/
+#define DEF_REMOTE_ACCM		ULONG_C(0xffffffff)	/* ç¸æã® ACCMãåæå¤ã¯å
+¨ã¦å¤æ		*/
+
+/*
+ *  PPPãLCP ã«é¢ããå®ç¾©
+ */
+
+#define LCP_CFG_MRU		UINT_C(0x0001)	/* MRU					*/
+#define LCP_CFG_ACCM		UINT_C(0x0002)	/* ACCM					*/
+#define LCP_CFG_MAGIC		UINT_C(0x0004)	/* ãã¸ãã¯çªå·				*/
+#define LCP_CFG_PCOMP		UINT_C(0x0008)	/* ãã­ãã³ã«é¨å§ç¸®æ©è½			*/
+#define LCP_CFG_ACCOMP		UINT_C(0x0010)	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®			*/
+#define LCP_CFG_PAP		UINT_C(0x0020)	/* PAP					*/
+/*#define LCP_CFG_CHAP		UINT_C(0x0040)	   CHAP ã¯å®è£
+äºå®			*/
+
+#ifdef LCP_CFG_MAGIC
+
+#define LCP_ECHO_INTERVAL	(20*NET_TIMER_HZ)	/* ã¤ã³ã¿ã¼ãã«æé		*/
+#define LCP_ECHO_FAILS		9			/* å¤±æé¾å¤			*/
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+/*
+ *  PPPãPAP ã«é¢ããå®ç¾©
+ */
+
+#define DEF_PAP_TIMEOUT		(3*NET_TIMER_HZ)
+#define DEF_PAP_REQTIME		(30*NET_TIMER_HZ)	/* ã¿ã¤ã ã¢ã¦ãå¦çãè¡ãã¨ãã¯ã³ã¡ã³ããå¤ãã*/
+#define MAX_PAP_REXMT		10			/* èªè¨¼è¦æ±ã®æå¤§åéåæ°	*/
+
+/*
+ *  RX63N Ethernet Controler ã«é¢ããå®ç¾©
+ */
+
+#define NUM_IF_RX62N_TXBUF		2	/* éä¿¡ãããã¡æ°			*/
+#define NUM_IF_RX62N_RXBUF		2	/* åä¿¡ãããã¡æ°			*/
+#define IF_RX62N_BUF_PAGE_SIZE	1518	/* ãããã¡ãµã¤ãº */
+
+#define TMO_IF_RX62N_GET_NET_BUF	1	/* [ms]ãåä¿¡ç¨ net_buf ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+					/* [s]ã éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
+#define TMO_IF_RX62N_XMIT		(2*IF_TIMER_HZ)
+
+/*#define IF_RX62N_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  ã¤ã¼ãµãããåºåæã«ãNIC ã§ net_buf ãéæ¾ããå ´åã«æå®ããã
+ *
+ *  æ³¨æ: ä»¥ä¸ã®æå®ã¯ãæå®ä¾ã§ãããif_rx62n ã§ã¯ã
+ *        éæ¾ããªãã®ã§ãä»¥ä¸ã®ã³ã¡ã³ããå¤ãã¦ã¯ãªããªãã
+ */
+
+/*#define ETHER_NIC_CFG_RELEASE_NET_BUF*/
+
+/*
+ *  RX63N Ethernet Controller ã«é¢ããå®ç¾©
+ */
+
+#define RX63N_BASE_ADDRESS		ULONG_C(0x00200000)	/* NIC ã®ã¬ã¸ã¹ã¿ãã¼ã¹ã¢ãã¬ã¹ */
+
+#define INHNO_IF_RX62N_TRX	INT_ETH_EINT	/* ãã±ããéåä¿¡ */
+#define INTNO_IF_RX62N_TRX	INT_ETH_EINT	/* ãã±ããéåä¿¡ */
+#define INTATR_IF_RX62N_TRX	(TA_NULL)	/* å²è¾¼ã¿å±æ§	*/
+#define INTPRI_IF_RX62N_TRX	(-1)		/* å²è¾¼ã¿åªå
+åº¦	*/
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+#define NUM_ARP_ENTRY		10			/* ARP ã­ã£ãã·ã¥ã¨ã³ããªæ°	*/
+
+/*
+ *  DHCP ã«é¢ããå®ç¾©
+ *
+ *    ã»æ³¨æ: TINET ã¯ãDHCP ãå®è£
+ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ã
+ *            DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã
+ *            ã¾ããç¾å¨ã¯ IPv4 ã®ã¿æå¹ã§ããã
+ */
+
+/*#define DHCP_CFG					 DHCP ãå¦çããå ´åã¯ã³ã¡ã³ããå¤ãã*/
+
+/*
+ *  Ethernet ã«é¢ããå®ç¾©
+ */
+
+/*#define ETHER_CFG_ACCEPT_ALL		 ãã«ãã­ã£ã¹ããã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããã¨ãã¯ã³ã¡ã³ããå¤ãã	*/
+/*#define ETHER_CFG_UNEXP_WARNING	 éãµãã¼ããã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+/*#define ETHER_CFG_802_WARNING		 IEEE 802.3 ãã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+/*#define ETHER_CFG_MCAST_WARNING	 ãã«ãã­ã£ã¹ãã®è­¦åãè¡¨ç¤ºããã¨ãã¯ã³ã¡ã³ããå¤ãã		*/
+#define ETHER_CFG_MULTICAST			/* ãã«ãã­ã£ã¹ããéåä¿¡ */
+
+/*
+ *  ã¢ãã¬ã¹ãªã¹ãã«é¢ããå®ç¾©ã
+ */
+#define NUM_IN6_IFADDR_ENTRY		5	/*  ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãã®ã¨ã³ããªæ°		*/
+
+/*
+ *  æ±ç¨ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ */
+
+/* ãããã¯ã¼ã¯ãããã¡æ° */
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  PPP ã§ã¯ãåä¿¡ç¨ã® ãããã¯ã¼ã¯ãããã¡ã¯ PDU (1502) ãµã¤ãºãå¸¸ã«
+ *  å²ãå½ã¦ãªããã°ãªããªãã®ã§ PDU ãµã¤ãºãå¤ãã«ç¢ºä¿ããã
+ */
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCPã2 ä»¥ä¸*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	2	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#ifndef NUM_MPF_NET_BUF4_REASSM
+
+#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF4_REASSM */
+
+#ifndef NUM_MPF_NET_BUF6_REASSM
+
+#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF6_REASSM */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
+ */
+
+/*
+ *  æ³¨æ!!
+ *
+ *  RX63N Ethernet Controler ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_rx62nï¼ã®æä½å²å½ã¦é·ã¯
+ *  60ï¼ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã®ãã IF + IP +TCP ããã¯
+ *  64 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã®æ¹ãæé©ã§ããã
+ */
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	0	/* IF + IP + TCP	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	2	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#if defined(SUPPORT_INET4)
+
+#ifndef NUM_MPF_NET_BUF_IP_MSS
+#define NUM_MPF_NET_BUF_IP_MSS	0	/* IF + 576 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IP_MSS */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#if defined(SUPPORT_INET6)
+
+#ifndef NUM_MPF_NET_BUF_IPV6_MMTU
+#define NUM_MPF_NET_BUF_IPV6_MMTU	0	/* IF + 1280	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IPV6_MMTU */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#ifndef NUM_MPF_NET_BUF4_REASSM
+
+#if defined(SUPPORT_INET4) && defined(IP4_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF4_REASSM	2	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF4_REASSM	0	/* IPv4 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF4_REASSM */
+
+#ifndef NUM_MPF_NET_BUF6_REASSM
+
+#if defined(SUPPORT_INET6) && defined(IP6_CFG_FRAGMENT)
+#define NUM_MPF_NET_BUF6_REASSM	2	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#else
+#define NUM_MPF_NET_BUF6_REASSM	0	/* IPv6 åæ§æãããã¡ãµã¤ãº	*/
+#endif
+
+#endif	/* of #ifndef NUM_MPF_NET_BUF6_REASSM */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_LOOP
+
+#ifndef NUM_MPF_NET_BUF_CSEG
+#define NUM_MPF_NET_BUF_CSEG	2	/* IF + IP + TCP	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_CSEG */
+
+#ifndef NUM_MPF_NET_BUF_64
+#define NUM_MPF_NET_BUF_64	0	/* 64 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_64 */
+
+#ifndef NUM_MPF_NET_BUF_128
+#define NUM_MPF_NET_BUF_128	0	/* 128 ãªã¯ãããã2 ä»¥ä¸	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_128 */
+
+#ifndef NUM_MPF_NET_BUF_256
+#define NUM_MPF_NET_BUF_256	0	/* 256 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_256 */
+
+#ifndef NUM_MPF_NET_BUF_512
+#define NUM_MPF_NET_BUF_512	0	/* 512 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_512 */
+
+#ifndef NUM_MPF_NET_BUF_1024
+#define NUM_MPF_NET_BUF_1024	0	/* 1024 ãªã¯ããã	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_1024 */
+
+#ifndef NUM_MPF_NET_BUF_IF_PDU
+#define NUM_MPF_NET_BUF_IF_PDU	4	/* IF æå¤§ PDU ãµã¤ãº	*/
+#endif	/* of #ifndef NUM_MPF_NET_BUF_IF_PDU */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+/*
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬
+ *
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬ãè¡ãå ´åã¯ãtinet/include/net/net.h
+ *  ã§å®ç¾©ããã¦ãããã­ãã³ã«è­å¥ãã©ã°ãæå®ããã
+ */
+
+#if 1
+
+#ifdef SUPPORT_INET6
+
+#ifdef SUPPORT_INET4
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_IP6		\
+				| PROTO_FLG_ICMP6	\
+				| PROTO_FLG_ND6		\
+				| PROTO_FLG_ARP		\
+				| PROTO_FLG_IP4		\
+				| PROTO_FLG_ICMP4	\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#else	/* of #ifdef SUPPORT_INET4 */
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_IP6		\
+				| PROTO_FLG_ICMP6	\
+				| PROTO_FLG_ND6		\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#define NET_COUNT_ENABLE	(0			\
+				| PROTO_FLG_PPP_HDLC	\
+				| PROTO_FLG_PPP_PAP	\
+				| PROTO_FLG_PPP_LCP	\
+				| PROTO_FLG_PPP_IPCP	\
+				| PROTO_FLG_PPP		\
+				| PROTO_FLG_LOOP	\
+				| PROTO_FLG_ETHER_NIC	\
+				| PROTO_FLG_ETHER	\
+				| PROTO_FLG_ARP		\
+				| PROTO_FLG_IP4		\
+				| PROTO_FLG_ICMP4	\
+				| PROTO_FLG_TCP		\
+				| PROTO_FLG_UDP		\
+				| PROTO_FLG_NET_BUF	\
+				)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#else	/* of #if 0 */
+
+#define NET_COUNT_ENABLE	(0			\
+				)
+
+#endif	/* of #if 0 */
+
+#ifndef TOPPERS_MACRO_ONLY
+
+/*
+ *  é¢æ°
+ */
+
+extern void rx62n_bus_init (void);
+extern void rx62n_inter_init (void);
+
+#endif	/* of #ifndef TOPPERS_MACRO_ONLY */
+
+#endif /* _TINET_TARGET_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_defs.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_defs.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/target/gr_sakura_gcc/tinet_target_defs.h	(revision 313)
@@ -0,0 +1,70 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_TARGET_DEFS_H_
+#define _TINET_TARGET_DEFS_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  CPU ã®ã¢ã©ã¤ã¡ã³ãã«é¢ããå®ç¾©
+ *
+ *  4 ãªã¯ãããåä½ã§ãã¢ã©ã¤ã³ããå¿
+è¦ãããå ´åã¯ 4 ãæå®ããã
+ */
+
+#define CPU_NET_ALIGN		2
+
+#endif /* _TINET_TARGET_DEFS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/test/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/MANIFEST	(revision 313)
@@ -0,0 +1,59 @@
+PACKAGE asp
+
+MANIFEST
+bit_kernel.c
+perf0.c
+perf0.cfg
+perf0.h
+perf1.c
+perf1.cfg
+perf1.h
+perf2.c
+perf2.cfg
+perf2.h
+perf3.c
+perf3.cfg
+perf3.h
+perf4.c
+perf4.cfg
+perf4.h
+test_cpuexc.cfg
+test_cpuexc.h
+test_cpuexc.txt
+test_cpuexc1.c
+test_cpuexc2.c
+test_cpuexc3.c
+test_cpuexc4.c
+test_cpuexc5.c
+test_cpuexc6.c
+test_cpuexc7.c
+test_cpuexc8.c
+test_cpuexc9.c
+test_cpuexc10.c
+test_cpuexc11.c
+test_cpuexc12.c
+test_cpuexc13.c
+test_dlynse.c
+test_dlynse.cfg
+test_dlynse.h
+test_sem1.c
+test_sem1.cfg
+test_sem1.h
+test_sem2.c
+test_sem2.cfg
+test_sem2.h
+test_sysstat1.c
+test_sysstat1.cfg
+test_sysstat1.h
+test_task1.c
+test_task1.cfg
+test_task1.h
+test_tex1.c
+test_tex1.cfg
+test_tex1.h
+test_tex2.c
+test_tex2.cfg
+test_tex2.h
+test_utm1.c
+test_utm1.cfg
+test_utm1.h
Index: rubycfg_asp/trunk/asp_dcre/test/bit_kernel.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/bit_kernel.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/bit_kernel.c	(revision 313)
@@ -0,0 +1,488 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2005-2011 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«ã®æ´åæ§æ¤æ»
+ */
+
+#include "kernel/kernel_impl.h"
+#include "kernel/task.h"
+#include "kernel/wait.h"
+#include "kernel/semaphore.h"
+#include "kernel/eventflag.h"
+#include "kernel/dataqueue.h"
+#include "kernel/pridataq.h"
+#include "kernel/mailbox.h"
+#include "kernel/mempfix.h"
+#include "kernel/time_event.h"
+
+/*
+ *   ã¨ã©ã¼ã³ã¼ãã®å®ç¾©
+ */
+#define E_SYS_LINENO	ERCD(E_SYS, -(__LINE__))
+
+/*
+ *  ç®¡çãã­ãã¯ã®ã¢ãã¬ã¹ã®æ­£å½æ§ã®ãã§ãã¯
+ */
+#define VALID_TCB(p_tcb) \
+		((((char *) p_tcb) - ((char *) tcb_table)) % sizeof(TCB) == 0 \
+			&& TMIN_TSKID <= TSKID(p_tcb) && TSKID(p_tcb) <= tmax_tskid)
+
+#define VALID_SEMCB(p_semcb) \
+		((((char *) p_semcb) - ((char *) semcb_table)) % sizeof(SEMCB) == 0 \
+			&& TMIN_SEMID <= SEMID(p_semcb) && SEMID(p_semcb) <= tmax_semid)
+				
+#define VALID_FLGCB(p_flgcb) \
+		((((char *) p_flgcb) - ((char *) flgcb_table)) % sizeof(FLGCB) == 0 \
+			&& TMIN_FLGID <= FLGID(p_flgcb) && FLGID(p_flgcb) <= tmax_flgid)
+
+#define VALID_DTQCB(p_dtqcb) \
+		((((char *) p_dtqcb) - ((char *) dtqcb_table)) % sizeof(DTQCB) == 0 \
+			&& TMIN_DTQID <= DTQID(p_dtqcb) && DTQID(p_dtqcb) <= tmax_dtqid)
+
+#define VALID_PDQCB(p_pdqcb) \
+		((((char *) p_pdqcb) - ((char *) pdqcb_table)) % sizeof(PDQCB) == 0 \
+			&& TMIN_PDQID <= PDQID(p_pdqcb) && PDQID(p_pdqcb) <= tmax_pdqid)
+
+#define VALID_MBXCB(p_mbxcb) \
+		((((char *) p_mbxcb) - ((char *) mbxcb_table)) % sizeof(MBXCB) == 0 \
+			&& TMIN_MBXID <= MBXID(p_mbxcb) && MBXID(p_mbxcb) <= tmax_mbxid)
+
+#define VALID_MPFCB(p_mpfcb) \
+		((((char *) p_mpfcb) - ((char *) mpfcb_table)) % sizeof(MPFCB) == 0 \
+			&& TMIN_MPFID <= MPFID(p_mpfcb) && MPFID(p_mpfcb) <= tmax_mpfid)
+
+/*
+ *  ã­ã¥ã¼ã®ãã§ãã¯ã®ããã®é¢æ°
+ *
+ *  p_queueã«p_entryãå«ã¾ãã¦ããããèª¿ã¹ãï¼å«ã¾ãã¦ããã°trueï¼å«ã¾
+ *  ãã¦ããªãå ´åã«ã¯falseãè¿ãï¼ããã«ãªã³ã¯ã®ä¸æ´åã®å ´åã«ãï¼
+ *  falseãè¿ãï¼
+ */
+static bool_t
+in_queue(QUEUE *p_queue, QUEUE *p_entry)
+{
+	QUEUE	*p_current, *p_next;
+
+	p_current = p_queue->p_next;
+	if (p_current->p_prev != p_queue) {
+		return(false);					/* ããã«ãªã³ã¯ã®ä¸æ´å */
+	}
+	while (p_current != p_queue) {
+		if (p_current == p_entry) {
+			return(true);				/* p_entryãå«ã¾ãã¦ãã */
+		}
+
+		/*
+		 *  ã­ã¥ã¼ã®æ¬¡ã®è¦ç´ ã«é²ã
+		 */
+		p_next = p_current->p_next;
+		if (p_next->p_prev != p_current) {
+			return(false);				 /* ããã«ãªã³ã¯ã®ä¸æ´å */
+		}
+		p_current = p_next;
+	}
+	return(false);
+}
+
+/*
+ *  ã¹ã¿ãã¯ä¸ãæãã¦ãããã®æ¤æ»
+ */
+static bool_t
+on_stack(void *addr, const TINIB *p_tinib)
+{
+	if (p_tinib->stk <= addr
+				&& addr < (void *)((char *)(p_tinib->stk) + p_tinib->stksz)) {
+		return(true);
+	}
+	return(false);
+}
+
+/*
+ *  ã¿ã¹ã¯æ¯ã®æ´åæ§æ¤æ»
+ */
+static ER
+bit_task(ID tskid)
+{
+	TCB			*p_tcb;
+	const TINIB	*p_tinib;
+	uint_t		tstat, tstat_wait, pri;
+	TMEVTB		*p_tmevtb;
+	SEMCB		*p_semcb;
+	FLGCB		*p_flgcb;
+	DTQCB		*p_dtqcb;
+	PDQCB		*p_pdqcb;
+	MBXCB		*p_mbxcb;
+	MPFCB		*p_mpfcb;
+
+	if (!(TMIN_TSKID <= (tskid) && (tskid) <= tmax_tskid)) {
+		return(E_ID);
+	}
+	p_tcb = get_tcb(tskid);
+	p_tinib = p_tcb->p_tinib;
+	tstat = p_tcb->tstat;
+	tstat_wait = (tstat & TS_WAIT_MASK);
+	pri = p_tcb->priority;
+
+	/*
+	 *  åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ã®æ¤æ»
+	 */
+	if (p_tinib != &(tinib_table[INDEX_TSK(tskid)])) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  tstatã®æ¤æ»
+	 */
+	switch (tstat & (TS_RUNNABLE | TS_WAITING | TS_SUSPENDED)) {
+	case TS_DORMANT:
+		if (tstat != TS_DORMANT) {
+			return(E_SYS_LINENO);
+		}
+		break;
+	case TS_RUNNABLE:
+		if (tstat != TS_RUNNABLE) {
+			return(E_SYS_LINENO);
+		}
+		break;
+	case TS_WAITING:
+	case (TS_WAITING | TS_SUSPENDED):
+		if (!(TS_WAIT_DLY <= tstat_wait && tstat_wait <= TS_WAIT_MPF)) {
+			return(E_SYS_LINENO);
+		}
+		if ((tstat & ~(TS_WAIT_MASK | TS_RUNNABLE | TS_WAITING | TS_SUSPENDED))
+																	!= 0U) {
+			return(E_SYS_LINENO);
+		}
+		break;
+	case TS_SUSPENDED:
+		if (tstat != TS_SUSPENDED) {
+			return(E_SYS_LINENO);
+		}
+		break;
+	default:
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  actqueã®æ¤æ»
+	 */
+	if (TSTAT_DORMANT(tstat) && p_tcb->actque) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  ã¿ã¹ã¯åªå
+åº¦ã®æ¤æ»
+	 */
+	if (pri >= TNUM_TPRI) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  texptnã®æ¤æ»
+	 */
+	if (p_tcb->p_tinib->texrtn == NULL && p_tcb->texptn != 0U) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  ä¼æ­¢ç¶æ
+ã«ããããã§ãã¯
+	 */
+	if (TSTAT_DORMANT(tstat)) {
+		if (!(pri == p_tinib->ipriority)
+					&& (p_tcb->wupque == false)
+					&& (p_tcb->enatex == false)
+					&& (p_tcb->texptn == 0U)) {
+			return(E_SYS_LINENO);
+		}
+	}
+
+	/*
+	 *  å®è¡ã§ããç¶æ
+ã«ããããã§ãã¯
+	 */
+	if (TSTAT_RUNNABLE(tstat)) {
+		if (!in_queue(&ready_queue[pri], &(p_tcb->task_queue))) {
+			return(E_SYS_LINENO);
+		}
+	}
+
+	/*
+	 *  å¾
+ã¡ç¶æ
+ã«ããããã§ãã¯
+	 */
+	if (TSTAT_WAITING(tstat)) {
+		if (!on_stack(p_tcb->p_winfo, p_tinib)) {
+			return(E_SYS_LINENO);
+		}
+		p_tmevtb = p_tcb->p_winfo->p_tmevtb;
+		if (p_tmevtb != NULL) {
+			if (!on_stack(p_tmevtb, p_tinib)) {
+				return(E_SYS_LINENO);
+			}
+			/*
+			 *  (*p_tmevtb)ã®æ¤æ»ï¼æªå®æï¼
+			 */
+		}
+
+		switch (tstat & TS_WAIT_MASK) {
+			case TS_WAIT_SLP:
+				if (p_tcb->wupque == true) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_DLY:
+				if (p_tmevtb == NULL) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_SEM:
+				p_semcb = ((WINFO_SEM *)(p_tcb->p_winfo))->p_semcb;
+				if (!VALID_SEMCB(p_semcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_semcb->wait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_FLG:
+				p_flgcb = ((WINFO_FLG *)(p_tcb->p_winfo))->p_flgcb;
+				if (!VALID_FLGCB(p_flgcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_flgcb->wait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_SDTQ:
+				p_dtqcb = ((WINFO_DTQ *)(p_tcb->p_winfo))->p_dtqcb;
+				if (!VALID_DTQCB(p_dtqcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_dtqcb->swait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_RDTQ:
+				p_dtqcb = ((WINFO_DTQ *)(p_tcb->p_winfo))->p_dtqcb;
+				if (!VALID_DTQCB(p_dtqcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_dtqcb->rwait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_SPDQ:
+				p_pdqcb = ((WINFO_PDQ *)(p_tcb->p_winfo))->p_pdqcb;
+				if (!VALID_PDQCB(p_pdqcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_pdqcb->swait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_RPDQ:
+				p_pdqcb = ((WINFO_PDQ *)(p_tcb->p_winfo))->p_pdqcb;
+				if (!VALID_PDQCB(p_pdqcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_pdqcb->rwait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_MBX:
+				p_mbxcb = ((WINFO_MBX *)(p_tcb->p_winfo))->p_mbxcb;
+				if (!VALID_MBXCB(p_mbxcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_mbxcb->wait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+
+			case TS_WAIT_MPF:
+				p_mpfcb = ((WINFO_MPF *)(p_tcb->p_winfo))->p_mpfcb;
+				if (!VALID_MPFCB(p_mpfcb)) {
+					return(E_SYS_LINENO);
+				}
+				if (!in_queue(&(p_mpfcb->wait_queue), &(p_tcb->task_queue))) {
+					return(E_SYS_LINENO);
+				}
+				break;
+		}
+	}
+
+	/*
+	 *  tskctxbã®æ¤æ»
+	 */
+	if (!TSTAT_DORMANT(tstat) && p_tcb != p_runtsk) {
+		/*
+		 *  ã¿ã¼ã²ããä¾å­ã®æ¤æ»
+		 */
+#if 0
+		if (bit_tskctxb(&(p_tcb->tskctxb))) {
+			return(E_SYS_LINENO);
+		}
+#endif
+	}
+	return(E_OK);
+}
+
+/*
+ *  ã»ããã©æ¯ã®æ´åæ§æ¤æ»
+ */
+#define INDEX_SEM(semid)	((uint_t)((semid) - TMIN_SEMID))
+#define get_semcb(semid)	(&(semcb_table[INDEX_SEM(semid)]))
+
+static ER
+bit_semaphore(ID semid)
+{
+	SEMCB			*p_semcb;
+	const SEMINIB	*p_seminib;
+	uint_t			semcnt;
+	QUEUE			*p_queue;
+	TCB				*p_tcb;
+
+	if (!(TMIN_SEMID <= (semid) && (semid) <= tmax_semid)) {
+		return(E_ID);
+	}
+	p_semcb = get_semcb(semid);
+	p_seminib = p_semcb->p_seminib;
+	semcnt = p_semcb->semcnt;
+
+	/*
+	 *  åæåãã­ãã¯ã¸ã®ãã¤ã³ã¿ã®æ¤æ»
+	 */
+	if (p_seminib != &(seminib_table[INDEX_SEM(semid)])) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  semcntã®æ¤æ»
+	 */
+	if (semcnt > p_seminib->maxsem) {
+		return(E_SYS_LINENO);
+	}
+
+	/*
+	 *  wait_queueã®æ¤æ»
+	 */
+	if (semcnt == 0) {
+		p_queue = p_semcb->wait_queue.p_next;
+		while (p_queue != &(p_semcb->wait_queue)) {
+			p_tcb = (TCB *) p_queue;
+			p_queue = p_queue->p_next;
+			if (!VALID_TCB(p_tcb)) {
+				return(E_SYS_LINENO);
+			}
+			if (p_tcb->tstat != (TS_WAITING | TS_WAIT_SEM)) {
+				return(E_SYS_LINENO);
+			}
+			if (p_semcb != ((WINFO_SEM *)(p_tcb->p_winfo))->p_semcb) {
+				return(E_SYS_LINENO);
+			}
+		}
+	}
+	else {
+		if (!queue_empty(&(p_semcb->wait_queue))) {
+			return(E_SYS_LINENO);
+		}
+	}
+	return(E_OK);
+}
+
+/*
+ *  æ´åæ§æ¤æ»ã«ã¼ãã³æ¬ä½
+ */
+ER
+bit_kernel(void)
+{
+	ID		tskid;
+	ID		semid;
+	ER		ercd;
+
+	/*
+	 *  ã¿ã¹ã¯æ¯ã®æ¤æ»
+	 */
+	for (tskid = TMIN_TSKID; tskid <= tmax_tskid; tskid++) {
+		ercd = bit_task(tskid);
+		if (ercd != E_OK) {
+			return(ercd);
+		}
+	}
+
+	/*
+	 *  ã»ããã©æ¯ã®æ¤æ»
+	 */
+	for (semid = TMIN_SEMID; semid <= tmax_semid; semid++) {
+		ercd = bit_semaphore(semid);
+		if (ercd != E_OK) {
+			return(ercd);
+		}
+	}
+
+	return(E_OK);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf0.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf0.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf0.c	(revision 313)
@@ -0,0 +1,98 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (0)
+ *
+ *  æéè¨æ¸¬ã®ãªã¼ãããããè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "kernel_cfg.h"
+#include "perf0.h"
+
+/*
+ *  è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæå¤§æé
+ */
+#define NO_MEASURE	10000U			/* è¨æ¸¬åæ° */
+#define MAX_TIME	1000U			/* å®è¡æéåå¸ãè¨é²ããæå¤§æé */
+
+/*
+ *  å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯
+ */
+void main_task(intptr_t exinf)
+{
+	uint_t	i;
+
+	syslog_0(LOG_NOTICE, "Performance evaluation program (0)");
+	init_hist(1, MAX_TIME, histarea1);
+	syslog_flush();
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(1);
+		end_measure(1);
+	}
+
+	syslog_0(LOG_NOTICE, "Measurement overhead");
+	print_hist(1);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf0.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf0.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf0.cfg	(revision 313)
@@ -0,0 +1,14 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (0)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "perf0.h"
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/perf0.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf0.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf0.h	(revision 313)
@@ -0,0 +1,81 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006,2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (0)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define MAIN_PRIORITY	11		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+extern void	main_task(intptr_t exinf);
Index: rubycfg_asp/trunk/asp_dcre/test/perf1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf1.c	(revision 313)
@@ -0,0 +1,134 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (1)
+ *
+ *  slp_tskï¼wup_tskã«ããã¿ã¹ã¯åæãæéãè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "kernel_cfg.h"
+#include "perf1.h"
+
+/*
+ *  è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæå¤§æé
+ */
+#define NO_MEASURE	10000U			/* è¨æ¸¬åæ° */
+#define MAX_TIME	1000U			/* å®è¡æéåå¸ãè¨é²ããæå¤§æé */
+
+/*
+ *  å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+static uint_t	histarea2[MAX_TIME + 1];
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯1ï¼é«åªå
+åº¦ï¼
+ */
+void task1(intptr_t exinf)
+{
+	uint_t	i;
+
+	slp_tsk();
+	end_measure(1);
+	for (i = 1; i < NO_MEASURE; i++) {
+		begin_measure(2);
+		slp_tsk();
+		end_measure(1);
+	}
+	begin_measure(2);
+	slp_tsk();
+}
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯2ï¼ä¸­åªå
+åº¦ï¼
+ */
+void task2(intptr_t exinf)
+{
+	uint_t	i;
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(1);
+		wup_tsk(TASK1);
+		end_measure(2);
+	}
+	wup_tsk(TASK1);
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯ï¼ä½åªå
+åº¦ï¼
+ */
+void main_task(intptr_t exinf)
+{
+	syslog_0(LOG_NOTICE, "Performance evaluation program (1)");
+	init_hist(1, MAX_TIME, histarea1);
+	init_hist(2, MAX_TIME, histarea2);
+	syslog_flush();
+
+	act_tsk(TASK1);
+	act_tsk(TASK2);
+
+	syslog_0(LOG_NOTICE, "Execution times of wup_tsk -> slp_tsk");
+	print_hist(1);
+	syslog_0(LOG_NOTICE, "Execution times of slp_tsk -> wup_tsk");
+	print_hist(2);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf1.cfg	(revision 313)
@@ -0,0 +1,16 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "perf1.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task1, TASK1_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task2, TASK2_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/perf1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf1.h	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006,2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK1_PRIORITY	9		/* è¨æ¸¬ã¿ã¹ã¯1ã®åªå
+åº¦ */
+#define TASK2_PRIORITY	10		/* è¨æ¸¬ã¿ã¹ã¯2ã®åªå
+åº¦ */
+#define MAIN_PRIORITY	11		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+extern void	task1(intptr_t exinf);
+extern void	task2(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
Index: rubycfg_asp/trunk/asp_dcre/test/perf2.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf2.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf2.c	(revision 313)
@@ -0,0 +1,132 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (2)
+ *
+ *  åªå
+åº¦ãã¼ã¿ã­ã¥ã¼ã«èç©ããã¦ãããã¼ã¿ã®æ°ã«ããï¼snd_pdqã®å¦çæ
+ *  éãã©ã®ããã«å¤åããããè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "kernel_cfg.h"
+#include "perf2.h"
+
+/*
+ *  è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæå¤§æé
+ */
+#define NO_MEASURE	10000U			/* è¨æ¸¬åæ° */
+#define MAX_TIME	1000U			/* å®è¡æéåå¸ãè¨é²ããæå¤§æé */
+
+/*
+ *  å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+
+/*
+ *  è¨æ¸¬ã«ã¼ãã³
+ */
+void
+perf_eval(uint_t n)
+{
+	uint_t		i;
+	intptr_t	data;
+	PRI			pri;
+
+	ini_pdq(PDQ1);
+	init_hist(1, MAX_TIME, histarea1);
+
+	for (i = 0; i < n; i++) {
+		data = i;
+		snd_pdq(PDQ1, data, 1);
+	}
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		data = i;
+		begin_measure(1);
+		snd_pdq(PDQ1, data, 2);
+		end_measure(1);
+		rcv_pdq(PDQ1, &data, &pri);
+	}
+
+	syslog_1(LOG_NOTICE, "Execution times of snd_pdq"
+								" when %d data are queued.", n);
+	print_hist(1);
+	syslog_flush();
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯ï¼ä½åªå
+åº¦ï¼
+ */
+void main_task(intptr_t exinf)
+{
+	syslog_0(LOG_NOTICE, "Performance evaluation program (2)");
+	syslog_flush();
+
+	perf_eval(0);
+	perf_eval(10);
+	perf_eval(20);
+	perf_eval(30);
+	perf_eval(40);
+	perf_eval(50);
+	perf_eval(100);
+	perf_eval(200);
+	perf_eval(300);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf2.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf2.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf2.cfg	(revision 313)
@@ -0,0 +1,15 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "perf2.h"
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+CRE_PDQ(PDQ1, { TA_NULL, 301, 16, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/perf2.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf2.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf2.h	(revision 313)
@@ -0,0 +1,81 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (2)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define MAIN_PRIORITY	11		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+extern void	main_task(intptr_t exinf);
Index: rubycfg_asp/trunk/asp_dcre/test/perf3.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf3.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf3.c	(revision 313)
@@ -0,0 +1,159 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (3)
+ *
+ *  å¾
+ã¡è§£é¤ããã¿ã¹ã¯ã®æ°ã«ããï¼set_flgã®å¦çæéãã©ã®ããã«å¤åãã
+ *  ããè¨æ¸¬ããããã®ãã­ã°ã©ã ï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "kernel_cfg.h"
+#include "perf3.h"
+
+/*
+ *  è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæå¤§æé
+ */
+#define NO_MEASURE	10000U			/* è¨æ¸¬åæ° */
+#define MAX_TIME	1000U			/* å®è¡æéåå¸ãè¨é²ããæå¤§æé */
+
+/*
+ *  å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯ã®ãªã¹ã
+ */
+static ID task_list[20] = {
+	TASK1, TASK2, TASK3, TASK4, TASK5,
+	TASK6, TASK7, TASK8, TASK9, TASK10,
+	TASK11, TASK12, TASK13, TASK14, TASK15,
+	TASK16, TASK17, TASK18, TASK19, TASK20
+};
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯ï¼ä¸­åªå
+åº¦ï¼
+ */
+void task(intptr_t exinf)
+{
+	FLGPTN	flgptn;
+
+	wai_flg(FLG1, 0x01U, TWF_ORW, &flgptn);
+}
+
+/*
+ *  è¨æ¸¬ã«ã¼ãã³
+ */
+void
+perf_eval(uint_t n)
+{
+	uint_t		i, j;
+
+	init_hist(1, MAX_TIME, histarea1);
+
+	for (i = 0; i < NO_MEASURE; i++) {
+		ini_flg(FLG1);
+		for (j = 0; j < n; j++) {
+			act_tsk(task_list[j]);
+		}
+		chg_pri(TSK_SELF, MAIN_PRIORITY_LOW);
+		/* ã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ã«å
+¥ãã®ãå¾
+ã¤ */
+		chg_pri(TSK_SELF, TPRI_INI);
+
+		begin_measure(1);
+		set_flg(FLG1, 0x01U);
+		end_measure(1);
+
+		chg_pri(TSK_SELF, MAIN_PRIORITY_LOW);
+		/* ã¿ã¹ã¯ãçµäºããã®ãå¾
+ã¤ */
+		chg_pri(TSK_SELF, TPRI_INI);
+	}
+
+	syslog_1(LOG_NOTICE, "Execution times of set_flg"
+							" when %d tasks are released from waiting.", n);
+	print_hist(1);
+	syslog_flush();
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯ï¼é«åªå
+åº¦ï¼
+ */
+void main_task(intptr_t exinf)
+{
+	syslog_0(LOG_NOTICE, "Performance evaluation program (3)");
+	syslog_flush();
+
+	perf_eval(0);
+	perf_eval(1);
+	perf_eval(2);
+	perf_eval(3);
+	perf_eval(4);
+	perf_eval(5);
+	perf_eval(10);
+	perf_eval(20);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf3.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf3.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf3.cfg	(revision 313)
@@ -0,0 +1,35 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (3)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "perf3.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK3, { TA_NULL, 3, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK4, { TA_NULL, 4, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK5, { TA_NULL, 5, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK6, { TA_NULL, 6, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK7, { TA_NULL, 7, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK8, { TA_NULL, 8, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK9, { TA_NULL, 9, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK10, { TA_NULL, 10, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK11, { TA_NULL, 11, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK12, { TA_NULL, 12, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK13, { TA_NULL, 13, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK14, { TA_NULL, 14, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK15, { TA_NULL, 15, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK16, { TA_NULL, 16, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK17, { TA_NULL, 17, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK18, { TA_NULL, 18, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK19, { TA_NULL, 19, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK20, { TA_NULL, 20, task, TASK_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+CRE_FLG(FLG1, { TA_WMUL, 0x00U });
Index: rubycfg_asp/trunk/asp_dcre/test/perf3.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf3.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf3.h	(revision 313)
@@ -0,0 +1,86 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (3)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK_PRIORITY		10		/* ã¿ã¹ã¯ã®åªå
+åº¦ */
+#define MAIN_PRIORITY		9		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+#define MAIN_PRIORITY_LOW	11		/* ã¡ã¤ã³ã¿ã¹ã¯ã®ä½åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+extern void	task(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
Index: rubycfg_asp/trunk/asp_dcre/test/perf4.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf4.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf4.c	(revision 313)
@@ -0,0 +1,212 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (4)
+ *
+ *  act_tskï¼iact_tskã®å¦çæéã¨ã¿ã¹ã¯åæãæéãè¨æ¸¬ããããã®ãã­ã°
+ *  ã©ã ï¼ä»¥ä¸ã®3ã¤ã®æéãæ¸¬å®ããï¼
+ *
+ *  (1) ã¿ã¹ã¯åæããèµ·ãããªãact_tskã®å¦çæéï¼èªã¿ã¹ã¯ãããåªå
+åº¦
+ *      ã®ä½ãã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+
+ *      ã«é·ç§»ãããå¦çã®æéï¼
+ *
+ *  (2) ã¿ã¹ã¯åæããèµ·ããact_tskã®å¦çæéï¼èªã¿ã¹ã¯ãããåªå
+åº¦ã®é«
+ *      ãã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã«é·
+ *      ç§»ããï¼ã¿ã¹ã¯åæããèµ·ããã¦ï¼é«ãåªå
+åº¦ã®ã¿ã¹ã¯ã®å®è¡ãå§ã¾
+ *      ãã¾ã§ã®æéï¼
+ *
+ *  (3) ã¿ã¹ã¯åæããèµ·ããiact_tskã®å¦çæéï¼å¨æãã³ãã©ããï¼å®è¡
+ *      ç¶æ
+ã®ã¿ã¹ã¯ãããé«ãåªå
+åº¦ã®ã¿ã¹ã¯ã«å¯¾ãã¦act_tskãçºè¡ãï¼ä¼
+ *      æ­¢ç¶æ
+ããå®è¡ã§ããç¶æ
+ã«é·ç§»ããããã¨ã«å¨æãã³ãã©ãããªã¿ã¼
+ *      ã³ãï¼ã¿ã¹ã¯åæããèµ·ããã¦ï¼é«ãåªå
+åº¦ã®ã¿ã¹ã¯ã®å®è¡ãå§ã¾ã
+ *      ã¾ã§ã®æéï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include <histogram.h>
+#include "kernel_cfg.h"
+#include "perf4.h"
+
+/*
+ *  è¨æ¸¬åæ°ã¨å®è¡æéåå¸ãè¨é²ããæå¤§æé
+ */
+#define NO_MEASURE	10000U			/* è¨æ¸¬åæ° */
+#define MAX_TIME	1000U			/* å®è¡æéåå¸ãè¨é²ããæå¤§æé */
+
+/*
+ *  å®è¡æéåå¸ãè¨é²ããã¡ã¢ãªé å
+ */
+static uint_t	histarea1[MAX_TIME + 1];
+static uint_t	histarea2[MAX_TIME + 1];
+static uint_t	histarea3[MAX_TIME + 1];
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯1ï¼é«åªå
+åº¦ï¼
+ */
+void task1(intptr_t exinf)
+{
+	end_measure(2);
+	ext_tsk();
+}
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯2ã¨ã¡ã¤ã³ã¿ã¹ã¯ã®å
+±æå¤æ°
+ */
+volatile uint_t		task2_count;
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯2ï¼é«åªå
+åº¦ï¼
+ */
+void task2(intptr_t exinf)
+{
+	end_measure(3);
+	task2_count++;
+	ext_tsk();
+}
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯3ï¼ä½åªå
+åº¦ï¼
+ */
+void task3(intptr_t exinf)
+{
+	ext_tsk();
+}
+
+/*
+ *  è¨æ¸¬ã¿ã¹ã¯4ï¼æä½åªå
+åº¦ï¼
+ */
+void task4(intptr_t exinf)
+{
+	while (true) {
+		wup_tsk(MAIN_TASK);
+	}
+}
+
+/*
+ *  å¨æãã³ãã©
+ */
+void cyclic_handler(intptr_t exinf)
+{
+	begin_measure(3);
+	iact_tsk(TASK2);
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯ï¼ä¸­åªå
+åº¦ï¼
+ */
+void main_task(intptr_t exinf)
+{
+	uint_t	i;
+
+	syslog_0(LOG_NOTICE, "Performance evaluation program (4)");
+	init_hist(1, MAX_TIME, histarea1);
+	init_hist(2, MAX_TIME, histarea2);
+	init_hist(3, MAX_TIME, histarea3);
+	syslog_flush();
+
+	/*
+	 *  ã¿ã¹ã¯åæããèµ·ãããªãact_tskã®å¦çæéã®æ¸¬å®
+	 */
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(1);
+		act_tsk(TASK3);
+		end_measure(1);
+		slp_tsk();
+	}
+
+	/*
+	 *  ã¿ã¹ã¯åæããèµ·ããact_tskã®å¦çæéã®æ¸¬å®
+	 */
+	for (i = 0; i < NO_MEASURE; i++) {
+		begin_measure(2);
+		act_tsk(TASK1);
+	}
+
+	/*
+	 *  ã¿ã¹ã¯åæããèµ·ããiact_tskã®å¦çæéã®æ¸¬å®ï¼æ¸¬å®åæ°ã¯10åã®1ï¼
+	 */
+	task2_count = 0;
+	sta_cyc(CYC1);
+	while (task2_count < NO_MEASURE / 10) ;
+	stp_cyc(CYC1);
+
+	syslog_0(LOG_NOTICE, "Execution times of act_tsk without task switch");
+	print_hist(1);
+	syslog_0(LOG_NOTICE, "Execution times of act_tsk with task switch");
+	print_hist(2);
+	syslog_0(LOG_NOTICE, "Execution times of iact_tsk with task switch");
+	print_hist(3);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/perf4.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf4.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf4.cfg	(revision 313)
@@ -0,0 +1,21 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (4)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "perf4.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task1, TASK1_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task2, TASK2_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK3, { TA_NULL, 3, task3, TASK3_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK4, { TA_ACT, 4, task4, TASK4_PRIORITY, STACK_SIZE, NULL });
+CRE_CYC(CYC1, { TA_NULL, 0, cyclic_handler,
+					(TIC_NUME + TIC_DENO - 1) / TIC_DENO,
+					(TIC_NUME + TIC_DENO - 1) / TIC_DENO });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/perf4.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/perf4.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/perf4.h	(revision 313)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2009 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		ã«ã¼ãã«æ§è½è©ä¾¡ãã­ã°ã©ã (4)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK1_PRIORITY	9		/* è¨æ¸¬ã¿ã¹ã¯1ã®åªå
+åº¦ */
+#define TASK2_PRIORITY	9		/* è¨æ¸¬ã¿ã¹ã¯2ã®åªå
+åº¦ */
+#define TASK3_PRIORITY	11		/* è¨æ¸¬ã¿ã¹ã¯3ã®åªå
+åº¦ */
+#define TASK4_PRIORITY	12		/* è¨æ¸¬ã¿ã¹ã¯4ã®åªå
+åº¦ */
+#define MAIN_PRIORITY	10		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+extern void	task1(intptr_t exinf);
+extern void	task2(intptr_t exinf);
+extern void	task3(intptr_t exinf);
+extern void	task4(intptr_t exinf);
+extern void	cyclic_handler(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.cfg	(revision 313)
@@ -0,0 +1,22 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  CPUä¾å¤å¦çã®ãã¹ã(1)ï½(13)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_cpuexc.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, MID_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK1, { TA_NULL, tex_task1 });
+
+CRE_TSK(TASK2, { TA_NULL, 2, task2, HIGH_PRIORITY, STACK_SIZE, NULL });
+
+CRE_ALM(ALM1, { TA_NULL, 1, alarm1_handler });
+
+DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.h	(revision 313)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(1)ï½(13)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define HIGH_PRIORITY	9		/* é«åªå
+åº¦ */
+#define MID_PRIORITY	10		/* ä¸­åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task1(intptr_t exinf);
+extern void	tex_task1(TEXPTN texptn, intptr_t exinf);
+
+extern void	task2(intptr_t exinf);
+
+extern void	alarm1_handler(intptr_t exinf);
+
+extern void	cpuexc_handler(void *p_excinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc.txt	(revision 313)
@@ -0,0 +1,161 @@
+
+		CPUä¾å¤å¦çã®ãã¹ã
+
+ããã¹ãã®ç®çã
+
+CPUä¾å¤ãã³ãã©ã®å®è¡éå§ï¼ãªã¿ã¼ã³æã®ã·ã¹ãã ç¶æ
+ã¨ï¼CPUä¾å¤ãã³ãã©
+ä¸­ã§ã®xsns_dpnã¨xsns_xpnã®åä½ãç¶²ç¾
+çã«ãã¹ãããï¼
+
+ããã¹ãé 
+ç®ã
+
+(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+
+(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+	ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§ããª
+	ããï¼
+
+(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+
+(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+
+(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+
+(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+
+(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+
+(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+
+(I) xsns_xpnãæ­£ããå¤ãè¿ããã¨
+
+xsns_xpnã¯ï¼CPUä¾å¤ãçºçããç¶æ³ãæ¬¡ã®æ¡ä»¶ããã¹ã¦æºããå ´åã«falseï¼
+ããã§ãªãå ´åã«trueãè¿ãï¼
+ãã»ã¿ã¹ã¯ã³ã³ãã­ã¹ã
+ãã»å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+ãã»CPUã­ãã¯è§£é¤ç¶æ
+
+ãã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ãã»ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+
+
+(J) xsns_dpnãæ­£ããå¤ãè¿ããã¨
+
+xsns_dpnã¯ï¼CPUä¾å¤ãçºçããç¶æ³ãæ¬¡ã®æ¡ä»¶ããã¹ã¦æºããå ´åã«falseï¼
+ããã§ãªãå ´åã«trueãè¿ãï¼
+ãã»ã¿ã¹ã¯ã³ã³ãã­ã¹ã
+ãã»å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+ãã»CPUã­ãã¯è§£é¤ç¶æ
+
+ãã»å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+
+ãã»ãã£ã¹ãããè¨±å¯ç¶æ
+
+
+(K) ã¿ã¹ã¯åæãã«ãããªã«ããªã¼ãã§ãããã¨
+
+(L) ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼ãã§ãããã¨
+
+ããã¹ããå®æ½ããç¶æ³ã
+
+CPUä¾å¤ã®çºçããç¶æ³ã¯ï¼æ¬¡ã®ããã«åé¡ãããã¨ãã§ããï¼ãããã®ç¶æ³æ¯
+ã«ãã¹ããã­ã°ã©ã ãç¨æããï¼
+
+(a-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ã
+(a-2) ã¿ã¹ã¯ã³ã³ãã­ã¹ã
+
+(b-1) å²è¾¼ã¿ã­ãã¯ç¶æ
+
+(b-2) å²è¾¼ã¿ã­ãã¯è§£é¤ç¶æ
+
+
+(c-1) CPUã­ãã¯ç¶æ
+
+(c-2) CPUã­ãã¯è§£é¤ç¶æ
+
+
+(d-1) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALL
+(d-2) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMAX_INTPRI
+	 ï¼TMAX_INTPRIï¼TMIN_INTPRIã®å ´åã¯(d-3)ã¨åãã«ãªãã®ã§å®æ½ããªãï¼
+(d-3) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRI
+(d-4) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRI-1
+	 ï¼TMIN_INTPRI-1ãè¨­å®ã§ãããã¯ã¿ã¼ã²ããã«ä¾å­ããï¼
+
+(e-1) ãã£ã¹ãããç¦æ­¢ç¶æ
+
+(e-2) ãã£ã¹ãããè¨±å¯ç¶æ
+
+
+(f-1) ã¿ã¹ã¯ä¾å¤ç¦æ­¢ç¶æ
+
+(f-2) ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+
+
+ãã®çµã¿åããããã¹ã¦ãã¹ããããã¨ã¯ç¾å®çã§ãªãããï¼ä»£è¡¨çãªãã¿ã¼
+ã³ã«çµãè¾¼ãï¼
+
+ã¾ãï¼(a)ï½(c)ã®çµã¿åããã§ï¼æ¬¡ã®5ã¤ã®ãã¿ã¼ã³ããã¹ãããï¼ãããã®ã
+ã¹ããããéã«ã¯ï¼(d)ï½(f)ã«ã¤ãã¦ã¯ï¼(d-1)(e-1)(f-2)ã®çµã¿åããã«åºå®
+ããï¼
+
+(1) (a-1)(b-1)(c-2) â ãªã«ããªã¼ä¸å¯
+	ï¼(a-1)(b-1)(c-1)ã®ãã¹ãã¯çãï¼
+(2) (a-1)(b-2)(c-1) â ãªã«ããªã¼ä¸å¯
+(3) (a-1)(b-2)(c-2) â ãªã«ããªã¼ä¸å¯
+
+(4) (a-2)(b-1)(c-2) â ãªã«ããªã¼ä¸å¯
+	ï¼(a-2)(b-1)(c-1)ã®ãã¹ãã¯çãï¼
+(5) (a-2)(b-2)(c-1) â ãªã«ããªã¼ä¸å¯
+
+æ¬¡ã«ï¼(a)ï½(c)ã(a-2)(b-2)(c-2)ã«åºå®ãã¦ï¼(d)ï½(f)ã®çµã¿åããã§ï¼æ¬¡ã®
+8ã¤ã®ãã¿ã¼ã³ããã¹ãããï¼
+
+(6) (d-1)(e-2)(f-1) â ã¿ã¹ã¯åæãã«ãããªã«ããªã¼å¯è½
+
+(7) (d-1)(e-1)(f-2) â ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼å¯è½
+
+(8) (d-2)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯
+	ï¼(d-2)(e-1)(f-2)ã®ãã¹ãã¯çãï¼
+
+(9) (d-3)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯
+	ï¼(d-3)(e-1)(f-2)ã®ãã¹ãã¯çãï¼
+
+(10) (d-4)(e-2)(f-2) â ãªã«ããªã¼ä¸å¯
+	ï¼(d-4)(e-1)(f-2)ã®ãã¹ãã¯çãï¼
+
+(11) (d-1)(e-2)(f-2) â ä¸¡æ¹æ³ã«ãããªã«ããªã¼å¯è½
+
+(12) (d-1)(e-1)(f-1) â ãªã«ããªã¼ä¸å¯
+		(d-2)ï½(d-4)Ã(e-1)Ã(f-1) ã®ãã¹ãï¼3ãã¿ã¼ã³ï¼ã¯çãï¼
+
+(13) (d-3)(e-2)(f-1) â ãªã«ããªã¼ä¸å¯
+		(d-2),(d-4)Ã(e-2)Ã(f-1) ã®ãã¹ãï¼2ãã¿ã¼ã³ï¼ã¯çãï¼
+
+ãä½¿ç¨ãªã½ã¼ã¹ã
+
+TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+TASK2: TA_NULLï¼é«åªå
+åº¦
+CPUEXC1: TA_NULL
+ALM1: TA_NULL
+
+ä»¥ä¸
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc1.c	(revision 313)
@@ -0,0 +1,230 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(1)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ã
+ *  ã ç¶æ
+ã®ãã¹ãï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶
+ *  æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ã
+ *  ãã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *	ALM1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		sta_alm(ALM1, 1U)
+ *		ã¢ã©ã¼ã ãã³ãã©1ã®å®è¡ãå¾
+ã¤
+ *	== ALM1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯
+ *		SIL_LOC_INT()
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	4:	xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	5:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	5:	ãªã¿ã¼ã³
+ *	== ALM1ï¼ç¶ãï¼==
+ *	6:	SIL_UNL_LOC()
+ *	7:	ç¶æ
+ã®ãã§ãã¯				... (E)(G)(H)
+ *		ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	8:	ç¶æ
+ã®ãã§ãã¯				... (F)
+ *	9:	ãã¹ãçµäº
+ */
+
+#include <sil.h>
+#include <kernel.h>
+#include <t_syslog.h>
+#include <test_lib.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+volatile bool_t	alm1_flag = false;
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+	ercd = sta_alm(ALM1, 1U);
+	check_ercd(ercd, E_OK);
+
+	while (!(alm1_flag));
+
+	check_point(8);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	check_finish(9);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	SIL_PRE_LOC;
+
+	check_point(3);
+	check_state_i(true, false, true, true, false);
+	SIL_LOC_INT();
+	RAISE_CPU_EXCEPTION;
+
+	check_point(6);
+	SIL_UNL_INT();
+
+	check_point(7);
+	check_state_i(true, false, true, true, false);
+	alm1_flag = true;
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(4);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(5);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(5);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc10.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc10.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc10.c	(revision 313)
@@ -0,0 +1,197 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2015 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(10)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRI-1ï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤
+ *  è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼
+ *
+ *  ãã®ãã¹ãã¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãTMIN_INTPRI-1ã«è¨­å®ã§ããå ´åã®ã¿
+ *  å®æ½ããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRI-1ï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼
+ *  ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		chg_ipm(TMIN_INTPRI-1)
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = chg_ipm(TMIN_INTPRI - 1);
+	if (ercd == E_PAR) {
+		syslog_0(LOG_NOTICE, "This test program is not necessary.");
+		ext_ker();
+	}
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TMIN_INTPRI - 1, false, true, false);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, false, TMIN_INTPRI - 1, false, true, false);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, false, false, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc11.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc11.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc11.c	(revision 313)
@@ -0,0 +1,299 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(11)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±
+ *  å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼ã¿ã¹ã¯åæãã«
+ *  ãããªã«ããªã¼ã§ãããã¨ããã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(I) xsns_xpnãfalseãè¿ããã¨
+ *	(J) xsns_dpnãfalseãè¿ããã¨
+ *	(K) ã¿ã¹ã¯åæãã«ãããªã«ããªã¼ãã§ãããã¨
+ *	(L) ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼ãã§ãããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	TASK2: TA_NULLï¼é«åªå
+åº¦
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼1åç®ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1ï¼1åç®ï¼==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == false			... (I)
+ *		xsns_dpn() == false			... (J)
+ *	4:	iact_tsk(TASK2)
+ *		iloc_cpu()
+ *		ãªã¿ã¼ã³
+ *	== TASK2ï¼é«åªå
+åº¦ï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ter_tsk(TASK1)				... (K)
+ *	7:	act_tsk(TASK1)				... (K)
+ *	8:	ext_tsk()
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼2åç®ï¼==
+ *	9:	ç¶æ
+ã®ãã§ãã¯				... (K)
+ *		ena_tex()
+ *	10:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1ï¼2åç®ï¼==
+ *	11:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == false			... (I)
+ *		xsns_dpn() == false			... (J)
+ *	12:	iras_tex(TASK1, 1U)
+ *		iloc_cpu()
+ *		ãªã¿ã¼ã³
+ *	== TASK1ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ ==
+ *	13:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	14:	act_tsk(TASK1)				... (L)
+ *	15:	ext_tsk()					... (L)
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼3åç®ï¼==
+ *	16:	ç¶æ
+ã®ãã§ãã¯				... (L)
+ *	17:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+int_t	task1_count = 0;
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	switch (++task1_count) {
+	case 1:
+		test_start(__FILE__);
+
+		check_point(1);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		check_point(2);
+		check_state(false, false, TIPM_ENAALL, false, false, false);
+		RAISE_CPU_EXCEPTION;
+
+		check_point(0);
+		break;
+
+	case 2:
+		check_point(9);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		check_point(10);
+		check_state(false, false, TIPM_ENAALL, false, false, false);
+		RAISE_CPU_EXCEPTION;
+
+		check_point(0);
+		break;
+
+	case 3:
+		check_point(16);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_finish(17);
+		break;
+
+	default:
+		check_point(0);
+		break;
+	}
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	ER		ercd;
+
+	check_point(13);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(14);
+	ercd = act_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(15);
+	ercd = ext_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER		ercd;
+
+	check_point(5);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(6);
+	ercd = ter_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(7);
+	ercd = act_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(8);
+	ercd = ext_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+int_t	cpuexc_count = 0;
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ER		ercd;
+
+	switch (++cpuexc_count) {
+	case 1:
+		check_point(3);
+		check_state_i(true, false, false, true, false);
+		check_assert(xsns_xpn(p_excinf) == false);
+		check_assert(xsns_dpn(p_excinf) == false);
+
+		check_point(4);
+		ercd = iact_tsk(TASK2);
+		check_ercd(ercd, E_OK);
+		ercd = iloc_cpu();
+		check_ercd(ercd, E_OK);
+		break;
+
+	case 2:
+		check_point(11);
+		check_state_i(true, false, false, true, false);
+		check_assert(xsns_xpn(p_excinf) == false);
+		check_assert(xsns_dpn(p_excinf) == false);
+
+		check_point(12);
+		ercd = iras_tex(TASK1, 1U);
+		check_ercd(ercd, E_OK);
+		ercd = iloc_cpu();
+		check_ercd(ercd, E_OK);
+		break;
+
+	default:
+		check_point(0);
+		break;
+	}
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc12.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc12.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc12.c	(revision 313)
@@ -0,0 +1,186 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(12)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤ç¦
+ *  æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤ç¦æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TIPM_ENAALL, true, true, true);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, false, TIPM_ENAALL, true, true, true);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, false, true, true, true);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc13.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc13.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc13.c	(revision 313)
@@ -0,0 +1,186 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(13)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤ç¦
+ *  æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤ç¦æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		chg_ipm(TMIN_INTPRI)
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = chg_ipm(TMIN_INTPRI);
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TMIN_INTPRI, false, true, true);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, false, TMIN_INTPRI, false, true, true);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, false, false, true, true);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc2.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc2.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc2.c	(revision 313)
@@ -0,0 +1,216 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(2)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯ç¶æ
+ã§çºçããCPUä¾
+ *  å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£
+ *  ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯ç¶æ
+ã§çºç
+ *  ããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *	ALM1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		sta_alm(ALM1, 1U)
+ *		ã¢ã©ã¼ã ãã³ãã©1ã®å®è¡ãå¾
+ã¤
+ *	== ALM1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯
+ *		iloc_cpu()
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	4:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	5:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	5:	ãªã¿ã¼ã³
+ *	== ALM1ï¼ç¶ãï¼==
+ *	6:	ç¶æ
+ã®ãã§ãã¯				... (E)(G)(H)
+ *		ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	7:	ç¶æ
+ã®ãã§ãã¯				... (F)
+ *	8:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+volatile bool_t	alm1_flag = false;
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+	ercd = sta_alm(ALM1, 1U);
+	check_ercd(ercd, E_OK);
+
+	while (!(alm1_flag));
+
+	check_point(7);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	check_finish(8);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	ER		ercd;
+
+	check_point(3);
+	check_state_i(true, false, true, true, false);
+	ercd = iloc_cpu();
+	check_ercd(ercd, E_OK);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(6);
+	check_state_i(true, true, true, true, false);
+	alm1_flag = true;
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(4);
+	check_state_i(true, true, true, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(5);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(5);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc3.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc3.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc3.c	(revision 313)
@@ -0,0 +1,209 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(3)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯è§£é¤ã§çºçããCPUä¾
+ *  å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£
+ *  ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼éã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯è§£é¤ã§çºç
+ *  ããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *	ALM1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		sta_alm(ALM1, 1U)
+ *		ã¢ã©ã¼ã ãã³ãã©1ã®å®è¡ãå¾
+ã¤
+ *	== ALM1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	4:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	5:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	5:	ãªã¿ã¼ã³
+ *	== ALM1ï¼ç¶ãï¼==
+ *	6:	ç¶æ
+ã®ãã§ãã¯				... (E)(G)(H)
+ *		ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	7:	ç¶æ
+ã®ãã§ãã¯				... (F)
+ *	8:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+volatile bool_t	alm1_flag = false;
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+	ercd = sta_alm(ALM1, 1U);
+	check_ercd(ercd, E_OK);
+
+	while (!(alm1_flag));
+
+	check_point(7);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	check_finish(8);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(3);
+	check_state_i(true, false, true, true, false);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(6);
+	check_state_i(true, false, true, true, false);
+	alm1_flag = true;
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(4);
+	check_state_i(true, false, true, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(5);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(5);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc4.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc4.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc4.c	(revision 313)
@@ -0,0 +1,207 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(4)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã 
+ *  ç¶æ
+ã®ãã¹ãï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ï¼
+ *  ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãã
+ *  ã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼å²è¾¼ã¿ã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤ã§ã¯ï¼ã·ã¹ãã ç¶æ
+ãæ­£ããèª­
+ *		ãããã¨ãä¿è¨¼ãããªãããï¼ãã¹ãã§ããªãï¼
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		SIL_LOC_INT()
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	SIL_UNL_LOC()
+ *	6:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	7:	ãã¹ãçµäº
+ */
+
+#include <sil.h>
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+	SIL_PRE_LOC;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+	SIL_LOC_INT();
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	SIL_UNL_INT();
+
+	check_point(6);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	check_finish(7);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc5.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc5.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc5.c	(revision 313)
@@ -0,0 +1,192 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(5)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯ç¶æ
+ã§çºçããCPUä¾å¤
+ *  ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£
+ *  ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼ã¿ã¹ã¯ã³ã³ãã­ã¹ãï¼å²è¾¼ã­ãã¯è§£é¤ï¼CPUã­ãã¯ç¶æ
+ã§çºçã
+ *  ãCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *		loc_cpu()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+	ercd = loc_cpu();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, true, TIPM_ENAALL, true, true, false);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, true, TIPM_ENAALL, true, true, false);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, true, true, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc6.c	(revision 313)
@@ -0,0 +1,220 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(6)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤ç¦
+ *  æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼ã¿ã¹ã¯åæãã«
+ *  ãããªã«ããªã¼ã§ãããã¨ããã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤ç¦æ­¢ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãfalseãè¿ããã¨
+ *	(K) ã¿ã¹ã¯åæãã«ãããªã«ããªã¼ãã§ãããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	TASK2: TA_NULLï¼é«åªå
+åº¦
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼1åç®ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *	2:	RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A),(C),(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == false			... (J)
+ *  4:	iact_tsk(TASK2)
+ *		iloc_cpu()
+ *  	ãªã¿ã¼ã³
+ *	== TASK2ï¼é«åªå
+åº¦ï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E),(F),(G),(H)
+ *	6:	ter_tsk(TASK1)				... (K)
+ *	7:	act_tsk(TASK1)				... (K)
+ *	8:	ext_tsk()
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼2åç®ï¼==
+ *	9:	ç¶æ
+ã®ãã§ãã¯				... (K)
+ *	10:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+int_t	task1_count = 0;
+
+void
+task1(intptr_t exinf)
+{
+	switch (++task1_count) {
+	case 1:
+		test_start(__FILE__);
+
+		check_point(1);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_point(2);
+		RAISE_CPU_EXCEPTION;
+
+		check_point(0);
+		break;
+
+	case 2:
+		check_point(9);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_finish(10);
+		break;
+
+	default:
+		check_point(0);
+		break;
+	}
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER		ercd;
+
+	check_point(5);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(6);
+	ercd = ter_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(7);
+	ercd = act_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(8);
+	ercd = ext_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ER		ercd;
+
+	check_point(3);
+	check_state_i(true, false, false, true, true);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == false);
+
+	check_point(4);
+	ercd = iact_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+	ercd = iloc_cpu();
+	check_ercd(ercd, E_OK);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc7.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc7.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc7.c	(revision 313)
@@ -0,0 +1,223 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(7)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±
+ *  å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼ã¿ã¹ã¯ä¾å¤ã«ã
+ *  ããªã«ããªã¼ã§ãããã¨ããã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TIPM_ENAALLï¼ãã£ã¹ãããç¦æ­¢ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(I) xsns_xpnãfalseãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *	(L) ã¿ã¹ã¯ä¾å¤ã«ãããªã«ããªã¼ãã§ãããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼1åç®ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		dis_dsp()
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A),(C),(D)
+ *		xsns_xpn() == false			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	iras_tex(TASK1, 1U)
+ *		iloc_cpu()
+ *		ãªã¿ã¼ã³
+ *	== TASK1ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ ==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E),(F),(G),(H)
+ *	6:	act_tsk(TASK1)				... (L)
+ *	7:	ext_tsk()					... (L)
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼2åç®ï¼==
+ *	8:	ç¶æ
+ã®ãã§ãã¯				... (L)
+ *	9:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+int_t	task1_count = 0;
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	switch (++task1_count) {
+	case 1:
+		test_start(__FILE__);
+
+		check_point(1);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+		ercd = dis_dsp();
+		check_ercd(ercd, E_OK);
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		check_point(2);
+		check_state(false, false, TIPM_ENAALL, true, true, false);
+		RAISE_CPU_EXCEPTION;
+
+		check_point(0);
+		break;
+
+	case 2:
+		check_point(8);
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_finish(9);
+		break;
+
+	default:
+		check_point(0);
+		break;
+	}
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	ER		ercd;
+
+	check_point(5);
+	check_state(false, false, TIPM_ENAALL, true, true, true);
+
+	check_point(6);
+	ercd = act_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(7);
+	ercd = ext_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ER		ercd;
+
+	check_point(3);
+	check_state_i(true, false, true, true, false);
+	check_assert(xsns_xpn(p_excinf) == false);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+	check_point(4);
+	ercd = iras_tex(TASK1, 1U);
+	check_ercd(ercd, E_OK);
+	ercd = iloc_cpu();
+	check_ercd(ercd, E_OK);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc8.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc8.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc8.c	(revision 313)
@@ -0,0 +1,196 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(8)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMAX_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±
+ *  å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼
+ *
+ *  ãã®ãã¹ãã¯ï¼TMAX_INTPRIã¨TMIN_INTPRIãç°ãªãå ´åã®ã¿å®æ½ããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMAX_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		chg_ipm(TMAX_INTPRI)
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	if (TMAX_INTPRI == TMIN_INTPRI) {
+		syslog_0(LOG_NOTICE, "This test program is not necessary.");
+		ext_ker();
+	}
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = chg_ipm(TMAX_INTPRI);
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TMAX_INTPRI, false, true, false);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, false, TMAX_INTPRI, false, true, false);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, false, false, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_cpuexc9.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_cpuexc9.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_cpuexc9.c	(revision 313)
@@ -0,0 +1,189 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		CPUä¾å¤å¦çã®ãã¹ã(9)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿ã¹ã¯ä¾å¤è¨±
+ *  å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ãããã·ã¹ãã ç¶æ
+ã®ãã¹ãï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *  ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ï¼TMIN_INTPRIï¼ãã£ã¹ãããè¨±å¯ç¶æ
+ï¼ã¿
+ *  ã¹ã¯ä¾å¤è¨±å¯ç¶æ
+ã§çºçããCPUä¾å¤ã«ããã¦ï¼
+ *
+ *	(A) CPUä¾å¤ãã³ãã©å®è¡éå§æã«CPUã­ãã¯ãã©ã°ãå¤åããªããã¨
+ *	(B) CPUä¾å¤ãã³ãã©å®è¡éå§æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ä¸­ã§å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãèª­ããªãããï¼ãã¹ãã§
+ *		ããªãï¼
+ *	(C) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(D) CPUä¾å¤ãã³ãã©å®è¡éå§æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *	(E) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«CPUã­ãã¯ãã©ã°ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(F) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+ã«æ»ããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(G) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ãã£ã¹ãããç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(H) CPUä¾å¤ãã³ãã©ãªã¿ã¼ã³æã«ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ãã©ã°ãå¤åããªããã¨
+ *		ï¼CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããå ´åã®ã¿ãã¹ãããï¼
+ *	(I) xsns_xpnãtrueãè¿ããã¨
+ *	(J) xsns_dpnãtrueãè¿ããã¨
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: TA_ACTï¼ä¸­åªå
+åº¦ï¼ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ç»é²
+ *	CPUEXC1: TA_NULL
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼ä¸­åªå
+åº¦ï¼==
+ *	1:	ç¶æ
+ã®ãã§ãã¯
+ *		chg_ipm(TMIN_INTPRI)
+ *		ena_tex()
+ *	2:	ç¶æ
+ã®ãã§ãã¯
+ *		RAISE_CPU_EXCEPTION
+ *	== CPUEXC1 ==
+ *	3:	ç¶æ
+ã®ãã§ãã¯				... (A)(C)(D)
+ *		xsns_xpn() == true			... (I)
+ *		xsns_dpn() == true			... (J)
+ *	4:	CPUä¾å¤ãã³ãã©ãããªã¿ã¼ã³ã§ããªãå ´åã¯ï¼ããã§çµäº
+ *	4:	ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	5:	ç¶æ
+ã®ãã§ãã¯				... (E)(F)(G)(H)
+ *	6:	ãã¹ãçµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_cpuexc.h"
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+	ercd = chg_ipm(TMIN_INTPRI);
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(2);
+	check_state(false, false, TMIN_INTPRI, false, true, false);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(5);
+	check_state(false, false, TMIN_INTPRI, false, true, false);
+
+	check_finish(6);
+}
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	check_point(3);
+	check_state_i(true, false, false, true, false);
+	check_assert(xsns_xpn(p_excinf) == true);
+	check_assert(xsns_dpn(p_excinf) == true);
+
+#ifdef CANNOT_RETURN_CPUEXC
+	check_finish(4);
+#endif /* CANNOT_RETURN_CPUEXC */
+
+	check_point(4);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_dlynse.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_dlynse.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_dlynse.c	(revision 313)
@@ -0,0 +1,136 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		sil_dly_nseã«é¢ãããã¹ã
+ */
+
+#include <kernel.h>
+#include <sil.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_dlynse.h"
+
+/*
+ *  SIL_DLY_TIM1ã¨SIL_DLY_TIM2ãåç
+§ããããã«ï¼ã«ã¼ãã«ç¨ã®ããããã¡
+ *  ã¤ã«ãã¤ã³ã¯ã«ã¼ãããï¼
+ */
+#include "kernel/kernel_impl.h"
+
+#define	NO_LOOP		ULONG_C(1000000)
+
+SYSTIM	empty_time;
+
+static void
+test_empty(void)
+{
+	SYSTIM	stime, etime;
+	volatile ulong_t	i;
+
+	get_tim(&stime);
+	for (i = 0; i < NO_LOOP; i++) {
+	}
+	get_tim(&etime);
+	empty_time = etime - stime;
+	syslog(LOG_NOTICE, "empty loop: %u", empty_time);
+	syslog_flush();
+}
+
+static void
+test_dly_nse(ulong_t dlytim)
+{
+	SYSTIM	stime, etime, delay_time;
+	volatile ulong_t	i;
+
+	get_tim(&stime);
+	for (i = 0; i < NO_LOOP; i++) {
+		sil_dly_nse(dlytim);
+	}
+	get_tim(&etime);
+	delay_time = (etime - stime) - empty_time;
+	syslog(LOG_NOTICE, "sil_dly_nse(%u): %u %s", (uint_t)(dlytim),
+				(uint_t)(delay_time), delay_time > dlytim ? "OK" : "NG");
+	syslog_flush();
+}
+
+void
+main_task(intptr_t exinf)
+{
+	test_start(__FILE__);
+
+	test_empty();
+
+	syslog(LOG_NOTICE, "-- for fitting parameters --");
+	test_dly_nse(0);
+	test_dly_nse(SIL_DLY_TIM1);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 1);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 2);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 3);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 4);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 5);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 10);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 20);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 50);
+
+	syslog(LOG_NOTICE, "-- for checking boundary conditions --");
+	test_dly_nse(SIL_DLY_TIM1 + 1);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 1 + 1);
+	test_dly_nse(SIL_DLY_TIM1 + SIL_DLY_TIM2 * 2 + 1);
+
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_dlynse.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_dlynse.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_dlynse.cfg	(revision 313)
@@ -0,0 +1,14 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  sil_dly_nseã«é¢ãããã¹ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_dlynse.h"
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/test_dlynse.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_dlynse.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_dlynse.h	(revision 313)
@@ -0,0 +1,84 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006,2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *		sil_dly_nseã«é¢ãããã¹ã
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define MAIN_PRIORITY	10
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	main_task(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem1.c	(revision 313)
@@ -0,0 +1,673 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2014 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã»ããã©æ©è½ã®ãã¹ã(1)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  sig_semï¼wai_semï¼CRE_SEMãç¶²ç¾
+çã«ãã¹ãããï¼
+ *  ãã ãï¼CRE_SEMã®ã¨ã©ã¼ã®ãã¹ãã¯é¤ãï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *	(A) sig_semã®éçã¨ã©ã¼ã®ãã¹ã
+ *		(A-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+ *		(A-2) CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+ *		(A-3) semidãä¸æ­£ï¼å°ããããï¼
+ *		(A-4) semidãä¸æ­£ï¼å¤§ããããï¼
+ *	(B) sig_semã«ããã»ããã©å¾
+ã¡ç¶æ
+ã®ã¿ã¹ã¯ãå¾
+ã¡è§£é¤ããã
+ *		(B-1) å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ã«åãæãã
+ *		(B-2) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼åãæãããªã
+ *		(B-3) å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ãå¼·å¶å¾
+ã¡ç¶æ
+ã§ï¼åãæãããªã
+ *		(B-4) å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ãåªå
+åº¦ãä½ãï¼åãæãããªã
+ *	(C) sig_semã«ããã»ããã©ã®è³æºæ°ã1å¢ãã
+ *		(C-1) ã»ããã©ã®è³æºæ°ã0ãã1ã«ãªã
+ *		(C-2) ã»ããã©ã®è³æºæ°ã1ãã2ã«ãªã
+ *	(D) sig_semãE_QOVRã¨ã©ã¼ã¨ãªã
+ *		(D-1) ã»ããã©ã®æå¤§è³æºæ°ã1ã®æ
+ *		(D-2) ã»ããã©ã®æå¤§è³æºæ°ã2ã®æ
+ *	(E) wai_semã®éçã¨ã©ã¼ã®ãã¹ã
+ *		(E-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+ *		(E-2) CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+ *		(E-3) ãã£ã¹ãããç¦æ­¢ç¶æ
+ããã®å¼åºã
+ *		(E-4) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+ããã®å¼åºã
+ *		(E-5) semidãä¸æ­£ï¼å°ããããï¼
+ *		(E-6) semidãä¸æ­£ï¼å¤§ããããï¼
+ *	(F) wai_semã«ããã»ããã©ã®è³æºæ°ã1æ¸ã
+ *		(F-1) ã»ããã©ã®è³æºæ°ã1ãã0ã«ãªã
+ *		(F-2) ã»ããã©ã®è³æºæ°ã2ãã1ã«ãªã
+ *	(G) wai_semã«ããã»ããã©å¾
+ã¡ç¶æ
+ã«ãªã
+ *		(G-1) TA_TNULLå±æ§ã®ã»ããã©ã§ï¼å¾
+ã£ã¦ããã¿ã¹ã¯ããªãã£ãå ´å
+ *		(G-2) TA_TNULLå±æ§ã®ã»ããã©ã§ï¼å¾
+ã£ã¦ããã¿ã¹ã¯ããã£ãå ´å
+ *		(G-3) TA_TPRIå±æ§ã®ã»ããã©ã§ï¼å¾
+ã£ã¦ããã¿ã¹ã¯ããªãã£ãå ´å
+ *		(G-4) TA_TPRIå±æ§ã®ã»ããã©ã§ï¼åªå
+åº¦ãé«ãã¿ã¹ã¯ãå¾
+ã£ã¦ããå ´å
+ *		(G-5) TA_TPRIå±æ§ã®ã»ããã©ã§ï¼åªå
+åº¦ãåãã¿ã¹ã¯ãå¾
+ã£ã¦ããå ´å
+ *		(G-6) TA_TPRIå±æ§ã®ã»ããã©ã§ï¼åªå
+åº¦ãä½ãã¿ã¹ã¯ãå¾
+ã£ã¦ããå ´å
+ *	(H) ã»ããã©å¾
+ã¡ç¶æ
+ãå¼·å¶è§£é¤ããã
+ *	(I) ã»ããã©å¾
+ã¡ç¶æ
+ã®éã«ã»ããã©ãåæåããã
+ *	(J) ã»ããã©ã®è³æºæ°ã®åæå¤ãæ­£ããè¨­å®ããã
+ *		(J-1) ã»ããã©ã®è³æºæ°ã®åæå¤ã0
+ *		(J-2) ã»ããã©ã®è³æºæ°ã®åæå¤ã1
+ *		(J-3) ã»ããã©ã®è³æºæ°ã®åæå¤ã2
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: ä¸­åªå
+åº¦ã¿ã¹ã¯ï¼TA_ACTå±æ§
+ *	TASK2: é«åªå
+åº¦ã¿ã¹ã¯
+ *	TASK3: ä½åªå
+åº¦ã¿ã¹ã¯
+ *	TASK4: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	TASK5: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	ALM1:  ã¢ã©ã¼ã ãã³ãã©
+ *  SEM1:  TA_NULLå±æ§ï¼åæè³æºæ°1ï¼æå¤§è³æºæ°1
+ *  SEM2:  TA_NULLå±æ§ï¼åæè³æºæ°2ï¼æå¤§è³æºæ°2
+ *  SEM3:  TA_TPRIå±æ§ï¼åæè³æºæ°0ï¼æå¤§è³æºæ°1
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *  1:	ref_sem(SEM1, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 1)			... (J-2)
+ *  	ref_sem(SEM2, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 2)			... (J-3)
+ *  	ref_sem(SEM3, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 0)			... (J-1)
+ *	2:	loc_cpu()
+ *		sig_sem(SEM1) -> E_CTX				... (A-2)
+ *		wai_sem(SEM1) -> E_CTX				... (E-2)
+ *		unl_cpu()
+ *		dis_dsp()
+ *		wai_sem(SEM1) -> E_CTX				... (E-3)
+ *		ena_dsp()
+ *		chg_ipm(TMAX_INTPRI)
+ *		wai_sem(SEM1) -> E_CTX				... (E-4)
+ *		chg_ipm(TIPM_ENAALL)
+ *		sig_sem(0) -> E_ID					... (A-3)
+ *		wai_sem(0) -> E_ID					... (E-5)
+ *		sig_sem(TNUM_SEMID+1) -> E_ID		... (A-4)
+ *		wai_sem(TNUM_SEMID+1) -> E_ID		... (E-6)
+ *	3:	act_tsk(TASK3)
+ *	4:	slp_tsk()
+ *	== TASK3ï¼åªå
+åº¦ï¼ä½ï¼==
+ *	5:	wai_sem(SEM1)						... (F-1)
+ *  6:	ref_sem(SEM1, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 0)
+ *	7:	sta_alm(ALM1, 10)
+ *	8:	wai_sem(SEM1)						... (G-1)
+ *	== ALM1 ==
+ *	9:	sig_sem(SEM1) -> E_CTX				... (A-1)
+ *		wai_sem(SEM1) -> E_CTX				... (E-1)
+ *	10:	iwup_tsk(TASK1)
+ *	11:	RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	12:	act_tsk(TASK2)
+ *	== TASK2ï¼åªå
+åº¦ï¼é«ï¼==
+ *	13:	wai_sem(SEM1)						... (G-2)
+ *	== TASK1ï¼ç¶ãï¼==
+ *  14:	ref_sem(SEM1, &rsem)
+ *		assert(rsem.wtskid == TASK3)
+ *		assert(rsem.semcnt == 0)
+ *	15:	sig_sem(SEM1)						... (B-4)
+ *	16:	sig_sem(SEM1)						... (B-1)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	17:	wai_sem(SEM1)						... (G-1)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	18: dis_dsp()
+ *	19:	sig_sem(SEM1)						... (B-2)
+ *	20:	ena_dsp()
+ *	== TASK2ï¼ç¶ãï¼==
+ *	21:	wai_sem(SEM1)						... (G-1)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	22: sus_tsk(TASK2)
+ *	23:	sig_sem(SEM1)						... (B-3)
+ *	24: sig_sem(SEM1)						... (C-1)
+ *	25: sig_sem(SEM1) -> E_QOVR				... (D-1)
+ *  26:	ref_sem(SEM1, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 1)
+ *	27:	rsm_tsk(TASK2)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	28:	wai_sem(SEM2)						... (F-2)
+ *  29:	ref_sem(SEM2, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 1)
+ *	30:	wai_sem(SEM2)						... (F-1)
+ *	31: wai_sem(SEM2)						... (G-1)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	32:	sig_sem(SEM2)						... (B-1)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	33:	wai_sem(SEM3)						... (G-3)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	34:	sig_sem(SEM2)						... (C-1)
+ *	35:	sig_sem(SEM2)						... (C-2)
+ *  36:	ref_sem(SEM2, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 2)
+ *	37:	sig_sem(SEM2) -> E_QOVR				... (D-2)
+ *  38:	ref_sem(SEM2, &rsem)
+ *		assert(rsem.wtskid == TSK_NONE)
+ *		assert(rsem.semcnt == 2)
+ *	39:	tslp_tsk(10) -> E_TMOUT
+ *	== TASK3ï¼ç¶ãï¼==
+ *	40:	wai_sem(SEM3)						... (G-4)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	41:	act_tsk(TASK4)
+ *	42:	act_tsk(TASK5)
+ *	43:	rot_rdq(TPRI_SELF)
+ *	== TASK4ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *	44:	wai_sem(SEM3)						... (G-6)
+ *	== TASK5ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *	45:	wai_sem(SEM3)						... (G-5)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	46:	sig_sem(SEM3)						... (B-1)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	47:	wai_sem(SEM1)
+ *		wai_sem(SEM1) -> E_RLWAI
+ *	== TASK1ï¼ç¶ãï¼==
+ *	48:	sig_sem(SEM3)						... (B-4)
+ *	49:	tslp_tsk(10) -> E_TMOUT
+ *	== TASK4ï¼ç¶ãï¼==
+ *	50:	ext_tsk() -> noreturn
+ *	== TASK1ï¼ç¶ãï¼==
+ *	51:	sig_sem(SEM3)						... (B-4)
+ *	52:	tslp_tsk(10) -> E_TMOUT
+ *	== TASK5ï¼ç¶ãï¼==
+ *	53:	ext_tsk() -> noreturn
+ *	== TASK1ï¼ç¶ãï¼==
+ *	54:	sig_sem(SEM3)						... (B-4)
+ *	55:	tslp_tsk(10) -> E_TMOUT
+ *	== TASK3ï¼ç¶ãï¼==
+ *	56:	ext_tsk() -> noreturn
+ *	== TASK1ï¼ç¶ãï¼==
+ *	57: rel_wai(TASK2)						... (H)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	58:	wai_sem(SEM1) -> E_DLT
+ *	== TASK1ï¼ç¶ãï¼==
+ *	59: ini_sem(SEM1)						... (I)
+ *	== TASK2ï¼ç¶ãï¼==
+ *	60: ext_tsk() -> noreturn
+ *	== TASK1ï¼ç¶ãï¼==
+ *	61: END
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_sem1.h"
+
+/* DO NOT DELETE THIS LINE -- gentest depends on it. */
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(9);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	check_point(10);
+	ercd = iwup_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(11);
+	return;
+
+	check_point(0);
+}
+
+void
+task1(intptr_t exinf)
+{
+	ER_UINT	ercd;
+	T_RSEM	rsem;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	ercd = ref_sem(SEM1, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 1);
+
+	ercd = ref_sem(SEM2, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 2);
+
+	ercd = ref_sem(SEM3, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 0);
+
+	check_point(2);
+	ercd = loc_cpu();
+	check_ercd(ercd, E_OK);
+
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = unl_cpu();
+	check_ercd(ercd, E_OK);
+
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	ercd = chg_ipm(TMAX_INTPRI);
+	check_ercd(ercd, E_OK);
+
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = chg_ipm(TIPM_ENAALL);
+	check_ercd(ercd, E_OK);
+
+	ercd = sig_sem(0);
+	check_ercd(ercd, E_ID);
+
+	ercd = wai_sem(0);
+	check_ercd(ercd, E_ID);
+
+	ercd = sig_sem(TNUM_SEMID+1);
+	check_ercd(ercd, E_ID);
+
+	ercd = wai_sem(TNUM_SEMID+1);
+	check_ercd(ercd, E_ID);
+
+	check_point(3);
+	ercd = act_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_point(4);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(12);
+	ercd = act_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(14);
+	ercd = ref_sem(SEM1, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TASK3);
+
+	check_assert(rsem.semcnt == 0);
+
+	check_point(15);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(16);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(18);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(19);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(20);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(22);
+	ercd = sus_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(23);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(24);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(25);
+	ercd = sig_sem(SEM1);
+	check_ercd(ercd, E_QOVR);
+
+	check_point(26);
+	ercd = ref_sem(SEM1, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 1);
+
+	check_point(27);
+	ercd = rsm_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(32);
+	ercd = sig_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(34);
+	ercd = sig_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(35);
+	ercd = sig_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(36);
+	ercd = ref_sem(SEM2, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 2);
+
+	check_point(37);
+	ercd = sig_sem(SEM2);
+	check_ercd(ercd, E_QOVR);
+
+	check_point(38);
+	ercd = ref_sem(SEM2, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 2);
+
+	check_point(39);
+	ercd = tslp_tsk(10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(41);
+	ercd = act_tsk(TASK4);
+	check_ercd(ercd, E_OK);
+
+	check_point(42);
+	ercd = act_tsk(TASK5);
+	check_ercd(ercd, E_OK);
+
+	check_point(43);
+	ercd = rot_rdq(TPRI_SELF);
+	check_ercd(ercd, E_OK);
+
+	check_point(46);
+	ercd = sig_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(48);
+	ercd = sig_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(49);
+	ercd = tslp_tsk(10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(51);
+	ercd = sig_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(52);
+	ercd = tslp_tsk(10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(54);
+	ercd = sig_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(55);
+	ercd = tslp_tsk(10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(57);
+	ercd = rel_wai(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(59);
+	ercd = ini_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_finish(61);
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER_UINT	ercd;
+	T_RSEM	rsem;
+
+	check_point(13);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(17);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(21);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(28);
+	ercd = wai_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(29);
+	ercd = ref_sem(SEM2, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 1);
+
+	check_point(30);
+	ercd = wai_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(31);
+	ercd = wai_sem(SEM2);
+	check_ercd(ercd, E_OK);
+
+	check_point(33);
+	ercd = wai_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(47);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_RLWAI);
+
+	check_point(58);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_DLT);
+
+	check_point(60);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
+
+void
+task3(intptr_t exinf)
+{
+	ER_UINT	ercd;
+	T_RSEM	rsem;
+
+	check_point(5);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(6);
+	ercd = ref_sem(SEM1, &rsem);
+	check_ercd(ercd, E_OK);
+
+	check_assert(rsem.wtskid == TSK_NONE);
+
+	check_assert(rsem.semcnt == 0);
+
+	check_point(7);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	check_point(8);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(40);
+	ercd = wai_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(56);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
+
+void
+task4(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(44);
+	ercd = wai_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(50);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
+
+void
+task5(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(45);
+	ercd = wai_sem(SEM3);
+	check_ercd(ercd, E_OK);
+
+	check_point(53);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem1.cfg	(revision 313)
@@ -0,0 +1,23 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã»ããã©æ©è½ã®ãã¹ã(1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_sem1.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task2, HIGH_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK3, { TA_NULL, 3, task3, LOW_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK4, { TA_NULL, 4, task4, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK5, { TA_NULL, 5, task5, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_ALM(ALM1, { TA_NULL, 1, alarm1_handler });
+CRE_SEM(SEM1, { TA_NULL, 1, 1 });
+CRE_SEM(SEM2, { TA_NULL, 2, 2 });
+CRE_SEM(SEM3, { TA_TPRI, 0, 1 });
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem1.h	(revision 313)
@@ -0,0 +1,94 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã»ããã©æ©è½ã®ãã¹ã(1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åªå
+åº¦ã®å®ç¾©
+ */
+#define HIGH_PRIORITY	9		/* é«åªå
+åº¦ */
+#define MID_PRIORITY	10		/* ä¸­åªå
+åº¦ */
+#define LOW_PRIORITY	11		/* ä½åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task1(intptr_t exinf);
+extern void	task2(intptr_t exinf);
+extern void	task3(intptr_t exinf);
+extern void	task4(intptr_t exinf);
+extern void	task5(intptr_t exinf);
+extern void	alarm1_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem2.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem2.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem2.c	(revision 313)
@@ -0,0 +1,522 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã»ããã©æ©è½ã®ãã¹ã(2)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  isig_semãï¼sig_semã¨ã®éããä¸­å¿ã«ãã¹ãããï¼
+ *  pol_semï¼twai_semãï¼wai_semã¨ã®éããä¸­å¿ã«ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *	(A) isig_semã®éçã¨ã©ã¼ã®ãã¹ã
+ *		(A-1) ã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+ *		(A-2) CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+ *	(B) isig_semã«ããã»ããã©å¾
+ã¡ç¶æ
+ã®ã¿ã¹ã¯ãå¾
+ã¡è§£é¤ããã
+ *		(B-1) ã¢ã¤ãã«ç¶æ
+ããï¼å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ã«åãæãã
+ *		(B-2) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ããï¼å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ã«åãæãã
+ *		(B-3) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼åãæãããªã
+ *		(B-4) å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ãå¼·å¶å¾
+ã¡ç¶æ
+ã§ï¼åãæãããªã
+ *		(B-5) å¾
+ã¡è§£é¤ãããã¿ã¹ã¯ãåªå
+åº¦ãä½ãï¼åãæãããªã
+ *	(C) pol_semã®éçã¨ã©ã¼ã®ãã¹ã
+ *		(C-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+ *		(C-2) CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+ *		(C-3) ãã£ã¹ãããç¦æ­¢ç¶æ
+ããã®å¼åºãï¼E_CTXã¨ã©ã¼ã«ãªããªãï¼
+ *		(C-4) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+ããã®å¼åºãï¼E_CTXã¨ã©ã¼
+ *		      ã«ãªããªãï¼
+ *	(D) pol_semã§ãã¼ãªã³ã°å¤±æãã
+ *	(E) twai_semã®éçã¨ã©ã¼ã®ãã¹ã
+ *		(E-1) éã¿ã¹ã¯ã³ã³ãã­ã¹ãããã®å¼åºã
+ *		(E-2) CPUã­ãã¯ç¶æ
+ããã®å¼åºã
+ *		(E-3) ãã£ã¹ãããç¦æ­¢ç¶æ
+ããã®å¼åºã
+ *		(E-4) å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã§ãªãç¶æ
+ããã®å¼åºã
+ *		(E-5) tmoutãä¸æ­£
+ *	(F) twai_semã§tmout=TMO_POLã®æã«ãã¼ãªã³ã°å¤±æãã
+ *	(G) twai_semã§tmout=TMO_FEVRã®æã«ã»ããã©å¾
+ã¡ç¶æ
+ã«ãªã
+ *	(H) twai_semã§tmoutã«ã¿ã¤ã ã¢ã¦ããè¨­å®ããæã«ï¼ã¿ã¤ã ã¢ã¦ãä»ãã®
+ *		ã»ããã©å¾
+ã¡ç¶æ
+ã«ãªã
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: ä¸­åªå
+åº¦ã¿ã¹ã¯ï¼TA_ACTå±æ§
+ *	TASK2: é«åªå
+åº¦ã¿ã¹ã¯
+ *	TASK3: ä½åªå
+åº¦ã¿ã¹ã¯
+ *	TASK4: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	TASK5: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	ALM1:  ã¢ã©ã¼ã ãã³ãã©
+ *  SEM1:  TA_NULLå±æ§ï¼åæè³æºæ°1ï¼æå¤§è³æºæ°1
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *  1:	isig_sem(SEM1) -> E_CTX				... (A-1)
+ *	2:	loc_cpu()
+ *		pol_sem(SEM1) -> E_CTX				... (C-2)
+ *		twai_sem(SEM1, TMO_POL) -> E_CTX	... (E-2)
+ *		unl_cpu()
+ *	3:	dis_dsp()
+ *		pol_sem(SEM1)						... (C-3)
+ *		twai_sem(SEM1, TMO_POL) -> E_CTX	... (E-3)
+ *		ena_dsp()
+ *	4:	chg_ipm(TMAX_INTPRI)
+ *		pol_sem(SEM1) -> E_TMOUT			... (C-4)(D)
+ *		twai_sem(SEM1, TMO_POL) -> E_CTX	... (E-4)
+ *		chg_ipm(TIPM_ENAALL)
+ *	5:	twai_sem(SEM1, -2) -> E_PAR			... (E-5)
+ *		twai_sem(SEM1, TMO_POL) -> E_TMOUT	... (F)
+ *	6:	sta_alm(ALM1, 10)
+ *	7:	twai_sem(SEM1, TMO_FEVR)			... (G)
+ *	== ALM1-1 ==
+ *	8:	pol_sem(SEM1) -> E_CTX				... (C-1)
+ *		twai_sem(SEM1, TMO_POL) -> E_CTX	... (E-1)
+ *	9:	iloc_cpu()
+ *		isig_sem(SEM1) -> E_CTX				... (A-2)
+ *		iunl_cpu()
+ *	10:	isig_sem(SEM1)						... (B-1)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	11:	act_tsk(TASK3)
+ *	12:	wai_sem(SEM1)
+ *	== TASK3ï¼åªå
+åº¦ï¼ä½ï¼==
+ *	13:	sta_alm(ALM1, 10)
+ *		call(wait_var())
+ *	== ALM1-2 ==
+ *	14:	isig_sem(SEM1)						... (B-2)
+ *		call(signal_var())
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	15:	wai_sem(SEM1)
+ *	== TASK3ï¼ç¶ãï¼==
+ *	16:	sta_alm(ALM1, 10)
+ *		dis_dsp()
+ *		call(wait_var())
+ *	== ALM1-3 ==
+ *	17:	isig_sem(SEM1)						... (B-3)
+ *		call(signal_var())
+ *		RETURN
+ *	== TASK3ï¼ç¶ãï¼==
+ *	18:	ena_dsp()
+ *	== TASK1ï¼ç¶ãï¼==
+ *	19:	wai_sem(SEM1)
+ *	== TASK3ï¼ç¶ãï¼==
+ *	20:	sta_alm(ALM1, 10)
+ *		sus_tsk(TASK1)
+ *		call(wait_var())
+ *	== ALM1-4 ==
+ *	21:	isig_sem(SEM1)						... (B-4)
+ *		call(signal_var())
+ *		RETURN
+ *	== TASK3ï¼ç¶ãï¼==
+ *	22:	rsm_tsk(TASK1)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	23:	act_tsk(TASK2)
+ *	== TASK2ï¼åªå
+åº¦ï¼é«ï¼==
+ *	24:	tslp_tsk(10) -> E_TMOUT
+ *	== TASK1ï¼ç¶ãï¼==
+ *	25:	wai_sem(SEM1)
+ *	== TASK3ï¼ç¶ãï¼==
+ *	26:	ext_tsk() -> noreturn
+ *	== TASK2ï¼ç¶ãï¼==
+ *	27:	sta_alm(ALM1, 10)
+ *		call(wait_var())
+ *	== ALM1-5 ==
+ *	28:	isig_sem(SEM1)						... (B-5)
+ *		call(signal_var())
+ *		RETURN
+ *	== TASK2ï¼ç¶ãï¼==
+ *	29:	ext_tsk() -> noreturn
+ *	== TASK1ï¼ç¶ãï¼==
+ *	30:	sta_alm(ALM1, 10)
+ *	31:	twai_sem(SEM1, 100) -> E_RLWAI
+ *	== ALM1-6 ==
+ *	32:	irel_wai(TASK1)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	33:	sta_alm(ALM1, 100)
+ *	34:	twai_sem(SEM1, 10) -> E_TMOUT		... (H)
+ *	35:	stp_alm(ALM1)
+ *	36:	END
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_sem2.h"
+
+static volatile bool_t	flagvar;
+
+static void
+wait_var(void)
+{
+	flagvar = false;
+	while (!flagvar);
+}
+
+static void
+signal_var(void)
+{
+	flagvar = true;
+}
+
+/* DO NOT DELETE THIS LINE -- gentest depends on it. */
+
+static uint_t	alarm1_count = 0;
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	switch (++alarm1_count) {
+	case 1:
+		check_point(8);
+		ercd = pol_sem(SEM1);
+		check_ercd(ercd, E_CTX);
+
+		ercd = twai_sem(SEM1, TMO_POL);
+		check_ercd(ercd, E_CTX);
+
+		check_point(9);
+		ercd = iloc_cpu();
+		check_ercd(ercd, E_OK);
+
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_CTX);
+
+		ercd = iunl_cpu();
+		check_ercd(ercd, E_OK);
+
+		check_point(10);
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_OK);
+
+		return;
+
+		check_point(0);
+
+	case 2:
+		check_point(14);
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_OK);
+
+		signal_var();
+
+		return;
+
+		check_point(0);
+
+	case 3:
+		check_point(17);
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_OK);
+
+		signal_var();
+
+		return;
+
+		check_point(0);
+
+	case 4:
+		check_point(21);
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_OK);
+
+		signal_var();
+
+		return;
+
+		check_point(0);
+
+	case 5:
+		check_point(28);
+		ercd = isig_sem(SEM1);
+		check_ercd(ercd, E_OK);
+
+		signal_var();
+
+		return;
+
+		check_point(0);
+
+	case 6:
+		check_point(32);
+		ercd = irel_wai(TASK1);
+		check_ercd(ercd, E_OK);
+
+		return;
+
+		check_point(0);
+
+	default:
+		check_point(0);
+	}
+	check_point(0);
+}
+
+void
+task1(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	ercd = isig_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	check_point(2);
+	ercd = loc_cpu();
+	check_ercd(ercd, E_OK);
+
+	ercd = pol_sem(SEM1);
+	check_ercd(ercd, E_CTX);
+
+	ercd = twai_sem(SEM1, TMO_POL);
+	check_ercd(ercd, E_CTX);
+
+	ercd = unl_cpu();
+	check_ercd(ercd, E_OK);
+
+	check_point(3);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	ercd = pol_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	ercd = twai_sem(SEM1, TMO_POL);
+	check_ercd(ercd, E_CTX);
+
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(4);
+	ercd = chg_ipm(TMAX_INTPRI);
+	check_ercd(ercd, E_OK);
+
+	ercd = pol_sem(SEM1);
+	check_ercd(ercd, E_TMOUT);
+
+	ercd = twai_sem(SEM1, TMO_POL);
+	check_ercd(ercd, E_CTX);
+
+	ercd = chg_ipm(TIPM_ENAALL);
+	check_ercd(ercd, E_OK);
+
+	check_point(5);
+	ercd = twai_sem(SEM1, -2);
+	check_ercd(ercd, E_PAR);
+
+	ercd = twai_sem(SEM1, TMO_POL);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(6);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	check_point(7);
+	ercd = twai_sem(SEM1, TMO_FEVR);
+	check_ercd(ercd, E_OK);
+
+	check_point(11);
+	ercd = act_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_point(12);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(15);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(19);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(23);
+	ercd = act_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(25);
+	ercd = wai_sem(SEM1);
+	check_ercd(ercd, E_OK);
+
+	check_point(30);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	check_point(31);
+	ercd = twai_sem(SEM1, 100);
+	check_ercd(ercd, E_RLWAI);
+
+	check_point(33);
+	ercd = sta_alm(ALM1, 100);
+	check_ercd(ercd, E_OK);
+
+	check_point(34);
+	ercd = twai_sem(SEM1, 10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(35);
+	ercd = stp_alm(ALM1);
+	check_ercd(ercd, E_OK);
+
+	check_finish(36);
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(24);
+	ercd = tslp_tsk(10);
+	check_ercd(ercd, E_TMOUT);
+
+	check_point(27);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	wait_var();
+
+	check_point(29);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
+
+void
+task3(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(13);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	wait_var();
+
+	check_point(16);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	wait_var();
+
+	check_point(18);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(20);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	ercd = sus_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	wait_var();
+
+	check_point(22);
+	ercd = rsm_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(26);
+	ercd = ext_tsk();
+
+	check_point(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem2.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem2.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem2.cfg	(revision 313)
@@ -0,0 +1,20 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã»ããã©æ©è½ã®ãã¹ã(2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_sem2.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task2, HIGH_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK3, { TA_NULL, 3, task3, LOW_PRIORITY, STACK_SIZE, NULL });
+CRE_ALM(ALM1, { TA_NULL, 1, alarm1_handler });
+CRE_SEM(SEM1, { TA_NULL, 1, 1 });
+CRE_SEM(SEM2, { TA_TPRI, 0, 1 });
Index: rubycfg_asp/trunk/asp_dcre/test/test_sem2.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sem2.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sem2.h	(revision 313)
@@ -0,0 +1,92 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2008 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã»ããã©æ©è½ã®ãã¹ã(2)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åªå
+åº¦ã®å®ç¾©
+ */
+#define HIGH_PRIORITY	9		/* é«åªå
+åº¦ */
+#define MID_PRIORITY	10		/* ä¸­åªå
+åº¦ */
+#define LOW_PRIORITY	11		/* ä½åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task1(intptr_t exinf);
+extern void	task2(intptr_t exinf);
+extern void	task3(intptr_t exinf);
+extern void	alarm1_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.c	(revision 313)
@@ -0,0 +1,278 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã·ã¹ãã ç¶æ
+ã«é¢ãããã¹ã(1)
+ *
+ *  ãã¹ãã·ã¼ã±ã³ã¹ï¼
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼10ï¼==
+ *	1:	åæç¶æ
+ã®ãã§ãã¯
+ *	2:	loc_cpu() ... ã·ã¹ãã ç¶æ
+ãã©ã³ãã ã«å¤åããã
+ *		chg_ipm(TMAX_INTPRI) -> E_CTX
+ *	3:	unl_cpu()
+ *	4:	chg_ipm(TMAX_INTPRI)
+ *	5:	dis_dsp()
+ *	6:	ena_tex()
+ *	7:	chg_ipm(TIPM_ENAALL)
+ *	8:	ena_dsp()
+ *	9:	dis_tex()
+ *	10:	dis_dsp() ... ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå¼ã³åºãæºå
+ *		ena_tex()
+ *	11:	ras_tex(TSK_SELF, 0x0001)
+ *	== TASK1ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ï¼1åç®ï¼==
+ *	12:	åæç¶æ
+ã®ãã§ãã¯
+ *	13:	ena_dsp() ... 3ã¤ã®ç¶æ
+ãå¤åããï¼ãªã¿ã¼ã³ã§å
+ã«ãã©ããèª¿ã¹ã
+ *		chg_ipm(TMIN_INTPRI)
+ *		ena_tex()
+ *		ãªã¿ã¼ã³
+ *	== TASK1ï¼ç¶ãï¼==
+ *	14:	æ»ã£ã¦ããç¶æ
+ã®ãã§ãã¯
+ *	15:	loc_cpu() ... CPUã­ãã¯ç¶æ
+ã®ã¾ã¾ã¿ã¹ã¯ãçµäºããã
+ *	16:	ãªã¿ã¼ã³ï¼ï¼ã¿ã¹ã¯çµäºï¼
+ *	== TASK2ï¼åªå
+åº¦ï¼10ï¼	==
+ *	17:	åæç¶æ
+ã®ãã§ãã¯
+ *	18:	çµäº
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_sysstat1.h"
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	ER		ercd;
+
+	switch (texptn) {
+	case 0x0001:
+		check_point(12);
+		check_state(false, false, TIPM_ENAALL, true, true, true);
+
+		/*
+		 *  ãã£ã¹ãããè¨±å¯ï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å¤æ´ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+		 */
+		check_point(13);
+		ercd = ena_dsp();
+		check_ercd(ercd, E_OK);
+		ercd = chg_ipm(TMIN_INTPRI);
+		check_ercd(ercd, E_OK);
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+		check_state(false, false, TMIN_INTPRI, false, true, false);
+		break;
+
+	default:
+		check_point(0);
+		break;
+	}
+}
+
+void
+task1(intptr_t exinf)
+{
+	ER		ercd;
+
+	test_start(__FILE__);
+
+	/*
+	 *  åæç¶æ
+ã®ãã§ãã¯
+	 */
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	/*
+	 *  CPUã­ãã¯ç¶æ
+ã®ãã§ãã¯
+	 */
+	check_point(2);
+	ercd = loc_cpu();
+	check_ercd(ercd, E_OK);
+	check_state(false, true, TIPM_ENAALL, false, true, true);
+
+	/*
+	 *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å¤æ´ã®ãã§ãã¯
+	 */
+	ercd = chg_ipm(TMAX_INTPRI);
+	check_ercd(ercd, E_CTX);
+	check_state(false, true, TIPM_ENAALL, false, true, true);
+
+	/*
+	 *  CPUã­ãã¯è§£é¤ã®ãã§ãã¯
+	 */
+	check_point(3);
+	ercd = unl_cpu();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	/*
+	 *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å¤æ´ã®ãã§ãã¯
+	 */
+	check_point(4);
+	ercd = chg_ipm(TMAX_INTPRI);
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TMAX_INTPRI, false, true, true);
+
+	/*
+	 *  ãã£ã¹ãããç¦æ­¢ã®ãã§ãã¯
+	 */
+	check_point(5);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TMAX_INTPRI, true, true, true);
+
+	/*
+	 *  ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ã®ãã§ãã¯
+	 */
+	check_point(6);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TMAX_INTPRI, true, true, false);
+
+	/*
+	 *  å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ã®ãã§ãã¯
+	 */
+	check_point(7);
+	ercd = chg_ipm(TIPM_ENAALL);
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	/*
+	 *  ãã£ã¹ãããè¨±å¯ã®ãã§ãã¯
+	 */
+	check_point(8);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TIPM_ENAALL, false, false, false);
+
+	/*
+	 *  ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢ã®ãã§ãã¯
+	 */
+	check_point(9);
+	ercd = dis_tex();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	/*
+	 *  ãã£ã¹ãããç¦æ­¢ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+	 */
+	check_point(10);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	/*
+	 *  ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±
+	 */
+	check_point(11);
+	ercd = ras_tex(TSK_SELF, 0x0001);
+	/* ããã§ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãåä½ãã */
+	check_ercd(ercd, E_OK);
+
+	/*
+	 *  ã¿ã¹ã¯ä¾å¤å¦çããã®ãªã¿ã¼ã³ã«ããå
+ã®ç¶æ
+ã«æ»ã£ã¦ãããã¨ã
+	 *  ãã§ãã¯
+	 */
+	check_point(14);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	/*
+	 *  CPUã­ãã¯ç¶æ
+ã«
+	 */
+	check_point(15);
+	ercd = loc_cpu();
+	check_ercd(ercd, E_OK);
+
+	/*
+	 *  ãã®ã¾ã¾ã¿ã¹ã¯çµäº
+	 */
+	check_point(16);
+}
+
+void
+task2(intptr_t exinf)
+{
+	/*
+	 *  åæç¶æ
+ã®ãã§ãã¯
+	 */
+	check_point(17);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_finish(18);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.cfg	(revision 313)
@@ -0,0 +1,19 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã·ã¹ãã ç¶æ
+ã«é¢ãããã¹ã(1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_sysstat1.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, TASK1_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK1, { TA_NULL, tex_task1 });
+
+CRE_TSK(TASK2, { TA_ACT, 2, task2, TASK2_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_sysstat1.h	(revision 313)
@@ -0,0 +1,91 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006,2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã·ã¹ãã ç¶æ
+ã«é¢ãããã¹ã(1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK1_PRIORITY	10		/* ã¿ã¹ã¯1ã®åªå
+åº¦ */
+#define TASK2_PRIORITY	10		/* ã¿ã¹ã¯2ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	tex_task1(TEXPTN texptn, intptr_t exinf);
+extern void	task1(intptr_t exinf);
+
+extern void	task2(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_task1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_task1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_task1.c	(revision 313)
@@ -0,0 +1,448 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®ãã¹ã(1)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  make_runnableã¨make_non_runnableãç¶²ç¾
+çã«ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *	(A) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãããé«ãåªå
+åº¦ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«ãã
+ *		(A-1) ãã£ã¹ãããä¿çç¶æ
+ã§ã¯ãªãå ´å
+ *		(A-2) ãã£ã¹ãããä¿çç¶æ
+ã®å ´å
+ *	(B) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ã¨åãåªå
+åº¦ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«ãã
+ *		ï¼åãåªå
+åº¦ã®ã¿ã¹ã¯ã®ä¸­ã®æ«å°¾ã«å
+¥ããã¨ãç¢ºèªãã
+ *	(C) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãããä½ãåªå
+åº¦ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«ãã
+ *		ï¼åãåªå
+åº¦ã®ã¿ã¹ã¯ã®ä¸­ã®æ«å°¾ã«å
+¥ããã¨ãç¢ºèªãã
+ *	(D) å®è¡ã§ããç¶æ
+ã®ã¿ã¹ã¯ããªãç¶æ
+ã§ï¼ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã«ãã
+ *		ï¼ãã®å ´åã¯ï¼ãã£ã¹ãããä¿çç¶æ
+ã§ã¯ãªã
+ *	(E) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼å®è¡ç¶æ
+ã«ãªãã¹ãã ãå®è¡å¯è½ç¶æ
+ã¿ã¹
+ *		ã¯ãããé«ãåªå
+åº¦ã®ã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã«ãã
+ *	(F) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼å®è¡ç¶æ
+ã«ãªãã¹ãã ãå®è¡å¯è½ç¶æ
+ã¿ã¹
+ *		ã¯ã¨åãåªå
+åº¦ã®ã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã«ãã
+ *	(G) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼å®è¡ç¶æ
+ã«ãªãã¹ãã ãå®è¡å¯è½ç¶æ
+ã¿ã¹
+ *		ã¯ãããä½ãåªå
+åº¦ã®ã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã«ãã
+ *	(H) å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã§ãªãã
+ *		(H-1) å®è¡ã§ããç¶æ
+ã®ã¿ã¹ã¯ããªããªãå ´å
+ *		(H-2) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªãå ´å
+ *		(H-3) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªããªãå ´å
+ *	(I) å®è¡å¯è½ç¶æ
+ã®ã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã§ãªãã
+ *		(I-1) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªãå ´å
+ *		(I-2) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªããªãå ´å
+ *	(J) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼å®è¡ç¶æ
+ã«ãªãã¹ãã ãå®è¡å¯è½ç¶æ
+ã¨ãªã£
+ *		ã¦ããã¿ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã§ãªãã
+ *		(J-1) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªãå ´å
+ *		(J-2) åä¸åªå
+åº¦ã®ã¿ã¹ã¯ããªããªããªãå ´å
+ *	(K) ãã£ã¹ãããä¿çç¶æ
+ã§ï¼å®è¡å¯è½ç¶æ
+ã«ãªãã¹ãã ãå®è¡ç¶æ
+ã®ã¿
+ *		ã¹ã¯ãï¼å®è¡ã§ããç¶æ
+ã§ãªãã
+ *		ï¼ãã£ã¹ãããä¿çã§ã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ãå®è¡ã§ããç¶æ
+ã§ãªã
+ *		ãªããããªé·ç§»ãèµ·ãããã¨ãã§ããªãããï¼ãã®ç¶æ³ã¯èµ·ãããªãï¼
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: ä¸­åªå
+åº¦ã¿ã¹ã¯ï¼ã¡ã¤ã³ã¿ã¹ã¯ï¼æåããèµ·å
+ *	TASK2: é«åªå
+åº¦ã¿ã¹ã¯
+ *	TASK3: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	TASK4: ä¸­åªå
+åº¦ã¿ã¹ã¯
+ *	TASK5: ä½åªå
+åº¦ã¿ã¹ã¯
+ *	TASK6: ä½åªå
+åº¦ã¿ã¹ã¯
+ *	ALM1:  ã¢ã©ã¼ã ãã³ãã©
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *	1:	act_tsk(TASK2)					... (A-1)
+ *	== TASK2ï¼åªå
+åº¦ï¼é«ï¼==
+ *	2:	slp_tsk()						... (H-2)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	3:	act_tsk(TASK3)					... (B)
+ *	4:	act_tsk(TASK4)					... (B)
+ *	5:	slp_tsk()						... (H-3)
+ *	== TASK3ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *	6:	slp_tsk()						... (H-3)
+ *	== TASK4ï¼åªå
+åº¦ï¼ä¸­ï¼==
+ *	7:	wup_tsk(TASK1)
+ *	8:	slp_tsk()						... (H-3)
+ *	== TASK1ï¼ç¶ãï¼==
+ *	9:	act_tsk(TASK5)					... (C)
+ *	10:	act_tsk(TASK6)					... (C)
+ *	11:	sus_tsk(TASK6)					... (I-2)
+ *	12:	sus_tsk(TASK5)					... (I-1)
+ *	13:	rsm_tsk(TASK5)					... (C)
+ *	14:	rsm_tsk(TASK6)					... (C)
+ *	15:	slp_tsk()						... (H-2)
+ *	== TASK5ï¼åªå
+åº¦ï¼ä½ï¼==
+ *	16:	slp_tsk()						... (H-3)
+ *	== TASK6ï¼åªå
+åº¦ï¼ä½ï¼==
+ *	17:	dis_dsp()
+ *	18:	wup_tsk(TASK1)					... (A-2)
+ *	19:	wup_tsk(TASK2)					... (E)
+ *	20:	sus_tsk(TASK2)					... (J-1)
+ *	21:	wup_tsk(TASK3)					... (F)
+ *	22:	wup_tsk(TASK4)					... (F)
+ *	23:	sus_tsk(TASK1)					... (J-2)
+ *	24:	ena_dsp()
+ *	== TASK3ï¼ç¶ãï¼==
+ *	25:	slp_tsk()						... (H-3)
+ *	== TASK4ï¼ç¶ãï¼==
+ *	26:	slp_tsk()						... (H-2)
+ *	== TASK6ï¼ç¶ãï¼==
+ *	27:	dis_dsp()
+ *	28:	rsm_tsk(TASK1)					... (A-2)
+ *	29:	wup_tsk(TASK5)					... (G)
+ *	30:	ena_dsp()
+ *	== TASK1ï¼ç¶ãï¼==
+ *	31:	slp_tsk()						... (H-2)
+ *	== TASK6ï¼ç¶ãï¼==
+ *	32:	slp_tsk()						... (H-3)
+ *	== TASK5ï¼ç¶ãï¼==
+ *	33:	sta_alm(ALM1, 10)
+ *	34:	slp_tsk()						... (H-1)
+ *	== ALM1 ==
+ *	35:	iget_tid(&tskid)
+ *		assert(tskid == TSK_NONE)
+ *	36:	iwup_tsk(TASK1)					... (D)
+ *	37:	RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	38: END
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_task1.h"
+
+/* DO NOT DELETE THIS LINE -- gentest depends on it. */
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	ID		tskid;
+	ER_UINT	ercd;
+
+	check_point(35);
+	ercd = iget_tid(&tskid);
+	check_ercd(ercd, E_OK);
+
+	check_assert(tskid == TSK_NONE);
+
+	check_point(36);
+	ercd = iwup_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(37);
+	return;
+
+	check_point(0);
+}
+
+void
+task1(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	ercd = act_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(3);
+	ercd = act_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_point(4);
+	ercd = act_tsk(TASK4);
+	check_ercd(ercd, E_OK);
+
+	check_point(5);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(9);
+	ercd = act_tsk(TASK5);
+	check_ercd(ercd, E_OK);
+
+	check_point(10);
+	ercd = act_tsk(TASK6);
+	check_ercd(ercd, E_OK);
+
+	check_point(11);
+	ercd = sus_tsk(TASK6);
+	check_ercd(ercd, E_OK);
+
+	check_point(12);
+	ercd = sus_tsk(TASK5);
+	check_ercd(ercd, E_OK);
+
+	check_point(13);
+	ercd = rsm_tsk(TASK5);
+	check_ercd(ercd, E_OK);
+
+	check_point(14);
+	ercd = rsm_tsk(TASK6);
+	check_ercd(ercd, E_OK);
+
+	check_point(15);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(31);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_finish(38);
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(2);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task3(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(6);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(25);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task4(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(7);
+	ercd = wup_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(8);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(26);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task5(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(16);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(33);
+	ercd = sta_alm(ALM1, 10);
+	check_ercd(ercd, E_OK);
+
+	check_point(34);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
+
+void
+task6(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(17);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(18);
+	ercd = wup_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(19);
+	ercd = wup_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(20);
+	ercd = sus_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	check_point(21);
+	ercd = wup_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_point(22);
+	ercd = wup_tsk(TASK4);
+	check_ercd(ercd, E_OK);
+
+	check_point(23);
+	ercd = sus_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(24);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(27);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(28);
+	ercd = rsm_tsk(TASK1);
+	check_ercd(ercd, E_OK);
+
+	check_point(29);
+	ercd = wup_tsk(TASK5);
+	check_ercd(ercd, E_OK);
+
+	check_point(30);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(32);
+	ercd = slp_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_task1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_task1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_task1.cfg	(revision 313)
@@ -0,0 +1,21 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®ãã¹ã(1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_task1.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task2, HIGH_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK3, { TA_NULL, 3, task3, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK4, { TA_NULL, 4, task4, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK5, { TA_NULL, 5, task5, LOW_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK6, { TA_NULL, 6, task6, LOW_PRIORITY, STACK_SIZE, NULL });
+CRE_ALM(ALM1, { TA_NULL, 1, alarm1_handler });
Index: rubycfg_asp/trunk/asp_dcre/test/test_task1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_task1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_task1.h	(revision 313)
@@ -0,0 +1,95 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ç®¡çã¢ã¸ã¥ã¼ã«ã®ãã¹ã(1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åªå
+åº¦ã®å®ç¾©
+ */
+#define HIGH_PRIORITY	4		/* é«åªå
+åº¦ */
+#define MID_PRIORITY	9		/* ä¸­åªå
+åº¦ */
+#define LOW_PRIORITY	14		/* ä½åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task1(intptr_t exinf);
+extern void	task2(intptr_t exinf);
+extern void	task3(intptr_t exinf);
+extern void	task4(intptr_t exinf);
+extern void	task5(intptr_t exinf);
+extern void	task6(intptr_t exinf);
+extern void	alarm1_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex1.c	(revision 313)
@@ -0,0 +1,606 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(1)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  ã¿ã¹ã¯ããã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãèµ·åããå¦çãç¶²ç¾
+çã«ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *	(A) ras_texã®ã¨ã©ã¼æ¤åº
+ *		(A-1) å¯¾è±¡ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ï¼»NGKI1413ï¼½
+ *		(A-2) å¯¾è±¡ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1414ï¼½
+ *	(B) dis_texã®ã¨ã©ã¼æ¤åº
+ *		(B-1) èªã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1421ï¼½
+ *	(C) ena_texã®ã¨ã©ã¼æ¤åº
+ *		(C-1) èªã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1426ï¼½
+ *	(D) ref_texã®ã¨ã©ã¼æ¤åº
+ *		(D-1) å¯¾è±¡ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+ï¼»NGKI1439ï¼½
+ *		(D-2) å¯¾è±¡ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãï¼»NGKI1440ï¼½
+ *	(E) ras_texã®æ­£å¸¸å¦çï¼»NGKI1415ï¼½
+ *		(E-1) å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ï¼ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ï¼ãã¤å²è¾¼ã¿åªå
+
+ *			  åº¦ãã¹ã¯å
+¨è§£é¤ç¶æ
+ã§ï¼ããã«å®è¡éå§
+ *		(E-2) å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã§ãªã
+ *		(E-3) å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã ãï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢
+ *		(E-4) å¯¾è±¡ã¿ã¹ã¯ãèªã¿ã¹ã¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ã ãï¼å²è¾¼ã¿åªå
+
+ *			  åº¦ãã¹ã¯ãå
+¨è§£é¤ã§ãªã
+ *	(F) ena_texã®æ­£å¸¸å¦çï¼»NGKI1427ï¼½
+ *		(F-1) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ãããï¼ãã¤å²è¾¼ã¿åªå
+åº¦ãã¹ã¯å
+¨è§£é¤ç¶
+ *			  æ
+ã§ï¼ããã«å®è¡éå§
+ *		(F-2) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããªã
+ *		(F-3) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§
+ *			  ãªã
+ *	(G) chg_ipmã®æ­£å¸¸å¦ç
+ *		(G-1) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ãããï¼ãã¤ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯ã§ï¼ãã
+ *			  ã«å®è¡éå§
+ *		(G-2) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããªã
+ *		(G-3) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢
+ *		(G-4) ã¿ã¹ã¯ä¾å¤å¦çè¦æ±ããããï¼å²è¾¼ã¿åªå
+åº¦ãã¹ã¯ãå
+¨è§£é¤ã§
+ *			  ãªã
+ *	(H) ã¿ã¹ã¯ãã£ã¹ãããã£ã«ããèµ·å
+ *		(H-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦
+ *			  æ±ãã
+ *	(I) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®ãªã¿ã¼ã³ã«ããèµ·åï¼é£ç¶èµ·åï¼
+ *	(J) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®æ»ãæã«ããç¶æ
+å¾©å¸°
+ *		(J-1) ã¿ã¹ã¯ã«æ»ã£ã¦ããæ
+ *		(J-2) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãé£ç¶èµ·åãããæ
+ *	(K) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ã®å¤éèµ·å
+ *	(L) ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ããã®æ»ãæã®ã¿ã¹ã¯åæã
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: ã¡ã¤ã³ã®ã¿ã¹ã¯ï¼èªã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ãã
+ *	TASK2: ä»ã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ããå¯¾è±¡ã¿ã¹ã¯
+ *	TASK3: ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãã¿ã¹ã¯
+ *	TASK4: ä¼æ­¢ç¶æ
+ã®ã¿ã¹ã¯
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼10ï¼==
+ *	1:	state(false, false, TIPM_ENAALL, false, false, true)
+ *		ref_tex(TSK_SELF, &rtex)
+ *		assert((rtex.texstat & TTEX_DIS) != 0U)
+ *		assert(rtex.pndptn == 0U)
+ *		ras_tex(TASK3, 0x0001) -> E_OBJ		... (A-2)
+ *		ras_tex(TASK4, 0x0001) -> E_OBJ		... (A-1)
+ *		ref_tex(TASK3, &rtex) -> E_OBJ		... (D-2)
+ *		ref_tex(TASK4, &rtex) -> E_OBJ		... (D-1)
+ *	2:	ena_tex()							... (F-2)
+ *		state(false, false, TIPM_ENAALL, false, false, false)
+ *		ref_tex(TSK_SELF, &rtex)
+ *		assert((rtex.texstat & TTEX_ENA) != 0U)
+ *		assert(rtex.pndptn == 0U)
+ *	3:	ras_tex(TSK_SELF, 0x0001)			... (E-1)
+ *	== TASK1-TEX-1ï¼1åç®ï¼==
+ *	4:	assert(texptn == 0x0001)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *	5:	dis_dsp() ... 4ã¤ã®ç¶æ
+ãããããå¤åããã
+ *		chg_ipm(TMAX_INTPRI)
+ *		ena_tex()
+ *		loc_cpu()
+ *		state(false, true, TMAX_INTPRI, true, true, false)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	6:	state(false, false, TIPM_ENAALL, false, false, false)	... (J-1)
+ *	7:	dis_dsp() ... ãã£ã¹ãããç¦æ­¢ï¼ã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢
+ *		dis_tex()
+ *		state(false, false, TIPM_ENAALL, true, true, true)
+ *	8:	ras_tex(TASK1, 0x0002)				... (E-3)
+ *		ref_tex(TSK_SELF, &rtex)
+ *		assert((rtex.texstat & TTEX_DIS) != 0)
+ *		assert(rtex.pndptn == 0x0002)
+ *	9:	ena_tex()							... (F-1)
+ *	== TASK1-TEX-2ï¼2åç®ï¼==
+ *	10:	assert(texptn == 0x0002)
+ *		state(false, false, TIPM_ENAALL, true, true, true)
+ *	11:	ras_tex(TASK1, 0x0001)				... (E-3)
+ *		ras_tex(TASK1, 0x0002)				... (E-3)
+ *	12:	ena_dsp() ... 3ã¤ã®ç¶æ
+ãããããå¤åããã
+ *		chg_ipm(TMAX_INTPRI)
+ *		loc_cpu()
+ *		state(false, true, TMAX_INTPRI, false, true, true)
+ *		RETURN								... (I)
+ *	== TASK1-TEX-3ï¼3åç®ï¼==
+ *	13:	assert(texptn == 0x0003)
+ *		state(false, false, TIPM_ENAALL, true, true, true)	... (J-2)
+ *	14:	ena_dsp() ... ãã£ã¹ãããè¨±å¯ï¼ã¿ã¹ã¯ä¾å¤è¨±å¯
+ *		chg_ipm(TMAX_INTPRI)
+ *		ena_tex()
+ *		state(false, false, TMAX_INTPRI, false, true, false)
+ *		chg_ipm(TIPM_ENAALL)				... (G-2)
+ *		chg_ipm(TMAX_INTPRI)
+ *	15: ras_tex(TSK_SELF, 0x0004)			... (E-4)
+ *		chg_ipm(TMAX_INTPRI)				... (G-4)
+ *		dis_tex()
+ *		chg_ipm(TIPM_ENAALL)				... (G-3)
+ *		chg_ipm(TMAX_INTPRI)
+ *		ena_tex()							... (F-3)
+ *	16:	chg_ipm(TIPM_ENAALL)				... (G-1)(K)
+ *	== TASK1-TEX-4ï¼4åç®ï¼==
+ *	17:	assert(texptn == 0x0004)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *	18:	dis_dsp() ... 3ã¤ã®ç¶æ
+ãããããå¤åããã
+ *		chg_ipm(TMAX_INTPRI)
+ *		loc_cpu()
+ *		state(false, true, TMAX_INTPRI, true, true, true)
+ *		RETURN
+ *	== TASK1-TEX-3ï¼3åç®ç¶ãï¼==
+ *	19:	state(false, false, TIPM_ENAALL, false, false, false)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	20:	state(false, false, TIPM_ENAALL, true, true, false)	... (J-1)
+ *	21: ena_dsp()
+ *		rot_rdq(TPRI_SELF)
+ *	== TASK2ï¼åªå
+åº¦ï¼10ï¼	==
+ *	22:	state(false, false, TIPM_ENAALL, false, false, true)
+ *	23:	ena_tex()
+ *		state(false, false, TIPM_ENAALL, false, false, false)
+ *		rot_rdq(TPRI_SELF)
+ *	== TASK3ï¼åªå
+åº¦ï¼10ï¼	==
+ *	24:	state(false, false, TIPM_ENAALL, false, false, true)
+ *	25:	ena_tex() -> E_OBJ					... (C-1)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *	26:	dis_tex() -> E_OBJ					... (B-1)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *		ext_tsk()
+ *	== TASK1ï¼ç¶ãï¼==
+ *	27: ras_tex(TASK2, 0x0001)				... (E-2)
+ *		ref_tex(TASK2, &rtex)
+ *	28:	rot_rdq(TPRI_SELF)					... (H-1)
+ *	== TASK2-TEX-1ï¼1åç®ï¼==
+ *	29:	assert(texptn == 0x0001)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *		RETURN
+ *	== TASK2ï¼ç¶ãï¼==
+ *	30: ras_tex(TSK_SELF, 0x0002)
+ *	== TASK2-TEX-2ï¼2åç®ï¼==
+ *	31:	assert(texptn == 0x0002)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *	32:	dis_dsp()
+ *		rot_rdq(TPRI_SELF)
+ *	33:	RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	34:	RETURN
+ *	== TASK2ï¼ç¶ãï¼==
+ *	35:	END
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_tex1.h"
+
+/*
+ *  task4ã¨tex_task4ã¯çæãããªã
+ */
+
+void
+task4(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+tex_task4(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+/* DO NOT DELETE THIS LINE -- gentest depends on it. */
+
+void
+task1(intptr_t exinf)
+{
+	ER_UINT	ercd;
+	T_RTEX	rtex;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	ercd = ref_tex(TSK_SELF, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_assert((rtex.texstat & TTEX_DIS) != 0U);
+
+	check_assert(rtex.pndptn == 0U);
+
+	ercd = ras_tex(TASK3, 0x0001);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = ras_tex(TASK4, 0x0001);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = ref_tex(TASK3, &rtex);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = ref_tex(TASK4, &rtex);
+	check_ercd(ercd, E_OBJ);
+
+	check_point(2);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_state(false, false, TIPM_ENAALL, false, false, false);
+
+	ercd = ref_tex(TSK_SELF, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_assert((rtex.texstat & TTEX_ENA) != 0U);
+
+	check_assert(rtex.pndptn == 0U);
+
+	check_point(3);
+	ercd = ras_tex(TSK_SELF, 0x0001);
+	check_ercd(ercd, E_OK);
+
+	check_point(6);
+	check_state(false, false, TIPM_ENAALL, false, false, false);
+
+	check_point(7);
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	ercd = dis_tex();
+	check_ercd(ercd, E_OK);
+
+	check_state(false, false, TIPM_ENAALL, true, true, true);
+
+	check_point(8);
+	ercd = ras_tex(TASK1, 0x0002);
+	check_ercd(ercd, E_OK);
+
+	ercd = ref_tex(TSK_SELF, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_assert((rtex.texstat & TTEX_DIS) != 0);
+
+	check_assert(rtex.pndptn == 0x0002);
+
+	check_point(9);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(20);
+	check_state(false, false, TIPM_ENAALL, true, true, false);
+
+	check_point(21);
+	ercd = ena_dsp();
+	check_ercd(ercd, E_OK);
+
+	ercd = rot_rdq(TPRI_SELF);
+	check_ercd(ercd, E_OK);
+
+	check_point(27);
+	ercd = ras_tex(TASK2, 0x0001);
+	check_ercd(ercd, E_OK);
+
+	ercd = ref_tex(TASK2, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_point(28);
+	ercd = rot_rdq(TPRI_SELF);
+	check_ercd(ercd, E_OK);
+
+	check_point(34);
+	return;
+
+	check_point(0);
+}
+
+static uint_t	tex_task1_count = 0;
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	switch (++tex_task1_count) {
+	case 1:
+		check_point(4);
+		check_assert(texptn == 0x0001);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_point(5);
+		ercd = dis_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		ercd = loc_cpu();
+		check_ercd(ercd, E_OK);
+
+		check_state(false, true, TMAX_INTPRI, true, true, false);
+
+		return;
+
+		check_point(0);
+
+	case 2:
+		check_point(10);
+		check_assert(texptn == 0x0002);
+
+		check_state(false, false, TIPM_ENAALL, true, true, true);
+
+		check_point(11);
+		ercd = ras_tex(TASK1, 0x0001);
+		check_ercd(ercd, E_OK);
+
+		ercd = ras_tex(TASK1, 0x0002);
+		check_ercd(ercd, E_OK);
+
+		check_point(12);
+		ercd = ena_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = loc_cpu();
+		check_ercd(ercd, E_OK);
+
+		check_state(false, true, TMAX_INTPRI, false, true, true);
+
+		return;
+
+		check_point(0);
+
+	case 3:
+		check_point(13);
+		check_assert(texptn == 0x0003);
+
+		check_state(false, false, TIPM_ENAALL, true, true, true);
+
+		check_point(14);
+		ercd = ena_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		check_state(false, false, TMAX_INTPRI, false, true, false);
+
+		ercd = chg_ipm(TIPM_ENAALL);
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		check_point(15);
+		ercd = ras_tex(TSK_SELF, 0x0004);
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = dis_tex();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TIPM_ENAALL);
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		check_point(16);
+		ercd = chg_ipm(TIPM_ENAALL);
+		check_ercd(ercd, E_OK);
+
+		check_point(19);
+		check_state(false, false, TIPM_ENAALL, false, false, false);
+
+		return;
+
+		check_point(0);
+
+	case 4:
+		check_point(17);
+		check_assert(texptn == 0x0004);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_point(18);
+		ercd = dis_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = loc_cpu();
+		check_ercd(ercd, E_OK);
+
+		check_state(false, true, TMAX_INTPRI, true, true, true);
+
+		return;
+
+		check_point(0);
+
+	default:
+		check_point(0);
+	}
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(22);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(23);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_state(false, false, TIPM_ENAALL, false, false, false);
+
+	ercd = rot_rdq(TPRI_SELF);
+	check_ercd(ercd, E_OK);
+
+	check_point(30);
+	ercd = ras_tex(TSK_SELF, 0x0002);
+	check_ercd(ercd, E_OK);
+
+	check_finish(35);
+	check_point(0);
+}
+
+static uint_t	tex_task2_count = 0;
+
+void
+tex_task2(TEXPTN texptn, intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	switch (++tex_task2_count) {
+	case 1:
+		check_point(29);
+		check_assert(texptn == 0x0001);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		return;
+
+		check_point(0);
+
+	case 2:
+		check_point(31);
+		check_assert(texptn == 0x0002);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_point(32);
+		ercd = dis_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = rot_rdq(TPRI_SELF);
+		check_ercd(ercd, E_OK);
+
+		check_point(33);
+		return;
+
+		check_point(0);
+
+	default:
+		check_point(0);
+	}
+	check_point(0);
+}
+
+void
+task3(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(24);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(25);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OBJ);
+
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(26);
+	ercd = dis_tex();
+	check_ercd(ercd, E_OBJ);
+
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	ercd = ext_tsk();
+	check_ercd(ercd, E_OK);
+
+	check_point(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex1.cfg	(revision 313)
@@ -0,0 +1,24 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_tex1.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, TASK1_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK1, { TA_NULL, tex_task1 });
+
+CRE_TSK(TASK2, { TA_ACT, 2, task2, TASK2_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK2, { TA_NULL, tex_task2 });
+
+CRE_TSK(TASK3, { TA_ACT, 3, task3, TASK3_PRIORITY, STACK_SIZE, NULL });
+
+CRE_TSK(TASK4, { TA_NULL, 4, task4, TASK4_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK4, { TA_NULL, tex_task4 });
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex1.h	(revision 313)
@@ -0,0 +1,100 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006,2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK1_PRIORITY	10		/* ã¿ã¹ã¯1ã®åªå
+åº¦ */
+#define TASK2_PRIORITY	10		/* ã¿ã¹ã¯2ã®åªå
+åº¦ */
+#define TASK3_PRIORITY	10		/* ã¿ã¹ã¯3ã®åªå
+åº¦ */
+#define TASK4_PRIORITY	10		/* ã¿ã¹ã¯4ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	tex_task1(TEXPTN texptn, intptr_t exinf);
+extern void	task1(intptr_t exinf);
+
+extern void	tex_task2(TEXPTN texptn, intptr_t exinf);
+extern void	task2(intptr_t exinf);
+
+extern void	task3(intptr_t exinf);
+
+extern void	tex_task4(TEXPTN texptn, intptr_t exinf);
+extern void	task4(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex2.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex2.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex2.c	(revision 313)
@@ -0,0 +1,511 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007-2013 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(2)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  å²è¾¼ã¿ãã³ãã©ï¼ã¢ã©ã¼ã ãã³ãã©ï¼ããã³CPUä¾å¤ãã³ãã©ããã¿ã¹ã¯ä¾
+ *  å¤å¦çã«ã¼ãã³ãèµ·åããå¦çãç¶²ç¾
+çã«ãã¹ãããï¼
+ *
+ * ããã¹ãé 
+ç®ã
+ *
+ *	(A) iras_texã®ã¨ã©ã¼æ¤åº
+ *		(A-1) å¯¾è±¡ã¿ã¹ã¯ãä¼æ­¢ç¶æ
+
+ *		(A-2) å¯¾è±¡ã¿ã¹ã¯ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªã
+ *	(B) å²è¾¼ã¿ãã³ãã©ããå¼ã°ããiras_texã®æ­£å¸¸å¦ç
+ *		(B-1) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ãã¤ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+ *		(B-2) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ã§ãªã
+ *		(B-3) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ã ãã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢
+ *	(C) CPUä¾å¤ãã³ãã©ããå¼ã°ããiras_texã®æ­£å¸¸å¦ç
+ *		(C-1) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ãã¤ã¿ã¹ã¯ä¾å¤å¦çè¨±å¯
+ *		(C-2) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ã§ãªã
+ *		(C-3) å¯¾è±¡ã¿ã¹ã¯ãå®è¡ç¶æ
+ã®ã¿ã¹ã¯ã ãã¿ã¹ã¯ä¾å¤å¦çç¦æ­¢
+ *				â å®æ½ããªãï¼ã¿ã¼ã²ããéä¾å­ã«å®ç¾ã§ããªãï¼
+ *	(D) å²è¾¼ã¿ãã³ãã©ã®åºå£å¦çã«ããèµ·å
+ *		(D-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦
+ *			  æ±ãã
+ *	(E) CPUä¾å¤ãã³ãã©ã®åºå£å¦çã«ããèµ·å
+ *		(E-1) ãã£ã¹ãããå¾ã®ã¿ã¹ã¯ãã¿ã¹ã¯ä¾å¤è¨±å¯ã§ã¿ã¹ã¯ä¾å¤å¦çè¦
+ *			  æ±ãã
+ *	(F) sns_texã§å®è¡ç¶æ
+ã®ã¿ã¹ã¯ããªã
+ *
+ * ãä½¿ç¨ãªã½ã¼ã¹ã
+ *
+ *	TASK1: ã¡ã¤ã³ã®ã¿ã¹ã¯ï¼å®è¡ç¶æ
+ã®ã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ã
+ *		   ãå¯¾è±¡ã¿ã¹ã¯
+ *	TASK2: å®è¡ç¶æ
+ã§ãªãã¿ã¹ã¯ã«å¯¾ãã¦ã¿ã¹ã¯ä¾å¤å¦çãè¦æ±ããå¯¾è±¡ã¿ã¹ã¯
+ *	TASK3: ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³ãå®ç¾©ããã¦ããªãã¿ã¹ã¯
+ *	TASK4: ä¼æ­¢ç¶æ
+ã®ã¿ã¹ã¯
+ *	ALM1:  ã¢ã©ã¼ã ãã³ãã©1
+ *	ALM2:  ã¢ã©ã¼ã ãã³ãã©2
+ *	ALM3:  ã¢ã©ã¼ã ãã³ãã©3
+ *	CPUEXC: CPUä¾å¤ãã³ãã©
+ *
+ * ããã¹ãã·ã¼ã±ã³ã¹ã
+ *
+ *	== TASK1ï¼åªå
+åº¦ï¼10ï¼==
+ *	1:	state(false, false, TIPM_ENAALL, false, false, true)
+ *		ref_tex(TSK_SELF, &rtex)
+ *		assert((rtex.texstat & TTEX_DIS) != 0U)
+ *		assert(rtex.pndptn == 0U)
+ *	2:	sta_alm(ALM1, 1U)
+ *		DO(while (!(alm1_flag)))	... ã¢ã©ã¼ã ãã³ãã©1ã®å®è¡ãå¾
+ã¤
+ *	== ALM1 ==
+ *	3:	state_i(true, false, false, true, true)
+ *		iras_tex(TASK3, 0x0001) -> E_OBJ		... (A-2)
+ *		iras_tex(TASK4, 0x0001) -> E_OBJ		... (A-1)
+ *		iras_tex(TASK2, 0x0001)					... (B-2)
+ *		iras_tex(TASK1, 0x0001)					... (B-3)
+ *		DO(alm1_flag = true)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	4:	ena_tex()
+ *	== TASK1-TEX-1ï¼1åç®ï¼==
+ *	5:	assert(texptn == 0x0001)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *	6:	dis_dsp() ... 4ã¤ã®ç¶æ
+ãããããå¤åããã
+ *		chg_ipm(TMAX_INTPRI)
+ *		ena_tex()
+ *		loc_cpu()
+ *		state(false, true, TMAX_INTPRI, true, true, false)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	7:	state(false, false, TIPM_ENAALL, false, false, false)
+ *		ref_tex(TSK_SELF, &rtex)
+ *		assert((rtex.texstat & TTEX_ENA) != 0U)
+ *		assert(rtex.pndptn == 0U)
+ *	8:	sta_alm(ALM2, 1U)
+ *		DO(while (!(alm2_flag)))
+ *	== ALM2 ==
+ *	9:	state_i(true, false, false, true, false)
+ *		iras_tex(TASK1, 0x0002)					... (B-1)
+ *		DO(alm2_flag = true)
+ *		RETURN									... (D-1)
+ *	== TASK1-TEX-2ï¼2åç®ï¼==
+ *	10:	assert(texptn == 0x0002)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	11:	sus_tsk(TASK2)
+ *		sus_tsk(TASK3)
+ *	12:	sta_alm(ALM3, 10U)
+ *	13:	dly_tsk(50U)
+ *	== ALM3 ==
+ *	14:	state_i(true, false, false, true, true)	... (F)ï¼»sns_tex()ãå«ãï¼½
+ *		iget_tid(&tskid)
+ *		assert(tskid == TSK_NONE)
+ *		iras_tex(TASK1, 0x0004)
+ *		DO(alm3_flag = true)
+ *		RETURN
+ *	== TASK1-TEX-3ï¼3åç®ï¼==
+ *	15:	assert(texptn == 0x0004)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *		RETURN
+ *	== TASK1ï¼ç¶ãï¼==
+ *	16:	rsm_tsk(TASK2)
+ *		rsm_tsk(TASK3)
+ *		dis_dsp()
+ *	17:	DO(RAISE_CPU_EXCEPTION)
+ *	== CPUEXC ==
+ *	18:	state_i(true, false, true, true, false)
+ *		assert(xsns_xpn(p_excinf) == false)
+ *		iras_tex(TASK3, 0x0010) -> E_OBJ		... (A-2)
+ *		iras_tex(TASK4, 0x0010) -> E_OBJ		... (A-1)
+ *		iras_tex(TASK2, 0x0010)					... (C-2)
+ *		iras_tex(TASK1, 0x0010)					... (C-1)
+ *		RETURN									... (E-1)
+ *	== TASK1-TEX-4ï¼4åç®ï¼==
+ *	19:	assert(texptn == 0x0010)
+ *		state(false, false, TIPM_ENAALL, true, true, true)
+ *	20:	ext_tsk()
+ *	== TASK2ï¼åªå
+åº¦ï¼10ï¼==
+ *	21:	state(false, false, TIPM_ENAALL, false, false, true)
+ *	22:	ena_tex()
+ *	== TASK2-TEX ==
+ *	23:	assert(texptn == 0x0011)
+ *		state(false, false, TIPM_ENAALL, false, false, true)
+ *		RETURN
+ *	== TASK2ï¼ç¶ãï¼==
+ *	24:	sus_tsk(TASK3)
+ *	25:	END
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_tex2.h"
+
+volatile bool_t	alm1_flag = false;
+volatile bool_t	alm2_flag = false;
+volatile bool_t	alm3_flag = false;
+
+/*
+ *  task3ï¼task4ã¨tex_task4ã¯çæãããªã
+ */
+
+void
+task3(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+task4(intptr_t exinf)
+{
+	check_point(0);
+}
+
+void
+tex_task4(TEXPTN texptn, intptr_t exinf)
+{
+	check_point(0);
+}
+
+/* DO NOT DELETE THIS LINE -- gentest depends on it. */
+
+void
+alarm1_handler(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(3);
+	check_state_i(true, false, false, true, true);
+
+	ercd = iras_tex(TASK3, 0x0001);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = iras_tex(TASK4, 0x0001);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = iras_tex(TASK2, 0x0001);
+	check_ercd(ercd, E_OK);
+
+	ercd = iras_tex(TASK1, 0x0001);
+	check_ercd(ercd, E_OK);
+
+	alm1_flag = true;
+
+	return;
+
+	check_point(0);
+}
+
+void
+alarm2_handler(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(9);
+	check_state_i(true, false, false, true, false);
+
+	ercd = iras_tex(TASK1, 0x0002);
+	check_ercd(ercd, E_OK);
+
+	alm2_flag = true;
+
+	return;
+
+	check_point(0);
+}
+
+void
+alarm3_handler(intptr_t exinf)
+{
+	ID		tskid;
+	ER_UINT	ercd;
+
+	check_point(14);
+	check_state_i(true, false, false, true, true);
+
+	ercd = iget_tid(&tskid);
+	check_ercd(ercd, E_OK);
+
+	check_assert(tskid == TSK_NONE);
+
+	ercd = iras_tex(TASK1, 0x0004);
+	check_ercd(ercd, E_OK);
+
+	alm3_flag = true;
+
+	return;
+
+	check_point(0);
+}
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ER_UINT	ercd;
+
+	check_point(18);
+	check_state_i(true, false, true, true, false);
+
+	check_assert(xsns_xpn(p_excinf) == false);
+
+	ercd = iras_tex(TASK3, 0x0010);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = iras_tex(TASK4, 0x0010);
+	check_ercd(ercd, E_OBJ);
+
+	ercd = iras_tex(TASK2, 0x0010);
+	check_ercd(ercd, E_OK);
+
+	ercd = iras_tex(TASK1, 0x0010);
+	check_ercd(ercd, E_OK);
+
+	return;
+
+	check_point(0);
+}
+
+void
+task1(intptr_t exinf)
+{
+	ER_UINT	ercd;
+	T_RTEX	rtex;
+
+	test_start(__FILE__);
+
+	check_point(1);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	ercd = ref_tex(TSK_SELF, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_assert((rtex.texstat & TTEX_DIS) != 0U);
+
+	check_assert(rtex.pndptn == 0U);
+
+	check_point(2);
+	ercd = sta_alm(ALM1, 1U);
+	check_ercd(ercd, E_OK);
+
+	while (!(alm1_flag));
+
+	check_point(4);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(7);
+	check_state(false, false, TIPM_ENAALL, false, false, false);
+
+	ercd = ref_tex(TSK_SELF, &rtex);
+	check_ercd(ercd, E_OK);
+
+	check_assert((rtex.texstat & TTEX_ENA) != 0U);
+
+	check_assert(rtex.pndptn == 0U);
+
+	check_point(8);
+	ercd = sta_alm(ALM2, 1U);
+	check_ercd(ercd, E_OK);
+
+	while (!(alm2_flag));
+
+	check_point(11);
+	ercd = sus_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	ercd = sus_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_point(12);
+	ercd = sta_alm(ALM3, 10U);
+	check_ercd(ercd, E_OK);
+
+	check_point(13);
+	ercd = dly_tsk(50U);
+	check_ercd(ercd, E_OK);
+
+	check_point(16);
+	ercd = rsm_tsk(TASK2);
+	check_ercd(ercd, E_OK);
+
+	ercd = rsm_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	ercd = dis_dsp();
+	check_ercd(ercd, E_OK);
+
+	check_point(17);
+	RAISE_CPU_EXCEPTION;
+
+	check_point(0);
+}
+
+static uint_t	tex_task1_count = 0;
+
+void
+tex_task1(TEXPTN texptn, intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	switch (++tex_task1_count) {
+	case 1:
+		check_point(5);
+		check_assert(texptn == 0x0001);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		check_point(6);
+		ercd = dis_dsp();
+		check_ercd(ercd, E_OK);
+
+		ercd = chg_ipm(TMAX_INTPRI);
+		check_ercd(ercd, E_OK);
+
+		ercd = ena_tex();
+		check_ercd(ercd, E_OK);
+
+		ercd = loc_cpu();
+		check_ercd(ercd, E_OK);
+
+		check_state(false, true, TMAX_INTPRI, true, true, false);
+
+		return;
+
+		check_point(0);
+
+	case 2:
+		check_point(10);
+		check_assert(texptn == 0x0002);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		return;
+
+		check_point(0);
+
+	case 3:
+		check_point(15);
+		check_assert(texptn == 0x0004);
+
+		check_state(false, false, TIPM_ENAALL, false, false, true);
+
+		return;
+
+		check_point(0);
+
+	case 4:
+		check_point(19);
+		check_assert(texptn == 0x0010);
+
+		check_state(false, false, TIPM_ENAALL, true, true, true);
+
+		check_point(20);
+		ercd = ext_tsk();
+		check_ercd(ercd, E_OK);
+
+		check_point(0);
+
+	default:
+		check_point(0);
+	}
+	check_point(0);
+}
+
+void
+task2(intptr_t exinf)
+{
+	ER_UINT	ercd;
+
+	check_point(21);
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	check_point(22);
+	ercd = ena_tex();
+	check_ercd(ercd, E_OK);
+
+	check_point(24);
+	ercd = sus_tsk(TASK3);
+	check_ercd(ercd, E_OK);
+
+	check_finish(25);
+	check_point(0);
+}
+
+void
+tex_task2(TEXPTN texptn, intptr_t exinf)
+{
+
+	check_point(23);
+	check_assert(texptn == 0x0011);
+
+	check_state(false, false, TIPM_ENAALL, false, false, true);
+
+	return;
+
+	check_point(0);
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex2.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex2.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex2.cfg	(revision 313)
@@ -0,0 +1,30 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(2)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_tex2.h"
+
+CRE_TSK(TASK1, { TA_ACT, 1, task1, TASK1_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK1, { TA_NULL, tex_task1 });
+
+CRE_TSK(TASK2, { TA_ACT, 2, task2, TASK2_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK2, { TA_NULL, tex_task2 });
+
+CRE_TSK(TASK3, { TA_ACT, 3, task3, TASK3_PRIORITY, STACK_SIZE, NULL });
+
+CRE_TSK(TASK4, { TA_NULL, 4, task4, TASK4_PRIORITY, STACK_SIZE, NULL });
+DEF_TEX(TASK4, { TA_NULL, tex_task4 });
+
+CRE_ALM(ALM1, { TA_NULL, 1, alarm1_handler });
+CRE_ALM(ALM2, { TA_NULL, 2, alarm2_handler });
+CRE_ALM(ALM3, { TA_NULL, 3, alarm3_handler });
+
+DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
Index: rubycfg_asp/trunk/asp_dcre/test/test_tex2.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_tex2.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_tex2.h	(revision 313)
@@ -0,0 +1,105 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2007 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *		ã¿ã¹ã¯ä¾å¤å¦çã«é¢ãããã¹ã(2)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define TASK1_PRIORITY	10		/* ã¿ã¹ã¯1ã®åªå
+åº¦ */
+#define TASK2_PRIORITY	10		/* ã¿ã¹ã¯2ã®åªå
+åº¦ */
+#define TASK3_PRIORITY	10		/* ã¿ã¹ã¯3ã®åªå
+åº¦ */
+#define TASK4_PRIORITY	10		/* ã¿ã¹ã¯4ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	tex_task1(TEXPTN texptn, intptr_t exinf);
+extern void	task1(intptr_t exinf);
+
+extern void	tex_task2(TEXPTN texptn, intptr_t exinf);
+extern void	task2(intptr_t exinf);
+
+extern void	task3(intptr_t exinf);
+
+extern void	tex_task4(TEXPTN texptn, intptr_t exinf);
+extern void	task4(intptr_t exinf);
+
+extern void	alarm1_handler(intptr_t exinf);
+extern void	alarm2_handler(intptr_t exinf);
+extern void	alarm3_handler(intptr_t exinf);
+extern void	cpuexc_handler(void *p_excinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/test/test_utm1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_utm1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_utm1.c	(revision 313)
@@ -0,0 +1,142 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2007-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		get_utmã«é¢ãããã¹ã(1)
+ *
+ * ããã¹ãã®ç®çã
+ *
+ *  æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãéè¡ãããã¨ããªããã¨ããã¹ãããï¼
+ *
+ * ããã¹ãã®å
+å®¹ã
+ *
+ *  ã¡ã¤ã³ã¿ã¹ã¯ã§ã¯ï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãç¹°ãè¿ãåå¾ãï¼æå»ãå°
+ *  ãããªããªããããã§ãã¯ããï¼ããã¨ä¸¦è¡ãã¦ï¼å¨æãã³ãã©ã1ããªç§
+ *  å¨æã§å®è¡ãï¼ãã®ä¸­ã§ãæ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãåå¾ãã¦ï¼æå»ãå°
+ *  ãããªããªããããã§ãã¯ããï¼
+ *
+ *  ãªãï¼æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ãæå¤§å¤ãè¶
+ãã¦0ã«æ»ãç¶æ³ã¯èæ
+®ãã¦ã
+ *  ãªãï¼
+ */
+
+#include <kernel.h>
+#include <test_lib.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "test_utm1.h"
+
+#define	NO_LOOP		ULONG_C(100000)
+
+SYSUTM	recent_sysutm;
+char	*recent_sysutm_pos;
+uint_t	cyclic_count;
+
+void
+cyclic_handler(intptr_t exinf)
+{
+	SYSUTM		sysutm, prev_sysutm;
+	char		*prev_sysutm_pos;
+
+	iloc_cpu();
+	get_utm(&sysutm);
+	prev_sysutm = recent_sysutm;
+	prev_sysutm_pos = recent_sysutm_pos;
+	recent_sysutm = sysutm;
+	recent_sysutm_pos = "CYC";
+	iunl_cpu();
+
+	if (prev_sysutm > sysutm) {
+		syslog(LOG_NOTICE,
+				"system performance time goes back: %ld(%s) %ld(CYC)",
+				((long_t) prev_sysutm), prev_sysutm_pos, ((ulong_t) sysutm));
+	}
+	cyclic_count += 1;
+}
+
+void
+main_task(intptr_t exinf)
+{
+	SYSUTM		sysutm, prev_sysutm;
+	char		*prev_sysutm_pos;
+	ulong_t		i;
+
+	cyclic_count = 0U;
+	get_utm(&recent_sysutm);
+	syslog(LOG_NOTICE, "system performance time test starts.");
+
+	for (i = 0; i < NO_LOOP; i++) {
+		loc_cpu();
+		get_utm(&sysutm);
+		prev_sysutm = recent_sysutm;
+		prev_sysutm_pos = recent_sysutm_pos;
+		recent_sysutm = sysutm;
+		recent_sysutm_pos = "TSK";
+		unl_cpu();
+
+		if (prev_sysutm > sysutm) {
+			syslog(LOG_NOTICE,
+				"system performance time goes back: %ld(%s) %ld(TSK)",
+				((long_t) prev_sysutm), prev_sysutm_pos, ((ulong_t) sysutm));
+		}
+	}
+
+	syslog(LOG_NOTICE, "system performance time test finishes.");
+	syslog(LOG_NOTICE, "number of cyclic handler execution: %d", cyclic_count);
+	test_finish();
+}
Index: rubycfg_asp/trunk/asp_dcre/test/test_utm1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_utm1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_utm1.cfg	(revision 313)
@@ -0,0 +1,16 @@
+/*
+ *  $Id$
+ */
+
+/*
+ *  get_utmã«é¢ãããã¹ã(1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+
+#include "test_utm1.h"
+
+CRE_CYC(CYC1, { TA_STA, 0, cyclic_handler, 2, 1 });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
Index: rubycfg_asp/trunk/asp_dcre/test/test_utm1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/test/test_utm1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/test/test_utm1.h	(revision 313)
@@ -0,0 +1,85 @@
+/*
+ *  TOPPERS Software
+ *      Toyohashi Open Platform for Embedded Real-Time Systems
+ * 
+ *  Copyright (C) 2006-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/*
+ *		get_utmã«é¢ãããã¹ã(1)
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+#define MAIN_PRIORITY	10
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	cyclic_handler(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/tinet/Makefile.tinet
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/Makefile.tinet	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/Makefile.tinet	(revision 313)
@@ -0,0 +1,393 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+#   Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+#   ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#  
+#   @(#) $Id: Makefile.tinet 1.7 2017/6/1 8:50:42 abe $
+#
+
+#
+#  ãããã«ã¦ã§ã¢ã® Makefile ã®ã¤ã³ã¯ã«ã¼ããã«è¿½å ããã
+#
+
+#
+#  ã«ã¼ãã«ã®è­å¥
+#
+ifdef SRCLANG
+	TARGET_KERNEL = ASP
+	TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_ASP
+else
+	TARGET_KERNEL = JSP
+	TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_JSP
+endif
+
+#
+#  TINET ã½ã¼ã¹ãã¡ã¤ã«ã®ãã£ã¬ã¯ããªã®å®ç¾©
+#
+TINET_ROOT = $(SRCDIR)/tinet
+
+#
+#  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+#
+ifndef SUPPORT_INET4
+	ifndef SUPPORT_INET6
+		SUPPORT_INET4 = true
+	endif
+endif
+
+#
+#  TINET 1.7 ä»¥éã¯ããããã¯ã¼ã¯å±¤ã®æå®ãå¤æ´ããã
+#
+
+ifeq ($(SUPPORT_INET6),true)
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET6
+endif
+
+ifeq ($(SUPPORT_INET4),true)
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET4
+endif
+
+ifeq ($API_CFG_IP4MAPPED_ADDR,true)
+	TINET_CDEFS := $(TINET_CDEFS) -DAPI_CFG_IP4MAPPED_ADDR
+endif
+
+#
+#  ãããã¯ã¼ã¯ãµã¼ãã¹ã«é¢ããå®ç¾©
+#
+
+#  æ±ç¨éä¿¡æ©è½
+
+TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6
+TINET_COBJS := $(TINET_COBJS) \
+	       net_buf.o net_count.o net_subr.o net_timer.o if.o \
+               in_subr.o tinet_cfg.o route_cfg.o
+
+#  IPv6
+
+TINET_COBJS := $(TINET_COBJS) \
+               in6.o in6_ifattach.o nd6_rtr.o \
+               in6_subr.o ip6_input.o icmp6.o \
+               dest6.o route6.o frag6.o \
+               ah_input.o esp_input.o \
+               nd6.o nd6_nbr.o ip6_output.o scope6.o
+TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
+
+#  IPv4
+
+TINET_COBJS := $(TINET_COBJS) \
+               ip_input.o ip_output.o ip_icmp.o in4_subr.o
+TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
+
+#  loop back
+
+ifeq ($(NET_IF),loop)
+
+	TINET_COBJS := $(TINET_COBJS) if_loop.o
+	TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/if_loop.cfg
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_LOOP
+
+endif
+
+#  ppp
+
+ifeq ($(NET_IF),ppp)
+
+	TINET_COBJS := $(TINET_COBJS) \
+	               ppp.o ppp_hdlc.o ppp_lcp.o ppp_fsm.o \
+	               ppp_auth.o ppp_upap.o
+	TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ppp.cfg
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP
+
+#  IPv6ç¨ cp
+	TINET_COBJS := $(TINET_COBJS) ppp_ipv6cp.o
+
+#  IPv4ç¨ cp
+	TINET_COBJS := $(TINET_COBJS) ppp_ipcp.o
+
+ifeq ($(PPP_CFG_MODEM),true)
+
+	TINET_COBJS := $(TINET_COBJS) ppp_modem.o 
+	TINET_CDEFS := $(TINET_CDEFS) -DPPP_CFG_MODEM
+
+endif
+
+endif
+
+#  ã¿ã¼ã²ããä¾å­ã®å®ç¾©ã®ã¤ã³ã¯ã«ã¼ã
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+	-include $(TARGETDIR)/Makefile.tinet
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+	ifdef TOOL
+		ifdef SYS
+			-include $(SRCDIR)/config/$(CPU)-$(TOOL)/$(SYS)/Makefile.tinet
+		endif
+		-include $(SRCDIR)/config/$(CPU)-$(TOOL)/Makefile.tinet
+	else
+		ifdef SYS
+			-include $(SRCDIR)/config/$(CPU)/$(SYS)/Makefile.tinet
+		endif
+		-include $(SRCDIR)/config/$(CPU)/Makefile.tinet
+	endif
+
+endif
+
+#  ethernet
+
+ifeq ($(NET_IF),ether)
+
+	TINET_COBJS := $(TINET_COBJS) ethernet.o if6_ether.o if_ether.o
+	TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
+	                    $(TINET_ROOT)/net/ethernet.cfg \
+	                    $(TINET_ROOT)/netinet/if_ether.cfg
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_ETHER
+	include $(TINET_ROOT)/netdev/$(NET_DEV)/Makefile.tinet
+
+endif
+
+#  TCP
+
+ifeq ($(SUPPORT_TCP),true)
+
+	TINET_COBJS := $(TINET_COBJS) \
+	               tcp_input.o tcp_output.o tcp_timer.o \
+	               tcp_subr.o tcp_subr_cs.o tcp_subr_ncs.o 
+	TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/tcp.cfg
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_TCP
+
+endif
+
+#  UDP
+
+ifeq ($(SUPPORT_UDP),true)
+
+	TINET_COBJS := $(TINET_COBJS) \
+	               udp_input.o udp_output.o udp_subr.o
+	TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/udp.cfg
+	TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_UDP
+
+endif
+
+#
+#  TINET ã©ã¤ãã©ãªã®å®ç¾©
+#
+
+ifeq ($(NO_USE_TINET_LIBRARY),true)
+
+	ifeq ($(SUPPORT_TCP),true)
+		TINET_COBJS := $(TINET_COBJS) tcp_usrreq.o 
+	endif
+
+	ifeq ($(SUPPORT_UDP),true)
+		TINET_COBJS := $(TINET_COBJS) udp_usrreq.o udp_usrreq_nblk.o
+	endif
+
+else
+
+	ifeq ($(SUPPORT_TCP),true)
+		TINET_LCSRCS := $(TINET_LCSRCS) tcp_usrreq.c 
+	endif
+
+	ifeq ($(SUPPORT_UDP),true)
+		TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c udp_usrreq_nblk.c
+	endif
+
+	TINET_CDEFS := $(TINET_CDEFS) -DTCP_CFG_LIBRARY -DUDP_CFG_LIBRARY
+
+	ifdef TINET_LIB
+		MAKE_TINET_LIB :=
+		LIBTINET := $(TINET_LIB)/libtinet.a
+	else
+		MAKE_TINET_LIB := libtinet.a
+		LIBTINET := $(MAKE_TINET_LIB)
+	endif
+
+	MAKE_MTASK := $(MAKE_MTASK) $(LIBTINET)
+
+endif
+
+#
+#  ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«ã®å®ç¾©
+#
+TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
+
+tcp_usrreq = 	tcp_cre_rep.o tcp_del_rep.o \
+		tcp_cre_cep.o tcp_del_cep.o \
+		tcp_acp_cep.o tcp_con_cep.o tcp_sht_cep.o \
+		tcp_cls_cep.o tcp_can_cep.o \
+		tcp_snd_dat.o tcp_rcv_dat.o \
+		tcp_snd_oob.o tcp_rcv_oob.o \
+		tcp_get_buf.o tcp_snd_buf.o \
+		tcp_rcv_buf.o tcp_rel_buf.o \
+		tcp_set_opt.o tcp_get_opt.o
+
+udp_usrreq = 	udp_can_cep.o udp_send_data.o \
+		udp_can_snd.o udp_can_rcv.o \
+		udp_snd_dat.o udp_rcv_dat.o \
+		udp_set_opt.o udp_get_opt.o \
+		udp_cre_cep.o udp_del_cep.o
+
+udp_usrreq_nblk = \
+		udp_can_snd_nblk.o udp_can_rcv_nblk.o \
+		udp_snd_dat_nblk.o udp_rcv_dat_nblk.o
+
+#
+#  ã©ã¤ãã©ãªåããã½ã¼ã¹ãã¡ã¤ã«ããçæããã
+#  ãªãã¸ã§ã¯ããã¡ã¤ã«ã®ä¾å­é¢ä¿ã®å®ç¾©
+#
+$(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c tcpn_usrreq.c
+$(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udpn_usrreq.c
+$(udp_usrreq_nblk) $(udp_usrreq_nblk:.o=.s) $(udp_usrreq_nblk:.o=.d): udp_usrreq_nblk.c
+
+#
+#  TINET ã©ã¤ãã©ãªã®å®ç¾©
+#
+TINET_LIB_OBJS = $(TINET_LCOBJS)
+
+#
+#  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©
+#
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h tinet_kern.cfg
+TINET_KERNEL_CFG :=	$(TINET_KERNEL_CFG) \
+			$(TINET_ROOT)/tinet_asp.cfg $(TINET_ROOT)/net/net_asp.cfg 
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+TINET_CFG = tinet_$(UNAME).cfg
+TINET_CFG_OUT = tinet_cfg.c tinet_id.h tinet_kern.cfg
+TINET_KERNEL_CFG :=	$(TINET_KERNEL_CFG) tinet_kern.cfg \
+			$(TINET_ROOT)/tinet.cfg $(TINET_ROOT)/net/net_jsp.cfg 
+TINET_CFG_OUT := $(TINET_CFG_OUT) $(IPSEC_CFG_OUT)
+
+endif
+
+#
+#  å
+±éã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 
+#
+CDEFS := $(CDEFS) $(TINET_CDEFS)
+INCLUDES := $(INCLUDES) -I$(TINET_ROOT)
+
+#
+#  TINET ã³ã³ãã¤ã«ãªãã·ã§ã³ã®å®ç¾©ã¸ã®è¿½å 
+#
+TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ãããã«ã¦ã§ã¢ã«é¢ããå®ç¾©
+#
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+	SYSSVC_DIR := $(SYSSVC_DIR):$(TINET_DIR)
+	SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
+	SYSSVC_COBJS := $(SYSSVC_COBJS) $(TINET_COBJS)
+	SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) $(TINET_CFLAGS)
+	SYSSVC_LIBS := $(SYSSVC_LIBS) $(LIBTINET) -lc
+
+	CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+	MTASK_CFG := $(MTASK_CFG) $(TINET_CFG)
+	MTASK_KERNEL_CFG := $(MTASK_KERNEL_CFG) $(TINET_KERNEL_CFG)
+	MTASK_DIR := $(MTASK_DIR):$(TINET_DIR)
+	MTASK_LCSRCS := $(MTASK_LCSRCS) $(TINET_LCSRCS)
+	MTASK_ASMOBJS := $(MTASK_ASMOBJS)
+	ifdef USE_CXX
+		MTASK_CXXOBJS := $(MTASK_CXXOBJS)
+		MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
+	else
+		MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
+	endif
+	MTASK_CFLAGS := $(MTASK_CFLAGS) $(TINET_CFLAGS)
+	MTASK_LIBS := $(MTASK_LIBS) $(LIBTINET) -lc
+	MTASK_CLEAN_FILES := $(MTASK_CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
+
+endif
+
+#
+#  TINET ã©ã¤ãã©ãªãã¡ã¤ã«ã®çæ
+#
+libtinet.a: $(TINET_LIB_OBJS)
+	rm -f libtinet.a
+	$(AR) -rcs libtinet.a $(TINET_LIB_OBJS)
+	$(RANLIB) libtinet.a
+
+#
+#  ã³ã³ãã¤ã«ã«ã¼ã«ã®å®ç¾©
+#
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+$(TINET_LCOBJS): %.o:
+	$(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
+
+tinet_cfg1_out.o: %.o: %.c
+	$(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+$(TINET_LCOBJS): %.o:
+	$(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(MTASK_CFLAGS) $<
+
+endif
+
+#
+#  ã³ã³ãã¤ã«çµæã®æ¶å»
+#
+cleantinet:
+	rm -f $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile	(revision 313)
@@ -0,0 +1,32 @@
+#
+#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#
+
+#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+
+NET_IF = @(NET_IF)
+
+#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+
+NET_DEV = @(NET_DEV)
+
+#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+
+@(SUPPORT_INET6)
+@(SUPPORT_INET4)
+
+#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+
+@(API_CFG_IP4MAPPED_ADDR)
+
+#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+
+@(SUPPORT_TCP)
+@(SUPPORT_UDP)
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/tinet/Makefile.tinet
+
+#
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.copyright
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.copyright	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.copyright	(revision 313)
@@ -0,0 +1,44 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+#   ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ãå
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã¯ï¼
+#   æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ã
+#   ãªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çããã
+#   ããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+# 
+#  @(#) $Id: Makefile.copyright 1.7 2017/6/1 8:50:38 abe $
+# 
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.minsv
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.minsv	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.minsv	(revision 313)
@@ -0,0 +1,69 @@
+#
+#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#
+
+#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+
+NET_IF = @(NET_IF)
+
+#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+
+NET_DEV = @(NET_DEV)
+
+#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+
+@(SUPPORT_INET6)
+@(SUPPORT_INET4)
+
+#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+
+@(API_CFG_IP4MAPPED_ADDR)
+
+#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+
+@(SUPPORT_TCP)
+@(SUPPORT_UDP)
+
+#
+#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#
+
+#  TCP ã«çµè¾¼ãæ©è½ã®é¸æ
+TCP_CFG_RWBUF_CSAVE_ONLY = true
+TCP_CFG_SWBUF_CSAVE_ONLY = true
+
+#  TCP ã®æ©è½ã¨ API ã®é¸æ
+
+USE_COPYSAVE_API = true
+
+#  å
+±éãµã¼ããã­ã°ã©ã ã®é¸æ
+
+USE_WWW_SRV = true
+
+#  TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ã®é¸æ
+#    tcp_echo_srv1: éåä¿¡ã¿ã¹ã¯åä¸å
+
+TCP_ECHO_SRV = tcp_echo_srv1
+
+#  å
+±éãµã¼ãã¿ã¹ã¯æ°ã®é¸æ
+
+CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=1		# WWW ãµã¼ãã¿ã¹ã¯æ°ãæå¤§ 2
+CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=1	# TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ãæå¤§ 8
+
+#  TCP ã®ã»ã°ã¡ã³ããµã¤ãºã®é¸æ
+
+CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG		# ã»ã°ã¡ã³ããµã¤ãºã MSS ã«ããã
+
+#
+#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/tinet/netapp/Makefile.netapp
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/tinet/Makefile.tinet
+
+#
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.nserv
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.nserv	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/Makefile.nserv	(revision 313)
@@ -0,0 +1,137 @@
+#
+#  ãããã¯ã¼ã¯ãµã¼ãã¹ã®å®ç¾©
+#
+
+#  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãä½ããä¸ã¤é¸æããã
+
+NET_IF = @(NET_IF)
+
+#  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+
+NET_DEV = @(NET_DEV)
+
+#  ãããã¯ã¼ã¯å±¤ã®é¸æ
+
+@(SUPPORT_INET6)
+@(SUPPORT_INET4)
+
+#  API ã«çµè¾¼ãæ©è½ã®é¸æ
+
+@(API_CFG_IP4MAPPED_ADDR)
+
+#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+
+@(SUPPORT_TCP)
+@(SUPPORT_UDP)
+
+#
+#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã®é¸æ
+#
+
+#  TCP ã«çµè¾¼ãæ©è½ã®é¸æ
+
+#TCP_CFG_RWBUF_CSAVE_ONLY = true
+TCP_CFG_RWBUF_CSAVE = true
+#TCP_CFG_SWBUF_CSAVE_ONLY = true
+TCP_CFG_SWBUF_CSAVE = true
+TCP_CFG_NON_BLOCKING = true
+TCP_CFG_EXTENTIONS = true
+
+#  TCP ã®æ©è½ã¨ API ã®é¸æ
+
+#USE_TCP_NON_BLOCKING = true
+#USE_TCP_EXTENTIONS = true
+USE_COPYSAVE_API = true
+
+#  UDP ã«çµè¾¼ãæ©è½ã®é¸æ
+
+UDP_CFG_NON_BLOCKING = true
+UDP_CFG_EXTENTIONS = true
+
+#  UDP ã®æ©è½ã®é¸æ
+
+#USE_UDP_EXTENTIONS = true
+
+#  UDP ã®æ©è½ã®é¸æãä¸¡æ¹åæã«ã¯é¸æã§ããªãã
+
+#USE_UDP_NON_BLOCKING = true
+#USE_UDP_CALL_BACK = true
+
+#  å
+±éãµã¼ããã­ã°ã©ã ã®é¸æ
+
+USE_WWW_SRV = true
+USE_WWW4_SRV = true
+USE_UDP_ECHO_SRV = true
+USE_UDP4_ECHO_SRV = true
+USE_TCP_DISCARD_SRV = true
+
+#  TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ã®é¸æããã ããä¸¡æ¹ã¯é¸æã§ããªãã
+#    tcp_echo_srv1: éåä¿¡ã¿ã¹ã¯åä¸å
+#    tcp_echo_srv2: éåä¿¡ã¿ã¹ã¯åé¢å
+
+TCP_ECHO_SRV = tcp_echo_srv1
+#TCP_ECHO_SRV = tcp_echo_srv2
+
+USE_TCP4_ECHO_SRV = true
+
+#  ã³ã³ã½ã¼ã«å
+¥åºåã®é¸æ
+
+# ã·ãªã¢ã«çµç±ã®ã¿
+USE_DBG_CONS = true
+
+# falseãæå®ããã¨ãé¢æ° dbg_parse() ãå¿
+è¦ã§ããã
+USE_DBG_CONS_PARSER = true
+
+# ã·ãªã¢ã«ã¨ãããã¯ã¼ã¯çµç±
+# ãã ãããã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ãã ææå¹
+USE_NET_CONS = true
+
+#  å
+±éã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ã®é¸æ
+
+USE_TCP_ECHO_CLI = true
+USE_TCP4_ECHO_CLI = true
+USE_UDP_ECHO_CLI = true
+USE_UDP4_ECHO_CLI = true
+USE_TCP_DISCARD_CLI = true
+USE_UDP_DISCARD_CLI = true
+USE_DHCP6_CLI = true
+USE_DHCP4_CLI = true
+USE_RESOLVER = true
+USE_PING = true
+
+#  å
+±éãµã¼ãã¿ã¹ã¯æ°ã®é¸æ
+
+CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=1		# WWW ãµã¼ãã¿ã¹ã¯æ°ãæå¤§ 2
+CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=4	# TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ãæå¤§ 8
+
+#  äºç´ ID æ°ã®é¸æ
+
+CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2	# TCP/IPv6 åä»å£äºç´ ID æ°ãæå¤§ 2
+CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4	# TCP/IPv6 éä¿¡ç«¯ç¹äºç´ ID æ°ãæå¤§ 4
+CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2	# UDP/IPv6 éä¿¡ç«¯ç¹äºç´ ID æ°ãæå¤§ 2
+CDEFS := $(CDEFS) -DNUM_VRID_TCP4_REPS=2	# TCP/IPv4 åä»å£äºç´ ID æ°ãæå¤§ 2
+CDEFS := $(CDEFS) -DNUM_VRID_TCP4_CEPS=2	# TCP/IPv4 éä¿¡ç«¯ç¹äºç´ ID æ°ãæå¤§ 4
+CDEFS := $(CDEFS) -DNUM_VRID_UDP4_CEPS=2	# UDP/IPv4 éä¿¡ç«¯ç¹äºç´ ID æ°ãæå¤§ 2
+
+#  TCP ã®ã»ã°ã¡ã³ããµã¤ãºã®é¸æ
+#CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG		# ã»ã°ã¡ã³ããµã¤ãºã MSS ã«ããã
+
+#  IPv6 MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®é¸æ
+#CDEFS := $(CDEFS) -DUSE_IPV6_MMTU
+
+#
+#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/tinet/netapp/Makefile.netapp
+
+#
+#  ã·ã¹ãã ãµã¼ãã¹ã® Makefile ã®ã¤ã³ã¯ã«ã¼ã
+#
+include $(SRCDIR)/tinet/Makefile.tinet
+
+#
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.c	(revision 313)
@@ -0,0 +1,521 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  IPv4ãTCP ECHO ãµã¼ããéåä¿¡ã¿ã¹ã¯åä¸å
+ */
+
+#include <string.h>
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <tinet_config.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+#include <netinet/tcp.h>
+
+#include "echos4.h"
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  æ³¨æ:
+ *
+ *    BUF_SIZE ã¯ TCP ã®
+ *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
+ *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ */
+
+#define BUF_SIZE	((TCP_ECHO_SRV_SWBUF_SIZE + \
+                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
+
+static T_IPV4EP		dst;
+
+#ifdef USE_TCP_NON_BLOCKING
+
+static ER		nblk_error = E_OK;
+static ER_UINT		nblk_slen  = 0;
+static ER_UINT		nblk_rlen  = 0;
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifndef USE_COPYSAVE_API
+
+static uint8_t 		buffer[BUF_SIZE];
+
+#endif	/* of #ifndef USE_COPYSAVE_API */
+
+/*
+ *  TCP éåä¿¡ãããã¡
+ */
+
+uint8_t tcp_echo_srv_swbuf[TCP_ECHO_SRV_SWBUF_SIZE];
+uint8_t tcp_echo_srv_rwbuf[TCP_ECHO_SRV_RWBUF_SIZE];
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		nblk_error = *(ER*)p_parblk;
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_DAT:
+		if ((nblk_rlen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] recv err: %s", itron_strerror(nblk_rlen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_SND_DAT:
+		if ((nblk_slen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] send err: %s", itron_strerror(nblk_slen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		if ((nblk_error = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] clse err: %s", itron_strerror(nblk_error));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_BUF:
+		if ((nblk_rlen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] rbuf err: %s", itron_strerror(nblk_rlen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_GET_BUF:
+		if ((nblk_slen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] sbuf err: %s", itron_strerror(nblk_slen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	T_IN4_ADDR	addr;
+	ID		tskid;
+	ER		error = E_OK;
+	uint32_t	total;
+	uint16_t	rblen, sblen, rlen, slen, soff, count;
+	char		*rbuf, *sbuf;
+
+	get_tid(&tskid);
+	addr = IPV4_ADDR_LOCAL;
+	syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK):%d,%d] (copy save API) started, IP Address: %s.", 
+	                   tskid, (ID)exinf, ip2str(NULL, &addr));
+	while (true) {
+		if ((error = tcp_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		if (nblk_error == E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] connected from %s:%d", ip2str(NULL, &dst.ipaddr), dst.portno);
+		else {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(nblk_error));
+			continue;
+			}
+
+		total = rlen = count = 0;
+		while (true) {
+			if ((error = tcp_rcv_buf((int_t)exinf, (void **)&rbuf, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s", itron_strerror(error));
+				break;
+				}
+
+			/* åä¿¡ããã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+			if (nblk_rlen < 0) {		/* ã¨ã©ã¼ */
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s", itron_strerror(nblk_rlen));
+				break;
+				}
+			else if (nblk_rlen == 0)	/* åä¿¡çµäº */
+				break;
+
+			rblen = (uint16_t)nblk_rlen;
+
+			/* ãããã¡ã®æ®ãã«ãããåä¿¡é·ãèª¿æ´ããã*/
+			if (rblen > BUF_SIZE - rlen)
+				rblen = BUF_SIZE - rlen;
+
+			total += rblen;
+			rlen   = rblen;
+			count ++;
+			memcpy(buffer, rbuf, rblen);
+
+			if ((error = tcp_rel_buf((int_t)exinf, rlen)) < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) REL] error: %s",
+				                   itron_strerror(error));
+				break;
+				}
+
+			soff = 0;
+			while (rlen > 0) {
+
+				if ((error = tcp_get_buf((int_t)exinf, (void **)&sbuf, TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+
+				/* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+				if (nblk_slen < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] error: %s",
+					                   itron_strerror(nblk_slen));
+					goto err_fin;
+					}
+				else
+					/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] len: %d", nblk_slen)*/;
+
+				sblen = (uint16_t)nblk_slen;
+				slen = sblen < rlen ? sblen : rlen;
+				memcpy(sbuf, buffer + soff, slen);
+
+				if ((error = tcp_snd_buf((int_t)exinf, slen)) != E_OK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] len: %d", slen);*/
+
+				rlen -= slen;
+				soff += slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_NBLK)) != E_WBLK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CLS] error: %s", itron_strerror(error));
+
+		/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) FIN] finished, total count: %d, len: %d", count, total);
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	T_IN4_ADDR	addr;
+	ID		tskid;
+	ER		error;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, count;
+
+	get_tid(&tskid);
+	addr = IPV4_ADDR_LOCAL;
+	syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK):%d,%d] started, IP Address: %s.", 
+	                   tskid, (ID)exinf, ip2str(NULL, &addr));
+	while (true) {
+		if ((error = tcp_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		if (nblk_error == E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] connected from %s:%d",
+			                   ip2str(NULL, &dst.ipaddr), dst.portno);
+			}
+		else {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(nblk_error));
+			continue;
+			}
+
+		count = total = 0;
+		while (true) {
+			if ((error = tcp_rcv_dat((int_t)exinf, buffer, BUF_SIZE - 1, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s",
+				                   itron_strerror(error));
+				break;
+				}
+
+			/* åä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+			if (nblk_rlen < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s",
+				                   itron_strerror(nblk_rlen));
+				break;
+				}
+			else if (nblk_rlen == 0)
+				break;
+
+			rlen   = (uint16_t)nblk_rlen;
+			total += (uint32_t)nblk_rlen;
+			count ++;
+			soff = 0;
+			while (rlen > 0) {
+				if ((error = tcp_snd_dat((int_t)exinf, &buffer[soff], rlen, TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+
+				/* éä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+				if (nblk_slen < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(nblk_slen));
+					goto err_fin;
+					}
+				else
+					/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] len: %4d", nblk_slen)*/;
+
+				slen = (uint16_t)nblk_slen;
+				rlen -= slen;
+				soff += slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_NBLK)) != E_WBLK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CLS] error: %s", itron_strerror(error));
+
+		/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	T_IN4_ADDR	addr;
+	ID		tskid;
+	ER_UINT		rblen, sblen;
+	ER		error = E_OK;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, count;
+	char		*rbuf, *sbuf;
+
+	get_tid(&tskid);
+	addr = IPV4_ADDR_LOCAL;
+	syslog(LOG_NOTICE, "[TCP ECHO SRV:%d,%d] (copy save API) started, IP Address: %s.", 
+	                   tskid, (ID)exinf, ip2str(NULL, &addr));
+	while (true) {
+		if (tcp_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_FEVR) != E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		total = count = 0;
+		syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] connected from %s:%d", ip2str(NULL, &dst.ipaddr), dst.portno);
+		while (true) {
+			if ((rblen = tcp_rcv_buf((int_t)exinf, (void **)&rbuf, TMO_FEVR)) <= 0) {
+				if (rblen != E_OK)
+					syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] error: %s", itron_strerror(rblen));
+				break;
+				}
+
+			rlen   = (uint16_t)rblen;
+			total += (uint32_t)rblen;
+			count ++;
+			soff = 0;
+			while (rlen > 0) {
+
+				if ((sblen = tcp_get_buf((int_t)exinf, (void **)&sbuf, TMO_FEVR)) < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV GET] error: %s",
+					                   itron_strerror(sblen));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV GET] len: %d", sblen);*/
+			
+				slen = rlen < (uint16_t)sblen ? rlen : (uint16_t)sblen;
+				memcpy(sbuf, rbuf + soff, slen);
+				if ((error = tcp_snd_buf((int_t)exinf, slen)) != E_OK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV SND] len: %d", slen);*/
+
+				rlen -= slen;
+				soff += slen;
+				}
+
+			if ((error = tcp_rel_buf((int_t)exinf, rblen)) < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV REL] error: %s", itron_strerror(error));
+				break;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV CLS] error: %s", itron_strerror(error));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	T_IN4_ADDR	addr;
+	ID		tskid;
+	ER_UINT		rlen, slen;
+	ER		error = E_OK;
+	uint16_t	soff, count, total;
+
+	get_tid(&tskid);
+	addr = IPV4_ADDR_LOCAL;
+	syslog(LOG_NOTICE, "[TCP ECHO SRV:%d,%d] started, IP Address: %s.", 
+	                   tskid, (ID)exinf, ip2str(NULL, &addr));
+	while (true) {
+		if (tcp_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_FEVR) != E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		total = count = 0;
+		syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] connected from %s:%d",
+		                   ip2str(NULL, &dst.ipaddr), dst.portno);
+		while (true) {
+			if ((rlen = tcp_rcv_dat((int_t)exinf, buffer, BUF_SIZE - 1, TMO_FEVR)) <= 0) {
+				if (rlen != E_OK)
+					syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] error: %s",
+					                   itron_strerror(rlen));
+				break;
+				}
+
+			/*syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] count: %4d, len: %4d, data %02x -> %02x",
+			       ++ count, (uint16_t)rlen, *buffer, *(buffer + rlen - 1));*/
+			count ++;
+			total += (uint16_t)rlen;
+			soff = 0;
+			while (rlen > 0) {
+				if ((slen = tcp_snd_dat((int_t)exinf, &buffer[soff], rlen, TMO_FEVR)) < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV SND] error: %s",
+					                   itron_strerror(slen));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV SND] len: %d", slen);*/
+				rlen -=     slen;
+				soff += (uint16_t)slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV CLS] error: %s", itron_strerror(error));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.cfg	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ECHO ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "echos4.h"
+
+/*
+ *  TCP ECHO ãµã¼ã #1ãéåä¿¡ã¿ã¹ã¯åä¸å
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(TCP_ECHO_SRV_TASK,  {
+	TA_HLNG|TA_ACT,
+	TCP_ECHO_SRV_CEPID,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+/* ã»ããã© */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos4.h	(revision 313)
@@ -0,0 +1,96 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _ECHOS_H_
+#define _ECHOS_H_
+
+#include <tinet_defs.h>
+
+/* 
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã 
+ */
+
+#define TCP_ECHO_SRV_STACK_SIZE		1024	/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define TCP_ECHO_SRV_MAIN_PRIORITY	5	/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+/*
+ *  ä½¿ç¨ãã API ã®é¸æ
+ */
+
+//#define USE_TCP_NON_BLOCKING
+//#define USE_COPYSAVE_API
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#define TCP_ECHO_SRV_SWBUF_SIZE	(TCP_MSS)
+#define TCP_ECHO_SRV_RWBUF_SIZE	(TCP_MSS)
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  TCP éåä¿¡ãããã¡
+ */
+
+extern uint8_t tcp_echo_srv_swbuf[];
+extern uint8_t tcp_echo_srv_rwbuf[];
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void tcp_echo_srv_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern ER callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _ECHOS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.c	(revision 313)
@@ -0,0 +1,507 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  IPv6ãTCP ECHO ãµã¼ããéåä¿¡ã¿ã¹ã¯åä¸å
+ */
+
+#include <string.h>
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+#include <netinet/tcp.h>
+
+#include "echos6.h"
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  æ³¨æ:
+ *
+ *    BUF_SIZE ã¯ TCP ã®
+ *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
+ *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ */
+
+#define BUF_SIZE	((TCP_ECHO_SRV_SWBUF_SIZE + \
+                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
+
+static T_IPV6EP		dst;
+
+#ifdef USE_TCP_NON_BLOCKING
+
+static ER		nblk_error = E_OK;
+static ER_UINT		nblk_slen  = 0;
+static ER_UINT		nblk_rlen  = 0;
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifndef USE_COPYSAVE_API
+
+static uint8_t 		buffer[BUF_SIZE];
+
+#endif	/* of #ifndef USE_COPYSAVE_API */
+
+/*
+ *  TCP éåä¿¡ãããã¡
+ */
+
+uint8_t tcp_echo_srv_swbuf[TCP_ECHO_SRV_SWBUF_SIZE];
+uint8_t tcp_echo_srv_rwbuf[TCP_ECHO_SRV_RWBUF_SIZE];
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		nblk_error = *(ER*)p_parblk;
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_DAT:
+		if ((nblk_rlen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] recv err: %s", itron_strerror(nblk_rlen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_SND_DAT:
+		if ((nblk_slen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] send err: %s", itron_strerror(nblk_slen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		if ((nblk_error = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] clse err: %s", itron_strerror(nblk_error));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_BUF:
+		if ((nblk_rlen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] rbuf err: %s", itron_strerror(nblk_rlen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_GET_BUF:
+		if ((nblk_slen = *(ER_UINT*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CBN] sbuf err: %s", itron_strerror(nblk_slen));
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+		break;
+
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	ID		tskid;
+	ER		error = E_OK;
+	uint32_t	total;
+	uint16_t	rblen, sblen, rlen, slen, soff, count;
+	char		*rbuf, *sbuf;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK):%d,%d] (copy save API) started.", tskid, (int_t)exinf);
+	while (true) {
+		if ((error = tcp6_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		if (nblk_error == E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] connected from %s:%d", ipv62str(NULL, &dst.ipaddr), dst.portno);
+		else {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(nblk_error));
+			continue;
+			}
+
+		total = rlen = count = 0;
+		while (true) {
+			if ((error = tcp_rcv_buf((int_t)exinf, (void **)&rbuf, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s", itron_strerror(error));
+				break;
+				}
+
+			/* åä¿¡ããã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+			if (nblk_rlen < 0) {		/* ã¨ã©ã¼ */
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s", itron_strerror(nblk_rlen));
+				break;
+				}
+			else if (nblk_rlen == 0)	/* åä¿¡çµäº */
+				break;
+
+			rblen = (uint16_t)nblk_rlen;
+
+			/* ãããã¡ã®æ®ãã«ãããåä¿¡é·ãèª¿æ´ããã*/
+			if (rblen > BUF_SIZE - rlen)
+				rblen = BUF_SIZE - rlen;
+
+			total += rblen;
+			rlen   = rblen;
+			count ++;
+			memcpy(buffer, rbuf, rblen);
+
+			if ((error = tcp_rel_buf((int_t)exinf, rlen)) < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) REL] error: %s",
+				                   itron_strerror(error));
+				break;
+				}
+
+			soff = 0;
+			while (rlen > 0) {
+
+				if ((error = tcp_get_buf((int_t)exinf, (void **)&sbuf, TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+
+				/* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+				if (nblk_slen < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] error: %s",
+					                   itron_strerror(nblk_slen));
+					goto err_fin;
+					}
+				else
+					/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) GET] len: %d", nblk_slen)*/;
+
+				sblen = (uint16_t)nblk_slen;
+				slen = sblen < rlen ? sblen : rlen;
+				memcpy(sbuf, buffer + soff, slen);
+
+				if ((error = tcp_snd_buf((int_t)exinf, slen)) != E_OK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] len: %d", slen);*/
+
+				rlen -= slen;
+				soff += slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_NBLK)) != E_WBLK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CLS] error: %s", itron_strerror(error));
+
+		/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) FIN] finished, total count: %d, len: %d", count, total);
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	ID		tskid;
+	ER		error;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, count;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK):%d,%d] started.", tskid, (int_t)exinf);
+	while (true) {
+		if ((error = tcp6_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		if (nblk_error == E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] connected from %s:%d",
+			                   ipv62str(NULL, &dst.ipaddr), dst.portno);
+			}
+		else {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) ACP] error: %s", itron_strerror(nblk_error));
+			continue;
+			}
+
+		count = total = 0;
+		while (true) {
+			if ((error = tcp_rcv_dat((int_t)exinf, buffer, BUF_SIZE - 1, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s",
+				                   itron_strerror(error));
+				break;
+				}
+
+			/* åä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+			if (nblk_rlen < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) RCV] error: %s",
+				                   itron_strerror(nblk_rlen));
+				break;
+				}
+			else if (nblk_rlen == 0)
+				break;
+
+			rlen   = (uint16_t)nblk_rlen;
+			total += (uint32_t)nblk_rlen;
+			count ++;
+			soff = 0;
+			while (rlen > 0) {
+				if ((error = tcp_snd_dat((int_t)exinf, &buffer[soff], rlen, TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+
+				/* éä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+				if (nblk_slen < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] error: %s",
+					                   itron_strerror(nblk_slen));
+					goto err_fin;
+					}
+				else
+					/*syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND] len: %4d", nblk_slen)*/;
+
+				slen = (uint16_t)nblk_slen;
+				rlen -= slen;
+				soff += slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_NBLK)) != E_WBLK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) CLS] error: %s", itron_strerror(error));
+
+		/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_NBLK_READY));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	ID		tskid;
+	ER_UINT		rblen, sblen;
+	ER		error = E_OK;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, count;
+	char		*rbuf, *sbuf;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV:%d,%d] (copy save API) started.", tskid, (int_t)exinf);
+	while (true) {
+		if (tcp6_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_FEVR) != E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		total = count = 0;
+		syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] connected from %s:%d", ipv62str(NULL, &dst.ipaddr), dst.portno);
+		while (true) {
+			if ((rblen = tcp_rcv_buf((int_t)exinf, (void **)&rbuf, TMO_FEVR)) <= 0) {
+				if (rblen != E_OK)
+					syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] error: %s", itron_strerror(rblen));
+				break;
+				}
+
+			rlen   = (uint16_t)rblen;
+			total += (uint32_t)rblen;
+			count ++;
+			soff = 0;
+			while (rlen > 0) {
+
+				if ((sblen = tcp_get_buf((int_t)exinf, (void **)&sbuf, TMO_FEVR)) < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV GET] error: %s",
+					                   itron_strerror(sblen));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV GET] len: %d", sblen);*/
+			
+				slen = rlen < (uint16_t)sblen ? rlen : (uint16_t)sblen;
+				memcpy(sbuf, rbuf + soff, slen);
+				if ((error = tcp_snd_buf((int_t)exinf, slen)) != E_OK) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV SND] error: %s",
+					                   itron_strerror(error));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV SND] len: %d", slen);*/
+
+				rlen -= slen;
+				soff += slen;
+				}
+
+			if ((error = tcp_rel_buf((int_t)exinf, rblen)) < 0) {
+				syslog(LOG_NOTICE, "[TCP ECHO SRV REL] error: %s", itron_strerror(error));
+				break;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV CLS] error: %s", itron_strerror(error));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	ID		tskid;
+	ER_UINT		rlen, slen;
+	ER		error = E_OK;
+	uint16_t	soff, count, total;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV:%d,%d] started.", tskid, (int_t)exinf);
+	while (true) {
+		if (tcp6_acp_cep((int_t)exinf, TCP_ECHO_SRV_REPID, &dst, TMO_FEVR) != E_OK) {
+			syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] error: %s", itron_strerror(error));
+			continue;
+			}
+
+		total = count = 0;
+		syslog(LOG_NOTICE, "[TCP ECHO SRV ACP] connected from %s:%d",
+		                   ipv62str(NULL, &dst.ipaddr), dst.portno);
+		while (true) {
+			if ((rlen = tcp_rcv_dat((int_t)exinf, buffer, BUF_SIZE - 1, TMO_FEVR)) <= 0) {
+				if (rlen != E_OK)
+					syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] error: %s",
+					                   itron_strerror(rlen));
+				break;
+				}
+
+			/*syslog(LOG_NOTICE, "[TCP ECHO SRV RCV] count: %4d, len: %4d, data %02x -> %02x",
+			       ++ count, (uint16_t)rlen, *buffer, *(buffer + rlen - 1));*/
+			count ++;
+			total += (uint16_t)rlen;
+			soff = 0;
+			while (rlen > 0) {
+				if ((slen = tcp_snd_dat((int_t)exinf, &buffer[soff], rlen, TMO_FEVR)) < 0) {
+					syslog(LOG_NOTICE, "[TCP ECHO SRV SND] error: %s",
+					                   itron_strerror(slen));
+					goto err_fin;
+					}
+				/*syslog(LOG_NOTICE, "[TCP ECHO SRV SND] len: %d", slen);*/
+				rlen -=     slen;
+				soff += (uint16_t)slen;
+				}
+			}
+	err_fin:
+
+		if ((error = tcp_sht_cep((int_t)exinf)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV SHT] error: %s", itron_strerror(error));
+
+		if ((error = tcp_cls_cep((int_t)exinf, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[TCP ECHO SRV CLS] error: %s", itron_strerror(error));
+
+		syslog(LOG_NOTICE, "[TCP ECHO SRV FIN] finished, total cnt: %d, len: %d", count, total);
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.cfg	(revision 313)
@@ -0,0 +1,82 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ECHO ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "echos6.h"
+
+/*
+ *  TCP ECHO ãµã¼ã #1ãéåä¿¡ã¿ã¹ã¯åä¸å
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+CRE_TSK(TCP_ECHO_SRV_TASK,  {
+	TA_HLNG|TA_ACT,
+	TCP_ECHO_SRV_CEPID,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+/* ã»ããã© */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/echos6.h	(revision 313)
@@ -0,0 +1,96 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _ECHOS_H_
+#define _ECHOS_H_
+
+#include <tinet_defs.h>
+
+/* 
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã 
+ */
+
+#define TCP_ECHO_SRV_STACK_SIZE		1024	/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define TCP_ECHO_SRV_MAIN_PRIORITY	5	/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+/*
+ *  ä½¿ç¨ãã API ã®é¸æ
+ */
+
+#define USE_TCP_NON_BLOCKING
+//#define USE_COPYSAVE_API
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#define TCP_ECHO_SRV_SWBUF_SIZE	(TCP6_MSS)
+#define TCP_ECHO_SRV_RWBUF_SIZE	(TCP6_MSS)
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  TCP éåä¿¡ãããã¡
+ */
+
+extern uint8_t tcp_echo_srv_swbuf[];
+extern uint8_t tcp_echo_srv_rwbuf[];
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void tcp_echo_srv_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern ER callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _ECHOS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.c	(revision 313)
@@ -0,0 +1,71 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  æå°æ§æãµã¼ãè©¦é¨ãã­ã°ã©ã ã®æ¬ä½
+ */
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+
+#include "minsv.h"
+
+/*
+ *  arp_callback_duplicated -- IP ã¢ãã¬ã¹éè¤æ¤åºç¨ã³ã¼ã«ããã¯é¢æ°
+ */
+
+bool_t arp_callback_duplicated (uint8_t *shost)
+{
+	static uint8_t shost_addr[sizeof("00:00:00:00:00:00")];
+
+	mac2str(shost_addr, shost);
+	syslog(LOG_ERROR, "[MINSV] IP address duplicated: %s", shost_addr);
+
+	return false;
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.cfg	(revision 313)
@@ -0,0 +1,63 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  æå°æ§æãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "@(TINETDIR)/netapp/wwws.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv1.h"
+
+#include "minsv.h"
+
+INCLUDE("@(TINETDIR)/netapp/wwws_asp.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_echo_srv1.cfg");
+INCLUDE("@(TINETDIR)/netapp/netapp_subr.cfg");
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/minsv.h	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _MINSV_H_
+#define _MINSV_H_
+
+/* 
+ *  æå°æ§æãµã¼ãè©¦é¨ãã­ã°ã©ã 
+ */
+
+#include <tinet_defs.h>
+
+/* 
+ *  ãµã¼ãã®ã¹ã¿ãã¯ãµã¤ãº
+ */
+
+#undef  TCP_ECHO_SRV_STACK_SIZE
+#define TCP_ECHO_SRV_STACK_SIZE		768		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+
+#undef  WWW_SRV_STACK_SIZE
+#define	WWW_SRV_STACK_SIZE		768		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+#undef  DBG_CON_STACK_SIZE
+#define	DBG_CON_STACK_SIZE		1024		/* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+
+#endif	/* of #ifndef _MINSV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.c	(revision 313)
@@ -0,0 +1,75 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®æ¬ä½
+ */
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+
+#include "nserv.h"
+
+#if defined(SUPPORT_ETHER) && defined(SUPPORT_INET4)
+
+/*
+ *  arp_callback_duplicated -- IP ã¢ãã¬ã¹éè¤æ¤åºç¨ã³ã¼ã«ããã¯é¢æ°
+ */
+
+bool_t arp_callback_duplicated (uint8_t *shost)
+{
+	static char shost_addr[sizeof("00:00:00:00:00:00")];
+
+	mac2str(shost_addr, (char *)shost);
+	syslog(LOG_ERROR, "[NSERV] IP address duplicated: %s", shost_addr);
+
+	return false;
+	}
+
+#endif	/* of #if defined(SUPPORT_ETHER) && defined(SUPPORT_INET4) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.cfg	(revision 313)
@@ -0,0 +1,90 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "@(TINETDIR)/netapp/wwws.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv1.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv2.h"
+#include "@(TINETDIR)/netapp/tcp_echo_cli.h"
+#include "@(TINETDIR)/netapp/tcp_discard_srv.h"
+#include "@(TINETDIR)/netapp/tcp_discard_cli.h"
+#include "@(TINETDIR)/netapp/udp6_echo_srv.h"
+#include "@(TINETDIR)/netapp/udp4_echo_srv.h"
+#include "@(TINETDIR)/netapp/udp6_echo_cli.h"
+#include "@(TINETDIR)/netapp/udp4_echo_cli.h"
+#include "@(TINETDIR)/netapp/udp_discard_cli.h"
+#include "@(TINETDIR)/netapp/dbg_cons.h"
+#include "@(TINETDIR)/netapp/resolver.h"
+#include "@(TINETDIR)/netapp/dhcp6_cli.h"
+#include "@(TINETDIR)/netapp/dhcp4_cli.h"
+
+#include "nserv.h"
+
+INCLUDE("@(TINETDIR)/netapp/wwws_asp.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_echo_srv1.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_echo_srv2.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_discard_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/tcp_discard_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/udp6_echo_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/udp4_echo_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/udp6_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/udp4_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/udp_discard_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/dbg_cons.cfg");
+INCLUDE("@(TINETDIR)/netapp/net_cons.cfg");
+INCLUDE("@(TINETDIR)/netapp/netapp_subr.cfg");
+INCLUDE("@(TINETDIR)/netapp/resolver_asp.cfg");
+INCLUDE("@(TINETDIR)/netapp/dhcp6_cli_asp.cfg");
+INCLUDE("@(TINETDIR)/netapp/dhcp4_cli_asp.cfg");
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/nserv.h	(revision 313)
@@ -0,0 +1,53 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NSERV_H_
+#define _NSERV_H_
+
+/* 
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã 
+ */
+
+#endif	/* of #ifndef _NSERV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/route_cfg.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/route_cfg.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/route_cfg.c	(revision 313)
@@ -0,0 +1,113 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ã«ã¼ãã£ã³ã°è¡¨
+ */
+
+#include <kernel.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#ifdef _IP6_CFG
+
+#if NUM_IN6_ROUTE_ENTRY > 0
+
+T_IN6_RTENTRY routing6_tbl[NUM_IN6_ROUTE_ENTRY];
+
+#endif	/* of #if NUM_IN6_ROUTE_ENTRY > 0 */
+
+#endif	/* of #ifdef _IP6_CFG */
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+#ifdef _IP4_CFG
+
+#ifdef SUPPORT_LOOP
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+	{ 0, 0, 0 },
+	};
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_PPP
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+	{ 0, 0, 0 },
+	};
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+
+	/* ç°ãªã LANãdefault gateway ã«ããéæ¥é
+é	*/
+	{ 0,			0,			IPV4_ADDR_DEFAULT_GW	},
+
+	/* åä¸ LAN å
+ãç´æ¥é
+é				*/
+	{ IPV4_ADDR_LOCAL &
+	  IPV4_ADDR_LOCAL_MASK,	IPV4_ADDR_LOCAL_MASK,	0			},
+
+	/* åä¸ LAN å
+ã¸ã®ãã­ã¼ãã­ã£ã¹ããç´æ¥é
+é	*/
+	{ 0xffffffff,		0xffffffff,		0			},
+
+	};
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifdef _IP4_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.c	(revision 313)
@@ -0,0 +1,775 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯åãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ */
+
+#include <stdarg.h>
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "syssvc/serial.h"
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <netinet/in4.h>
+#include <netinet6/in6.h>
+#include <netinet/in_itron.h>
+
+#include "sample1n.h"
+
+/*
+ *  ãã¯ã­å®ç¾©
+ */
+
+/*  ãªãã¼ã ã®è§£é¤  */
+
+#undef syslog
+#undef serial_rea_dat
+#undef serial_ctl_por
+
+#define EOF		(-1)
+
+/*  TELNET ãªãã·ã§ã³ */
+
+#define TELNET_OPT_SE		(240)
+#define TELNET_OPT_NOP		(241)
+#define TELNET_OPT_DM		(242)
+#define TELNET_OPT_BRK		(243)
+#define TELNET_OPT_IP		(244)
+#define TELNET_OPT_AO		(245)
+#define TELNET_OPT_AYT		(246)
+#define TELNET_OPT_EC		(247)
+#define TELNET_OPT_EL		(248)
+#define TELNET_OPT_GA		(249)
+#define TELNET_OPT_SB		(250)
+#define TELNET_OPT_WILL		(251)
+#define TELNET_OPT_WONT		(252)
+#define TELNET_OPT_DO		(253)
+#define TELNET_OPT_DONT		(254)
+#define TELNET_OPT_IAC		(255)
+
+/*
+ *  å¤æ°
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+uint8_t tcp_swbuf[TCP_SWBUF_SIZE];
+uint8_t tcp_rwbuf[TCP_RWBUF_SIZE];
+
+bool_t		connected	= false;	/* ã³ãã¯ã·ã§ã³ã®ç¶æ
+	*/
+bool_t		wait_accept	= false;	/* æ¥ç¶è¦æ±å¾
+ã¡ä¸­	*/
+
+#ifdef SUPPORT_INET6
+
+T_IPV6EP	dst;
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+T_IPV4EP	dst;
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+uint8_t		*snd_buff	= NULL;
+uint8_t		*rcv_buff	= NULL;
+uint_t		snd_off		= 0;
+uint_t		rcv_off		= 0;
+ER_UINT		snd_len		= 0;
+ER_UINT		rcv_len		= 0;
+uint_t		net_ioctl	= IOCTL_NULL;
+uint8_t		addr[sizeof("0123:4567:89ab:cdef:0123:4567:89ab:cdef")];
+
+/*
+ *  ãããã¯ã¼ã¯å±¤ã®é¸æ
+ */
+
+#ifdef SUPPORT_INET6
+
+#define TCP_ACP_CEP(c,r,d,t)	tcp6_acp_cep(c,r,d,t)
+#define IP2STR(s,a)		ipv62str(s,a)
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#define TCP_ACP_CEP(c,r,d,t)	tcp_acp_cep(c,r,d,t)
+#define IP2STR(s,a)		ip2str(s,a)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		IP2STR(addr, &dst.ipaddr);
+		syslog(LOG_NOTICE, "connected:    %s.%d", addr, dst.portno);
+		if (*(ER*)p_parblk == E_OK)
+			connected = true;
+		snd_len = snd_off = rcv_len = rcv_off = 0;
+		wait_accept = false;
+		break;
+
+	case TFN_TCP_CLS_CEP:
+	case TFN_TCP_RCV_BUF:
+	case TFN_TCP_GET_BUF:
+	case TFN_TCP_RCV_DAT:
+	case TFN_TCP_SND_DAT:
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+/*
+ *  ã³ãã¯ã·ã§ã³ãåæ­
+ */
+
+ER
+disconnecting (void)
+{
+	ER	error = E_OK;
+
+	if (connected) {
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off > 0)
+			tcp_snd_buf(TCP_CEPID, snd_off);
+		tcp_sht_cep(TCP_CEPID);
+		tcp_cls_cep(TCP_CEPID, TMO_FEVR);
+		connected = false;
+		syscall(sig_sem(SEM_NET_SEND));
+		IP2STR(addr, &dst.ipaddr);
+		syslog(LOG_NOTICE, "disconnected: %s.%d", addr, dst.portno);
+		}
+	return error;
+	}
+
+/*
+ *  éä¿¡ãããã¡ã®ãã©ãã·ã¥
+ */
+
+void
+flush_snd_buff (ID cepid)
+{
+	if (connected) {
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off > 0) {
+			tcp_snd_buf(cepid, snd_off);
+			snd_len = snd_off = 0;
+			}
+		syscall(sig_sem(SEM_NET_SEND));
+		}
+	return;
+	}
+
+/*
+ *  æå­éä¿¡
+ */
+
+void
+put_char (ID cepid, char ch)
+{
+	if (connected) {
+		if (ch == '\n' && (net_ioctl & IOCTL_CRLF) != 0)
+			put_char(cepid, '\r');
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off >= snd_len) {
+			if (tcp_snd_buf(cepid, snd_off) != E_OK) {
+				syscall(sig_sem(SEM_NET_SEND));
+				return;
+				}
+			snd_off = 0;
+			if ((snd_len = tcp_get_buf(cepid, (void**)&snd_buff, TMO_FEVR)) <= 0) {
+				syscall(sig_sem(SEM_NET_SEND));
+				return;
+				}
+			}
+		snd_buff[snd_off ++] = ch;
+		syscall(sig_sem(SEM_NET_SEND));
+		}
+	}
+
+/*
+ *  æå­åä¿¡ï¼å¤æãªãï¼
+ */
+
+int_t
+get_char_raw (ID cepid)
+{
+	if (connected) {
+		if (rcv_off >= rcv_len) {
+			rcv_off = 0;
+			if (tcp_rel_buf(TCP_CEPID, rcv_len) != E_OK) {
+				disconnecting();
+				return EOF;
+				}
+			if ((rcv_len = tcp_rcv_buf(TCP_CEPID, (void**)&rcv_buff, TMO_FEVR)) == 0) {
+				disconnecting();
+				return EOF;
+				}
+			else if (rcv_len < 0) {
+				disconnecting();
+				return EOF;
+				}
+			}
+		return rcv_buff[rcv_off ++];
+		}
+	else
+		return EOF;
+	}
+
+/*
+ *  æå­åä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ã­ããï¼
+ */
+
+int_t
+get_char (ID cepid)
+{
+	int_t	ch, req;
+
+	while ((ch = get_char_raw(cepid)) == TELNET_OPT_IAC || ch == '\0') {
+		if (ch != '\0') {
+			switch (ch = get_char_raw(cepid)) {
+			case TELNET_OPT_WILL:
+			case TELNET_OPT_WONT:
+			case TELNET_OPT_DO:
+			case TELNET_OPT_DONT:
+				req = get_char_raw(cepid);
+				break;
+			case TELNET_OPT_SB:
+				while ((ch = get_char_raw(cepid)) != EOF && ch != TELNET_OPT_IAC) {
+					if ((ch = get_char_raw(cepid)) == EOF || ch == TELNET_OPT_SE)
+						break;
+					}
+				break;
+			default:
+				break;
+				}
+			}
+		}
+	return ch;
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®èª­åºã
+ */
+
+ER_UINT
+net_serial_rea_dat (ID portid, char *buf, uint_t len)
+{
+	T_SERIAL_RPOR	rpor;
+	uint_t		off;
+	int_t		ch;
+
+	if (!wait_accept && !connected) {
+		wait_accept = true;
+		if (TCP_ACP_CEP(TCP_CEPID, TCP_REPID, &dst, TMO_NBLK) != E_WBLK)
+			return 0;
+		}
+
+	while (true) {
+		if (connected) {
+			off = 0;
+			while (off < len && (ch = get_char(TCP_CEPID)) != EOF) {
+				*(buf + off ++) = ch;
+				if ((net_ioctl & IOCTL_ECHO) != 0) {
+					put_char(TCP_CEPID, ch);
+					flush_snd_buff(TCP_CEPID);
+					}
+				}
+			return off;
+			}
+		else if (serial_ref_por(portid, &rpor) == E_OK && rpor.reacnt > 0) {
+			return serial_rea_dat(portid, buf, len);
+			}
+		dly_tsk(500);
+		}
+	return off;
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡
+ */
+
+ER
+net_serial_ctl_por (ID portid, uint_t ioctl)
+{
+	net_ioctl = ioctl;
+	return serial_ctl_por(portid, ioctl);
+	}
+
+/*
+ *  ãã£ã¨ãé·ãæ´æ°å (LONGEST) ã¨ç¬¦å·ãªãæ´æ°å (ULONGEST)
+ */
+
+#ifdef LONGLONG_TYPE
+
+typedef LONGLONG_TYPE		LONGEST;
+typedef unsigned LONGLONG_TYPE	ULONGEST;
+
+#else	/* of #ifdef LONGLONG_TYPE */
+
+#ifdef LONG_TYPE
+
+typedef LONG_TYPE		LONGEST;
+typedef unsigned LONG_TYPE	ULONGEST;
+
+#else	/* of #ifdef LONG_TYPE */
+
+typedef int_t			LONGEST;
+typedef uint_t			ULONGEST;
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#endif	/* of #ifdef LONGLONG_TYPE */
+
+/*
+ *  ã­ã°ã®ã·ãã¥ã¬ã¼ã·ã§ã³
+ */
+
+/*  æ°å¤å¤æã®ããã®å¤æè¡¨  */
+
+static const char radhex[] = "0123456789abcdef";
+static const char radHEX[] = "0123456789ABCDEF";
+
+/*
+ *  put_num -- printf ã®æ°å¤å¤æ
+ */
+
+int_t
+put_num(ID cepid, ULONGEST val, int_t radix, const char *radchar, int_t width, bool_t minus, char padchar)
+{
+	char	digits[24];
+	int_t	ix, pad, pchars;
+	bool_t	left;
+
+	if (width < 0) {
+		width = -width;
+		left = true;
+		}
+	else
+		left = false;
+
+	ix = 0;
+	do {
+		digits[ix ++] = radchar[val % radix];
+		val /= radix;
+		} while (val != 0);
+
+	if (minus)
+		digits[ix ++] = '-';
+
+	if (width > ix)
+		pchars = width;
+	else
+		pchars = ix;
+
+	pad = ix;
+	if (!left)	/* å³è©°ã */
+		for ( ; pad < width; pad ++)
+			put_char(cepid, padchar);
+
+	while (ix -- > 0)
+		put_char(cepid, digits[ix]);
+
+	if (left)	/* å·¦è©°ã */
+		for ( ; pad < width; pad ++)
+			put_char(cepid, padchar);
+
+	return pchars;
+	}
+
+/*
+ *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)
+{
+	int_t	len = 0, ix;
+	bool_t	omit = false, zero = false;
+
+	if (addr == NULL) {
+		put_char(cepid, '0');
+		put_char(cepid, ':');
+		put_char(cepid, ':');
+		put_char(cepid, '0');
+		len = 4;
+		}
+	else {
+		for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
+			if (omit) {
+				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					put_char(cepid, ':');
+					len ++;
+					}
+				}
+			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
+				zero = true;
+			else {
+				if (zero) {
+					omit = true;
+					put_char(cepid, ':');
+					len ++;
+					}
+				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					put_char(cepid, ':');
+					len ++;
+					}
+				}
+			}
+
+		for ( ; len < width; len ++)
+			put_char(cepid, ' ');
+		}
+	return len;
+	}
+
+/*
+ *  put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv4addr (ID cepid, ULONGEST *addr, int_t width)
+{
+	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+
+#else	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+
+#endif	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+	for ( ; len < width; len ++)
+		put_char(cepid, ' ');
+
+	return len;
+	}
+
+/*
+ *  put_macaddr -- MAC ã¢ãã¬ã¹åºå
+ */
+
+static int_t
+put_macaddr (ID cepid, char *mac, int_t width)
+{
+	int_t oct, len;
+
+	for (oct = 5; oct -- > 0; ) {
+		put_num(cepid, *mac ++, 16, radhex, 2, false, '0'); 
+		put_char(cepid, ':');
+		}
+	put_num(cepid, *mac, 16, radhex, 2, false, '0'); 
+
+	for (len = 17; len < width; len ++)
+		put_char(cepid, ' ');
+
+	return len;
+	}
+
+/*
+ *  å¼æ°ãåãåºãããã®ãã¯ã­
+ */
+
+#ifdef LONGLONG_TYPE
+
+#ifdef LONG_TYPE
+
+#define GET_ARG(ap,lf)	((lf > 1) ? va_arg(ap, LONGLONG_TYPE)	\
+			 (lf      ? va_arg(ap, LONG_TYPE)	\
+			          : va_arg(ap, int_t)))
+
+#else	/* of #ifdef LONG_TYPE */
+
+#define GET_ARG(ap,lf)	((lf > 1) ? va_arg(ap, LONGLONG_TYPE)	\
+			          : va_arg(ap, int_t))
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#else	/* of #ifdef LONGLONG_TYPE */
+
+#ifdef LONG_TYPE
+
+#define GET_ARG(ap,lf)	 (lf      ? va_arg(ap, LONG_TYPE)	\
+			          : va_arg(ap, int_t))
+
+#else	/* of #ifdef LONG_TYPE */
+
+#define GET_ARG(ap,lf)	(va_arg(ap, int_t))
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#endif	/* of #ifdef LONGLONG_TYPE */
+
+/*
+ *  ã­ã°åºå
+ */
+
+void
+net_syslog (uint_t prio, const char *format, ...)
+{
+	LONGEST	val;
+	SYSLOG	log;
+	va_list	ap;
+	char	padchar, *str;
+	int_t	ch, width, longflag, shortflag, left, i, c;
+
+	if (connected) {
+		syscall(wai_sem(SEM_TCP_SYSLOG));
+		va_start(ap, format);
+		while ((ch = *format ++) != '\0') {
+			if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+				put_char(TCP_CEPID, (char)ch);
+				continue;
+				}
+
+			width = longflag = shortflag = 0;
+			padchar = ' ';
+
+			if (ch == '-') {		/* å·¦è©°ã */
+				format ++;
+				left = -1;
+				}
+			else
+				left = 1;
+
+			if ((ch = *format ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+				padchar = '0';
+				ch = *format ++;
+				}
+
+			while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+				width = width * 10 + ch - '0';
+				ch = *format ++;
+				}
+
+			while (ch == 'l') {		/* long (long) ã®æå® */
+				longflag ++;
+				ch = *format ++;
+				}
+
+			while (ch == 'h') {		/* short ã®æå® */
+				shortflag ++;
+				ch = *format ++;
+				}
+
+			switch (ch) {
+			case 'd':
+				val = GET_ARG(ap, longflag);
+				if (val >= 0)
+					put_num(TCP_CEPID,  val, 10, radhex, width * left, false, padchar);
+				else
+					put_num(TCP_CEPID, -val, 10, radhex, width * left, true, padchar);
+				break;
+
+			case 'u':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 10, radhex, width * left, false, padchar);
+				break;
+
+			case 'x':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 16, radhex, width * left, false, padchar);
+				break;
+
+			case 'X':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 16, radHEX, width * left, false, padchar);
+				break;
+
+			case 'c':
+				ch = va_arg(ap, int_t);
+				put_char(TCP_CEPID, (char)ch);
+				break;
+
+			case 's':
+				str = va_arg(ap, char*);
+				while ((ch = *str ++) != '\0') {
+					put_char(TCP_CEPID, (char)ch);
+					width --;
+					}
+				while (width -- > 0)
+					put_char(TCP_CEPID, ' ');
+				break;
+
+			case 'I':
+
+				if (longflag) {
+					str = va_arg(ap, char*);
+					put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
+					}
+				else if (shortflag) {
+					val = GET_ARG(ap, longflag);
+					put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
+					}
+				else {
+
+#ifdef SUPPORT_INET6
+
+					str = va_arg(ap, char*);
+					put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+					val = GET_ARG(ap, longflag);
+					put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+					}
+
+				break;
+
+			case 'M':
+				str = va_arg(ap, char*);
+				put_macaddr(TCP_CEPID, str, width);
+				break;
+
+			case '%':
+				put_char(TCP_CEPID, '%');
+				break;
+
+			case '0':
+				format --;
+				break;
+
+			default:
+				break;
+				}
+
+			}
+		va_end(ap);
+		put_char(TCP_CEPID, '\n');
+		flush_snd_buff(TCP_CEPID);
+		syscall(sig_sem(SEM_TCP_SYSLOG));
+		return /*E_OK*/;
+		}
+	else {
+		log.logtype = LOG_TYPE_COMMENT;
+		log.loginfo[0] = (intptr_t)format;
+		i = 1;
+		va_start(ap, format);
+
+		while ((c = *format++) != '\0' && i < TMAX_LOGINFO) {
+			if (c != '%') {
+				continue;
+				}
+
+			c = *format++;
+			while ('0' <= c && c <= '9') {
+				c = *format++;
+				}
+			switch (c) {
+			case 'd':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, int_t);
+				break;
+			case 'u':
+			case 'x':
+			case 'X':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, uint_t);
+				break;
+			case 'p':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, void *);
+				break;
+			case 'c':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, int_t);
+				break;
+			case 's':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, const char *);
+				break;
+			case '\0':
+				format--;
+				break;
+			default:
+				break;
+				}
+			}
+		va_end(ap);
+		return /*(syslog_wri_log(prio, &log))*/;
+		}
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.cfg	(revision 313)
@@ -0,0 +1,22 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®
+ *  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+
+#include "sample1n.h"
+
+INCLUDE("sample1.cfg");
+
+INCLUDE("tinet_asp.cfg");
+
+INCLUDE("tinet_sample1n.cfg");
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_TCP_SYSLOG, { TA_TPRI, 1, 1 });
+CRE_SEM(SEM_NET_SEND,   { TA_TPRI, 1, 1 });
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/sample1n.h	(revision 313)
@@ -0,0 +1,85 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _SAMPLE1N_H_
+#define _SAMPLE1N_H_
+
+#include <tinet_defs.h>
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+
+#define TCP_SWBUF_SIZE	512
+#define TCP_RWBUF_SIZE	512
+
+/*  ãªãã¼ã   */
+
+#define syslog		net_syslog
+#define serial_rea_dat	net_serial_rea_dat
+#define serial_ctl_por	net_serial_ctl_por
+
+#ifndef _MACRO_ONLY
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+extern uint8_t tcp_swbuf[];
+extern uint8_t tcp_rwbuf[];
+
+/*  ãããã¯ã¼ã¯å¯¾å¿åé¢æ°  */
+
+extern void net_syslog(uint_t prio, const char *format, ...) throw();
+extern ER_UINT	net_serial_rea_dat(ID portid, char *buf, uint_t len) throw();
+extern ER	net_serial_ctl_por(ID portid, uint_t ioctl) throw();
+
+/*  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°  */
+
+extern ER	callback_nblk_tcp(ID cepid, FN fncd, void *p_parblk);
+
+#endif /* _MACRO_ONLY */
+
+#endif	/* of #ifndef _SAMPLE1N_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h	(revision 313)
@@ -0,0 +1,668 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_APP_CONFIG_H_
+#define _TINET_APP_CONFIG_H_
+
+/*
+ *  ã¤ã³ã¿ã¼ããããã­ãã³ã«ãã¡ããªã¼ã®ãµãã¼ã
+ *
+ *    Makefile ã§æå®ãã¦ãè¯ã
+ */
+
+/*#define SUPPORT_INET4		TCP/IP,IPv4		*/
+/*#define SUPPORT_INET6		TCP/IP,IPv6		*/
+/*#define SUPPORT_TCP		TCP			*/
+/*#define SUPPORT_UDP		UDP			*/
+
+/*ãã¼ã¿ãªã³ã¯å±¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãé¸æãã	*/
+/*ããããä¸ã¤ã ãé¸æã§ããã				*/
+
+/*#define SUPPORT_PPP		PointtoPointProtocol	*/
+/*#define SUPPORT_LOOP		LocalLoopBack		*/
+/*#define SUPPORT_ETHER		Ethernet		*/
+
+/*#define SUPPORT_MIB		MIB(SNMP)		*/
+
+/*
+ *  TCP/IP ã«é¢ããå®ç¾©
+ */
+
+/* TCP ã«é¢ããå®ç¾© */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+ *    æ³¨æ: Makefile ã§æå®ãã¦ããã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_RWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
+ *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã
+ *  ãã ããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+ *  ã¾ããæå®ããªãã¨å¶éããªãã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_MAX_QUEUES	2*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã
+ *  éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef SUPPORT_INET6
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* æå¤§ãµã¤ãº */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* æå¤§ãµã¤ãº */
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* æå¤§ãµã¤ãº */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* æå°ãµã¤ãº */
+
+/*
+ *  TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_TCP_CFG_NON_BLOCKING
+#undef TCP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
+ *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef MAX_TCP_SND_SEG
+#undef MAX_TCP_SND_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define MAX_TCP_SND_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define MAX_TCP_SND_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef DEF_TCP_RCV_SEG
+#undef DEF_TCP_RCV_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define DEF_TCP_RCV_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define DEF_TCP_RCV_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
+ *
+ *  Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
+ *  æå®ããªããã0 ãæå®ããã¨ã
+ *  ã¿ã¹ã¯ãã Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã¯çµè¾¼ã¾ãªãã
+ */
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_TCP_TW_CEP_ENTRY		3
+#else
+#define NUM_TCP_TW_CEP_ENTRY		6
+#endif
+
+/*
+ *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+ */
+//#define TCP_CFG_TRACE
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹
+ *  IPV4_ADDRANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+ */
+#define TCP_CFG_TRACE_IPV4_RADDR	IPV4_ADDRANY
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_RPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_RPORTNO		UINT_C(7)
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_LPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_LPORTNO		UINT_C(7)
+
+/*
+ *  ITRON TCP/IP APIãTCP ã®æ¡å¼µæ©è½
+ */
+//#define TCP_CFG_EXTENTIONS
+
+/*
+ *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
+ *
+ *    -1: BSD ã®å®è£
+ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
+ *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ */
+
+//#define TCP_CFG_URG_OFFSET	-1
+//#define TCP_CFG_URG_OFFSET	0
+
+/* UDP ã«é¢ããå®ç¾© */
+
+/*
+ *  UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_UDP_CFG_NON_BLOCKING
+#undef UDP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  ITRON TCP/IP APIãUDP ã®æ¡å¼µæ©è½
+ */
+//#define UDP_CFG_EXTENTIONS
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_ETHER
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#if 1
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(192,168,1,21)
+#else
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#if 1
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(192,168,1,31)
+#else
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+#ifdef DHCP4_CLI_CFG
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(0,0,0,0)
+
+#else	/* of #ifdef DHCP4_CLI_CFG */
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(172,25,129,200)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(255,255,255,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(172,25,129,140)
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	3
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+/*
+ *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ã¤ã¼ãµãããã«é¢ããå®ç¾©
+ */
+
+/*
+ *  PPP ã«é¢ããå®ç¾©
+ */
+
+#define HDLC_PORTID			1	/* HDLC(PPP)ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·	*/
+
+/*#define PPP_IDLE_TIMEOUT		(180*NET_TIMER_HZ)*/
+					/* åæ­ã¾ã§ã®ã¢ã¤ãã«æéã		*/
+					/* åæ­ããªãå ´åã¯ã³ã¡ã³ãã¢ã¦ãããã	*/
+
+/*#define PPP_CFG_MODEM			 ã¢ãã æ¥ç¶ã®å ´åã¯ã³ã¡ã³ããå¤ãã	*/
+
+#define MODEM_CFG_INIT			"ATE1&D0&S0\\V0\\Q1S0=1"
+					/* ã¢ãã åæåæå­å			*/
+					/* NTT DoComo ã¢ãã¤ã«ã¢ããã¿ 96F ç¨	*/
+					/*   E1: ã¨ã³ã¼ããã¯ãã			*/
+					/*  &D0: ERä¿¡å·ç¡è¦			*/
+					/*  &S0: DRä¿¡å·å¸¸æ ON			*/
+					/*  \V0: ãªã¶ã«ãã³ã¼ã TYPE 1		*/
+					/*  \Q1: XON/XOFF ãã­ã¼å¶å¾¡		*/
+					/* S0=1: èªåçä¿¡ãªã³ã°åæ° = 1 å	*/
+
+#define MODEM_CFG_PHONE_NUMBER		"090-xxxx-9242"
+
+					/* èªæ§ææ
+å ±ã®è¦å®å¤			*/
+#define DEF_LCP_LOCAL_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+					/* ç¸æã«è¨±ãæ§ææ
+å ±ã®è¦å®å¤		*/
+#define DEF_LCP_REMOTE_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+/*
+ *  èªè¨¼ã«é¢ããå®ç¾©
+ */
+
+#define AUTH_CFG_CLIENT		   	/* èªè¨¼ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã	*/
+#define AUTH_CFG_SERVER			/* èªè¨¼ãµã¼ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã		*/
+
+#define AUTH_LOCAL_USER			"h8"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å	*/
+#define AUTH_LOCAL_PASSWD		"3048f"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã	*/
+#define AUTH_REMOTE_USER		"pen3"		/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å		*/
+#define AUTH_REMOTE_PASSWD		"600MHz"	/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã		*/
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP ã¢ãã¬ã¹éè¤æ¤åºã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã		*/
+
+/*
+ *  ICMPv4/v6 ã«é¢ããå®ç¾©
+ */
+
+#ifdef USE_PING
+
+#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO å¿ç­ãåä¿¡ããã¨ãå¼åºãã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã			*/
+
+#endif	/* of #ifdef USE_PING */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ */
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
+ */
+
+/*
+ *  64 ãªã¯ããã
+ *
+ *    IPv4 ã§ã®ã¿å²ãå½ã¦ãã
+ *
+ *    IPv6 ã§ã¯ãTCP å¶å¾¡ã»ã°ã¡ã³ãï¼CSEGãSDU ãªãï¼ãµã¤ãºã®
+ *    ãããã¯ã¼ã¯ãããã¡ï¼IF + IPv6 + TCP = 74ï¼ä»¥ä¸ã®
+ *    ãããã¯ã¼ã¯ãããã¡ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_64
+#undef NUM_MPF_NET_BUF_64
+#endif
+
+#ifdef SUPPORT_INET4
+#define NUM_MPF_NET_BUF_64		2
+#else
+#define NUM_MPF_NET_BUF_64		0
+#endif
+
+/*
+ *  CSEGï¼IF + IP + TCPï¼
+ *
+ *    IPv6 ã§ã®ã¿å²ãå½ã¦ãã
+ *
+ *    NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_edï¼ã®æä½å²å½ã¦é·ã¯ã
+ *    ã¤ã¼ãµããããã¬ã¼ã ã®æç­é·ã§ãã 60ï¼CRC ã® 4 ãªã¯ããããé¤ãã
+ *    æ´ã«ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã§ããã
+ *    å¾ã£ã¦ãIPv4 ã§ã¯ãCSEG ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *   ï¼IF + IPv4 + TCP = 54ï¼ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_CSEG
+#undef NUM_MPF_NET_BUF_CSEG
+#endif
+
+#ifdef SUPPORT_INET6
+#define NUM_MPF_NET_BUF_CSEG		2
+#else
+#define NUM_MPF_NET_BUF_CSEG		0
+#endif
+
+/*
+ *  128 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_128
+#undef NUM_MPF_NET_BUF_128
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_128		0
+#else
+#define NUM_MPF_NET_BUF_128		1
+#endif
+
+/*
+ *  256 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_256
+#undef NUM_MPF_NET_BUF_256
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_256		0
+#else
+#define NUM_MPF_NET_BUF_256		1
+#endif
+
+/*
+ *  512 ãªã¯ããã	
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_512
+#undef NUM_MPF_NET_BUF_512
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_512		0
+#else
+#define NUM_MPF_NET_BUF_512		1
+#endif
+
+/*
+ *  TCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼
+ *
+ *   ã»IPv4 ã§ã®ã¿å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IP_MSS
+#undef NUM_MPF_NET_BUF_IP_MSS
+#endif
+
+#if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG)
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IP_MSS		3
+#else
+#define NUM_MPF_NET_BUF_IP_MSS		2	/* IF + 576 ãªã¯ããã	*/
+#endif
+
+#else	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 ãªã¯ããã	*/
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+/*
+ *  1024 ãªã¯ããã	
+ *
+ *    TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_1024
+#undef NUM_MPF_NET_BUF_1024
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_1024		0	/* 1024 ãªã¯ããã	*/
+#else
+#define NUM_MPF_NET_BUF_1024		1	/* 1024 ãªã¯ããã	*/
+#endif
+
+/*
+ *  TCP MSSï¼IPV6 MMTUãIF + 1280 ãªã¯ãããï¼
+ *
+ *   ã»IPv6 ã§ã®ã¿å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IPV6_MMTU
+#undef NUM_MPF_NET_BUF_IPV6_MMTU
+#endif
+
+#if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU))
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IPV6_MMTU	3	/* IF + 1280	*/
+#else
+#define NUM_MPF_NET_BUF_IPV6_MMTU	2	/* IF + 1280	*/
+#endif
+
+#else	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+#define NUM_MPF_NET_BUF_IPV6_MMTU	0	/* IF + 1280	*/
+
+#endif	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+/*
+ *  IF æå¤§ PDU ãµã¤ãº
+ *
+ *   ã»TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *     IF æå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IF_PDU
+#undef NUM_MPF_NET_BUF_IF_PDU
+#endif
+
+#ifdef USE_TCP_MSS_SEG
+
+#define NUM_MPF_NET_BUF_IF_PDU		0
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#if (defined(TCP_CFG_RWBUF_CSAVE) || defined(TCP_CFG_SWBUF_CSAVE)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IF_PDU		9
+#else
+#define NUM_MPF_NET_BUF_IF_PDU		8
+#endif
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  65536 ãªã¯ããã
+ *
+ *  ã»NET_BUF_CFG_LONG_LEN ãå®ç¾©ããã¨ãã®ã¿å²ãå½ã¦ãã
+ */
+
+#ifdef NET_BUF_CFG_LONG_LEN
+
+/* IPv6 ç¨ */
+
+#ifdef NUM_MPF_NET_BUF6_65536
+#undef NUM_MPF_NET_BUF6_65536
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF6_65536	0
+#else
+#define NUM_MPF_NET_BUF6_65536	2
+#endif
+
+#else	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#define NUM_MPF_NET_BUF6_65536	0
+
+#endif	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  DNS ãµã¼ãã«é¢ããå®ç¾©
+ */
+
+/* DNS ãµã¼ãã® IP ã¢ãã¬ã¹ */
+
+#if !defined(DHCP6_CLI_CFG)
+
+#define IPV6_ADDR_DNS_INIT	\
+	{{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
+	    UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
+	    UINT_C(0x02), UINT_C(0xa0), UINT_C(0x24), UINT_C(0xff), \
+	    UINT_C(0xfe), UINT_C(0x56), UINT_C(0xc5), UINT_C(0xd6) }}}
+
+#endif	/* of #if !defined(DHCP6_CLI_CFG) */
+
+#if !defined(DHCP4_CLI_CFG)
+#define IPV4_ADDR_DNS		MAKE_IPV4_ADDR(172,25,129,140)
+#endif
+
+/* DOMAIN å */
+
+#if !(defined(DHCP4_CLI_CFG) || defined(DHCP6_CLI_CFG))
+#define RSLV_CFG_DNS_DOMAIN_NAME_STR	"jo.tomakomai-ct.ac.jp"
+#endif
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã«é¢ããå®ç¾©
+ */
+
+/* DHCPv6 ã®åä½ã¢ã¼ãã®è¨­å® */
+
+#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATELESS
+//#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATEFULL
+
+#endif /* _TINET_APP_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h.minsv
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h.minsv	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_app_config.h.minsv	(revision 313)
@@ -0,0 +1,651 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id: tinet_app_config.h.minsv,v 1.6 2012/07/18 04:08:37 abe Exp abe $
+ */
+
+#ifndef _TINET_APP_CONFIG_H_
+#define _TINET_APP_CONFIG_H_
+
+/*
+ *  ã¤ã³ã¿ã¼ããããã­ãã³ã«ãã¡ããªã¼ã®ãµãã¼ã
+ *
+ *    Makefile ã§æå®ãã¦ãè¯ã
+ */
+
+/*#define SUPPORT_INET4		TCP/IP,IPv4		*/
+/*#define SUPPORT_INET6		TCP/IP,IPv6		*/
+/*#define SUPPORT_TCP		TCP			*/
+/*#define SUPPORT_UDP		UDP			*/
+
+/*ãã¼ã¿ãªã³ã¯å±¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãé¸æãã	*/
+/*ããããä¸ã¤ã ãé¸æã§ããã				*/
+
+/*#define SUPPORT_PPP		PointtoPointProtocol	*/
+/*#define SUPPORT_LOOP		LocalLoopBack		*/
+/*#define SUPPORT_ETHER		Ethernet		*/
+
+/*#define SUPPORT_MIB		MIB(SNMP)		*/
+
+/*
+ *  TCP/IP ã«é¢ããå®ç¾©
+ */
+
+/* TCP ã«é¢ããå®ç¾© */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+ *    æ³¨æ: Makefile ã§æå®ãã¦ããã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_RWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
+ *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã
+ *  ãã ããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+ *  ã¾ããæå®ããªãã¨å¶éããªãã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_MAX_QUEUES	2*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã
+ *  éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef SUPPORT_INET6
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* æå¤§ãµã¤ãº */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* æå¤§ãµã¤ãº */
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* æå¤§ãµã¤ãº */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* æå°ãµã¤ãº */
+
+/*
+ *  TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_TCP_CFG_NON_BLOCKING
+#undef TCP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
+ *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef MAX_TCP_SND_SEG
+#undef MAX_TCP_SND_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define MAX_TCP_SND_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define MAX_TCP_SND_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef DEF_TCP_RCV_SEG
+#undef DEF_TCP_RCV_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define DEF_TCP_RCV_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define DEF_TCP_RCV_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
+ *
+ *  Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
+ *  æå®ããªããã0 ãæå®ããã¨ã
+ *  ã¿ã¹ã¯ãã Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã¯çµè¾¼ã¾ãªãã
+ */
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_TCP_TW_CEP_ENTRY		3
+#else
+#define NUM_TCP_TW_CEP_ENTRY		6
+#endif
+
+/*
+ *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+ */
+//#define TCP_CFG_TRACE
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹
+ *  IPV4_ADDRANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+ */
+#define TCP_CFG_TRACE_IPV4_RADDR	IPV4_ADDRANY
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_RPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_RPORTNO		UINT_C(7)
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_LPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_LPORTNO		UINT_C(7)
+
+/*
+ *  ITRON TCP/IP APIãTCP ã®æ¡å¼µæ©è½
+ */
+//#define TCP_CFG_EXTENTIONS
+
+/*
+ *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
+ *
+ *    -1: BSD ã®å®è£
+ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
+ *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ */
+
+//#define TCP_CFG_URG_OFFSET	-1
+//#define TCP_CFG_URG_OFFSET	0
+
+/* UDP ã«é¢ããå®ç¾© */
+
+/*
+ *  UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_UDP_CFG_NON_BLOCKING
+#undef UDP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  ITRON TCP/IP APIãUDP ã®æ¡å¼µæ©è½
+ */
+//#define UDP_CFG_EXTENTIONS
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_ETHER
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#if 1
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(192,168,1,21)
+#else
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#if 1
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(192,168,1,31)
+#else
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+#ifdef DHCP4_CLI_CFG
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(0,0,0,0)
+
+#else	/* of #ifdef DHCP4_CLI_CFG */
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(172,25,129,200)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(255,255,255,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(172,25,129,140)
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	3
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+/*
+ *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ã¤ã¼ãµãããã«é¢ããå®ç¾©
+ */
+
+/*
+ *  PPP ã«é¢ããå®ç¾©
+ */
+
+#define HDLC_PORTID			1	/* HDLC(PPP)ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·	*/
+
+/*#define PPP_IDLE_TIMEOUT		(180*NET_TIMER_HZ)*/
+					/* åæ­ã¾ã§ã®ã¢ã¤ãã«æéã		*/
+					/* åæ­ããªãå ´åã¯ã³ã¡ã³ãã¢ã¦ãããã	*/
+
+/*#define PPP_CFG_MODEM			 ã¢ãã æ¥ç¶ã®å ´åã¯ã³ã¡ã³ããå¤ãã	*/
+
+#define MODEM_CFG_INIT			"ATE1&D0&S0\\V0\\Q1S0=1"
+					/* ã¢ãã åæåæå­å			*/
+					/* NTT DoComo ã¢ãã¤ã«ã¢ããã¿ 96F ç¨	*/
+					/*   E1: ã¨ã³ã¼ããã¯ãã			*/
+					/*  &D0: ERä¿¡å·ç¡è¦			*/
+					/*  &S0: DRä¿¡å·å¸¸æ ON			*/
+					/*  \V0: ãªã¶ã«ãã³ã¼ã TYPE 1		*/
+					/*  \Q1: XON/XOFF ãã­ã¼å¶å¾¡		*/
+					/* S0=1: èªåçä¿¡ãªã³ã°åæ° = 1 å	*/
+
+#define MODEM_CFG_PHONE_NUMBER		"090-xxxx-9242"
+
+					/* èªæ§ææ
+å ±ã®è¦å®å¤			*/
+#define DEF_LCP_LOCAL_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+					/* ç¸æã«è¨±ãæ§ææ
+å ±ã®è¦å®å¤		*/
+#define DEF_LCP_REMOTE_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+/*
+ *  èªè¨¼ã«é¢ããå®ç¾©
+ */
+
+#define AUTH_CFG_CLIENT		   	/* èªè¨¼ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã	*/
+#define AUTH_CFG_SERVER			/* èªè¨¼ãµã¼ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã		*/
+
+#define AUTH_LOCAL_USER			"h8"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å	*/
+#define AUTH_LOCAL_PASSWD		"3048f"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã	*/
+#define AUTH_REMOTE_USER		"pen3"		/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å		*/
+#define AUTH_REMOTE_PASSWD		"600MHz"	/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã		*/
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP ã¢ãã¬ã¹éè¤æ¤åºã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã		*/
+
+/*
+ *  ICMPv4/v6 ã«é¢ããå®ç¾©
+ */
+
+#ifdef USE_PING
+
+#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO å¿ç­ãåä¿¡ããã¨ãå¼åºãã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã			*/
+
+#endif	/* of #ifdef USE_PING */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ */
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
+ */
+
+/*
+ *  64 ãªã¯ããã
+ *
+ *    IPv4 ã®ã¿ãçµè¾¼ãæã«å²ãå½ã¦ãã
+ *
+ *    IPv6 ã§ã¯ãTCP å¶å¾¡ã»ã°ã¡ã³ãï¼CSEGãSDU ãªãï¼ãµã¤ãºã®
+ *    ãããã¯ã¼ã¯ãããã¡ï¼IF + IPv6 + TCP = 74ï¼ä»¥ä¸ã®
+ *    ãããã¯ã¼ã¯ãããã¡ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_64
+#undef NUM_MPF_NET_BUF_64
+#endif
+
+#if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+#define NUM_MPF_NET_BUF_64		2
+#else
+#define NUM_MPF_NET_BUF_64		0
+#endif
+
+/*
+ *  CSEGï¼IF + IP + TCPï¼
+ *
+ *    IPv6 ã®ã¿ãçµè¾¼ãæã«å²ãå½ã¦ãã
+ *
+ *    NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_edï¼ã®æä½å²å½ã¦é·ã¯ã
+ *    ã¤ã¼ãµããããã¬ã¼ã ã®æç­é·ã§ãã 60ï¼CRC ã® 4 ãªã¯ããããé¤ãã
+ *    æ´ã«ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã§ããã
+ *    å¾ã£ã¦ãIPv4 ã§ã¯ãCSEG ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *   ï¼IF + IPv4 + TCP = 54ï¼ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_CSEG
+#undef NUM_MPF_NET_BUF_CSEG
+#endif
+
+#if defined(SUPPORT_INET6) && !defined(SUPPORT_INET4)
+#define NUM_MPF_NET_BUF_CSEG		2
+#else
+#define NUM_MPF_NET_BUF_CSEG		0
+#endif
+
+/*
+ *  128 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_128
+#undef NUM_MPF_NET_BUF_128
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_128		0
+#else
+#define NUM_MPF_NET_BUF_128		1
+#endif
+
+/*
+ *  256 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_256
+#undef NUM_MPF_NET_BUF_256
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_256		0
+#else
+#define NUM_MPF_NET_BUF_256		1
+#endif
+
+/*
+ *  512 ãªã¯ããã	
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_512
+#undef NUM_MPF_NET_BUF_512
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_512		0
+#else
+#define NUM_MPF_NET_BUF_512		1
+#endif
+
+/*
+ *  TCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼
+ *
+ *   ã»IPv4 ã®ã¿ãçµè¾¼ãæã«å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IP_MSS
+#undef NUM_MPF_NET_BUF_IP_MSS
+#endif
+
+#if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG)
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IP_MSS		4
+#else
+#define NUM_MPF_NET_BUF_IP_MSS		3	/* IF + 576 ãªã¯ããã	*/
+#endif
+
+#else	/* of #if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 ãªã¯ããã	*/
+
+#endif	/* of #if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+/*
+ *  1024 ãªã¯ããã	
+ *
+ *    TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_1024
+#undef NUM_MPF_NET_BUF_1024
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_1024		0	/* 1024 ãªã¯ããã	*/
+#else
+#define NUM_MPF_NET_BUF_1024		1	/* 1024 ãªã¯ããã	*/
+#endif
+
+/*
+ *  TCP MSSï¼IPV6 MMTUãIF + 1280 ãªã¯ãããï¼
+ *
+ *   ã»IPv6 ãçµè¾¼ãæã«å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IPV6_MMTU
+#undef NUM_MPF_NET_BUF_IPV6_MMTU
+#endif
+
+#if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU))
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IPV6_MMTU	3	/* IF + 1280	*/
+#else
+#define NUM_MPF_NET_BUF_IPV6_MMTU	2	/* IF + 1280	*/
+#endif
+
+#else	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+#define NUM_MPF_NET_BUF_IPV6_MMTU	0	/* IF + 1280	*/
+
+#endif	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+/*
+ *  IF æå¤§ PDU ãµã¤ãº
+ *
+ *   ã»TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *     IF æå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IF_PDU
+#undef NUM_MPF_NET_BUF_IF_PDU
+#endif
+
+#ifdef USE_TCP_MSS_SEG
+
+#define NUM_MPF_NET_BUF_IF_PDU		0
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#if (defined(TCP_CFG_RWBUF_CSAVE) || defined(TCP_CFG_SWBUF_CSAVE)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IF_PDU		6
+#else
+#define NUM_MPF_NET_BUF_IF_PDU		5
+#endif
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  65536 ãªã¯ããã
+ *
+ *  ã»NET_BUF_CFG_LONG_LEN ãå®ç¾©ããã¨ãã®ã¿å²ãå½ã¦ãã
+ */
+
+#ifdef NET_BUF_CFG_LONG_LEN
+
+/* IPv6 ç¨ */
+
+#ifdef NUM_MPF_NET_BUF6_65536
+#undef NUM_MPF_NET_BUF6_65536
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF6_65536	0
+#else
+#define NUM_MPF_NET_BUF6_65536	2
+#endif
+
+#else	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#define NUM_MPF_NET_BUF6_65536	0
+
+#endif	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  TINET å
+é¨ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®è¨­å®
+ */
+
+#undef  TCP_OUT_TASK_STACK_SIZE
+#define	TCP_OUT_TASK_STACK_SIZE	768	/* TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+
+#undef  ETHER_INPUT_STACK_SIZE
+#define	ETHER_INPUT_STACK_SIZE	768	/* Ethernet å
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+#undef  ETHER_OUTPUT_STACK_SIZE
+#define	ETHER_OUTPUT_STACK_SIZE	768	/* Ethernet åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+#undef  NET_TIMER_STACK_SIZE
+#define	NET_TIMER_STACK_SIZE	768	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+
+#endif /* _TINET_APP_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos4.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos4.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos4.cfg	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "echos4.h"
+
+/* TCP åä»å£ */
+
+TCP_CRE_REP (TCP_ECHO_SRV_REPID,	{ 0, { IPV4_ADDRANY, 7 } } );
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID, {
+	0,
+	tcp_echo_srv_swbuf,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID, {
+	0,
+	tcp_echo_srv_swbuf,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos6.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos6.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_echos6.cfg	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "echos6.h"
+
+/* TCP åä»å£ */
+
+TCP6_CRE_REP (TCP_ECHO_SRV_REPID,	{ 0, { IPV6_ADDRANY, 7 } } );
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID, {
+	0,
+	tcp_echo_srv_swbuf,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID, {
+	0,
+	tcp_echo_srv_swbuf,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_minsv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_minsv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_minsv.cfg	(revision 313)
@@ -0,0 +1,56 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+  *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  æå°æ§æãµã¼ãè©¦é¨ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "@(TINETDIR)/netapp/wwws.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv1.h"
+
+#include "minsv.h"
+
+INCLUDE("@(TINETDIR)/netapp/tinet_wwws.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp64_echo_srv1.cfg");
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_nserv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_nserv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_nserv.cfg	(revision 313)
@@ -0,0 +1,85 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãµã¼ãè©¦é¨ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+#include "@(TINETDIR)/netapp/wwws.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv1.h"
+#include "@(TINETDIR)/netapp/tcp_echo_srv2.h"
+#include "@(TINETDIR)/netapp/tcp_echo_cli.h"
+#include "@(TINETDIR)/netapp/tcp_discard_srv.h"
+#include "@(TINETDIR)/netapp/tcp_discard_cli.h"
+#include "@(TINETDIR)/netapp/udp6_echo_srv.h"
+#include "@(TINETDIR)/netapp/udp4_echo_srv.h"
+#include "@(TINETDIR)/netapp/udp6_echo_cli.h"
+#include "@(TINETDIR)/netapp/udp4_echo_cli.h"
+#include "@(TINETDIR)/netapp/net_cons.h"
+#include "@(TINETDIR)/netapp/dhcp6_cli.h"
+#include "@(TINETDIR)/netapp/dhcp4_cli.h"
+
+#include "nserv.h"
+
+INCLUDE("@(TINETDIR)/netapp/tinet_wwws.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp64_echo_srv1.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp64_echo_srv1_nblk.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp6_echo_srv1.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp6_echo_srv1_nblk.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp4_echo_srv1.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp4_echo_srv1_nblk.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp_echo_srv2.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp_discard_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_tcp_discard_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_udp6_echo_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_udp4_echo_srv.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_udp6_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_udp4_echo_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_udp_discard_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_dbg_cons.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_net_cons.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_resolver.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_dhcp6_cli.cfg");
+INCLUDE("@(TINETDIR)/netapp/tinet_dhcp4_cli.cfg");
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_sample1n.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_sample1n.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_sample1n.cfg	(revision 313)
@@ -0,0 +1,96 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ sample1.c ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "sample1n.h"
+
+/* TCP åä»å£ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_REP (TCP_REPID, { 0, { IPV6_ADDRANY, 23 } } );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_REP (TCP_REPID,	 { 0, { IPV4_ADDRANY, 23 } } );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_CEP (TCP_CEPID, {
+	0,
+	tcp_swbuf,
+	TCP_SWBUF_SIZE,
+	tcp_rwbuf,
+	TCP_RWBUF_SIZE,
+	(FP)callback_nblk_tcp
+	} );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_CEP (TCP_CEPID, {
+	0,
+	tcp_swbuf,
+	TCP_SWBUF_SIZE,
+	tcp_rwbuf,
+	TCP_RWBUF_SIZE,
+	(FP)callback_nblk_tcp
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv4.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv4.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv4.cfg	(revision 313)
@@ -0,0 +1,59 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ããã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "usrv4.h"
+
+/*
+ *  UDP éä¿¡ç«¯ç¹
+ */
+
+UDP_CRE_CEP(USRV_CEPID, {
+	TA_NULL,
+	{ IPV4_ADDRANY, 7 },
+	NULL });
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv6.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv6.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/tinet_usrv6.cfg	(revision 313)
@@ -0,0 +1,59 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ããã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "usrv6.h"
+
+/*
+ *  UDP éä¿¡ç«¯ç¹
+ */
+
+UDP6_CRE_CEP(USRV_CEPID, {
+	TA_NULL,
+	{ IPV6_ADDRANY, 7 },
+	NULL });
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.c	(revision 313)
@@ -0,0 +1,107 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <tinet_config.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include "usrv4.h"
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  å¤æ°
+ */
+
+#define BUF_SIZE	2048
+
+/*
+ *  UDP ECHO ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+usrv_task(intptr_t exinf)
+{
+	static uint8_t buffer[BUF_SIZE];
+
+	T_IPV4EP	dst;
+	T_IN4_ADDR	addr;
+	ER_UINT		len;
+	ID		tskid;
+
+	get_tid(&tskid);
+	addr = IPV4_ADDR_LOCAL;
+	syslog(LOG_NOTICE, "[UDP ECHO SRV:%d,%d] started, IP Address: %s.", 
+	                   tskid, (ID)exinf, ip2str(NULL, &addr));
+	while (true) {
+		if ((len = udp_rcv_dat((ID)exinf, &dst, buffer, sizeof(buffer), 20 * 1000)) >= 0) {
+			buffer[len] = '\0';
+			syslog(LOG_NOTICE, "[UDP ECHO SRV] recv, addr: %s:%d, len: %d, msg: '%s'",
+			                   ip2str(NULL, &dst.ipaddr), dst.portno, len, buffer);
+			if ((int)len > 0) {
+				if ((len = udp_snd_dat((ID)exinf, &dst, buffer, len, TMO_FEVR)) < 0)
+					syslog(LOG_NOTICE, "[UDP ECHO SRV] send, error: %s", itron_strerror(len));
+				}
+			}
+		else
+			syslog(LOG_NOTICE, "[UDP ECHO SRV] recv, error: %s", itron_strerror(len));
+		}
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.cfg	(revision 313)
@@ -0,0 +1,69 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "usrv4.h"
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+CRE_TSK(USRV_TASK, {
+	TA_HLNG | TA_ACT,
+	USRV_CEPID,
+	usrv_task,
+	USRV_MAIN_PRIORITY,
+	USRV_STACK_SIZE,
+	NULL
+	});
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv4.h	(revision 313)
@@ -0,0 +1,69 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _USRV_H_
+#define _USRV_H_
+
+#include <tinet_defs.h>
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ */
+
+#define USRV_STACK_SIZE		1024		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define USRV_MAIN_PRIORITY	5		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	usrv_task(intptr_t exinf);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _USRV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.c	(revision 313)
@@ -0,0 +1,104 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include "usrv6.h"
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  å¤æ°
+ */
+
+#define BUF_SIZE	2048
+
+/*
+ *  UDP ECHO ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+usrv_task(intptr_t exinf)
+{
+	static uint8_t buffer[BUF_SIZE];
+
+	T_IPV6EP	dst;
+	T_IN6_ADDR	addr;
+	ER_UINT		len;
+	ID		tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP ECHO SRV:%d,%d] started.", tskid, (ID)exinf);
+	while (true) {
+		if ((len = udp6_rcv_dat((ID)exinf, &dst, buffer, sizeof(buffer), 20 * 1000)) >= 0) {
+			buffer[len] = '\0';
+			syslog(LOG_NOTICE, "[UDP ECHO SRV] recv, addr: %s:%d,\n"
+			                   "                     len: %d, msg: '%s'",
+			                   ipv62str(NULL, &dst.ipaddr), dst.portno, len, buffer);
+			if ((int)len > 0) {
+				if ((len = udp6_snd_dat((ID)exinf, &dst, buffer, len, TMO_FEVR)) < 0)
+					syslog(LOG_NOTICE, "[UDP ECHO SRV] send, error: %s", itron_strerror(len));
+				}
+			}
+		else
+			syslog(LOG_NOTICE, "[UDP ECHO SRV] recv, error: %s", itron_strerror(len));
+		}
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.cfg	(revision 313)
@@ -0,0 +1,69 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+INCLUDE("@(SRCDIR)/syssvc/serial.cfg");
+INCLUDE("@(SRCDIR)/syssvc/logtask.cfg");
+INCLUDE("target_timer.cfg");
+
+INCLUDE("@(TINETDIR)/tinet_asp.cfg");
+
+#include "usrv6.h"
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+CRE_TSK(USRV_TASK, {
+	TA_HLNG | TA_ACT,
+	USRV_CEPID,
+	usrv_task,
+	USRV_MAIN_PRIORITY,
+	USRV_STACK_SIZE,
+	NULL
+	});
Index: rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/asp_sample/usrv6.h	(revision 313)
@@ -0,0 +1,69 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _USRV_H_
+#define _USRV_H_
+
+#include <tinet_defs.h>
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ */
+
+#define USRV_STACK_SIZE		1024		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#define USRV_MAIN_PRIORITY	5		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	usrv_task(intptr_t exinf);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _USRV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet-1.7.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet-1.7.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet-1.7.txt	(revision 313)
@@ -0,0 +1,239 @@
+                  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼TINETï¼
+         ãªãªã¼ã¹ 1.5 ãããªãªã¼ã¹ 1.7 ã¸ã®ç§»è¡ï¼»2014/11/13ï¼½
+
+1.  ç§»è¡æ¹æ³
+
+  TINET ãªãªã¼ã¹ 1.5 ãã TINET ãªãªã¼ã¹ 1.7 ã¸ç§»è¡ã§ã¯ã TINET ãªãªã¼
+ã¹ 1.7 ã®é
+å¸ãã¡ã¤ã«ã TINET ãªãªã¼ã¹ 1.5 ã«ä¸æ¸ããããã¨ã¯æ¨å¥¨ããª
+ãã ããã¯ãTINET ãªãªã¼ã¹ 1.7 ã®é
+å¸ãã¡ã¤ã«ã«å«ã¾ãã¦ããã³ã³ãã¤ã«
+æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã¡ã¤ã«ï¼tinet_cpu_config.h ç­ï¼ã«
+ããã TINET ãªãªã¼ã¹ 1.5 ç¨ã®ç¬èªã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+ãã©ã¡ã¼ã¿ãã¡ã¤ã«ã®å
+å®¹ãå¤±ãããå¯è½æ§ãããããã§ããã å¾ã£ã¦ã
+TINET ãªãªã¼ã¹ 1.7 ã®é
+å¸ãã¡ã¤ã«ãå¿
+ãç°ãªããã£ã¬ã¯ããªã«å±éãã¦ã
+ãç§»è¡ãããã¨ãæ¨å¥¨ããã
+  ããã§ã¯ã IPv4 ã«ããå¿ç¨ãã­ã°ã©ã ã® TINET ãã TINET ãªãªã¼ã¹ 1.5
+ãã TINET ãªãªã¼ã¹ 1.7 ã«ç§»è¡ããä¾ãè¿°ã¹ãã
+
+1. 1  TOPPERS/ASP ç°å¢ã«ãããç§»è¡æ¹æ³
+
+   (1)   TINET ãªãªã¼ã¹ 1.5 ã® ASP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.5)ã
+         TINET ãªãªã¼ã¹ 1.7 ã® ASP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.7) ã¨ããã
+   (2)   $(DIR_1.7) ã«ã TINET ãªãªã¼ã¹ 1.7 ã®é
+å¸ãã¡ã¤ã«
+         tinet-1.7.tar.gz ãå±éããã
+   (3)   $(DIR_1.5) ã®ãã£ã¬ã¯ããª tinet ãåé¤ããã
+   (4)   $(DIR_1.7) ã®ãã£ã¬ã¯ããª tinet ã $(DIR_1.5) ã«ã³ãã¼ããã
+   (5)   ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´ï¼å¤æ´å¿
+é é 
+ç®ï¼
+         ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åããIPv6 ã¨ IPv4 ã§
+         åå¥ã«æå®ããå¿
+è¦ãããã route_cfg.c ã§å®ç¾©ãã¦ããã«ã¼ãã£
+         ã³ã°è¡¨åãã ä»¥ä¸ã®ããã«å¤æ´ããã
+
+         [1]   IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing6_tbl
+               ã«å¤æ´ããã
+         [2]   IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing4_tbl
+               ã«å¤æ´ããã
+
+   (6)   ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´å¾ã®å¿ç¨ãã­ã°ã©ã ã®çæã¯ TINET ãªãªã¼
+         ã¹ 1.5 ã¨åãã§ããã
+
+1. 2  TOPPERS/JSP ç°å¢ã«ãããç§»è¡æ¹æ³
+
+   (1)   TINET ãªãªã¼ã¹ 1.5 ã® JSP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.5)ã
+         TINET ãªãªã¼ã¹ 1.7 ã® JSP ã«ã¼ããã£ã¬ã¯ããªã $(DIR_1.7) ã¨ããã
+
+   (2)   $(DIR_1.7) ã«ã TINET ãªãªã¼ã¹ 1.7 ã®é
+å¸ãã¡ã¤ã«
+         tinet-1.7.tar.gz ãå±éããã
+
+   (3)   $(DIR_1.5) ã®ãã£ã¬ã¯ããª tinet ãåé¤ããã
+
+   (4)   $(DIR_1.7) ã®ãã£ã¬ã¯ããª tinet ã $(DIR_1.5) ã«ã³ãã¼ããã
+
+   (5)   $(DIR_1.5)/tinet/cfg ã§ã TINET-1.7 ã® TINET ã³ã³ãã£ã®ã¥ã¬ã¼
+         ã¿ãçæããã
+
+   (6)   ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´ï¼å¤æ´å¿
+é é 
+ç®ï¼
+         ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åããIPv6 ã¨ IPv4 ã§
+         åå¥ã«æå®ããå¿
+è¦ãããã route_cfg.c ã§å®ç¾©ãã¦ããã«ã¼ãã£
+         ã³ã°è¡¨åãã ä»¥ä¸ã®ããã«å¤æ´ããã
+
+         [1]   IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing6_tbl
+               ã«å¤æ´ããã
+         [2]   IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã routing4_tbl
+               ã«å¤æ´ããã
+
+   (7)   ã«ã¼ãã£ã³ã°è¡¨åã®å¤æ´å¾ã®å¿ç¨ãã­ã°ã©ã ã®çæã¯ TINET ãªãªã¼
+         ã¹ 1.5 ã¨åãã§ããã
+
+1. 3  TOPPERS/JSP ç°å¢â TOPPERS/ASP ç°å¢ã¸ã®ç§»è¡æ¹æ³
+
+  æ¨æºçãªã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ç§»è¡æ¹æ³ã«ã¤ãã¦è¿°ã¹ãã 
+
+   (1)   Makefileï¼Makefileï¼
+           TINET ç¨ã®å®ç¾©ã®å¤æ´ã¯ãªããã ããããã®ç°å¢ã® Makefile ã¯
+         å
+¨ãäºææ§ããªãã®ã§ã TINET ã¦ã¼ã¶ãºããã¥ã¢ã«ã®ã7.3 ã¢ããª
+         ã±ã¼ã·ã§ã³ã® Makefileããåç
+§ãã¦å¤æ´ãããã¨ã
+   (2)   ãµã³ãã«ãã­ã°ã©ã æ¬ä½ï¼$(UNAME).cï¼
+           TOPPERS/ASP ã§ã¯ããã¼ã¿åããã³ãã¯ã­ã¯ C99 ã«æºæ ãããã®
+         ã«å¤æ´ããã¦ããã®ã§ã ããã«åããã¦å¤æ´ããå¿
+è¦ãããã 
+           ã¾ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢
+         ã§ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå®
+
+            #include <t_services.h>
+            #include "kernel_id.h"
+            #include "tinet_id.h"
+
+         ããTOPPERS/ASP ç°å¢ã§ã¯ãä»¥ä¸ã®ããã«å¤æ´ããã
+
+            #include <kernel.h>
+            #include <t_syslog.h>
+            #include "kernel_cfg.h"
+            #include "tinet_cfg.h"
+
+   (3)   ãµã³ãã«ãã­ã°ã©ã ã®ããããã¡ã¤ã«ï¼$(UNAME).hï¼
+           TOPPERS/ASP ã§ã¯ããã¼ã¿åããã³ãã¯ã­ã¯ C99 ã«æºæ ãããã®
+         ã«å¤æ´ããã¦ããã®ã§ã ããã«åããã¦å¤æ´ããå¿
+è¦ãããã 
+           ã¾ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢
+         ã§ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå®
+
+            #include <t_services.h>
+
+         ããTOPPERS/ASP ç°å¢ã§ã¯ãä»¥ä¸ã®ããã«å¤æ´ããã
+
+            #include <tinet_defs.h>
+
+   (4)   ãµã³ãã«ãã­ã°ã©ã ç¨ ASP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+         ï¼$(UNAME).cfgï¼
+           #include ã¨ INCLUDE ã®åæ±ããç°ãªã£ã¦ããã®ã§ã ããã«åã
+         ãã¦å¤æ´ããå¿
+è¦ããããä»¥ä¸ã«å¤æ´ä¾ãç¤ºãã TOPPERS/JSP ç°å¢
+         ã§ã®æå®
+
+            #include "echos4.h"
+            #include "../systask/timer.cfg"
+            #include "../systask/serial.cfg"
+            #include "../systask/logtask.cfg"
+            #include "../tinet.cfg"
+            INCLUDE("\"tinet_id.h\"");
+            INCLUDE("\"echos4.h\"");
+
+         ããTOPPERS/ASP ç°å¢ã§ã¯ãä»¥ä¸ã®ããã«å¤æ´ããã
+
+            #include "echos4.h"
+            INCLUDE("../syssvc/serial.cfg");
+            INCLUDE("../syssvc/logtask.cfg");
+            INCLUDE("target_timer.cfg");
+            INCLUDE("../tinet_asp.cfg");
+
+   (5)   ãµã³ãã«ãã­ã°ã©ã ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+         ï¼tinet_$(UNAME).cfgï¼
+           #include ã¨ INCLUDE ã®åæ±ããç°ãªã£ã¦ããã®ã§ã ããã«åã
+         ãã¦å¤æ´ããå¿
+è¦ããããä»¥ä¸ã«å¤æ´ä¾ãç¤ºãã TOPPERS/JSP ç°å¢
+         ã§ã®æå®
+
+            #include "echos4.h"
+            INCLUDE("\"echos4.h\"");
+
+         ããTOPPERS/ASP ç°å¢ã§ã¯ãä»¥ä¸ã®ããã«å¤æ´ããã
+
+            #include "echos4.h"
+
+   (6)   ãµã³ãã«ãã­ã°ã©ã ç¨ã«ã¼ãã£ã³ã°è¡¨ï¼route_cfg.cï¼
+           ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãç°ãªã£ã¦ããã TOPPERS/JSP ç°å¢ã§ã®ã¤
+         ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æå®
+
+            #include <s_services.h>
+            #include <t_services.h>
+
+         ããTOPPERS/ASP ç°å¢ã§ã¯ãä»¥ä¸ã®ããã«å¤æ´ããã
+
+            #include <kernel.h>
+
+   (7)   ãµã³ãã«ãã­ã°ã©ã ç¨ã³ã³ãã¤ã«ææå®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+         ï¼tinet_app_config.hï¼
+           å¤æ´ç¹ã¯ãªãã
+
+2.  å¤æ´å¿
+é é 
+ç®
+
+  ä»¥ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã§å¤æ´ãããå¤æ´ãå¿
+é ã®é 
+ç®ãç¤ºãã
+
+   (1)   ã«ã¼ãã£ã³ã°è¡¨ï¼route_cfg.cï¼
+
+         [1]   ã«ã¼ãã£ã³ã°è¡¨å
+               ãã¥ã¢ã«ã¹ã¿ãã¯å¯¾å¿ã®ããã«ã¼ãã£ã³ã°è¡¨åãã IPv6 ã¨
+               IPv4 ã§åå¥ã«æå®ããå¿
+è¦ããããroute_cfg.c ã§å®ç¾©ãã¦
+               ããã«ã¼ãã£ã³ã°è¡¨åãã ä»¥ä¸ã®ããã«å¤æ´ããã
+
+               [1]   IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã
+                     routing6_tbl ã«å¤æ´ããã
+               [2]   IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨å routing_tbl ã
+                     routing4_tbl ã«å¤æ´ããã
+
+         [2]   IPv4 ç¨ã«ã¼ãã£ã³ã°è¡¨ã®æ§é ä½åï¼TINET ãªãªã¼ã¹ 1.1ï¼
+               T_RT_ENTRY ã T_IN4_RTENTRY ã«å¤æ´ããã
+
+   (2)   ã«ã¼ãã£ã³ã°ã«é¢ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼
+         ã¿
+           ãã¥ã¢ã«ã¹ã¿ãã¯ï¼SUPPORT_INET6 ã¨ SUPPORT_INET4 ã®ä¸¡æ¹ï¼ã
+         é¸æããå ´åã ä»¥ä¸ã®é 
+ç®ãåå¥ã«æå®ããå¿
+è¦ãããã 
+
+         [1]   NUM_STATIC_ROUTE_ENTRY
+               NUM_IN6_STATIC_ROUTE_ENTRYï¼IPv6 ç¨ï¼ã¨
+               NUM_IN4_STATIC_ROUTE_ENTRYï¼IPv4 ç¨ï¼
+         [2]   NUM_REDIRECT_ROUTE_ENTRY
+               NUM_IN6_REDIRECT_ROUTE_ENTRYï¼IPv6 ç¨ï¼ã¨
+               NUM_IN4_REDIRECT_ROUTE_ENTRYï¼IPv4 ç¨ï¼
+
+   (3)   TINET ãªãªã¼ã¹ 1.1 ã¨ã®äºææ§ã®ããã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥
+         ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+
+         [1]   NUM_ROUTE_ENTRY
+               NUM_IN4_STATIC_ROUTE_ENTRY ã«å¤æ´ããã
+         [2]   NUM_IN4_REDIRECT_ROUTE_ENTRY
+               æ°ãã«è¿½å ããã
+
+3.  å¤æ´æ¨å¥¨é 
+ç®
+
+  ä»¥ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã§å¤æ´ãããTINET ãªãªã¼ã¹ 1.5 ãã TINET
+ãªãªã¼ã¹ 1.7 ã¸ç§»è¡ã«ããã¦ãå¤æ´ã¾ãã¯æ°ãã«å®ç¾©ãã¹ãæ¨å¥¨é 
+ç®ãç¤ºãã
+
+   (1)   ã«ã¼ãã£ã³ã°ã«é¢ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼
+         ã¿
+           ä»¥ä¸ã®é 
+ç®ãåå¥ã«æå®ããäºãæ¨å¥¨ããã ãã ãããã¥ã¢ã«ã¹
+         ã¿ãã¯ï¼SUPPORT_INET6 ã¨ SUPPORT_INET4 ã®ä¸¡æ¹ï¼ãé¸æããå ´å
+         ã¯å¤æ´å¿
+é é 
+ç®ã§ããã
+
+         [1]   NUM_STATIC_ROUTE_ENTRY
+               NUM_IN6_STATIC_ROUTE_ENTRYï¼IPv6 ç¨ï¼ã¨
+               NUM_IN4_STATIC_ROUTE_ENTRYï¼IPv4 ç¨ï¼
+         [2]   NUM_REDIRECT_ROUTE_ENTRY
+               NUM_IN6_REDIRECT_ROUTE_ENTRYï¼IPv6 ç¨ï¼ã¨
+               NUM_IN4_REDIRECT_ROUTE_ENTRYï¼IPv4 ç¨ï¼
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet.txt	(revision 313)
@@ -0,0 +1,2299 @@
+                  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼TINETï¼
+            ã¦ã¼ã¶ãºããã¥ã¢ã«ï¼ãªãªã¼ã¹ 1.7ï¼ï¼»2017/4/5ï¼½
+
+1.  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼TINETï¼ã®æ¦è¦
+
+  TINET ã¯ãTOPPERS/ASP ã¨ TOPPERS/JSP ç¨ã® IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯
+ã® TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã§ããã
+
+1. 1  æ©è½ä¸è¦§
+
+  ä»¥ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã®æ©è½ä¸è¦§ãç¤ºãã
+
+   (1)   API
+
+         ã»ITRON TCP/IP API ä»æ§ã®æ¨æºæ©è½
+         ã»æ«å®çãª ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã®æ¨æºæ©è½
+         ã»ITRON TCP/IP API ä»æ§ã®æ¡å¼µæ©è½
+
+   (2)   TCP
+
+         ã»BSD ã®éä¿¡æ©è½
+         ã»æå¤§ã»ã°ã¡ã³ããµã¤ãºï¼MSSï¼ãªãã·ã§ã³
+         ã»çã³ãã¼ API
+         ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½ï¼çµè¾¼ã¿
+           é¸æå¯ï¼
+         ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ï¼çµè¾¼ã¿é¸æå¯ï¼
+
+   (3)   UDP
+
+         ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«ï¼çµè¾¼ã¿é¸æå¯ï¼
+
+   (4)   è¿é£æ¢ç´¢
+
+         ã»è¿é£æ¢ç´¢è¦è«ã®éåä¿¡
+         ã»è¿é£æ¢ç´¢éç¥ã®éåä¿¡
+         ã»ã«ã¼ã¿éç¥ã¡ãã»ã¼ã¸ã®åä¿¡
+         ã»ã«ã¼ã¿è¦è«ã¡ãã»ã¼ã¸ã®éä¿¡
+         ã»ã¢ãã¬ã¹éè¤æ¤åºæ©è½
+
+   (5)   ICMPv6
+
+         ã»ã¨ã³ã¼è¦æ±ã»å¿ç­ã®éåä¿¡
+         ã»ã¨ã©ã¼ã®éä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»åãç´ãã¡ãã»ã¼ã¸ã®åä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»Path MTU
+
+   (6)   ICMPv4
+
+         ã»ã¨ã³ã¼è¦æ±ã»å¿ç­ã®éåä¿¡
+         ã»ã¨ã©ã¼ã®éä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»åãç´ãã¡ãã»ã¼ã¸ã®åä¿¡ï¼çµè¾¼ã¿é¸æå¯ï¼
+
+   (7)   IPv6
+
+         ã»ã¢ãã¬ã¹ã®èªåè¨­å®
+         ã»éççµè·¯è¡¨
+         ã»é PC ç³»ãã£ã¸ã¿ã«æ©å¨ã¸ã®é©ç¨ã«åãã IPv6 æå°è¦æ±ä»æ§ã®
+           IPv6 æå°ãã¹ãä»æ§ã«æºæ 
+         ã»æ¡å¼µãããã®ã¨ã©ã¼ã®éç¥
+         ã»æ­çãããï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»ãã¹ãæ
+å ±ã­ã£ãã·ã¥ï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»IPv6/IPv4 å®å
+¨ãã¥ã¢ã«ã¹ã¿ãã¯ããªãªã¼ã¹ 1.7 æ°è¦ã
+         ã»IPv4 å°å½±ã¢ãã¬ã¹ï¼çµè¾¼ã¿é¸æå¯ï¼ããªãªã¼ã¹ 1.7 æ°è¦ã
+
+   (8)   IPv4
+
+         ã»éççµè·¯è¡¨
+         ã»IP ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æï¼çµè¾¼ã¿é¸æå¯ï¼
+         ã»IPSECï¼çµè¾¼ã¿é¸æå¯ãããã¯ã®ã¿å®è£
+ï¼
+
+   (9)   ãã®ä»
+
+         ã»ARP è¦æ±ã»å¿ç­ã®éåä¿¡
+         ã»ARP ã§ã® IPv4 ã¢ãã¬ã¹éè¤æ¤åºæ©è½
+         ã»DHCP ã¸ã®å¯¾å¿
+         ã»SNMP ç¨ç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼ã®æä¾
+
+1. 2  å¶éäºé 
+
+
+  ä»¥ä¸ã«ãTINET ãªãªã¼ã¹ 1.7 ã®å¶ç´äºé 
+ãè¿°ã¹ãã
+
+   (1)   IPv6 ã§ã¯ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¯ã¤ã¼ãµãããã®ã¿é¸æã§ããã
+   (2)   IPv6 ã§ã¯ãTCP ã¨ UDP ã®ä¸¡æ¹ãé¸æãããã ã©ã¡ããä¸ã¤ãé¸æ
+         ããªããã°ãªããªãã ã¾ããUDP ã®ã¿ãé¸æããå ´åã¯ããã³ãã­ã
+         ã­ã³ã°æ©è½ãçµã¿è¾¼ãå¿
+è¦ãããã
+   (3)   ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã«ããã¦ãã éä¿¡ç«¯ç¹ã®æä»å¶å¾¡ã®ããã
+         ç­æéã§ããããã­ãã¯ãããã¨ãããã 
+   (4)   IPv6 ã«é¢ãã ITRON TCP/IP API 2.0 ä»æ§ã«ã¯æªå¯¾å¿ã§ããã
+         TINET ãªãªã¼ã¹ 1.2 ããã®æ«å®çãª ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼
+         API ä»æ§ã«ã®ã¿å¯¾å¿ãã¦ããã
+   (5)   ITRON TCP/IP API é¨åã®ã©ã¤ãã©ãªåã¯è¡ããã¦ããããã©ã¤ãã©
+         ãªã¨ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãå¥ã
+ã«æ§ç¯ãã¦ããã å¾ã§ãªã³
+         ã¯ããæ¹æ³ã¯ãµãã¼ããã¦ããªãã
+   (6)   è¨­å®ã¨èª­åºãå¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããTCP éä¿¡
+         ç«¯ç¹ãªãã·ã§ã³ã®è¨­å® API ã¨èª­åºã API ã®æ»ãå¤ã¯ E_PAR ã§ããã
+   (7)   è¨­å®ã¨èª­åºãå¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããUDP éä¿¡
+         ç«¯ç¹ãªãã·ã§ã³ã®è¨­å® API ã¨èª­åºã API ã®æ»ãå¤ã¯ E_PAR ã§ããã
+
+1. 3  ãã£ã¬ã¯ããªæ§æ
+
+  TINET ã®ãã£ã¬ã¯ããªã¯ã TOPPERS/ASP ã¾ãã¯ TOPPERS/JSP ã®ã«ã¼ããã£
+ã¬ã¯ããªã®ä¸ã«ç½®ããã¨ãæ³å®ãã¦ãããä»¥ä¸ã®ãã£ã¬ã¯ããªããæ§æããã¦
+ããã
+
+   tinet                   TINET ã®ã«ã¼ããã£ã¬ã¯ããª
+   tinet/cfg               TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼TOPPERS/JSP ç¨ã®ã¿ï¼
+   tinet/doc               ãã­ã¥ã¡ã³ãé¡
+   tinet/net               æ±ç¨ãããã¯ã¼ã¯
+   tinet/netapp            ãµã³ãã«ã®ãããã¯ã¼ã¯ãã­ã°ã©ã 
+   tinet/netdev            ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã©ã¤ã
+   tinet/netinet           IPv4/TCP/UDP/ICMP
+   tinet/netinet6          IPv6/ICMPv6/NDP
+
+1. 4  ãã­ã¥ã¡ã³ãé¡
+
+  ãã­ã¥ã¡ã³ãé¡ãä»¥ä¸ã«ç¤ºããå
+¨ã¦ã®ãã¡ã¤ã«ã¯ PDF ã§ãæä¾ãã¦ããã
+
+   tinet.txt               ã¦ã¼ã¶ãºããã¥ã¢ã«
+   tinet_gcc.txt           ã¦ã¼ã¶ãºããã¥ã¢ã«ãGCC ç°å¢ã
+   tinet_cs.txt            ã¦ã¼ã¶ãºããã¥ã¢ã«ãCS+ ç°å¢ï¼åèï¼ã
+   tinet_sample.txt        ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³
+   tinet_config.txt        ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+   tinet_defs.txt          ãã­ã»ããµãã·ã¹ãã ä¾å­å®ç¾©
+
+
+
+
+
+è«å°ç§å·¥æ¥­é«ç­å°éå­¦æ ¡          - 2 -                       æ
+å ±å·¥å­¦ç§
+
+
+
+
+TINET ã¦ã¼ã¶ãºããã¥ã¢ã«                          1. 4  ãã­ã¥ã¡ã³ãé¡
+
+   tinet_chg.txt           å¤æ´ã¡ã¢
+   tinet_ether.pdf         TINET-1.4 ã«ãããã¤ã¼ãµãããã®å®è£
+ï¼PDFã®ã¿ï¼
+
+2.  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¨ TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+
+2. 1  TOPPERS/ASP
+
+  TOPPERS/ASP ã§ã¯ã TOPPERS/ASP ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæµç¨ããããã
+TINET ç¬èªã®ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ãªãã
+  TOPPERS/ASP ç¨ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãæµç¨ãã¦ãTINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+ã³ãã¡ã¤ã«ï¼æ¨æºã¯ tinet_$(APPLNAME).cfgï¼ããä»¥ä¸ã®ãã¡ã¤ã«ãçæããã
+
+   (1)   tinet_cfg.c
+         TINET ã«ã¼ãã«æ§æãã¡ã¤ã«ã§ã ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã
+         TINET ã¨å
+±ã«ã³ã³ãã¤ã«ãã¦ãªã³ã¯ããã
+
+   (2)   tinet_kern.cfg
+         TINET å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã®éç API ãçæããã
+         TOPPERS/ASP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼æ¨æºã¯
+         $(APPLNAME).cfgï¼ã«ã¤ã³ã¯ã«ã¼ãããã
+
+   (3)   tinet_cfg.h
+         TINET å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡
+         ã¤ã«ã§ããã
+
+2. 2  TOPPERS/JSP
+
+  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ tinet/cfg/tinet_cfg (cygwin ã§ã¯
+tinet_cfg.exe) ã§ãããã¿ã¼ã²ããã«ã¯ä¾å­ãã¦ããªãã TINET ã³ã³ãã£ã°
+ã¬ã¼ã¿ã®çæã«ã¤ãã¦ã¯ã8. TOPPERS/JSP ç°å¢ã«ãããã¤ã³ã¹ãã¼ã«ã¨ãã¡
+ã¤ã«ã®ä½æã»å¤æ´ ããåç
+§ãããã¨ã 
+  TOPPERS/JSP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ã¯ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+ã³ãã¡ã¤ã«ï¼æ¨æºã¯ tinet_$(UNAME).cfgï¼ããä»¥ä¸ã®ãã¡ã¤ã«ãçæããã
+
+   (1)   tinet_cfg.c
+         TINET ã«ã¼ãã«æ§æãã¡ã¤ã«ã§ã ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã
+         TINET ã¨å
+±ã«ã³ã³ãã¤ã«ãã¦ãªã³ã¯ããã
+
+   (2)   tinet_kern.cfg
+         TINET å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã®éç API ãçæããã
+         TOPPERS/JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ï¼æ¨æºã¯
+         $(UNAME).cfgï¼ã«ã¤ã³ã¯ã«ã¼ãããã
+
+   (3)   tinet_id.h
+         TINET å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡
+         ã¤ã«ã§ããã
+
+3.  ITRON TCP/IP APIä»æ§
+
+3. 1  æ«å®çãªITRON TCP/IPï¼ãã¼ã¸ã§ã³6ï¼APIä»æ§
+
+  IPv6 ã«é¢ãã ITRON TCP/IP API 2.0 ä»æ§ã«ã¯æªå¯¾å¿ã§ããã TINET ãªãªã¼
+ã¹ 1.2 ããã®æ«å®çãª ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã«ã®ã¿å¯¾å¿ã
+ã¦ããã
+
+   (1)   1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (1) IP ã¢ãã¬ã¹ï¼ãã¼ãçªå·ãå
+¥ã
+         ããã¼ã¿æ§é 
+
+            /* IPv6 ã¢ãã¬ã¹ */
+            struct t_in6_addr {
+                union {
+                    uint8_t    __u6_addr8[16];
+                    uint16_t   __u6_addr16[8];
+                    uint32_t   __u6_addr32[4];
+                    } __u6_addr;
+                } T_IN6_ADDR;
+            
+            typedef struct t_ipv6ep {
+                T_IN6_ADDR    ipaddr;        /* IPv6 ã¢ãã¬ã¹ */
+                uint16_t      portno;        /* ãã¼ãçªå·    */
+                } T_IPV6EP;
+
+   (2)   1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (2) ãªãã¸ã§ã¯ãçæç¨ã®ãã¼ã¿æ§é 
+
+            typedef struct t_tcp6_crep {
+                /* æ¨æº */
+                ATR         repatr;        /* åä»å£å±æ§        */
+                T_IPV6EP    myaddr;        /* èªåã®ã¢ãã¬ã¹    */
+                /* å®è£
+ä¾å­ */
+                } T_TCP6_CREP;
+
+   (3)   1.5.1 ãã¼ã¿æ§é ï¼ãã¼ã¿å (5) ç¹æ®ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·
+
+            #define IPV6_ADDR_UNSPECIFIED_INIT    \
+                {{{ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \
+                    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }}}
+            #define IPV6_ADDRANY        IPV6_ADDR_UNSPECIFIED_INIT
+
+   (4)   2.2 TCP åä»å£ã®çæï¼åé¤
+         ãéç APIã
+               TCP6_CRE_REP(ID repid, { ATR repatr,
+                                      { T_IN6_ADDR myipaddr, uint16_t myportno } } );
+
+         ãAPI ã®æ©è½ã
+                 myipaddr ã®åã T_IN6_ADDR ã«ãªã£ãä»¥å¤ã¯ã ITRON
+               TCP/IP API ä»æ§ã¨åãã§ãããmyipaddr ã«ã¯ IPV6_ADDRANY
+               ãæå®ã§ããã
+
+   (5)   2.4 æ¥ç¶ï¼åæ­ãæ¥ç¶è¦æ±å¾
+ã¡ï¼ååãªã¼ãã³ï¼ã
+         ãC è¨èª APIã
+               ER ercd = tcp6_acp_cep(ID cepid, ID repid,
+                                      T_IPV6EP *p_dstaddr, TMO tmout);
+
+         ãAPI ã®æ©è½ã
+                 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ãä»¥å¤ã¯ã ITRON
+               TCP/IP API ä»æ§ã¨åãã§ããã
+
+   (6)   2.4 æ¥ç¶ï¼åæ­ãæ¥ç¶è¦æ±ï¼è½åãªã¼ãã³ï¼ã
+         ãC è¨èª APIã
+               ER ercd = tcp6_con_cep(ID cepid, T_IPV6EP *p_myaddr,
+                                      T_IPV6EP *p_dstaddr, TMO tmout);
+
+         ãæ©è½ã
+                 p_myaddr ã¨ p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ãä»¥å¤
+               ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ããã
+
+   (7)   3.2 UDP éä¿¡ç«¯ç¹ã®çæï¼åé¤
+         ãéç APIã
+               UDP6_CRE_CEP(ID cepid, { ATR cepatr,
+                                      { T_IN6_ADDR myipaddr, uint16_t myportno },
+                                        FP callback } );
+
+         ãæ©è½ã
+                 myipaddr ã®åã T_IN6_ADDR ã«ãªã£ãä»¥å¤ã¯ã ITRON
+               TCP/IP API ä»æ§ã¨åãã§ãããmyipaddr ã«ã¯ IPV6_ADDRANY
+               ãæå®ã§ããã
+
+   (8)   3.3 ãã¼ã¿ã®éåä¿¡ããã±ããã®éä¿¡ã
+         ãC è¨èª APIã
+               ER ercd = udp6_snd_dat(ID cepid, T_IPV6EP *p_dstaddr, 
+                                      void *data, int_t len, TMO tmout);
+
+         ãæ©è½ã
+                 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ãä»¥å¤ã¯ã ITRON
+               TCP/IP API ä»æ§ã¨åãã§ããã
+
+   (9)   3.4 ãã¼ã¿ã®éåä¿¡ããã±ããã®åä¿¡ã
+         ãC è¨èª APIã
+               ER ercd = udp6_rcv_dat(ID cepid, T_IPV6EP *p_dstaddr, 
+                                      void *data, int_t len, TMO tmout);
+
+         ãæ©è½ã
+                 p_dstaddr ã®åãã T_IPV6EP* ã«ãªã£ãä»¥å¤ã¯ã ITRON
+               TCP/IP API ä»æ§ã¨åãã§ããã
+
+3. 2  ãµãã¼ããããªãã¸ã§ã¯ãã®å®ç¾©
+
+  ãµãã¼ããããªãã¸ã§ã¯ãã®å®ç¾©ã¯ãä»¥ä¸ã«ç¤ºã ITRON TCP/IP API ä»æ§ã®
+éç APIã æ«å®çãª ITRON TCP/IPï¼ãã¼ã¸ã§ã³ 6ï¼API ä»æ§ã®éç APIã
+TINET ç¬èªã®éç APIããã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ãã§ããã
+
+   (1)   TCP åä»å£ï¼IPv4ï¼
+         ãéç APIã
+               TCP_CRE_REP(ID repid, { ATR repatr,
+                                     { uint32_t myipaddr, uint16_t myportno } } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã
+               ããå®è£
+ä¾å­ã® TCP åä»å£å±æ§ã¯ãªãã
+         ãTCP åä»å£æ°ã®å®ç¾©ã
+                 TCP åä»å£æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ãã§
+               ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_TCP_REPID <TCPåä»å£æ°>
+
+         ãTCP åä»å£ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 TCP åä»å£ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã§ãããtinet_cfg.c
+               ã«åºåãããã
+                     const ID tmax_tcp_repid =
+                              (TMIN_TCP_REPID + TNUM_TCP_REPID - 1);
+
+   (2)   TCP éä¿¡ç«¯ç¹ï¼IPv4ï¼
+         ãéç APIã
+               TCP_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz,
+                                                   void *rbuf, int_t rbufsz,
+                                                   FP callback } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã
+               ããå®è£
+ä¾å­ã® TCP éä¿¡ç«¯ç¹å±æ§ã¯ãªãã
+         ãTCP éä¿¡ç«¯ç¹æ°ã®å®ç¾©ã
+                 TCP éä¿¡ç«¯ç¹æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+               ã§ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_TCP_CEPID <TCPéä¿¡ç«¯ç¹æ°>
+
+         ãTCP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 TCP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã§ããã
+               tinet_cfg.c ã«åºåãããã
+                     const ID tmax_tcp_cepid =
+                              (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1);
+
+   (3)   UDP éä¿¡ç«¯ç¹ï¼IPv4ï¼
+         ãéç APIã
+               UDP_CRE_CEP(ID cepid, { ATR cepatr,
+                                     { uint32_t myipaddr, uint16_t myportno },
+                                       FP callback } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON UDP/IP API ä»æ§ã¨åãã§ã
+               ããå®è£
+ä¾å­ã® UDP éä¿¡ç«¯ç¹å±æ§ã¯ãªãã
+         ãUDP éä¿¡ç«¯ç¹æ°ã®å®ç¾©ã
+                 UDP éä¿¡ç«¯ç¹æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+               ã§ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_UDP_CEPID <UDPéä¿¡ç«¯ç¹æ°>
+
+         ãUDP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 UDP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ãå®ç¾©ã§ããã
+               tinet_cfg.c ã«åºåãããã
+                     const ID tmax_udp_cepid =
+                              (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1);
+
+   (4)   TCP åä»å£ï¼IPv6ï¼
+         ãéç APIã
+               TCP6_CRE_REP(ID repid, { ATR repatr,
+                                      { T_IN6_ADDR myipaddr, uint16_t myportno } } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãmyipaddr ã§æå®ãã IP ã¢ãã¬ã¹
+               ã¯ IPv6 ã§ããã IPv4 ã® IP_ADDRANY ã®ä»£ããã«ãIPv6 ã§
+               ã¯ IPV6_ADDRANY ãæå®ã§ãããããä»¥å¤ã¯ã ITRON TCP/IP
+               API ä»æ§ã¨åãã§ãããå®è£
+ä¾å­ã® TCP åä»å£å±æ§ã¯ãªãã
+         ãTCP åä»å£æ°ã®å®ç¾©ã
+                 TCP åä»å£æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ãã§
+               ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_TCP_REPID <TCPåä»å£æ°>
+
+         ãTCP åä»å£ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 TCP åä»å£ ID ã®æå¤§å¤ã®å¤æ°ãå®ç¾©ã§ãããtinet_cfg.c
+               ã«åºåãããã
+                     const ID tmax_tcp_repid =
+                              (TMIN_TCP_REPID + TNUM_TCP_REPID - 1);
+
+   (5)   TCP éä¿¡ç«¯ç¹ï¼IPv6ï¼
+         ãéç APIã
+               TCP6_CRE_CEP(ID cepid, { ATR cepatr, void *sbuf, int_t sbufsz,
+                                                    void *rbuf, int_t rbufsz,
+                                                    FP callback } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãITRON TCP/IP API ä»æ§ã¨åãã§ã
+               ããå®è£
+ä¾å­ã® TCP éä¿¡ç«¯ç¹å±æ§ã¯ãªãã
+
+         ãTCP éä¿¡ç«¯ç¹æ°ã®å®ç¾©ã
+                 TCP éä¿¡ç«¯ç¹æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+               ã§ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_TCP_CEPID <TCPéä¿¡ç«¯ç¹æ°>
+
+         ãTCP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 æå¤§ã® TCP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ãå®ç¾©ã§ããã
+               tinet_cfg.c ã«åºåãããã
+                     const ID tmax_tcp_cepid =
+                              (TMIN_TCP_CEPID + TNUM_TCP_CEPID - 1);
+
+   (6)   UDP éä¿¡ç«¯ç¹ï¼IPv6ï¼
+         ãéç APIã
+               UDP6_CRE_CEP(ID cepid, { ATR cepatr,
+                                      { T_IN6_ADDR myipaddr, uint16_t myportno },
+                                        FP callback } );
+
+         ããã©ã¡ã¼ã¿ã
+                 ãã©ã¡ã¼ã¿ã«ã¤ãã¦ã¯ãmyipaddr ã§æå®ãã IP ã¢ãã¬ã¹
+               ã¯ IPv6 ã§ããã IPv4 ã® IP_ADDRANY ã®ä»£ããã«ãIPv6 ã§
+               ã¯ IPV6_ADDRANY ãæå®ã§ãããããä»¥å¤ã¯ã ITRON TCP/IP
+               API ä»æ§ã¨åãã§ãããå®è£
+ä¾å­ã® TCP åä»å£å±æ§ã¯ãªãã
+         ãUDP éä¿¡ç«¯ç¹æ°ã®å®ç¾©ã
+                 UDP éä¿¡ç«¯ç¹æ°ãå®ç¾©ããããªãã­ã»ããµãã£ã¬ã¯ãã£ã
+               ã§ãããtinet_cfg.c ã«åºåãããã
+                     #define TNUM_UDP_CEPID <UDPéä¿¡ç«¯ç¹æ°>
+
+         ãUDP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ã®å®ç¾©ã
+                 UDP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ã®å¤æ°ãå®ç¾©ã§ããã
+               tinet_cfg.c ã«åºåãããã
+                     const ID tmax_udp_cepid =
+                              (TMIN_UDP_CEPID + TNUM_UDP_CEPID - 1);
+
+   (7)   TCP åä»å£ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_TCP_REP(ID repid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããTCPåä»å£ID
+
+   (8)   TCP éä¿¡ç«¯ç¹ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_TCP_CEP(ID cepid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããTCPéä¿¡ç«¯ç¹ID
+
+   (9)   UDP éä¿¡ç«¯ç¹ã®äºç´ IDï¼IPv4ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_UDP_CEP(ID cepid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããUDPéä¿¡ç«¯ç¹ID
+
+   (10)  TCP åä»å£ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_TCP6_REP(ID repid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããTCPåä»å£ID
+
+   (11)  TCP éä¿¡ç«¯ç¹ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_TCP6_CEP(ID cepid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããTCPéä¿¡ç«¯ç¹ID
+
+   (12)  UDP éä¿¡ç«¯ç¹ã®äºç´ IDï¼IPv6ãTINET ç¬èªï¼
+         ãéç APIã
+               VRID_UDP6_CEP(ID cepid);
+
+         ããã©ã¡ã¼ã¿ã
+               ID        repid     äºç´ããUDPéä¿¡ç«¯ç¹ID
+
+4.  ITRON TCP/IP API æ¡å¼µæ©è½
+
+  TINET ãªãªã¼ã¹ 1.3 ã¾ã§ã¯ãITRON TCP/IP API ã®æ¨æºæ©è½ã®ã¿ã«å¯¾å¿ãã¦
+ãããã ãªãªã¼ã¹ 1.4 ããã¯ãæ¡å¼µæ©è½ã«ãå¯¾å¿ããããã ããå¿ç¨ãã­ã°
+ã©ã ããä½¿ç¨ããå ´åã¯ãä»¥ä¸ã«ç¤ºãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã
+ã©ã¡ã¼ã¿ãæå®ããªããã°ãªããªãã 
+
+   (1)   TCP_CFG_EXTENTIONS
+         ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã
+
+   (2)   UDP_CFG_EXTENTIONS
+         ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã
+
+4. 1  TCP ã® ITRON TCP/IP API æ¡å¼µæ©è½
+
+  TCP_CFG_EXTENTIONS ãæå®ãããã¨ã«ããä½¿ç¨å¯è½ã¨ãªã API ãä»¥ä¸ã«ç¤º
+ãã
+
+   ã»TCP åä»å£ã®äºç´ IDãéç APIãVRID_TCP_REPãï¼IPv4ãTINET ç¬èªï¼
+   ã»TCP åä»å£ã®äºç´ IDãéç APIãVRID_TCP6_REPãï¼IPv6ãTINET ç¬èªï¼
+   ã»TCP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIãVRID_TCP_CEPãï¼IPv4ãTINET ç¬èªï¼
+   ã»TCP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIã VRID_TCP6_CEPãï¼IPv6ãTINET ç¬èªï¼
+   ã»TCP åä»å£ã®çæãåç APIãtcp_cre_repãï¼IPv4ï¼
+   ã»TCP åä»å£ã®çæãåç APIãtcp6_cre_repãï¼IPv6ãTINET ç¬èªï¼
+   ã»TCP åä»å£ã®åé¤ãåç APIãtcp_del_repã
+   ã»TCP éä¿¡ç«¯ç¹ã®çæãåç APIãtcp_cre_cepã
+   ã»TCP éä¿¡ç«¯ç¹ã®åé¤ãåç APIãtcp_del_cepã
+   ã»ç·æ¥ãã¼ã¿ã®éä¿¡ãtcp_snd_oobã
+   ã»ç·æ¥ãã¼ã¿ã®åä¿¡ãtcp_rcv_oobã
+   ã»TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãtcp_set_optã
+   ã»TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®èª­åºããtcp_get_optã
+   ã»ç·æ¥ãã¼ã¿åä¿¡ãã³ã¼ã«ããã¯ãTEV_TCP_RCV_OOBã
+
+   (1)   TCP åä»å£ã®çæã¨åé¤
+           ãã®æ©è½ã«ããã1 åã® TCP åä»å£ãè¤æ°ã®ã¿ã¹ã¯ã§å
+±æããã
+         ã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå®ã
+         ããã ä»¥ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãã ãªãã ç
+©éã«ãªããã
+         IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã
+
+         [1]   TCP åä»å£ã®äºç´ IDãéç APIã VRID_TCP_REPã
+               VRID_TCP6_REPãã«ãããTCP åä»å£ ID ãäºç´ããã
+
+               VRID_TCP_REP ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+
+                  VRID_TCP_REP(ID repid);
+
+               ãã©ã¡ã¼ã¿ repid ã¯äºç´ãã TCP åä»å£ ID ã§ããã ä¸è¬
+               çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ãã
+               ã«æå®ããã
+
+                  VRID_TCP_REP (TCP_RSV_REPID1);
+
+               ããã«ããã TCP åä»å£ç¨ã®ã¡ã¢ãªé åãç¢ºä¿ããã TINET
+               å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡
+               ã¤ã«ï¼TOPPERS/ASP ã¯ tinet_cfg.hã TOPPERS/JSP ã¯
+               tinet_id.hï¼ã«ã å¯¾å¿ãããã¯ã­å®ç¾©ãä»¥ä¸ã®ããã«åºåãããã
+
+                  #define TCP_RSV_REPID1  1
+
+         [2]   TCP åä»å£ã®çæãåç APIãtcp_cre_repãtcp6_cre_repã
+               ã«ãããTCP åä»å£ãçæããã
+
+               ã¾ããTCP åä»å£çææ
+å ±æ§é ä½ã«æ
+å ±ãè¨­å®ãããIPv4 ã®
+               å ´åã®ä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  T_TCP_CREP crep;
+                  crep.repatr = 0;
+                  crep.myaddr.portno = 7;
+                  crep.myaddr.ipaddr = IPV4_ADDRANY;
+
+               ã¾ã IPv6 ã®å ´åã®ä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  T_TCP6_CREP crep;
+                  crep.repatr = 0;
+                  crep.myaddr.portno = 7;
+                  memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+               ããããã åä»ããèªåã® IP ã¢ãã¬ã¹ã¯è¦å®å¤ï¼å
+¨ã¦ï¼ã§ããã
+                 æ¬¡ã«ãtcp_cre_rep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = tcp_cre_rep(ID repid, T_TCP_CREP *pk_crep);
+
+               ãã©ã¡ã¼ã¿ repid ã«ã¯ [1] ã§äºç´ãã TCP åä»å£ ID ãæ
+               å®ããpk_crep ã«ã¯ä¸è¨ã§è¨­å®æ¸ã¿ã® TCP åä»å£çææ
+å ±ã¸
+               ã®ãã¤ã³ã¿ãæå®ãããä¸è¬çãªä¾ãä»¥ä¸ã«ç¤ºãã 
+
+                  ercd = tcp_cre_rep(TCP_RSV_REPID1, &crep);
+
+               ããã«ããã VRID_TCP_REP ã§ç¢ºä¿ããã TCP åä»å£ç¨ã®ã¡
+               ã¢ãªé åã« TCP åä»å£çææ
+å ±ãæ¸è¾¼ã¾ããã
+
+         [3]   æ¥ç¶è¦æ±å¾
+ã¡ï¼ååãªã¼ãã³ï¼ãtcp_acp_cepãtcp6_acp_cepã
+               ã«ãããæ¥ç¶è¦æ±å¾
+ã¡ï¼ååãªã¼ãã³ï¼ããã 
+
+               tcp_acp_cep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = tcp_acp_cep(ID cepid, ID repid,
+                                        T_IPV4EP *p_dstaddr, TMO tmout);
+
+               ãã©ã¡ã¼ã¿ repid ã« [1] ã§äºç´ãã TCP åä»å£ ID ãæå®
+               ããä»¥å¤ã¯ã éå¸¸ã®å¼ã³åºãã¨åãã§ããã
+
+         [4]   TCP åä»å£ã®åé¤ãåç APIãtcp_del_repãã«ãããTCP å
+               ä»å£ãåé¤ããã
+
+                 éå¸¸ã¯ã æ¥ç¶è¦æ±å¾
+ã¡ï¼ååãªã¼ãã³ï¼ãçµäºããå¾ã«ã
+               TCP åä»å£ãåé¤ãããã æ¥ç¶è¦æ±å¾
+ã¡ï¼ååãªã¼ãã³ï¼ä¸­
+               ã«ãtcp_del_cep ã«ããã TCP éä¿¡ç«¯ç¹ãåé¤ãããã¨ãå¯
+               è½ã§ããã ãã®å ´åãtcp_acp_cep ã®æ»ãå¤ã«ã¯ãE_DLT ã
+               è¿ããããTCP åä»å£ãåé¤ããã¨ã ä»ã®ã¿ã¹ã¯ãåã TCP
+               åä»å£ ID ãå©ç¨ã§ãããtcp_del_rep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = tcp_del_rep(ID cepid);
+
+               ãã©ã¡ã¼ã¿ repid ã«ã¯ [1] ã§äºç´ãã TCP åä»å£ ID ãæ
+               å®ããã
+
+   (2)   TCP éä¿¡ç«¯ç¹ã®çæã¨åé¤
+           ãã®æ©è½ã«ããã1 åã® TCP éä¿¡ç«¯ç¹ãè¤æ°ã®ã¿ã¹ã¯ã§å
+±æãã
+         ãã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå®
+         ãããã ä»¥ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãããªããç
+©éã«ãªããã
+         IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã
+
+         [1]   TCP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIã VRID_TCP_CEPã
+               VRID_TCP6_CEPãã«ãããTCP éä¿¡ç«¯ç¹ ID ãäºç´ããã
+
+               VRID_TCP_CEP ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+
+                  VRID_TCP_CEP(ID cepid);
+
+               ãã©ã¡ã¼ã¿ cepid ã¯äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã§ããã ä¸
+               è¬çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ã
+               ãã«æå®ããã
+
+                  VRID_TCP_CEP (TCP_RSV_CEPID1);
+
+               ããã«ãããTCP éä¿¡ç«¯ç¹ç¨ã®ã¡ã¢ãªé åãç¢ºä¿ãããTINET
+               å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡
+               ã¤ã«ï¼TOPPERS/ASP ã¯ tinet_cfg.hã TOPPERS/JSP ã¯
+               tinet_id.hï¼ã«ã å¯¾å¿ãããã¯ã­å®ç¾©ãä»¥ä¸ã®ããã«åºåãããã
+
+                  #define TCP_RSV_CEPID1  1
+
+         [2]   TCP éä¿¡ç«¯ç¹ã®çæãåç APIã tcp_cre_cepãã«ãããTCP
+               éä¿¡ç«¯ç¹ãçæããã
+
+               ã¾ããTCP éä¿¡ç«¯ç¹çææ
+å ±æ§é ä½ã«æ
+å ±ãè¨­å®ããã ä¸è¬
+               çãªä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  T_TCP_CCEP ccep;
+                  ccep.cepatr = 0;
+                  ccep.sbufsz = TCP_ECHO_SRV_SWBUF_SIZE;
+                  ccep.rbufsz = TCP_ECHO_SRV_RWBUF_SIZE;
+                  ccep.sbuf = tcp_echo_srv_swbuf;
+                  ccep.rbuf = tcp_echo_srv_rwbuf;
+                  ccep.callback = (FP)callback_nblk_tcp_echo_srv;
+
+               æ¬¡ã«ãtcp_cre_cep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = tcp_cre_cep(ID cepid, T_TCP_CCEP *pk_ccep);
+
+               ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã
+               æå®ããpk_ccep ã«ã¯ä¸è¨ã§è¨­å®æ¸ã¿ã® TCP éä¿¡ç«¯ç¹çææ
+
+               å ±ã¸ã®ãã¤ã³ã¿ãæå®ããã ä¸è¬çãªä¾ãä»¥ä¸ã«ç¤ºãã 
+
+                  ercd = tcp_cre_cep(TCP_RSV_CEPID1, &ccep);
+
+               ããã«ããã VRID_TCP_CEP ã§ç¢ºä¿ããã TCP éä¿¡ç«¯ç¹ç¨ã®
+               ã¡ã¢ãªé åã« TCP éä¿¡ç«¯ç¹çææ
+å ±ãæ¸è¾¼ã¾ããã
+                 ãã®å¾ãTCP ã®å API ã®ãã©ã¡ã¼ã¿ cepid ã« [1] ã§äºç´
+               ãã TCP éä¿¡ç«¯ç¹ ID ãæå®ããä»¥å¤ã¯ã éå¸¸ã® TCP éä¿¡
+               ç«¯ç¹ã¨åãããã«ä½¿ç¨ã§ããã
+
+         [3]   TCP éä¿¡ç«¯ç¹ã®åé¤ãåç APIãtcp_del_cepãã«ããã TCP
+               éä¿¡ç«¯ç¹ãåé¤ããã
+
+                 tcp_cls_cep ãå¼ã³åºãã¾ã§ã¯ã TCP éä¿¡ç«¯ç¹ãåé¤ã§ã
+               ãªãããtcp_cls_cep ã®å¾ã¯ TCP éä¿¡ç«¯ç¹ãåé¤ã§ããä»ã®
+               ã¿ã¹ã¯ãåã TCP éä¿¡ç«¯ç¹ ID ãå©ç¨ã§ããã tcp_del_cep
+               ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = tcp_del_cep(ID cepid);
+
+               ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã TCP éä¿¡ç«¯ç¹ ID ã
+               æå®ããã
+
+   (3)   ç·æ¥ãã¼ã¿ã®éåä¿¡
+
+         [1]   ç·æ¥ãã¼ã¿ã®éä¿¡ãtcp_snd_oobã
+
+               tcp_snd_oob ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+
+                  ER_UINT ercd = tcp_snd_oob(ID cepid, void *data, int_t len, TMO tmout);
+
+               ãªãã ä»¥ä¸ã«ç¤ºããããªå¶ç´ãããã
+
+               ã»ç·æ¥ãã¼ã¿ã ããã¨ãã£ã¦ã ãã§ã«éä¿¡ã¦ã£ã³ããããã¡
+                 ã«ããéå¸¸ã®ãã¼ã¿ããå
+ã«éä¿¡ãããããã§ã¯ãªãã 
+               ã»tcp_snd_oob ã§ãè¤æ°ãã¤ãã®ãã¼ã¿ãéä¿¡ãã¦ãï¼len >
+                 1ï¼ãåä¿¡å´ã§åä¿¡ã§ããã®ã¯ãéä¿¡ãã data ã®æå¾ã® 1
+                 ãã¤ãã®ã¿ã§ãããã¾ãã ããããåã®ãã¼ã¿ã¯éå¸¸ã®ãã¼
+                 ã¿ã¨ãã¦åä¿¡ãããã
+
+         [2]   ç·æ¥ãã¼ã¿ã®åä¿¡ãtcp_rcv_oobã
+
+               tcp_rcv_oob ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+
+                  ER_UINT ercd = tcp_rcv_oob(ID cepid, void *data, int_t len);
+
+               ãªãã ä»¥ä¸ã«ç¤ºããããªå¶ç´ãããã
+
+               ã»ç·æ¥ãã¼ã¿åä¿¡ã®ã³ã¼ã«ããã¯é¢æ°å
+ã§å¼ã³åºããã¨ãæ³
+                 å®ãã¦ããã
+               ã»åä¿¡ã§ããã®ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã® 1 ãã¤ãã®ã¿ã§ããã
+                 å¾ã£ã¦ãæ­£å¸¸ã« tcp_rcv_oob ããæ»ã£ã¦ããæã®æ»ãå¤ã¯ã
+                 å¸¸ã« 1 ã§ããã
+
+         [3]   ç·æ¥ãã¼ã¿åä¿¡ãã³ã¼ã«ããã¯ãTEV_TCP_RCV_OOBã
+                 ç·æ¥ãã¼ã¿ãåä¿¡ããæã TCP éä¿¡ç«¯ç¹ã«æå®ããã¦ãã
+               ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã ãã®æã®äºè±¡ã®ç¨®é¡ã
+               TEV_TCP_RCV_OOB ã§ããããã ãã TCP éä¿¡ç«¯ç¹ã«ã³ã¼ã«ãã
+               ã¯é¢æ°ãæå®ããã¦ããªãå ´åã ã¾ãã¯ãã³ã¼ã«ããã¯é¢æ°
+               å
+ã§ tcp_rcv_oob ãå¼ã³åºãããªããã°ãåä¿¡ããç·æ¥ãã¼
+               ã¿ã¯éå¸¸ã®ãã¼ã¿ã¨ãã¦åä¿¡ããã
+
+         [4]   ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+
+                  TCP_CFG_URG_OFFSET
+
+               ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ããã å¤ã -1 ã®å ´åã¯
+               BSD ã®å®è£
+ã¨åãã§ã ç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®
+               ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã å¤ã 0 ã®å ´åã¯ RFC1122 ã®è¦
+               å®ã¨åãã§ã ç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã
+               å·®ããæ¢å®å¤ã¯ -1 ã§ããã
+
+   (4)   TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ã¨èª­åºã
+           è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããã©ã¡ãã®é¢æ°ã
+         æ»ãå¤ã¨ãã¦ E_PAR ãè¿ãããã
+
+4. 2  UDP ã® ITRON TCP/IP API æ¡å¼µæ©è½
+
+  UDP_CFG_EXTENTIONS ãæå®ãããã¨ã«ããä½¿ç¨å¯è½ã¨ãªã API ãä»¥ä¸ã«ç¤º
+ãã
+
+   ã»UDP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIãVRID_UDP_CEPãï¼IPv4ãTINET ç¬èªï¼
+   ã»UDP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIãVRID_UDP6_CEPãï¼IPv6ãTINET ç¬èªï¼
+   ã»UDP éä¿¡ç«¯ç¹ã®çæãåç APIãudp_cre_cepãï¼IPv4ï¼
+   ã»UDP éä¿¡ç«¯ç¹ã®çæãåç APIãudp6_cre_cepãï¼IPv6ãTINET ç¬èªï¼
+   ã»UDP éä¿¡ç«¯ç¹ã®åé¤ãåç APIãudp_del_cepã
+   ã»UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãudp_set_optã
+   ã»UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®èª­åºããudp_get_optã
+
+   (1)   UDP éä¿¡ç«¯ç¹ã®çæã¨åé¤
+           ãã®æ©è½ã«ããã1 åã® UDP éä¿¡ç«¯ç¹ãè¤æ°ã®ã¿ã¹ã¯ã§å
+±æãã
+         ãã¨ãã§ããããã ãã1 åã«ä½¿ç¨ã§ããã®ã¯ 1 åã®ã¿ã¹ã¯ã«éå®
+         ãããã ä»¥ä¸ã«æ¨æºçãªä½¿ç¨æ¹æ³ãè¿°ã¹ãããªããç
+©éã«ãªããã
+         IPv6 ã«é¢ãã¦ã®èª¬æã¯ãä¸é¨çç¥ãã¦ããã
+
+         [1]   UDP éä¿¡ç«¯ç¹ã®äºç´ IDãéç APIã VRID_UDP_CEPã
+               VRID_UDP6_CEPãã«ãããUDP éä¿¡ç«¯ç¹ ID ãäºç´ããã
+
+               VRID_UDP_CEP ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+
+                  VRID_UDP_CEP(ID cepid);
+
+               ãã©ã¡ã¼ã¿ cepid ã¯äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã§ããã ä¸
+               è¬çã«ã¯ã TINET ã³ã³ãã£ã°ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ä»¥ä¸ã®ã
+               ãã«æå®ããã
+
+                  VRID_UDP_CEP (UDP_RSV_CEPID1);
+
+               ããã«ãããUDP éä¿¡ç«¯ç¹ç¨ã®ã¡ã¢ãªé åãç¢ºä¿ãããTINET
+               å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã® ID èªåå²ä»çµæãã¡
+               ã¤ã«ï¼TOPPERS/ASP ã¯ tinet_cfg.hã TOPPERS/JSP ã¯
+               tinet_id.hï¼ã«ã å¯¾å¿ãããã¯ã­å®ç¾©ãä»¥ä¸ã®ããã«åºåãããã
+
+                  #define UDP_RSV_CEPID1  1
+
+         [2]   UDP éä¿¡ç«¯ç¹ã®çæãåç APIã udp_cre_cepãã«ãããUDP
+               éä¿¡ç«¯ç¹ãçæããã
+
+               ã¾ããUDP éä¿¡ç«¯ç¹çææ
+å ±æ§é ä½ã«æ
+å ±ãè¨­å®ããã éä¿¡
+               ç¸æããã®ãã¼ã¿ã®åä¿¡ãå¾
+ã¤å¿ç¨ã¢ããªã±ã¼ã·ã§ã³ã§ã
+               IPv4 ã®å ´åã®ä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  T_UDP_CCEP ccep;
+                  ccep.cepatr = 0;
+                  ccep.myaddr.portno = 7;
+                  ccep.myaddr.ipaddr = IPV4_ADDRANY;
+
+               ã¾ã IPv6 ã®å ´åã®ä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  T_UDP_CCEP ccep;
+                  ccep.cepatr = 0;
+                  ccep.myaddr.portno = 7;
+                  memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+               ããããã åä»ããèªåã® IP ã¢ãã¬ã¹ã¯è¦å®å¤ï¼å
+¨ã¦ï¼ã§ããã
+                 æ¬¡ã«ãudp_cre_cep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = udp_cre_cep(ID cepid, T_UDP_CCEP *pk_ccep);
+
+               ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã
+               æå®ããpk_ccep ã«ã¯ä¸è¨ã§è¨­å®æ¸ã¿ã® UDP éä¿¡ç«¯ç¹çææ
+
+               å ±ã¸ã®ãã¤ã³ã¿ãæå®ããã ä¸è¬çãªä¾ãä»¥ä¸ã«ç¤ºãã 
+
+                  ercd = udp_cre_cep(UDP_RSV_CEPID1, &ccep);
+
+               ããã«ããã VRID_UDP_CEP ã§ç¢ºä¿ããã UDP éä¿¡ç«¯ç¹ç¨ã®
+               ã¡ã¢ãªé åã« UDP éä¿¡ç«¯ç¹çææ
+å ±ãæ¸è¾¼ã¾ããã
+                 ãã®å¾ãUDP ã®å API ã®ãã©ã¡ã¼ã¿ cepid ã« [1] ã§äºç´
+               ãã UDP éä¿¡ç«¯ç¹ ID ãæå®ããä»¥å¤ã¯ã éå¸¸ã® UDP éä¿¡
+               ç«¯ç¹ã¨åãããã«ä½¿ç¨ã§ããã
+
+         [3]   UDP éä¿¡ç«¯ç¹ã®åé¤ãåç APIã udp_del_cepãã«ãããUDP
+               éä¿¡ç«¯ç¹ãåé¤ããã
+
+                 UDP éä¿¡ç«¯ç¹ã¯ãã¤ã§ãåé¤ã§ãã ä»ã®ã¿ã¹ã¯ãåã UDP
+               éä¿¡ç«¯ç¹ ID ãå©ç¨ã§ããã ãªããudp_snd_dat ã§éä¿¡å¾
+ã¡
+               ã®æãã¾ãã¯ãudp_rcv_dat ã§åä¿¡å¾
+ã¡ã®æã«ãudp_del_cep
+               ã«ãããUDP éä¿¡ç«¯ç¹ãåé¤ããã¨ã ããããã®é¢æ°ã®æ»ã
+               å¤ã«ã¯ãE_DLT ãè¿ãããã
+                 æ¬¡ã«ãudp_del_cep ã®æ¸å¼ãç¤ºãã
+
+                  ER ercd = udp_del_cep(ID cepid);
+
+               ãã©ã¡ã¼ã¿ cepid ã«ã¯ [1] ã§äºç´ãã UDP éä¿¡ç«¯ç¹ ID ã
+               æå®ããã
+
+   (2)   UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ã¨èª­åºã
+           è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããã©ã¡ãã®é¢æ°ã
+         æ»ãå¤ã¨ãã¦ E_PAR ãè¿ãããã
+
+5.  ã«ã¼ãã£ã³ã°ã®è¨­å®
+
+  ã«ã¼ãã£ã³ã°ã¨ã³ããªã«ã¯ãéçã«ã¼ãã£ã³ã°ã¨ã³ããªã¨åãç´ãï¼ICMPï¼
+ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªãããã 
+  éçã«ã¼ãã£ã³ã°ã¨ã³ããªã¯ãäºãæ±ºããããã«ã¼ãã£ã³ã°æ
+å ±ã§ãããã«ã¼
+ãã£ã³ã°è¨­å®ãã¡ã¤ã« route_cfg.c ã®ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé
+åã«è¨­å®ã
+ãããªãããã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã®ã¿ã®ã·ã³ãã«ãªãããã¯ã¼ã¯ã§ã¯ããµ
+ã³ãã«ã¢ããªã±ã¼ã·ã§ã³ echos ã® route_cfg.c ããã®ã¾ã¾æµç¨ã§ããã
+  åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªã¯ãTINET ã³ã³ãã£ã®ã¥ã¬ã¼
+ã·ã§ã³ã»ãã©ã¡ã¼ã¿å®ç¾©ãã¡ã¤ã«ã§ãã«ã¼ãã£ã³ã°è¡¨ã§äºãç¢ºä¿ããã¨ã³ããª
+æ°ãå®ç¾©ãã ã«ã¼ãã£ã³ã°è¨­å®ãã¡ã¤ã« route_cfg.c ã®ã«ã¼ãã£ã³ã°è¡¨ã¨ã³
+ããªé
+åã«ã ç©ºã®ã¨ã³ããªã¨ãã¦ç¢ºä¿ããã
+
+   (1)   ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°ã®è¨­å®
+           ã¨ã³ããªæ°ã®è¨­å®ãããã¯ã­ã¯ã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»
+         ãã©ã¡ã¼ã¿å®ç¾©ãã¡ã¤ã«ã§å®ç¾©ããã 
+
+         [1]   NUM_IN6_STATIC_ROUTE_ENTRY
+               IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæ
+               å®ããã
+         [2]   NUM_IN6_REDIRECT_ROUTE_ENTRY
+               IPv6 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã§äºãç¢ºä¿ãããåãç´ãï¼ICMPï¼
+               ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ã
+               åãç´ãï¼ICMPv6ï¼ãç¡è¦ããã
+         [3]   NUM_IN4_STATIC_ROUTE_ENTRY
+               IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæ
+               å®ããã
+         [4]   NUM_IN4_REDIRECT_ROUTE_ENTRY
+               IPv4 ç¨ã®ã«ã¼ãã£ã³ã°è¡¨ã§äºãç¢ºä¿ãããåãç´ãï¼ICMPï¼
+               ã«ããã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ã
+               åãç´ãï¼ICMPï¼ãç¡è¦ããã
+
+   (2)   ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ï¼IPv6ï¼
+           IPv6 ã§ã¯ã#include <netinet6/in6_var.h> ã§å®ç¾©ããã¦ããã
+         åãã£ã¼ã«ãã®æå³ãä»¥ä¸ã«ç¤ºãã
+
+            T_IN6_ADDR      target          ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹
+            T_IN6_ADDR      gateway         ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹
+            uint32_t        expire          æå¹æéãåããæå»ã0xffffffff ãæå®ãããã¨ã
+            uint8_t         flags           ãã©ã°ã0x01 ãæå®ãããã¨ã
+            uint8_t         prefix_len      ãã¬ãã£ãã¯ã¹é·
+
+         IP ã¢ãã¬ã¹ã¯ã{{{ ã¨ }}} ã§å²ã¿ã 1 ãªã¯ãããåä½ã§æå®ããã
+         ä¾ãä»¥ä¸ã«ç¤ºãã
+
+            { { { 0xfe, 0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x41,
+                  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } } }
+
+   (3)   ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ï¼IPv4ï¼
+           IPv4 ã§ã¯ã#include <netinet/in_var.h> ã§å®ç¾©ããã¦ãããå
+         ãã£ã¼ã«ãã®æå³ãä»¥ä¸ã«ç¤ºãã
+
+            T_IN4_ADDR      targe           ç®æ¨ãããã¯ã¼ã¯ã®IPã¢ãã¬ã¹ã
+                                            ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã§ã¯0ãæå®ããã
+            T_IN4_ADDR      mask            ç®æ¨ãããã¯ã¼ã¯ã®ãµãããããã¹ã¯ã
+                                            ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ã§ã¯0ãæå®ããã
+            T_IN4_ADDR      gateway         ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹ã
+                                            èªãããã¯ã¼ã¯å
+ã§ã¯0ãæå®ããã
+
+   (4)   ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«
+           ä»¥ä¸ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãæå®ãããã¨ã 
+
+         [1]   TOPPERS/ASP
+
+                  #include <kernel.h>
+                  #include <tinet_defs.h>
+                  #include <tinet_config.h>
+                  #include <netinet/in.h>
+                  #include <netinet/in_var.h>
+
+         [2]   TOPPERS/JSP
+
+                  #include <s_services.h>
+                  #include <t_services.h>
+                  #include <tinet_defs.h>
+                  #include <tinet_config.h>
+                  #include <netinet/in.h>
+                  #include <netinet/in_var.h>
+
+   (5)   ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé
+åï¼IPv6ï¼
+           ä»¥ä¸ã®ããã«æå®ãããã¨ã
+
+            T_IN6_RTENTRY routing6_tbl[NUM_ROUTE_ENTRY] = {
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 1>,
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 2>,
+                ...
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ n>,
+                };
+
+   (6)   ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªé
+åï¼IPv4ï¼
+           ä»¥ä¸ã®ããã«æå®ãããã¨ã
+
+            T_IN4_RTENTRY routing4_tbl[NUM_ROUTE_ENTRY] = {
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 1>,
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 2>,
+                ...
+                <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ n>,
+                };
+
+   (7)   æ¢ç´¢é åº
+           æ¢ç´¢ã¯ãã¤ã³ããã¯ã¹ãå¤§ããªé ãã¤ã¾ãã ã«ã¼ãã£ã³ã°è¡¨ã¨ã³
+         ããªé
+åã®æå¾ã® <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ n> ããã æå
+         ã® <ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ 1> ã«åã£ã¦è¡ãããã
+
+6.  TINET ç¬èªæ©è½
+
+6. 1  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
+
+  TCP éä¿¡ç«¯ç¹ã¯ãã½ã±ããã¤ã³ã¿ãã§ã¼ã¹ã«ããããã¡ã¤ã«ãã£ã¹ã¯ãªãã¿
+ã¨ç°ãªãã TCP ã®æ¥ç¶ç¶æ
+ãå®å
+¨ã«çµäºããã¾ã§åå©ç¨å¯è½ã¨ã¯ãªããªãã
+TCP/IP ãã­ãã³ã«ã®ä»æ§ã«å¾ãã¨ã æ¥ç¶ç¶æ
+ãå®å
+¨ã«çµäºããã¾ã§æ°åãã
+ãå ´åããããåé¡ã«ãªãã®ã¯ãå
+ã«ãTCP éä¿¡ç«¯ç¹ã®ã³ãã¯ã·ã§ã³åæ­ API
+ã® tcp_sht_cep ãå¼åºãã ã³ãã¯ã·ã§ã³ãåæ­ããå ´åã§ããã ãã®æã
+tcp_sht_cep ã§æå®ããã TCP éä¿¡ç«¯ç¹ã¯ãæçµçã« Time Wait ç¶æ
+ã«ãªãã
+TCP éä¿¡ç«¯ç¹ã®ã¯ã­ã¼ãº API ã® tcp_cls_cep ãå¼åºããã¿ã¹ã¯ããã¿ã¤ã ã¢
+ã¦ãå¾
+ã¡ç¶æ
+ã«ãªããå¾ã£ã¦ããµã¼ãå´ããåæ­ããå¿ç¨ãã­ã°ã©ã ï¼WWW ãª
+ã©ï¼ã®ã¿ã¹ã¯ã§ã¯ãã¿ã¤ã ã¢ã¦ãããã¾ã§ãæ¬¡ã®æ¥ç¶è¦æ±ãåä¿¡ãããã¨ãã§
+ããªãã
+  ããã«å¯¾å¿ããããã TINET ã¯ãçµäºå¾
+ã¡ã® TCP éä¿¡ç«¯ç¹ãã¿ã¹ã¯ããå
+ãé¢ããã¨ã«ãããã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ã«ãªããªãããã«ããæ©è½ãæã£ã¦ããã
+æå¹ã«ããããã«ã¯ã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+NUM_TCP_TW_CEP_ENTRY ã tinet_app_config.h ç­ã«æå®ãã ç¢ºä¿ãã TW ç¨
+TCP éä¿¡ç«¯ç¹ã®æ°ï¼1 ä»¥ä¸ã®å¤ï¼ãå®ç¾©ããã
+  TCP éä¿¡ç«¯ç¹ã Time Wait ã«ãªãã¨ãTCP éä¿¡ç«¯ç¹ããã Time Wait ã«å¿
+
+è¦ãªéä¿¡ç®¡çãã¼ã¿ã TW ç¨ TCP éä¿¡ç«¯ç¹ã«ã³ãã¼ããå
+ã® TCP éä¿¡ç«¯ç¹ã
+éæ¾ããã ããã«ä¼´ã£ã¦ã ã¿ã¹ã¯ãå¾
+ã¡ç¶æ
+ããéæ¾ãããã ã¾ããTW ç¨
+TCP éä¿¡ç«¯ç¹ã«ã¯ Time Wait ã«å¿
+è¦ãªéä¿¡ç®¡çãã¼ã¿ã®ã¿ãã³ãã¼ãããã¨
+ã§ãã¡ã¢ãªã®æ¶è²»ãæãã¦ããã
+  ãã ãããã®æ©è½ãæå¹ã«ãã¦ãã¦ããã³ãã¯ã·ã§ã³ã®åæåæ­ã®ã¿ã¤ãã³
+ã°ã«ãã£ã¦ã¯ãåé¢ãããªãå ´åãããã 
+
+6. 2  åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+
+  ITRON TCP/IP API ä»æ§ã§ã¯ãTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦
+ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã NADR ãæå®ããã¨ããã­ãã³ã«ã¹
+ã¿ãã¯ã§ã åä¿¡ã¦ã¤ã³ããããã¡ãç¢ºä¿ãããã¨ã«ãªã£ã¦ããã 
+  TINET ã§ã¯ããããã¯ã¼ã¯ãããã¡ããåä¿¡ã¦ã¤ã³ããããã¡ã¨ãããã¨ã§ã
+NADR ã®æå®ã«å¯¾å¿ãã¦ããã ããã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã§åä¿¡ã
+ããã­ãã«ã³ãã¼ã¿ãä¿æãããããã¯ã¼ã¯ãããã¡ãããã®ã¾ã¾åä¿¡ã¦ã¤ã³
+ããããã¡ã¨ãããã¨ã§ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¨ãTINET å
+é¨ã§ããã¼
+ã¿ã®ã³ãã¼ãçãã¦ãããç¹ã«ã çã³ãã¼ API ãä½¿ç¨ãããã¨ã«ããã API
+ã«ããããã¼ã¿ã®ã³ãã¼ãè¡ããªããã¨ãå¯è½ã§ããã 
+  ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ããä»¥
+ä¸ã«ç¤ºãã
+
+   (1)   TCP_CFG_RWBUF_CSAVE_ONLY
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã
+         ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦
+         ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ãã­ã°ã©ã ãç¨æã
+         ããããã¡ãæå®ãã¦ãç¡è¦ããã
+
+   (2)   TCP_CFG_RWBUF_CSAVE
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP
+         éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡ã®å
+é ­ã¢ã
+         ã¬ã¹ã®æå®ã«ãNADR ãæå®ããå ´åã¯ãåä¿¡ã¦ã£ã³ããããã¡ã®ç
+         ã³ãã¼æ©è½ãä½¿ç¨ãããã å¿ç¨ãã­ã°ã©ã ãç¨æãããããã¡ãæ
+         å®ããå ´åã¯ã åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ããªãã 
+
+   (3)   TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£
+         ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã§ããã ãã ããæ­£å¸¸ã«åä¿¡
+         ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ãããã¾ãã æå®
+         ããªãã¨å¶éããªãã
+
+ãªããTCP_CFG_RWBUF_CSAVE_ONLY ã¨ TCP_CFG_RWBUF_CSAVE ã®ãããããæå®
+ããªãå ´åã¯ã TCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡
+ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ãNADR ãæå®ãããã¨ãã§ããªãã
+
+6. 3  éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+
+  ITRON TCP/IP API ä»æ§ã§ã¯ãTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦
+ã¤ã³ããããã¡ã¨åæ§ã«ã éä¿¡ã¦ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã
+NADR ãæå®ããã¨ã ãã­ãã³ã«ã¹ã¿ãã¯ã§ãéä¿¡ã¦ã¤ã³ããããã¡ãç¢ºä¿ã
+ããã¨ã«ãªã£ã¦ããã
+  TINET ã§ã¯ããããã¯ã¼ã¯ãããã¡ããéä¿¡ã¦ã¤ã³ããããã¡ã¨ãããã¨ã§ã
+NADR ã®æå®ã«å¯¾å¿ãã¦ãããããã«ã æ¸è¾¼ã¾ãããã¼ã¿ã®åã«å¿
+è¦ãªããã
+ãä»å ãã¦ããã®ã¾ã¾ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«æ¸¡ããã¨ã«ãããããã
+ã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã¨ãTINET å
+é¨ã§ããã¼ã¿ã®ã³ãã¼ãçãã¦ãããç¹ã«ã
+çã³ãã¼ API ãä½¿ç¨ãããã¨ã§ã API ã«ããããã¼ã¿ã®ã³ãã¼ãè¡ããªãã
+ã¨ãå¯è½ã§ããã
+  ãã ãã ã¤ã¼ãµãããåºåæã«ã NIC ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ãã
+ï¼ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+ETHER_NIC_CFG_RELEASE_NET_BUF ããæå®ããå¿
+è¦ãããï¼ãã£ãã¤ã¹ãã©ã¤
+ãã§ã¯ã ãã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãå©ç¨ãããã¨ã¯ã§ããªãã 
+  ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ããä»¥
+ä¸ã«ç¤ºãã
+
+   (1)   TCP_CFG_SWBUF_CSAVE_ONLY
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã
+         ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãéä¿¡ã¦
+         ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ãã­ã°ã©ã ãç¨æã
+         ããããã¡ãæå®ãã¦ãç¡è¦ããã
+
+   (2)   TCP_CFG_SWBUF_CSAVE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP
+         éä¿¡ç«¯ç¹ãçæããéç API ã§ãéä¿¡ã¦ã¤ã³ããããã¡ã®å
+é ­ã¢ã
+         ã¬ã¹ã®æå®ã«ãNADR ãæå®ããå ´åã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®ç
+         ã³ãã¼æ©è½ãä½¿ç¨ãããã å¿ç¨ãã­ã°ã©ã ãç¨æãããããã¡ãæ
+         å®ããå ´åã¯ã éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ããªãã 
+
+   (3)   TCP_CFG_SWBUF_CSAVE_MAX_SIZE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£
+         ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºã§ããã
+         æ¨æºå¤ã¯ IF_PDU_SIZE ã§ããã
+
+   (4)   TCP_CFG_SWBUF_CSAVE_MIN_SIZE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£
+         ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æå°ãµã¤ãºã§ããã
+         æ¨æºå¤ã¯ 0 ã§ããã
+
+ãªããTCP_CFG_SWBUF_CSAVE_ONLY ã¨ TCP_CFG_SWBUF_CSAVE ã®ãããããæå®
+ããªãå ´åã¯ãTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ã éä¿¡ã¦ã¤ã³ããããã¡
+ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ãNADR ãæå®ãããã¨ãã§ããªãã
+
+6. 4  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ç¡å¹å
+
+  å¿ç¨ãã­ã¯ã©ã ã§ã ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãä½¿ç¨ããªãå ´åã¯ã TCP ã¨
+UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ã¾ãªãã§ãã¡ã¢ãªãç¯ç´ãããã¨ã
+ã§ããã
+  ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ããä»¥
+ä¸ã«ç¤ºãã
+
+   (1)   TCP_CFG_NON_BLOCKING
+         TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã
+
+   (2)   UDP_CFG_NON_BLOCKING
+         UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã
+
+ãã ãã éå»ã®ãªãªã¼ã¹ã¨ã®äºææ§ã®ããã ã©ã¡ãã®ãã©ã¡ã¼ã¿ãã
+tinet/tinet_config.h ã«æå®ããã¦ããã æ¢å®ã§ã¯ããã³ãã­ãã­ã³ã°ã³ã¼
+ã«æ©è½ãçµè¾¼ã¾ããããã«ãªã£ã¦ããã ãªãã ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®
+tinet_app_config.h ã«ã¯ã æå®ãè§£é¤ãããã¯ã­ãå®ç¾©ããã¦ãããçµè¾¼ã¾
+ãªãå ´åã¯ãä»¥ä¸ã®ãã¯ã­ã Makefile ã«å®ç¾©ããã
+
+   UNDEF_TCP_CFG_NON_BLOCKING
+   UNDEF_UDP_CFG_NON_BLOCKING
+
+6. 5  TINETã®ã©ã¤ãã©ãªå
+
+  TINET ã®ã©ã¤ãã©ãªåã¯ãã¡ã¢ãªä½¿ç¨éãåæ¸ãããã¨ãç®çã«å®è£
+ãã¦ã
+ãããã®ãããã©ã¤ãã©ãªåããã¦ããã®ã¯ ITRON TCP/IP API é¨åã®ã¿ã§ã
+ããTINET ã®ã³ã¢é¨åã®ã©ã¤ãã©ãªåã¯è¡ããã¦ããªããã¾ããã³ã³ãã¤ã«æ
+ãªãã·ã§ã³ã«ãããå¦çå
+å®¹ãå¤ãããããã©ã¤ãã©ãªãåæ§ç¯ããå¿
+è¦ãã
+ããå¾ã£ã¦ãã©ã¤ãã©ãªã¨ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ãå¥ã
+ã«æ§ç¯ãã¦ããã
+å¾ã§ãªã³ã¯ããæ¹æ³ã¯ãµãã¼ããã¦ããªãã 
+  ITRON TCP/IP API é¨åãã©ã¤ãã©ãªåãããªãããã«ã¯ã ã¢ããªã±ã¼ã·ã§
+ã³ã® Makefile ã« NO_USE_TINET_LIBRARY = true ãæå®ããã
+
+6. 6  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+
+  éåä¿¡ãã TCP ã»ã°ã¡ã³ãã® TCP ãããã¨ TCP éä¿¡ç«¯ç¹ã®æ
+å ±ãåºåã
+ãæ©è½ã§ããããªãã CONSOLE_PORTID ã§æå®ãããã·ãªã¢ã«ãã¼ãã«ç´æ¥åº
+åããã®ã§ã SYSLOG åºåãä¹±ãããã¨ããããåä¿¡æã®åºåä¾ã¨æå³ãä»¥ä¸
+ã«ç¤ºãã
+
+   <I 329.599=c: 4 s:CW f:60c00:--A---- a: 74461 s: 76082 w:58400 l:   0=
+
+   329.599       åä¿¡ããæéã1/1000 ç§åä½ãã¾ãã¯ 1 ç§åä½
+   c: 4          TCP éä¿¡ç«¯ç¹ ID
+   s:CW          TCP FSM ç¶æ
+ï¼tinet/netinet/tcp_fsm.h åç
+§ï¼
+   f:60c00       TCP éä¿¡ç«¯ç¹ã®ç¶æ
+ãã©ã°ï¼16 é²æ°ã
+                 tinet/netinet/tcp_var.h åç
+§ï¼
+   :--A----      TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ï¼tinet/netinet/tcp.h
+                 åç
+§ï¼
+   a: 74461      TCP ãããã®ç¢ºèªå¿ç­çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®ç¸
+                 å¯¾å¤ï¼
+   s: 76082      TCP ãããã®ã·ã¼ã±ã³ã¹çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®
+                 ç¸å¯¾å¤ï¼
+   w:58400       TCP ãããã®ã¦ã¤ã³ããµã¤ãº
+   l:0           åä¿¡ãã¤ã­ã¼ããã¼ã¿æ°
+
+  éä¿¡æã®åºåä¾ã¨æå³ãä»¥ä¸ã«ç¤ºãã 
+
+   =O 329.627=c: 4 s:CW f:60d20:--AP--- s: 74461 a: 76082 w: 2920 l:1460>
+
+   329.627       éä¿¡ããæéã1/1000 ç§åä½ãã¾ãã¯ 1 ç§åä½
+   c: 4          TCP éä¿¡ç«¯ç¹ ID
+   s:CW          TCP FSM ç¶æ
+ï¼tinet/netinet/tcp_fsm.h åç
+§ï¼
+   f:60d20       TCP éä¿¡ç«¯ç¹ã®ç¶æ
+ãã©ã°ï¼16 é²æ°ã
+                 tinet/netinet/tcp_var.h åç
+§ï¼
+   :--AP---      TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ï¼tinet/netinet/tcp.h
+                 åç
+§ï¼
+   s: 74461      TCP ãããã®ã·ã¼ã±ã³ã¹çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®
+                 ç¸å¯¾å¤ï¼
+   a: 76082      TCP ãããã®ç¢ºèªå¿ç­çªå·ï¼ã³ãã¯ã·ã§ã³ç¢ºç«æããã®ç¸
+                 å¯¾å¤ï¼
+   w: 2920       TCP ãããã®ã¦ã¤ã³ããµã¤ãº
+   l:1460        éä¿¡ãã¤ã­ã¼ããã¼ã¿æ°
+
+  ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ããä»¥
+ä¸ã«ç¤ºãã
+
+   (1)   TCP_CFG_TRACE
+         TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã
+
+   (2)   TCP_CFG_TRACE_IPV4_RADDR
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ããã
+         IPV4_ADDRANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+
+   (3)   TCP_CFG_TRACE_LPORTNO
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·ãæå®ããã
+         TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+
+   (4)   TCP_CFG_TRACE_RPORTNO
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·ãæå®ããã
+         TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+
+6. 7  IPv6ã«ãããã¢ãã¬ã¹ç®¡çã¨Path MTUã¸ã®å¯¾å¿
+
+  TINET ãªãªã¼ã¹ 1.3 ã¾ã§ãIPv6 ã«ãããã¢ãã¬ã¹ç®¡çã¯éå®çãªå¯¾å¿ã®ã¿
+ã§ããã Path MTU ã«ãå¯¾å¿ãã¦ããªãã£ããããã¹ãæ
+å ±ã®ã­ã£ãã·ã¥ãå®
+è£
+ãããã¨ã«ãããTINET ãªãªã¼ã¹ 1.4 ããã¯ãã»ã¼å®å
+¨ã«å¯¾å¿ããã
+  ãã®æ©è½ã«é¢ä¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ããä»¥
+ä¸ã«ç¤ºãã
+
+   (1)   NUM_IN6_IFADDR_ENTRY
+         ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ã§ããã
+
+   (2)   NUM_ND6_DEF_RTR_ENTRY
+         ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã§ãæå¤§å¤ã¯ 16 ã§ããã0
+         ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãããã ããç¾å¨ã¯ã ã«ã¼ã¿é
+         ç¥ã®åä¿¡ä»¥å¤ã«ãµã¤ãã­ã¼ã«ã«ã¢ãã¬ã¹ç­ãè¨­å®ããæ¹æ³ããªãã 
+
+   (3)   NUM_ND6_PREFIX_ENTRY
+         ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ã§ãæå¤§å¤ã¯ 16 ã§ããã
+
+   (4)   NUM_IN6_HOSTCACHE_ENTRY
+         IPv6 ç¨ãã¹ãæ
+å ±ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ã 0 ãæå®ããã¨
+         IPv6 ç¨ãã¹ãæ
+å ±ã­ã£ãã·ã¥ãçµè¾¼ã¾ãªããã¾ãããã®å ´åãPath
+         MTU ã¸ã®å¯¾å¿ãéå®çã«ãªãã
+
+6. 8  IPv6/IPv4å®å
+¨ãã¥ã¢ã«ã¹ã¿ãã¯
+
+  TINET ãªãªã¼ã¹ 1.5 ã¾ã§ã çµè¾¼ã¿å¯è½ãªãããã¯ã¼ã¯å±¤ã¯ IPv6 ã IPv4
+ã®ããããã§ãã£ããã TINET ãªãªã¼ã¹ 1.7 ããã¯ä¸¡æ¹ãçµè¾¼ããã¨ããå¯
+è½ã«ãªã£ãã
+  ãããã¯ã¼ã¯å±¤ã¨ãã¦ IPv6 ãé¸æããå ´åã¯ã IPv6 ã® API ã«ããã
+IPv6 ã¢ãã¬ã¹ã¨ãã¦ IPv4 å°å½±ã¢ãã¬ã¹ãä½¿ç¨ãããã¨ãå¯è½ã§ããã
+  ãã®æ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãã
+ä»¥ä¸ã«ç¤ºãã
+   API_CFG_IP4MAPPED_ADDR
+ãã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãããªãæã¯ãä»¥ä¸ã®ç¤º
+ã API ã®å¼æ°ã¨ãã¦ IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããã¨ã æ»ãå¤ã¨ãã¦ E_PAR
+ãè¿ãããã
+
+   [1]   tcp_cre_rep
+   [2]   tcp_acp_cep
+   [3]   tcp_con_cep
+   [4]   udp_cre_cep
+   [5]   udp_snd_dat
+
+7.  TINET ç¬èª API
+
+7. 1  ãããã¯ã¼ã¯çµ±è¨æ
+å ±
+
+  éåä¿¡ãªã¯ãããæ°ã éåä¿¡ãã±ããæ°ç­ã®çµ±è¨æ
+å ±ã®ã«ã¦ã³ã¿
+ï¼net_countï¼ããåç´å¤æ°ãæ§é ä½ãé
+åã«ããçµè¾¼ã¾ãã¦ããã
+
+   (1)   ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®æå¹å
+           ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã
+         ãã­ãã³ã«æ¯ã«ãããã¯ã¼ã¯çµ±è¨æ
+å ±ãæå¹ã«ããäºãå¿
+è¦ã§ããã
+         æå¹ã«ããããã«ã¯ããã¯ã­ NET_COUNT_ENABLE ã«ã ãã­ãã³ã«è­
+         å¥ãã©ã°ï¼ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net.h ã§å®ç¾©ããã¦ããï¼ã
+         ãããè«çåã«ããè¨­å®ããã
+
+   (2)   ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®æ¨æºãã¼ã¿åã¨æ¨æºæ§é ä½
+           ããããã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net_count.h ã«å®ç¾©ããã¦ããã
+
+            typedef UD T_NET_COUNT_VAL;
+            
+            typedef struct t_net_count {
+                  T_NET_COUNT_VAL   in_octets;        /* åä¿¡ãªã¯ãããæ°     */
+                  T_NET_COUNT_VAL   out_octets;       /* éä¿¡ãªã¯ãããæ°     */
+                  T_NET_COUNT_VAL   in_packets;       /* åä¿¡ãã±ããæ° */
+                  T_NET_COUNT_VAL   out_packets;      /* éä¿¡ãã±ããæ° */
+                  T_NET_COUNT_VAL   in_err_packets;   /* åä¿¡ã¨ã©ã¼ãã±ããæ° */
+                  T_NET_COUNT_VAL   out_err_packets;  /* éä¿¡ã¨ã©ã¼ãã±ããæ° */
+                  } T_NET_COUNT;
+
+   (3)   ãã­ãã³ã«æ¯ã®ãããã¯ã¼ã¯çµ±è¨æ
+å ±
+           ä»¥ä¸ã«ã ãã­ãã³ã«æ¯ã®ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®å¤æ°ã¾ãã¯é
+å
+         ãç¤ºããï¼ï¼å
+ã¯ã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net.h ã«å®ç¾©ããã¦ã
+         ããã­ãã³ã«è­å¥ãã©ã°ã§ãããã¾ããé
+åå¤æ°ã®å ´åã é
+åã®å
+
+         å®¹ã¯ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã« net/net_count.h ãåç
+§ãããã¨ã
+
+         [1]   PPP ã® HDLCï¼PROTO_FLG_PPP_HDLCï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_hdlc ã§ããã
+
+         [2]   PPP ã®èªè¨¼ãã­ãã³ã«ï¼PROTO_FLG_PPP_PAPï¼
+                 æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°åã¯ãåä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_upap_in_octets
+
+               éä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_upap_out_octets
+
+         [3]   PPP ã®ãªã³ã¯å¶å¾¡ãã­ãã³ã«ï¼PROTO_FLG_PPP_LCPï¼
+                 æ¨æºãã¼ã¿åå¤æ°ã§ãå¤æ°åã¯ã åä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_lcp_in_octets
+
+               éä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_lcp_out_octets
+
+         [4]   PPP ã® IP ä¾å­å¶å¾¡ãã­ãã³ã«ï¼PROTO_FLG_PPP_IPCPï¼
+                 æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°åã¯ãåä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_ipcp_in_octets
+
+               éä¿¡ãªã¯ãããæ°ã
+
+                  net_count_ppp_ipcp_out_octets
+
+         [5]   PPP å
+¨ä½ï¼PROTO_FLG_PPPï¼
+                 PPP å
+¨ä½ã®ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã¯ã æ¨æºæ§é ä½å¤æ°ã§ã
+               å¤æ°åã¯ net_count_ppp ã§ããã ã¾ãã PPP ã§ã® net_buf
+               ã®å²å½ã¦å¤±ææ°ã¯ã æ¨æºãã¼ã¿åå¤æ°ã§ã å¤æ°åã¯
+               net_count_ppp_no_buf ã§ããã
+
+         [6]   ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼PROTO_FLG_LOOPï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_loop ã§ããã
+
+         [7]   ã¤ã¼ãµããããã£ãã¤ã¹ãã©ã¤ã NICï¼PROTO_FLG_ETHER_NICï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ã å¤æ°åã¯ net_count_ether_nic
+               ã§ããã
+
+         [8]   ï¼PROTO_FLG_ETHERï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_ether ã§ããã
+
+         [9]   ï¼PROTO_FLG_ARPï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_arp ã§ããã
+
+         [10]  ï¼PROTO_FLG_IP4ï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ãå¤æ°åã¯ net_count_ip4 ã§ããã
+
+         [11]  ï¼PROTO_FLG_IP6ï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ãå¤æ°åã¯ net_count_ip6 ã§ããã
+
+         [12]  ï¼PROTO_FLG_ICMP4ï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_icmp4 ã§ããã
+
+         [13]  ï¼PROTO_FLG_ICMP6ï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ãå¤æ°åã¯ net_count_icmp6 ã§ããã
+
+         [14]  ï¼PROTO_FLG_ND6ï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ãå¤æ°åã¯ net_count_nd6 ã§ããã
+
+         [15]  ï¼PROTO_FLG_UDPï¼
+                 æ¨æºæ§é ä½å¤æ°ã§ãå¤æ°åã¯ net_count_udp ã§ããã
+
+         [16]  ï¼PROTO_FLG_TCPï¼
+                 æ¨æºãã¼ã¿åé
+åå¤æ°ã§ãå¤æ°åã¯ net_count_tcp ã§ããã
+
+         [17]  ï¼PROTO_FLG_NET_BUFï¼
+                 net_buf ã«é¢ãã¦ã¯ã ç¹æ®ã§ãããããµã³ãã«ã¢ããªã±ã¼
+               ã·ã§ã³ nserv ã§ä½¿ç¨ãã¦ãã netapp/dbg_cons.c ã®é¢æ°
+               net_count ãåç
+§ãããã¨ã
+
+7. 2  SNMP ç¨ç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼
+
+  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã ãã¯ã­
+SUPPORT_MIB ãå®ç¾©ãããã¨ã«ãããSNMP ç¨ç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ã
+ããããã¯ã¼ã¯çµ±è¨ã®åå¾ãå¯è½ã§ããããã ããTINET èªä½ã¯ãç®¡çæ
+å ±ãã¼
+ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ãæä¾ããã ãã§ï¼SNMP ããµãã¼ãã
+ã¦ããªããã¾ããRFC1213ãRFC2465ãRFC2466 ã«å®ç¾©ããã¦ããå
+¨ã¦ã®æ
+å ±ã
+åå¾ã§ããããã§ã¯ãªããåå¾ã§ããæ
+å ±ã¯ãé¢ä¿ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«
+ã®æ§é ä½ã®å®ç¾©ãåç
+§ãããã¨ã
+  ä»¥ä¸ã«ãã°ã«ã¼ããæ§é ä½ãå®ç¾©ãã¦ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãæ§é ä½åã
+æ§é ä½å¤æ°åãç¤ºãã
+
+   (1)   TCP ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet/tcp_var.h
+            æ§é ä½å                T_TCP_STATS
+            å¤æ°å                  tcp_stats
+
+   (2)   UDP ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet/udp_var.h
+            æ§é ä½å                T_UDP_STATS
+            å¤æ°å                  udp_stats
+
+   (3)   ICMPv4 ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet/icmp_var.h
+            æ§é ä½å                T_ICMP_STATS
+            å¤æ°å                  icmp_stats
+
+   (4)   IPv4 ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet/ip_var.h
+            æ§é ä½å                T_IP_STATS
+            å¤æ°å                  ip_stats
+
+   (5)   ICMPv6 ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet/icmp6.h
+            æ§é ä½å                T_ICMP6_IFSTAT
+            å¤æ°å                  icmp6_ifstat
+
+   (6)   IPv6 ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    netinet6/ip6_var.h
+            æ§é ä½å                T_IN6_IFSTAT
+            å¤æ°å                  in6_ifstat
+
+   (7)   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼ã¤ã¼ãµãããï¼ã°ã«ã¼ã
+
+            ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«    net/if_var.h
+            æ§é ä½å                T_IF_STATS
+            å¤æ°å                  if_stats
+
+7. 3  TINET å
+é¨ã¢ã¯ã»ã¹é¢æ°ããµãã¼ãé¢æ°ãå
+¨åå¤æ°ã¨ãã¯ã­
+
+  å¿ç¨ãã­ã°ã©ã ãã TINET å
+é¨ã«ã¢ã¯ã»ã¹ããããã®é¢æ°ã ãµãã¼ãé¢æ°ã
+å
+¨åå¤æ°ã¨ãã¯ã­ã§ããã
+
+   (1)   IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããé¢æ°
+         ãC è¨èª APIã
+               char *p_retbuf = ipv62str (char *p_buf, const T_IN6_ADDR *p_addr);
+
+         ããã©ã¡ã¼ã¿ã
+               char           buf       ãªãã©ã«è¡¨ç¾ã®IPv6ã¢ãã¬ã¹ãæ ¼ç´ãããããã¡
+               const T_IN6_ADDR         addr      IPv6ã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               char           retbuf    ãªãã©ã«è¡¨ç¾ã® IPv6 ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããããã©
+               ã¡ã¼ã¿ buf ã«ã¯ãæä½ 46 ãã¤ãã®é åãå¿
+è¦ã§ãããã¾ãã
+               ãã©ã¡ã¼ã¿ buf ã«ã NULL ãæå®ããã¨ãTINET å
+é¨ã§ç¢ºä¿
+               ãã¦ãããããã¡ã« IPv6 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æã
+               ã¦æ¸ãè¾¼ã¿ããã®ã¢ãã¬ã¹ãè¿ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥
+               ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPADDR_STR_BUFF ã«ãããããã¡
+               æ°ãæå®ãããã¨ãåºæ¥ãã ãã ãããããã¡æ°ãè¶
+ãã¦é£
+               ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 
+
+   (2)   è¨­å®å¯è½ãªæå¤§ IPv6 ã¢ãã¬ã¹æ°ãè¿ãé¢æ°
+         ãC è¨èª APIã
+               u_int num = in6_get_maxnum_ifaddr (void);
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               u_int          num       è¨­å®å¯è½ãªæå¤§IPv6ã¢ãã¬ã¹æ°
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ IPv6 ã¢ã
+               ã¬ã¹æ°ãè¿ãé¢æ°ã§ããã ãªãã ç¾å¨è¨­å®ããã¦ãã IPv6
+               ã¢ãã¬ã¹æ°ã¨ã¯ç°ãªãã
+
+   (3)   è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãè¿ãé¢æ°
+         ãC è¨èª APIã
+               const T_IN6_ADDR *p_addr = in6_get_ifaddr (int_t index);
+
+         ããã©ã¡ã¼ã¿ã
+               int_t     index     IPv6ã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹å¤
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               T_IN6_ADDR     addr      è¨­å®ããã¦ããIPv6ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ã
+               ã¬ã¹ãè¿ãé¢æ°ã§ããããã ãã æªå®ç¾©ã®å ´åã¯ NULL ãè¿
+               ãã index ã«ã¯ 0 ï½ ( è¨­å®å¯è½ãªæå¤§ IPv6 ã¢ãã¬ã¹æ°
+               -1) ãæå®ã§ããã
+
+   (4)   è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãæ´æ°ããé¢æ°
+         ãC è¨èª APIã
+               ER ercd = in6_upd_ifaddr (T_IN6_ADDR *p_addr,
+                                         uint_t prefixlen,
+                                         uint32_t vltime,
+                                         uint32_t pltime);
+
+         ããã©ã¡ã¼ã¿ã
+               T_IN6_ADDR          addr      æ´æ°ããIPv6ã¢ãã¬ã¹
+               int_t     prefixlen ãã¬ãã£ãã¯ã¹é·
+               int32_t   vltime    æå¹æéï¼åä½ã¯ç§ï¼
+               int32_t   pltime    æ¨å¥¨æå¹æéï¼åä½ã¯ç§ï¼
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               ER        ercd      ã¨ã©ã¼ã³ã¼ã
+
+         ãã¨ã©ã¼ã³ã¼ãã
+               E_OBJ               ç©ºãããªãã
+               E_PAR               ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼p_addrãNULLç­ï¼ã
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ã
+               ã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ãæå¹æéã æ¨å¥¨æå¹æéãæ´æ°ã
+               ãã ãã ããæªå®ç¾©ã®å ´åã¯è¿½å ããã
+
+   (5)   è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãåé¤ããé¢æ°
+         ãC è¨èª APIã
+               ER ercd = in6_del_ifaddr (T_IN6_ADDR *p_addr);
+
+         ããã©ã¡ã¼ã¿ã
+               T_IN6_ADDR          addr      åé¤ããIPv6ã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               ER        ercd      ã¨ã©ã¼ã³ã¼ã
+
+         ãã¨ã©ã¼ã³ã¼ãã
+               E_PAR               ãã©ã¡ã¼ã¿ã¨ã©ã¼ï¼æå®ãããã¢ãã¬ã¹ããªãç­ï¼ã
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ã
+               ã¬ã¹ãåé¤ããã
+
+   (6)   è¨­å®å¯è½ãªæå¤§ IPv4 ã¢ãã¬ã¹æ°ãè¿ãé¢æ°
+         ãC è¨èª APIã
+               uint_t num = in4_get_maxnum_ifaddr (void);
+
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               uint_t         num       è¨­å®å¯è½ãªæå¤§IPv4ã¢ãã¬ã¹æ°ãè¿ãé¢æ°
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ IPv4 ã¢ã
+               ã¬ã¹æ°ãè¿ãé¢æ°ã§ããããªããç¾å¨ã¯å¸¸ã« 1 ãè¿ãã 
+
+   (7)   ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨­å®ããé¢æ°
+         ãC è¨èª APIã
+               ER ercd = in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask);
+
+         ããã©ã¡ã¼ã¿ã
+               T_IN4_ADDR          addr      IPã¢ãã¬ã¹
+               T_IN4_ADDR          mask      ãµãããããã¹ã¯
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               ER        ercd      ã¨ã©ã¼ã³ã¼ãï¼ç¾å¨ã¯å¸¸ã«E_OKï¼
+
+         ãã¨ã©ã¼ã³ã¼ãã
+               E_OK                ç¾å¨ã¯å¸¸ã«E_OK
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+
+   (8)   IPv4 ç¨éççµè·¯è¡¨ã«çµè·¯æ
+å ±ãè¨­å®ããé¢æ°
+         ãC è¨èª APIã
+               ER ercd = in4_add_route (int index, T_IN4_ADDR target,
+                                                   T_IN4_ADDR mask,
+                                                   T_IN4_ADDR gateway);
+
+         ããã©ã¡ã¼ã¿ã
+               int       index     ã¨ã³ããªã®ã¤ã³ããã¯ã¹
+               T_IN4_ADDR          target    ç®æ¨ãããã¯ã¼ã¯ã®IPã¢ãã¬ã¹
+               T_IN4_ADDR          mask      ç®æ¨ãããã¯ã¼ã¯ã®ãµãããããã¹ã¯
+               T_IN4_ADDR          gateway   ã²ã¼ãã¦ã§ã¤ã®IPã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               ER        ercd      ã¨ã©ã¼ã³ã¼ã
+
+         ãã¨ã©ã¼ã³ã¼ãã
+               E_PAR               å¼æ°indexã®å¤ãè² ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+                                   ãã©ã¡ã¼ã¿NUM_ROUTE_ENTRYä»¥ä¸ã®ã¨ãE_PAR
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 IPv4 ç¨éççµè·¯è¡¨ã«çµè·¯æ
+å ±ãè¨­å®ããã
+
+   (9)   IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããé¢æ°
+         ãC è¨èª APIã
+               char *p_retbuf = ip2str (char *p_buf, const T_IN4_ADDR *p_ipaddr);
+
+         ããã©ã¡ã¼ã¿ã
+               char           buf       ãªãã©ã«è¡¨ç¾ã®IPv4ã¢ãã¬ã¹ãæ ¼ç´ãããããã¡
+               const T_IN4_ADDR         ipaddr    IPv4ã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               char           retbuf    ãªãã©ã«è¡¨ç¾ã® IPv4 ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããããã©
+               ã¡ã¼ã¿ buf ã«ã¯ãæä½ 16 ãã¤ãã®é åãå¿
+è¦ã§ãããã¾ãã
+               ãã©ã¡ã¼ã¿ buf ã«ã NULL ãæå®ããã¨ãTINET å
+é¨ã§ç¢ºä¿
+               ãã¦ãããããã¡ã« IPv4 ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æã
+               ã¦æ¸ãè¾¼ã¿ããã®ã¢ãã¬ã¹ãè¿ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥
+               ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPADDR_STR_BUFF ã«ãããããã¡
+               æ°ãæå®ãããã¨ãåºæ¥ãã ãã ãããããã¡æ°ãè¶
+ãã¦é£
+               ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 
+
+   (10)  ITRON TCP/IP API æ©è½ã³ã¼ããæå­è¡¨ç¾ã«å¤æããé¢æ°
+         ãC è¨èª APIã
+               const char *p_str = in_strtfn (FN fncd);
+
+         ããã©ã¡ã¼ã¿ã
+               FN        fncd      ITRON TCP/IP API æ©è½ã³ã¼ã
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               const char          str       ITRON TCP/IP API æ©è½ã³ã¼ãã®æå­è¡¨ç¾
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 ITRON TCP/IP API æ©è½ã³ã¼ããæå­è¡¨ç¾ã«å¤æããã
+
+   (11)  MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããé¢æ°
+         ãC è¨èª APIã
+               char *p_retbuf = mac2str (char *p_buf, uint8_t *p_macaddr);
+
+         ããã©ã¡ã¼ã¿ã
+               char      buf       ãªãã©ã«è¡¨ç¾ã®MACã¢ãã¬ã¹ãæ ¼ç´ãããããã¡
+               uint8_t   macaddr   MACã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               char      retbuf    ãªãã©ã«è¡¨ç¾ã® MAC ã¢ãã¬ã¹ãæ ¼ç´ããããããã¡
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <sil.h>   TOPPERS/ASP ã§ã¯å¿
+è¦
+               <net/net.h>
+
+         ãæ©è½ã
+                 MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ï¼æå­åï¼ã«å¤æããã ãã©
+               ã¡ã¼ã¿ buf ã«ã¯ãæä½ 18 ãã¤ãã®é åãå¿
+è¦ã§ãããã¾ãã
+               ãã©ã¡ã¼ã¿ buf ã«ãNULL ãæå®ããã¨ã TINET å
+é¨ã§ç¢ºä¿
+               ãã¦ãããããã¡ã« MAC ã¢ãã¬ã¹ããªãã©ã«è¡¨ç¾ã«å¤æãã¦
+               æ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ãè¿ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥
+               ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MACADDR_STR_BUFF ã«ãããããã¡
+               æ°ãæå®ãããã¨ãåºæ¥ãããã ãã ãããã¡æ°ãè¶
+ãã¦é£
+               ç¶çã«å¼åºãã¨ãããã¡ãä¸æ¸ãããã 
+
+   (12)  IPv4 ã¢ãã¬ã¹ã IPv6 ã® IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããé¢æ°
+         ãC è¨èª APIã
+               T_IN6_ADDR *p_dstaddr = in6_make_ipv4mapped (T_IN6_ADDR *dst,
+                                                            T_IN4_ADDR src);
+
+         ããã©ã¡ã¼ã¿ã
+               T_IN6_ADDR          *dst      æ ¼ç´å
+ã®IPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿
+               T_IN4_ADDR          src       å¤æããIPv4ã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               T_IN6_ADDR          *p_dstaddr                                        æ ¼ç´å
+ã®IPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 IPv4 ã¢ãã¬ã¹ã IPv6 ã® IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããã
+
+   (13)  æå®ãã IPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ããå¤å®ããé¢æ°
+         ãC è¨èª APIã
+               bool_t ret = in6_is_addr_ipv4mapped (const T_IN6_ADDR *addr);
+
+         ããã©ã¡ã¼ã¿ã
+               T_IN6_ADDR          *p_dstaddr                                        å¤å®ããIPv6ã¢ãã¬ã¹å¤æ°ã¸ã®ãã¤ã³ã¿
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               bool_t    ret       IPv6ã¢ãã¬ã¹ãIPv4å°å½±ã¢ãã¬ã¹ã§ããã°trueãè¿ãããã
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 æå®ãã IPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ããå¤å®ã
+               ããIPv6 ã¢ãã¬ã¹ã IPv4 å°å½±ã¢ãã¬ã¹ã§ããã° true ãè¿
+               ãããã
+
+   (14)  IPv6 ã®ç¹æ®ãªã¢ãã¬ã¹ã«å¯¾å¿ããå
+¨åå¤æ°
+         ãC è¨èª APIã
+               const T_IN6_ADDR in6_addr_unspecified;
+               const T_IN6_ADDR in6_addr_linklocal_allnodes;
+               const T_IN6_ADDR in6_addr_linklocal_allrouters;
+
+         ãæ©è½ã
+                 IPv6 ã§ã¯ãã¢ãã¬ã¹é·ã 128 ãããï¼16 ãã¤ãï¼ã§ãå¤
+               ããã¯ã­ã§å®ç¾©ãããã¨ãã§ããªãããã«ç¨æããå
+¨åå¤æ°
+               ã§ãããä»¥ä¸ã®ããã«ã ã¡ã¢ãªæä½é¢æ°ãå¼ã³åºãã¦ã³ãã¼ããã
+                  memcpy(&myaddr.ipaddr, &in6_addr_unspecified, sizeof(T_IN6_ADDR));
+
+   (15)  IPv6 ã® IPV6_ADDRANY ã«å¯¾å¿ããå
+¨åå¤æ°
+         ãC è¨èª APIã
+               const T_IN6_ADDR ipv6_addrany;
+
+         ãæ©è½ã
+                 T_IPV6EP ã® ipaddr ãã£ã¼ã«ãã«ãå¤ IPV4_ADDRANY ãä»£
+               å
+¥ããã¨ããIPv4 ã§ã¯ã
+                  myaddr.ipaddr = IPV4_ADDRANY;
+
+               ã¨æå®ã§ããããIPv6 ã§ã¯ãåæ§ã®æå®ãã§ããªãããã«ç¨
+               æããå
+¨åå¤æ°ã§ããã ä»¥ä¸ã®ããã«ãã¡ã¢ãªæä½é¢æ°ãå¼
+               ã³åºãã¦ã³ãã¼ããã
+                  memcpy(&myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+               ãªãããã®å
+¨åå¤æ°ã¯ãã¯ã­ã§å®ç¾©ãã¦ããã 
+
+   (16)  TINET ã®ãã¼ã¸ã§ã³æ
+å ±ãã¯ã­
+         ãC è¨èª APIã
+               TINET_PRVER
+
+         ããããé
+åã
+               ããã12ï½15        ã¡ã¸ã£ã¼ãªãªã¼ã¹ï¼ç¾å¨ã®å¤ã¯1ï¼
+               ããã4ï½11         ãã¤ãã¼ãªãªã¼ã¹ï¼ç¾å¨ã®å¤ã¯7ï¼
+               ããã3ï½0          ãããã¬ãã«ï¼ç¾å¨ã®å¤ã¯0ï¼
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <net/net.h>
+
+   (17)  8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãããã«ãããã¯ã­
+         ãC è¨èª APIã
+               T_IN4_ADDR addr = MAKE_IPV4_ADDR(uint8_t a, uint8_t b,
+                                                uint8_t c, uint8_t d);
+
+         ããã©ã¡ã¼ã¿ã
+               uint8_t   a         IPv4ã¢ãã¬ã¹ã®ããã24ï½31
+               uint8_t   b         IPv4ã¢ãã¬ã¹ã®ããã16ï½23
+               uint8_t   c         IPv4ã¢ãã¬ã¹ã®ããã8ï½15
+               uint8_t   d         IPv4ã¢ãã¬ã¹ã®ããã0ï½7
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               T_IN4_ADDR          addr      32ãããã®IPv4ã¢ãã¬ã¹
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/in.h>
+
+         ãæ©è½ã
+                 åãªã¯ãããã®å¤ãã IPv4 ã¢ãã¬ã¹ãçæããã
+
+   (18)  ä¸è¬å®æ°ãã¯ã­
+
+         TCP_REP_NONE        è©²å½ãã TCP åä»å£ãç¡ããå¤ã¯ï¼0ï¼ã
+         TCP_CEP_NONE        è©²å½ãã TCP éä¿¡ç«¯ç¹ãç¡ããå¤ã¯ï¼0ï¼ã
+         UDP_CEP_NONE        è©²å½ãã UDP éä¿¡ç«¯ç¹ãç¡ããå¤ã¯ï¼0ï¼ã
+
+7. 4  å¿ç¨ãã­ã°ã©ã ã³ã¼ã«ããã¯é¢æ°
+
+  TINET ããå¼åºãããå¿ç¨ãã­ã°ã©ã ã³ã¼ã«ããã¯é¢æ°ã§ãããå¿ç¨ãã­ã°
+ã©ã å´ã§ç¨æããå¿
+è¦ãããã
+
+   (1)   IPv4 ã¢ãã¬ã¹éè¤æ¤åºæã®ã³ã¼ã«ããã¯é¢æ°
+         ãC è¨èª APIã
+               boot_t reply = arp_callback_duplicated(uint8_t *shost);
+
+         ããã©ã¡ã¼ã¿ã
+               uint8_t   shost     éè¤ç¸æã®MACã¢ãã¬ã¹
+
+         ããªã¿ã¼ã³ãã©ã¡ã¼ã¿ã
+               bool_t    reply     éè¤ã®éç¥
+
+         ãã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã
+               <netinet/if_ether.h>
+
+         ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã
+               ARP_CFG_CALLBACK_DUPLICATED
+
+         ãæ©è½ã
+                 æ»ãå¤ã« TRUE ãæå®ããã¨ãTINET ã§éè¤ç¸æã® MAC ã¢
+               ãã¬ã¹ã syslog ã«åºåãã éè¤ç¸æã«ãéè¤ãããã¨ãä¼
+               ãããFALSE ãæå®ããã¨ä½ãããªãã
+
+8.  è¬è¾
+
+  æ¬ TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã¯ãæ¬¡ã®çµç¹ã®çæ§ã®å¾¡æ¯æ´ã«ããç ç©¶ã»é
+çºãè¡ãã¾ãããé¢ä¿åä½ã«æè¬ãããã¾ãã 
+
+   (1)   è²¡å£æ³äººéå¤®ç£æ¥­æè¡æ¯èæ©æ§æ§
+
+         [1]   äºæ¥­åï¼å®æ½å¹´åº¦ï¼
+               é«åº¦æè¡éçºå§è¨äºæ¥­ï¼å¹³æ 12 å¹´åº¦ï¼
+         [2]   ãã¼ãå
+               çµè¾¼ã¿åå¶å¾¡ã·ã¹ãã ç¨ TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã®éçº
+
+   (2)   æ ªå¼ä¼ç¤¾ NTT ãã³ã¢åæµ·éè«å°ç§æ¯åºæ§
+   (3)   çµæ¸ç£æ¥­çæ±åçµæ¸ç£æ¥­å±ï¼å§è¨å
+ç®¡çæ³äºº: è²¡å£æ³äººã¿ããç£æ¥­
+         æ¯èæ©æ§ï¼æ§
+
+         [1]   äºæ¥­åï¼å®æ½å¹´åº¦ï¼
+               å°åæ°çã³ã³ã½ã¼ã·ã¢ã ç ç©¶éçºäºæ¥­ï¼å¹³æ14å¹´åº¦ï½15å¹´åº¦ï¼
+         [2]   ãã¼ãå
+               çµè¾¼ã¿ã·ã¹ãã ã»ãªã¼ãã³ãã©ãããã¼ã ã®æ§ç¯ã¨ãã®å®ç¨åéçº
+
+   (4)   å®®åçç£æ¥­æè¡ç·åã»ã³ã¿ã¼æ§
+   (5)   TOPPERS ãã­ã¸ã§ã¯ãæ§
+   (6)   æ ªå¼ä¼ç¤¾ã´ã£ããæ§
+   (7)   è²¡å£æ³äººé»æ°ã»é»å­æ
+å ±å­¦è¡æ¯èè²¡å£æ§
+
+         [1]   ç¬¬ 6 å LSI IP ãã¶ã¤ã³ã»ã¢ã¯ã¼ã IP åè³
+              ï¼2004 å¹´ã å¹³æ 16 å¹´ 5 æ 20 æ¥ï¼
+               ãªã¼ãã³ã½ã¼ã¹ã®çµè¾¼ã¿ã·ã¹ãã ç¨ TCP/IP
+               ãã­ãã³ã«ã¹ã¿ãã¯ : TINET
+         [2]   ç¬¬ 7 å LSI IP ãã¶ã¤ã³ã»ã¢ã¯ã¼ã IP åè³
+              ï¼2005 å¹´ã å¹³æ 17 å¹´ 5 æ 19 æ¥ï¼
+               çµè¾¼ã¿ã·ã¹ãã ç¨ IP ãã¼ã¸ã§ã³ 6 å¯¾å¿ TCP/IP
+               ãã­ãã³ã«ã¹ã¿ãã¯ : TINET-1.2
+
+   (8)   æ ªå¼ä¼ç¤¾åæé»å­æ§
+   (9)   æéä¼ç¤¾åå·éä¿¡è¨è£
+ãµã¼ãã¹æ§
+   (10)  åæµ·éç«å·¥æ¥­è©¦é¨å ´æ§
+
+         [1]   äºæ¥­åï¼å®æ½å¹´åº¦ï¼
+               éç¹é åç¹å¥ç ç©¶ï¼å¹³æ 17 å¹´åº¦ï½ 18 å¹´åº¦ï¼
+         [2]   ãã¼ãå
+               çµè¾¼ã¿ã·ã¹ãã åããããã¯ã¼ã¯æ¥ç¶ã½ããã¦ã§ã¢ç¾¤ã®éçº
+
+   (11)  ç·åçåæµ·éç·åéä¿¡å±æ§
+
+         [1]   äºæ¥­åï¼å®æ½å¹´åº¦ï¼
+               æ¦ç¥çæ
+å ±éä¿¡ç ç©¶éçºæ¨é²å¶åº¦ãSCOPEããå°å ICT æ¯è
+               åç ç©¶éçºãï¼å¹³æ 22 å¹´åº¦ï½å¹³æ 23 å¹´åº¦ï¼
+         [2]   ãã¼ãå
+               ã¦ãã­ã¿ã¹ãµã¼ãã¹ãã©ãããã©ã¼ã ã«å¯¾å¿ããçµè¾¼ã¿ã·ã¹
+               ãã ç¨ TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã¨ãµãã¼ãã·ã¹ãã ã®ç ç©¶éçº
+
+   (12)  ã«ããµã¹ã¨ã¬ã¯ãã­ãã¯ã¹æ ªå¼ä¼ç¤¾æ§
+
+   (13)  çµæ¸ç£æ¥­çåæµ·éçµæ¸ç£æ¥­å±æ§
+
+         [1]   äºæ¥­åï¼å®æ½å¹´åº¦ï¼
+               ä¸­å°ä¼æ¥­çµå¶æ¯æ´ç­å¯¾ç­è²»è£å©éãæ¦ç¥çåºç¤æè¡é«åº¦åæ¯æ´äºæ¥­ã
+               ï¼å¹³æ 26 å¹´åº¦ï½å¹³æ 28 å¹´åº¦ï¼
+         [2]   ãã¼ãå
+               è¾²æ¥­æ©æ¢°ã®ãããªãé«åº¦åã¨æµ·å¤é²åºã«è³ãã
+               æ¬¡ä¸ä»£é»å­å¶å¾¡ã½ããã¦ã§ã¢åºç¤ã®éçº
+
+9.  ã©ã¤ã»ã³ã¹
+
+  TINET ã¯ FreeBSD ãå
+ã«éçºãè¡ã£ãããã TINET ãå«ãã½ããã¦ã§ã¢ãã
+ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åï¼TOPPERS ã©ã¤ã»ã³
+ã¹ (3) ã«è¦ç¨ããã¦ããå½¢æ
+ï¼ã¯ã TOPPERS ã©ã¤ã»ã³ã¹ (3) ã® (b) ã®å ±å
+ã ãã§ã¯ä¸ååã§ã(a) ã«ããæ¹æ³ãå¿
+è¦ã§ããã
+  ä»¥ä¸ã«ç¤ºã TOPPERSã FreeBSD ããã³ FreeBSD ã¸ã®ã½ããã¦ã§ã¢ã®å¯è´è
+
+ã®ã©ã¤ã»ã³ã¹è¦å®ã«å¾ã£ã¦ãåé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãª
+ã©ï¼ã«ãã©ã¤ã»ã³ã¹è¡¨ç¤ºãè¡ãã¨ã
+
+(1)FreeBSD
+
+   /*
+    * Copyright (c) 1980, 1986, 1993
+    *    The Regents of the University of California.  All rights reserved.
+    *
+    * Redistribution and use in source and binary forms, with or without
+    * modification, are permitted provided that the following conditions
+    * are met:
+    * 1. Redistributions of source code must retain the above copyright
+    *    notice, this list of conditions and the following disclaimer.
+    * 2. Redistributions in binary form must reproduce the above copyright
+    *    notice, this list of conditions and the following disclaimer in the
+    *    documentation and/or other materials provided with the distribution.
+    * 3. All advertising materials mentioning features or use of this software
+    *    must display the following acknowledgement:
+    *    This product includes software developed by the University of
+    *    California, Berkeley and its contributors.
+    * 4. Neither the name of the University nor the names of its contributors
+    *    may be used to endorse or promote products derived from this software
+    *    without specific prior written permission.
+    *
+    * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    * SUCH DAMAGE.
+    */
+
+(2)KAME
+
+   /*
+    * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+    * All rights reserved.
+    *
+    * Redistribution and use in source and binary forms, with or without
+    * modification, are permitted provided that the following conditions
+    * are met:
+    * 1. Redistributions of source code must retain the above copyright
+    *    notice, this list of conditions and the following disclaimer.
+    * 2. Redistributions in binary form must reproduce the above copyright
+    *    notice, this list of conditions and the following disclaimer in the
+    *    documentation and/or other materials provided with the distribution.
+    * 3. Neither the name of the project nor the names of its contributors
+    *    may be used to endorse or promote products derived from this software
+    *    without specific prior written permission.
+    *
+    * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    * SUCH DAMAGE.
+    */
+
+(3)ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã
+
+   /*
+    * Copyright (c) 1995, David Greenman
+    * All rights reserved.
+    *
+    * Redistribution and use in source and binary forms, with or without
+    * modification, are permitted provided that the following conditions
+    * are met:
+    * 1. Redistributions of source code must retain the above copyright
+    *    notice unmodified, this list of conditions, and the following
+    *    disclaimer.
+    * 2. Redistributions in binary form must reproduce the above copyright
+    *    notice, this list of conditions and the following disclaimer in the
+    *    documentation and/or other materials provided with the distribution.
+    *
+    * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+    * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+    * SUCH DAMAGE.
+    *
+    * $FreeBSD: src/sys/i386/isa/if_ed.c,v 1.148.2.4 1999/09/25 13:08:18 nyan Exp $
+    */
+   
+   /*
+    * Device driver for National Semiconductor DS8390/WD83C690 based ethernet
+    *   adapters. By David Greenman, 29-April-1993
+    *
+    * Currently supports the Western Digital/SMC 8003 and 8013 series,
+    *   the SMC Elite Ultra (8216), the 3Com 3c503, the NE1000 and NE2000,
+    *   and a variety of similar clones.
+    *
+    */
+
+(4)/usr/sbin/ppp
+
+   /*
+    *                      User Process PPP
+    *
+    *          Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+    *
+    *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+    *
+    * Redistribution and use in source and binary forms are permitted
+    * provided that the above copyright notice and this paragraph are
+    * duplicated in all such forms and that any documentation,
+    * advertising materials, and other materials related to such
+    * distribution and use acknowledge that the software was developed
+    * by the Internet Initiative Japan, Inc.  The name of the
+    * IIJ may not be used to endorse or promote products derived
+    * from this software without specific prior written permission.
+    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+    */
+
+(5)/usr/sbin/pppd
+
+   /*
+    * main.c - Point-to-Point Protocol main module
+    *
+    * Copyright (c) 1989 Carnegie Mellon University.
+    * All rights reserved.
+    *
+    * Redistribution and use in source and binary forms are permitted
+    * provided that the above copyright notice and this paragraph are
+    * duplicated in all such forms and that any documentation,
+    * advertising materials, and other materials related to such
+    * distribution and use acknowledge that the software was developed
+    * by Carnegie Mellon University.  The name of the
+    * University may not be used to endorse or promote products derived
+    * from this software without specific prior written permission.
+    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+    * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+    * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+    */
+
+(6)TOPPERS/ASP
+
+   /*
+    *  TOPPERS/ASP Kernel
+    *      Toyohashi Open Platform for Embedded Real-Time Systems/
+    *      Advanced Standard Profile Kernel
+    * 
+    *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+    *                              Toyohashi Univ. of Technology, JAPAN
+    *  Copyright (C) 2004-2013 by Embedded and Real-Time Systems Laboratory
+    *              Graduate School of Information Science, Nagoya Univ., JAPAN
+    * 
+    *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+    *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+    *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+    *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+    *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+    *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+    *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+    *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+    *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+    *      ã¨ï¼
+    *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+    *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+    *        å ±åãããã¨ï¼
+    *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+    *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+    *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+    *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+    *      å
+è²¬ãããã¨ï¼
+    * 
+    *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+    *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+    *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+    *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+    *  ã®è²¬ä»»ãè² ããªãï¼
+    * 
+    *  $Id$
+    */
+
+(7)TOPPERS/JSP
+
+   /*
+    *  TOPPERS/JSP Kernel
+    *      Toyohashi Open Platform for Embedded Real-Time Systems/
+    *      Just Standard Profile Kernel
+    * 
+    *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+    *                              Toyohashi Univ. of Technology, JAPAN
+    *  Copyright (C) 2004 by Embedded and Real-Time Systems Laboratory
+    *              Graduate School of Information Science, Nagoya Univ., JAPAN
+    * 
+    *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+    *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+    *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+    *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+    *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+    *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+    *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+    *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+    *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+    *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+    *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+    *      ã¨ï¼
+    *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+    *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+    *        å ±åãããã¨ï¼
+    *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+    *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+    * 
+    *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+    *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+    *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+    *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+    * 
+    *  @(#) $Id$
+    */
+
+(8)TOPPERS/ASP/CFG
+
+   /*
+    *  TOPPERS Software
+    *      Toyohashi Open Platform for Embedded Real-Time Systems
+    *
+    *  Copyright (C) 2007-2012 by TAKAGI Nobuhisa
+    * 
+    *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+    *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+    *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+    *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+    *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+    *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+    *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+    *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+    *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+    *      ã¨ï¼
+    *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+    *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+    *        å ±åãããã¨ï¼
+    *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+    *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+    *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+    *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+    *      å
+è²¬ãããã¨ï¼
+    * 
+    *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+    *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+    *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+    *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+    *  ã®è²¬ä»»ãè² ããªãï¼
+    * 
+    */
+
+(9)TINET
+
+   /*
+    *  TINET (TCP/IP Protocol Stack)
+    * 
+    *  Copyright (C) 2001-2016 by Dep. of Computer Science and Engineering
+    *                   Tomakomai National College of Technology, JAPAN
+    *
+    *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+    *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+    *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+    *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+    *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+    *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+    *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+    *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+    *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+    *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+    *      ã¨ï¼
+    *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+    *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+    *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+    *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+    *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+    *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+    *      å
+è²¬ãããã¨ï¼
+    * 
+    *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+    *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+    *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+    *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+    *  ã®è²¬ä»»ãè² ããªãï¼
+    * 
+    *  @(#) $Id$
+    */
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_chg.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_chg.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_chg.txt	(revision 313)
@@ -0,0 +1,1551 @@
+                      TINET å¤æ´ã¡ã¢  [2017/4/5]
+
+1.  ãªãªã¼ã¹ 1.5.x ãã 1.7 ã¾ã§ã®å¤æ´
+
+   (1)   IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åãè¡ã£ãããªãªã¼ã¹ 1.7 ä»¥åã§ã¯ã
+         Makefile ã§ã ãããã¯ã¼ã¯å±¤ã®é¸æã¯ SUPPORT_INET6 ã¨
+         SUPPORT_INET4 ã®æå®ã¯ä½ããä¸ã¤ã®ã¿é¸æã§ãããã ãªãªã¼ã¹
+         1.7 ããã¯ SUPPORT_INET6 ã¨ SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ã§ãã
+         ããã«ãªã£ãã
+
+   (2)   IPv6 ã«å¯¾å¿ããã¢ããªã±ã¼ã·ã§ã³ã§ IPv4 å°å½±ã¢ãã¬ã¹ãå©ç¨ãã¦ã
+         IPv4 ãã¼ã¿ã°ã©ã ãæ±ãå ´åã«æå®ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥
+         ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ API_CFG_IP4MAPPED_ADDR ãè¿½å ããã
+
+   (3)   IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã®ãããMakefile.tinet ã§ã¯ãIPv6
+         å°ç¨ã¢ã¸ã¥ã¼ã«ã¨ IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®åºå¥ãããã å
+¨ã¦ã³ã³ã
+         ã¤ã«ããããã«å¤æ´ããã
+
+   (4)   IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã®ããã IPv6 å°ç¨ã¢ã¸ã¥ã¼ã«ã¨
+         IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ã®æå¹ã»ç¡å¹ãã½ã¼ã¹ã³ã¼ãã§è¡
+         ãããã«å¤æ´ããã
+
+   (5)   IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã¨ IPv4 å°å½±ã¢ãã¬ã¹ã®å®è£
+ã®ããã
+         IPv6 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ãæå¹ã«ãããã¯ã­ _IP6_CFG ã¨ã
+         IPv4 å°ç¨ã¢ã¸ã¥ã¼ã«ã®ã³ã³ãã¤ã«ãæå¹ã«ãããã¯ã­ _IP4_CFG ã
+         è¿½å ãããä»¥ä¸ã«è¨­å®ããæ¡ä»¶ãç¤ºãã 
+
+         SUPPORT_INET6              .   .  ON  ON  ON  ON
+         SUPPORT_INET4             ON  ON   .   .  ON  ON
+         API_CFG_IP4MAPPED_ADDR     .  ON   .  ON   .  ON
+         ----------------------    ----------------------
+         _IP6_CFG                   .   .  ON  ON  ON  ON
+         _IP4_CFG                  ON  ON   .  ON  ON  ON
+
+   (6)   çµè·¯é¸æã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   route_cfg.c ã® IPv6 ç¨ã® routing_tbl ã routing6_tbl ã«
+               å¤æ´ããã
+         [2]   route_cfg.c ã® IPv4 ç¨ã® routing_tbl ã routing4_tbl ã«
+               å¤æ´ããã
+         [3]   NUM_STATIC_ROUTE_ENTRY ãã IPv6 ã§ã¯
+               NUM_IN6_STATIC_ROUTE_ENTRYã IPv4 ã§ã¯
+               NUM_IN4_STATIC_ROUTE_ENTRY ã¨åå¥ã«å®ç¾©ããããã«å¤æ´ããã
+         [4]   NUM_REDIRECT_ROUTE_ENTRY ãã IPv6 ã§ã¯
+               NUM_IN6_REDIRECT_ROUTE_ENTRYã IPv4 ã§ã¯
+               NUM_IN4_REDIRECT_ROUTE_ENTRY ã¨åå¥ã«å®ç¾©ããããã«å¤æ´ããã
+
+   (7)   if_ed.c ã§ãåä¿¡ãããã¬ã¼ã å½¢å¼ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   SUPPORT_INET6 ã¨ SUPPORT_INET4 ãæå®ããã¨ãã¯ãèªåã®
+               ä»ã«ã ãã­ã¼ãã­ã£ã¹ãã¨ãã«ãã­ã£ã¹ããåä¿¡ããããã«
+               è¨­å®ããã
+         [2]   SUPPORT_INET6 ã®ã¿æå®ããæã¯ãèªåã®ä»ã«ã ãã«ãã­ã£
+               ã¹ãã®ã¿åä¿¡ããããã«è¨­å®ããã
+         [3]   SUPPORT_INET4 ã®ã¿æå®ããæã¯ã èªåã®ä»ã«ããã­ã¼ãã­ã£
+               ã¹ãã®ã¿åä¿¡ããããã«è¨­å®ããã
+
+   (8)   TCP éä¿¡ç«¯ç¹ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   TCP éä¿¡ç«¯ç¹ã®å®ç¾©ã¯ãTINET å
+é¨ã®å®è£
+ä¸ã IPv6 ã¨ IPv4
+               ã§åºå¥ããªãããã«å¤æ´ããã
+         [2]   TCP éä¿¡ç«¯ç¹æ§é ä½ã®å¤§å
+ã®å®ç¾©ã¯ã t_tcp_cep ã¨
+               T_TCP_CEP ã§ããã
+         [3]   TCP éä¿¡ç«¯ç¹æ§é ä½ã®å®ç¾©ã§ãã IPv6 ç¨ã® T_TCP6_CEP ã¨
+               IPv4 ç¨ã® T_TCP4_CEP ã¯ããã¯ã­ã§å®ç¾©ãã¦ããã
+         [4]   éç API ã® CRE6_TCP_CEP ã¨ CRE_TCP_CEP ã«ãã£ã¦å®ç¾©ã
+               ã TCP éä¿¡ç«¯ç¹ã¯ãå®ç¾©ä¸å¥ã®ãªãã¸ã§ã¯ãã¨ãã¦è­å¥ãã
+               ããTCP éä¿¡ç«¯ç¹ ID ã®å¤ã¯é£ç¶ãã¦å²å½ã¦ãã TCP éä¿¡ç«¯
+               ç¹ ID ã®å¤ã®å²å½ã¦é çªãä»¥ä¸ã«ç¤ºãã
+
+               ã»IPv6 ç¨ã® TCP éä¿¡ç«¯ç¹ãå²å½ã¦ãéç API ã®
+                 TCP6_CRE_CEPã
+               ã»IPv6 ç¨ã® TCP éä¿¡ç«¯ç¹ã®äºç´ ID ãå²å½ã¦ãéç API ã®
+                 VRID_TCP6_CEPã
+               ã»IPv4 ç¨ã® TCP éä¿¡ç«¯ç¹ãå²å½ã¦ãéç API ã®
+                 TCP_CRE_CEPã
+               ã»IPv4 ç¨ã® TCP éä¿¡ç«¯ç¹ã®äºç´ ID ãå²å½ã¦ãéç API ã®
+                 VRID_TCP_CEPã
+
+         [5]   TCP éä¿¡ç«¯ç¹é
+å tcp_cep ã§ã¯ã IPv6 ç¨ã¨ IPv4 ç¨ãåºå¥
+               ããªãããªããIPv4 ç¨ã® T_TCP4_CEP ã«ãã£ã¦å®ç¾©ãã TCP
+               éä¿¡ç«¯ç¹ã®ã¨ã³ããªã®ã¡ã³ã flagsï¼éä¿¡ç«¯ç¹ãã©ã°ã
+               netinet/tcp_var.h åç
+§ï¼ã«ã¯ TCP_CEP_FLG_IPV4 ãä»å ããã
+         [6]   TCP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ãè¡¨ãå¤æ° tmax_tcp_cep ã¯ IPv6
+               ã¨ IPv4 ã®åè¨ï¼æ­£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç
+§ï¼ã§ã
+               ãã ã¾ãã IPv6 ç¨ã® tmax_tcp6_cep ã¨ IPv4 ç¨ã®
+               tmax_tcp4_cep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 ã¨
+               SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã
+         [7]   TCP éä¿¡ç«¯ç¹æ°ãè¡¨ããã¯ã­ TNUM_TCP_CEPID ã«é¢ãã¦ã
+               IPv6 ç¨ã® TNUM_TCP6_CEPID ã¨ IPv4 ç¨ã® TNUM_TCP4_CEPID
+               ã®å®ç¾©ãè¿½å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h
+               ï¼TOPPERS/JSPï¼ã«åºåããã
+         [8]   ä»¥ä¸ã® API ã§ã¯ãIPv6 ç¨ã® TCP éä¿¡ç«¯ç¹ ID ã¨ IPv4 ç¨ã®
+               TCP éä¿¡ç«¯ç¹ ID ãåºå¥ãã¦æå®ããªããã°ãªããªãã ç°ãª
+               ã TCP éä¿¡ç«¯ç¹ ID ãæå®ãããå ´åã¯ãã¨ã©ã¼ E_ID ãè¿ãã
+
+               ã»tcp_acp_cep
+               ã»tcp_con_cep
+               ã»tcp6_acp_cep
+               ã»tcp6_con_cep
+
+   (9)   TCP åä»å£ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   TCP åä»å£é
+å tcp_rep ã¯ã SUPPORT_INET6 ã¨
+               SUPPORT_INET4 ã®æå®ã«ããã ãã¯ã­ã§å®ç¾©ãã IPv6 ç¨ã®
+               tcp6_rep ã¨ IPv4 ç¨ã® tcp4_rep ãåå¥ã«å²å½ã¦ãã
+         [2]   TCP åä»å£ ID ã®æå¤§å¤ãè¡¨ãå¤æ° tmax_tcp_rep ã¯ IPv6
+               ã¨ IPv4 ã®åè¨ï¼æ­£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç
+§ï¼ã§ã
+               ãã ã¾ãã IPv6 ç¨ã® tmax_tcp6_rep ã¨ IPv4 ç¨ã®
+               tmax_tcp4_rep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 ã¨
+               SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã ãã¯ã­
+               ã§å®ç¾©ããã
+         [3]   TCP éä¿¡ç«¯ç¹æ°ãè¡¨ããã¯ã­ TNUM_TCP_REPID ã«é¢ãã¦ã
+               IPv6 ç¨ã® TNUM_TCP6_REPID ã¨ IPv4 ç¨ã® TNUM_TCP4_REPID
+               ã®å®ç¾©ãè¿½å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h
+               ï¼TOPPERS/JSPï¼ã«åºåããã ããã«ä¼´ãã
+               TCP_CFG_PASSIVE_OPEN ã®æå®ã¯ä¸è¦ã«ãªã£ãã
+
+   (10)  UDP éä¿¡ç«¯ç¹ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   UDP éä¿¡ç«¯ç¹é
+å udp_cep ã¯ã SUPPORT_INET6 ã¨
+               SUPPORT_INET4 ã®æå®ã«ããã ãã¯ã­ã§å®ç¾©ãã IPv6 ç¨ã®
+               udp6_cep ã¨ IPv4 ç¨ã® udp4_cep ãåå¥ã«å²å½ã¦ãã
+         [2]   UDP éä¿¡ç«¯ç¹ ID ã®æå¤§å¤ãè¡¨ãå¤æ° tmax_tcp_rep ã¯ IPv6
+               ã¨ IPv4 ã®åè¨ï¼æ­£ç¢ºã«ã¯ tinet_cfg.c ã®å®ç¾©ãåç
+§ï¼ã§ã
+               ãã ã¾ãã IPv6 ç¨ã® tmax_udp6_cep ã¨ IPv4 ç¨ã®
+               tmax_udp4_cep ã tinet_cfg.c ã«åºåããSUPPORT_INET6 ã¨
+               SUPPORT_INET4 ã®ä¸¡æ¹ãæå®ããå ´åã«æå¹ã«ãªãã ãã¯ã­
+               ã§å®ç¾©ããã
+         [3]   UDP éä¿¡ç«¯ç¹æ°ãè¡¨ããã¯ã­ TNUM_UDP_REPID ã«é¢ãã¦ã
+               IPv6 ç¨ã® TNUM_UDP6_REPID ã¨ IPv4 ç¨ã® TNUM_UDP4_REPID
+               ã®å®ç¾©ãè¿½å ãã tinet_cfg.hï¼TOPPERS/ASPï¼ãtinet_id.h
+               ï¼TOPPERS/JSPï¼ã«åºåããã
+         [4]   SEM_UDP_CEP_LOCK<n> ã«é¢ãã¦ã
+               IPv6 ç¨ã® SEM_UDP6_CEP_LOCK<n> ã¨ IPv4 ç¨ã®
+               SEM_UDP4_CEP_LOCK<n> ã«å¤æ´ããã
+         [5]   DTQ_UDP_RCVQ<n> ã«é¢ãã¦ã
+               IPv6 ç¨ã® DTQ_UDP6_RCVQ<n> ã¨ IPv4 ç¨ã®
+               DTQ_UDP4_RCVQ<n> ã«å¤æ´ããã
+         [6]   IPv6/IPv4 ãã¥ã¢ã«ã¹ã¿ãã¯åã«ä¼´ããIPv6 ã¨ IPv4 ã§å
+±é
+               ã«ä½¿ç¨ãããé¢æ°ç­ããã¯ã­ã®è¨­å®ã§åãæ¿ããã½ã¼ã¹ãã¡
+               ã¤ã«ãè¿½å ããã ä»¥ä¸ã«ã½ã¼ã¹ãã¡ã¤ã«ã®ä¸è¦§ãç¤ºãã 
+
+               netinet/tcpn_usrreq.c
+               netinet/udpn_input.c
+               netinet/udpn_output.c
+               netinet/udpn_subr.c
+               netinet/udpn_usrreq.c
+               netinet/udpn_usrreq_nblk.c
+
+   (11)  ãã°ãã£ãã¯ã¹ï¼toppers-users é¢ä¿ï¼
+
+         [1]   ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã§ãICMP ã¨ã©ã¼ã®å®å
+ã¢ã
+               ã¬ã¹ã®ãã¤ããªã¼ãã¼ãéã«ãªãåé¡ãä¿®æ­£ããã 
+         [2]   ICMP ã®ã¨ã³ã¼å¿ç­ã§ãéä¿¡å
+ã¢ãã¬ã¹ãåä¿¡ããã¡ãã»ã¼ã¸
+               ã®å®å
+ã¢ãã¬ã¹ã§ã¯ãªãã èª IPv4 ã¢ãã¬ã¹ãè¨­å®ãããã
+               ã«ä¿®æ­£ããï¼toppers-users 4113ï¼ã
+         [3]   tcp_rcv_dat() ããã­ãã­ã³ã°ãã¦å¼åºãã åä¿¡å¾
+ã¡ã®ç¶æ
+
+               ã§ãç¸æãã FIN ã»ã°ã¡ã³ããåä¿¡ãã¦ãå¾©å¸°ããªãäºãã
+               ãåé¡ãä¿®æ­£ããï¼toppers-users 4351ï¼ã
+         [4]   tcp_cls_cep() ããã­ãã­ã³ã°ãã¦å¼åºããåæ­ãã¦ãã ã³ã¼
+               ã«ããã¯ãããªãåé¡ãä¿®æ­£ããï¼toppers-users 4612ï¼ã
+
+   (12)  éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããæã TCP ã®åé
+         å¶å¾¡ãæ­£ããåä½ããªããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (13)  ãã¼ã¿ãªã³ã¯å±¤ã®ãã¬ã¼ã æç­é·ãå®ç¾©ãã IF_MIN_LEN ãè¿½å ããã
+
+   (14)  ã¤ã¼ãµãããã®ãã¬ã¼ã æç­é·ãå®ç¾©ãã ETHER_MIN_LEN ãè¿½å ããã
+
+   (15)  net/net.h ãããã¤ããªã¼ãã¼é¢ä¿ã®å®ç¾©ã net/net_endian.h ã«
+         åé¢ãããã
+
+   (16)  ååãªã¼ãã³ãã¦ããªããã¼ãã«æ¥ç¶è¦æ±ããã£ãå ´åã ç°å¢ã«ãã£
+         ã¦ã¯ä¾å¤ãçºçãããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (17)  ip_output.c ã§ãSUPPORT_IPSEC ã®æ¡ä»¶ if æã®è¡¨è¨ãä¿®æ­£ããã
+
+   (18)  TCP_CFG_RWBUF_CSAVE_MAX_QUEUES ãæ¢å®å¤ã§ã¯æªå®ç¾©ã«ããã
+
+   (19)  TCP ã®ã³ãã¯ã·ã§ã³ã®ç¢ºç«æã®ã¿ã¤ã ã¢ã¦ãã BSD ã¨åãç´ 75 ç§
+         ã«è¨­å®ããã
+
+   (20)  TCP ã®ã³ãã¯ã·ã§ã³ã®ç¢ºç«æã«ããã¦ãããã¯ã¼ã¯ãããã¡ã«ç©ºã
+         ããªãæã«ã åéãè¡ããªãåé¡ãä¿®æ­£ããã
+
+   (21)  TCP ã®å¦çãã­ã£ã³ã»ã«ããæã åä¿¡åæ§æã­ã¥ã¼ã¨ã¦ã£ã³ããã
+         ãã¡ã­ã¥ã¼ãæ­£ããè§£æ¾ãããªãåé¡ãä¿®æ­£ããã 
+
+   (22)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµããã¦ãåä¸ LAN å
+ã¸ã®ãã­ã¼ã
+         ã­ã£ã¹ãã¢ãã¬ã¹ã® UDP ã®åä¿¡ãã§ããªãåé¡ãä¿®æ­£ããã
+
+   (23)  DHCP_CFG ãæå®ããæã IPV4_ADDR_DEFAULT_GW ãæªå®ç¾©ãªãåé¡
+         ã«é¢ãã¦ã ãµã³ãã«ãã­ã°ã©ã ã® tinet_app_config.h ã«
+         IPV4_ADDR_DEFAULT_GW ã®å®ç¾©ãè¿½å ããã
+
+   (24)  UDP ã§ ICMP/ICMPv6 éç¥ã¡ãã»ã¼ã¸ãå¦çããããã«å¤æ´ãããã
+         ã ããéç¥ã¡ãã»ã¼ã¸ã¯ UDP ã§åä¿¡ãããããã®å¾ã®å¦çã¯æªå®ã§ããã
+
+   (25)  in_strtfn() ã§è¡¨ç¤ºããã TFN_TCP_CRE_REP ã TEV_TCP_RCV_OOB
+         ã«å¤æ´ããã
+
+   (26)  in_strtfn() ã§è¡¨ç¤ºããã TFN_UDP_CRE_CEP ã TEV_UDP_RCV_DAT
+         ã«å¤æ´ããã
+
+   (27)  tinet ã®ç¬èª API ã¨ãã¦ã IPv6 ã¢ãã¬ã¹ãæ´æ°ï¼ç»é²ããã¦ããª
+         ããã°è¿½å ï¼ããé¢æ° in6_upd_ifaddr ãè¿½å ããã
+
+   (28)  ä¹±æ°ã®æ´æ°ã«ä½¿ç¨ãããã ETHER_CFG_COLLECT_ADDR ãå®ç¾©ããã
+         æå®ããã¨ä¸å®å¨æï¼256 åã®ãã¬ã¼ã åä¿¡æ¯ï¼ã«éä¿¡å
+ã® MAC ã¢
+         ãã¬ã¹ã«ããä¹±æ°ãæ´æ°ããã
+
+   (29)  DHCP ãä½¿ç¨ããã¨ãã«å®ç¾©ãã DHCP_CFG ã DHCP4_CLI_CFG ã«å¤
+         æ´ããã ãªããDHCP_CFG ãæå®ããã¨ DHCP4_CLI_CFG ãå®ç¾©ãããã
+
+   (30)  DHCPv6 ãä½¿ç¨ããã¨ãã«å®ç¾©ãã DHCP6_CLI_CFG ãè¿½å ããã
+
+   (31)  ppp_ccp.c ãã #include <net/net_debug.h> ãåé¤ããã
+
+   (32)  TINET ãªãªã¼ã¹ 1.2 ã® tinet/doc/tinet-1.2.txtï¼ï¼ãªãªã¼ã¹
+         1.1.1 ãããªãªã¼ã¹ 1.2 ã¸ã®ç§»è¡ï¼»2004/7/27ï¼½ï¼ã®ãã3. å¤æ´æ¨
+         å¥¨é 
+ç®ãã(1) ãã (3) ã«è¿°ã¹ããã¦ããä»¥ä¸ã®ã³ã³ãã¤ã«æã³ã³
+         ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã¨æ§é ä½åã¯ãå¤æ´å¿
+é é 
+ç®ãã«ãªã£ãã
+
+         [1]   NUM_ROUTE_ENTRY
+               NUM_IN4_STATIC_ROUTE_ENTRY ã«å¤æ´ããã
+         [2]   NUM_IN4_REDIRECT_ROUTE_ENTRY
+               æ°ãã«å®ç¾©ããã
+         [3]   T_RT_ENTRY
+               T_IN4_RTENTRY ã«å¤æ´ããã
+
+   (33)  NUM_IN4_ROUTE_ENTRY ãå®ç¾©ãããã¡ã¤ã«ãã ä»¥ä¸ã®ããã«å¤æ´ããã
+         tinet/netinet/in4_var.h â tinet/tinet_config.h
+
+   (34)  NUM_IN6_ROUTE_ENTRY ãå®ç¾©ãããã¡ã¤ã«ãã ä»¥ä¸ã®ããã«å¤æ´ããã
+         tinet/netinet6/in6_var.h â tinet/tinet_config.h
+
+   (35)  ARP ã®éè¤æ¤åºã§ã èªåã¨ç¸æã®ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ä½ãããª
+         ãããã«å¤æ´ããã
+
+   (36)  in6.h ã«å®ç¾©ããã¦ãããã¤ããªã¼ãã¼ã«ä¾å­ãã ç¹å¥ãªã¢ãã¬ã¹
+         ã®ãã§ãã¯ãããã¯ã­ï¼IN6_IS_ADDR_V4COMPAT ç­ï¼ã in6_var.h
+         ã«ç§»ããã
+
+   (37)  IPv6 ã«ã¼ã¿éç¥ãåä¿¡ããæã®ã­ã°æ
+å ±ãåãã¦åä¿¡ããæã®ã¿è¡¨
+         ç¤ºããããã«ã«å¤æ´ããã
+
+   (38)  ICMPv6 ã§ãµãã¼ããã¦ããªãã¿ã¤ãã®ãã¼ã¿èµãåä¿¡ããæã®è¡¨ç¤º
+         ã®ã­ã°æ
+å ±ã®éè¦åº¦ã LOG_NOTICE ãã LOG_INFO ã«å¤æ´ããã
+
+   (39)  tinet.pdfã ã7.2 ãã¡ã¤ã«ã®ä½æã è¨­å®ãã§ã $(APP_DIR) ã
+         $(APPLDIR) ã«å¤æ´ããã
+
+   (40)  tinet.pdfã ã8.2 ãã¡ã¤ã«ã®ä½æãè¨­å®ãã§ã$(APP_DIR) ã®è¨è¿°
+         å
+å®¹ãå¤æ´ããã
+
+   (41)  tinet_sample.pdfãã3. TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãã
+         ã®ãªãã·ã§ã³ãã®è¨è¿°ãå
+¨é¢çã«è¦ç´ããã 
+
+   (42)  Makefile ã«
+         NO_USE_TINET_LIBRARY = true
+         ãæå®ãã¦ã TINET ã®ã©ã¤ãã©ãªãä½æããªãããã«ããå ´åããª
+         ã³ã¯ãã§ããªãåé¡ãä¿®æ­£ããã
+
+   (43)  NE2000 äºæ NIC(if_ed) ç¨ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ãã©ã¤ãã§ã
+         éä¿¡ãããã¬ã¼ã ã®ãã¼ã¿é¨ã®é·ãã 46 ãªã¯ãããæªæºã®å ´åã¯ã
+         ãã¼ã¿ã®çµããããã¬ã¼ã ã®çµããï¼CRC ãé¤ãï¼ã¾ã§ 0 ã§åãã
+         ããã«å¤æ´ããã
+
+   (44)  ASP ã¸ã®å¯¾å¿ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   ASP ç¨ TINET ã«ããã¦ TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ã§ã
+               TCP_CFG_TRACE ãæå®ããã¨ã³ã³ãã¤ã«ã§ããªãåé¡ãä¿®æ­£ããã
+         [2]   ã¿ã¼ã²ãã OS ã ASPããããã¯ã¼ã¯å±¤ã IPv4 ã§ã ãã¼ã¿
+               ã°ã©ã ã®åå²ã»åæ§æè¡ããã¨ãæå®ãã IP4_CFG_FRAGMENT
+               ãå®ç¾©ããæãSEM_IP4_FRAG_QUEUE ãæªå®ç¾©ã®ã¨ã©ã¼ã¨ãªã
+               åé¡ãä¿®æ­£ããã
+         [3]   if_loop.c ã ASP ã«å¯¾å¿ãããã
+         [4]   TINET ã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã ASP ã®ã
+               ã³ãã¬ã¼ããã£ã¬ã¯ããª sample ã® Makefile ããçæãã
+               ããã«å¤æ´ããã
+         [5]   ASP ãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ãããªãã·ã§ã³
+               -m <asptemplatedir> ã tinet_asp_configure ã«è¿½å ããã
+         [6]   ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ï¼cfgï¼ã®ãã¹åãæå®ãããªãã·ã§ã³
+               -g <cfg> ã tinet_asp_configure ã«è¿½å ããã
+         [7]   ASP-1.7 ä»¥éã® cfg1_out.c ã¸ã®å¯¾å¿ãè¡ã£ãã
+         [8]   ASP-1.8 ä»¥éã® Makefile ã¸ã®å¯¾å¿ãè¡ãããã ã
+               Makefile.tinet ã® ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡
+               ã¤ã«ã«é¢ä¿ããã«ã¼ã«ã»å¤æ°ç­ãå¤æ´ããã ASP-1.8 ãã
+               $(LDFLAGS) ã¨ $(CFG1_OUT_LDFLAGS) ã®å®ç¾©ãå¥ã«ãªã£ãã
+               $(CFG1_OUT_LDFLAGS) ãæªå®ç¾©ã§ããã°ã ASP-1.7 ä»¥åã®å¦
+               çãè¡ãããã«å¤æ´ããã
+         [9]   tinet/tinet_asp.cfg ã« #include "target_sil.h" ãè¿½å ããã
+         [10]  tinet/net/net.h ã®ãã¤ããªã¼ãã¼ã®å®ç¾©ã«é¢ãã¦ã ã¿ã¼ã²ã
+               ãã ASP ã®å ´åãSIL_ENDIAN_BIG ã¨ SIL_ENDIAN_LITTLE ã®
+               å®ç¾©ãå¤æ´ããªãããã«ä¿®æ­£ããã
+               ããã«å¯¾å¿ãã¦ã _NET_CFG_BYTE_ORDERã
+               _NET_CFG_LITTLE_ENDIANã
+               _NET_CFG_BIG_ENDIAN ãå®ç¾©ãã TINET ã®å
+é¨ã§ã
+               SIL_ENDIANã SIL_ENDIAN_BIGãSIL_ENDIAN_LITTLE ãåç
+§ã
+               ãªãããã«ä¿®æ­£ããã
+
+   (45)  JSP ã¸ã®å¯¾å¿ã«é¢ããå¤æ´ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   JSP ãªãªã¼ã¹ 1.4.4 ã§ã³ã³ãã¤ã«ã§ããªãåé¡ï¼Makefile
+               ã®ä¸æ´åï¼ãä¿®æ­£ããã
+         [2]   JSP ãã³ãã¬ã¼ããã£ã¬ã¯ããªãæå®ãããªãã·ã§ã³
+               -m <jsptemplatedir> ã tinet_jsp_configure ã«è¿½å ããã
+         [3]   tinet_sample.pdfãã2. ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ãã
+               ã(1) TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ãã
+               ã[2] TOPPERS/JSP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãª
+               ããã®å®è¡ãããããªãã·ã§ã³ -d ãåé¤ããã
+
+2.  ãªãªã¼ã¹ 1.4.x ãã 1.5 ã¾ã§ã®å¤æ´
+
+   (1)   ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®å®ç¾©ã«ã
+         IF_ETHER_NIC_NET_BUF_ALIGN ãä¸è¶³ãã¦ããåé¡ãä¿®æ­£ããã
+
+   (2)   TINET ãã­ãã³ã«ã¹ã¿ãã¯ã®è¨è¿°ãã TOPPERS/ASP ã«ã¼ãã«ã§è¦å®
+         ããã¦ãã TOPPERS å
+±éãã¼ã¿åã«å¤æ´ããã
+
+   (3)   UDP ã§ã ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµã¿è¾¼ã¾ããUDP éä¿¡ç«¯ç¹
+         ã« UDP_PORTANY ãæå®ããã¨ãããã¼ãçªå·ãèªåçã«å²ãå½ã¦ã
+         ããªãåé¡ãä¿®æ­£ããã
+
+   (4)   ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ SUPPORT_IPSEC ã
+         æ°è¨­ãããããã¯ãIPSEC ãå¦çããããã®æå®ã§ããã ãã ãã
+         TINET ã¯ã IPSEC ãå¦çããããã®ããã¯ã®ã¿ã ip_input.c ã¨
+         ip_output.c ç¨æãã¦ããããã§ã IPSEC èªä½ã¯å®è£
+ãã¦ããªãã®
+         ã§ãå¥ã«çµã¿è¾¼ãå¿
+è¦ãããã
+
+   (5)   TOPPERS/ASP ã«å¯¾å¿ããã
+
+   (6)   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã® PPP ã¨ã«ã¼ãããã¯ãåèå®è£
+ã¨ããã
+
+   (7)   IPv4/IPv4 ãã¼ã¿ã°ã©ã ã®è¨­å®ã®ã 4 ãªã¯ãããå¢çã¾ã§ããã£ã³
+         ã°ã§åããå¦çã§ã ãããã¯ã¼ã¯ãããã¡ã®é åå¤ã«ããã£ã³ã°ã
+         æ¸ãè¾¼ããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (8)   PPP ã§ã ãµã¼ãããã® IP ã¢ãã¬ã¹èªååå¾ãã§ããªãåé¡ãä¿®æ­£ããã
+
+   (9)   IPv4 ã®å
+¥åå¦çã§ãä¸ä½å±¤ã ICMP ä»¥å¤ã®å ´åã«è¡ããªãã·ã§ã³ã®
+         æ¶å»ãããããã§ãã¯ãµã ã®æ¤æ»ã®å¾ã«å¤æ´ããã 
+
+   (10)  IPv4 ã®å
+¥åå¦çã§ãåå²ã®ãã§ãã¯ãã RF ããããå¤ããã
+
+   (11)  IPv6 ã§ãéä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã ã¿ã¤ã 0 çµ
+         è·¯å¶å¾¡ãããã®å¦çãè¡ããªãããã«å¤æ´ããã 
+
+   (12)  TCP ã®åºåã§ã éä¿¡ãµã¤ãºãéä¿¡ç¸æã®æå¤§ã»ã°ã¡ã³ããµã¤ãºã«èª¿
+         æ´ããå ´åã èª¤ã£ããµã¤ãºã«èª¿æ´ãããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (13)  éä¿¡ç¸æã® TCP ã® MSS ãªãã·ã§ã³ã®å¦çã§ã è¨é²ããå¤ãã
+         TCP_MINMSSï¼216ï¼ãã MAX_TCP_SND_SEGï¼æ¨æºã¯ã IPv4 ã 512ã
+         IPv6 ã 1024ï¼ã«å¶éããããã«å¤æ´ããã
+
+   (14)  IPv6 ã§ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤ãæ¤åºããå ´åãããä»¥é
+         ã®è¿é£æ¢ç´¢ãã±ãããåºåããªããã«å¤æ´ããã 
+
+   (15)  IPv6 ã§ãã«ã¼ã¿éç¥ã®ãã¬ãã£ãã¯ã¹é·ãä¸æ­£ã§ãå¦çãç¶ç¶ãã
+         ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç»é²ããã ã¾ãããªã³ãªã³ã¯ã»ãã©ã°ãæ
+         å¹ã§ããã°ãåä¸ LAN å
+ã®ã¢ãã¬ã¹ã¨ãã¦æå¹ã¨ãªãããã«å¤æ´ããã
+
+   (16)  ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ°
+         p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ­£ããããå¤æ¸¡ãã¨ãã¦ããå®
+         è£
+ä¸ã®èª¤ããä¿®æ­£ãããã¾ããTINET ãªãªã¼ã¹ 1.4 ä»¥åã¨äºææ§ã
+         ç¶­æããããã«å¤æ¸¡ãã«ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+         ãã©ã¡ã¼ã¿ TCP_CFG_NON_BLOCKING_COMPAT14 ã¨
+         UDP_CFG_NON_BLOCKING_COMPAT14 ãæ°è¨­ããã
+
+   (17)  è½åãªã¼ãã³ï¼TCP_CON_CEP å¼åºãï¼ã§ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã
+         è¡ã£ãæã«ãåæãªã¼ãã³ï¼TCP ã®ç¶æ
+é·ç§»ããSYN éä¿¡ãâãSYN
+         åä¿¡ãâãã³ãã¯ã·ã§ã³ç¢ºç«ãï¼ãçºçããå ´åã ã³ã¼ã«ããã¯é¢
+         æ°ãå¼åºãããªãåé¡ãä¿®æ­£ããã
+
+   (18)  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡åç¹åé¢æ©è½ãçµè¾¼ãã 
+         å ´åã«ã ACK ã»ã°ã¡ã³ããåéããæããã¼ãçªå·ã®ãã¤ããªã¼ãã¼
+         ã®å¤æãèª¤ã£ã¦ããåé¡ãä¿®æ­£ããã 
+
+   (19)  TCP ã§ Keep Alive ãæå¹ã«ããæãã¦ã£ã³ããµã¤ãºã 0 ã®ã»ã°ã¡
+         ã³ããéä¿¡ãããåé¡ãä¿®æ­£ããã
+
+   (20)  Makefile ã« NO_USE_TINET_LIBRARY = true ãæå®ãã¦ã ã©ã¤ãã©
+         ãªåãããªãæ¹æ³ã«ãããåé¡ãä¿®æ­£ããã 
+
+   (21)  TOPPERS/ASP ã®å®è¡ç°å¢ã GCC 3.x ç³»ã®éçºç°å¢ã§ã¢ããªã±ã¼ã·ã§
+         ã³ãã­ã°ã©ã ãæ§ç¯ããæãethernet ãããæ§é ä½ã®ãµã¤ãºãä¸ä¸
+         è´ã«ãªãã åä½ãä¸å®å®ã«ãªããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (22)  H8 ä¾å­é¨ã§ã tinet_sys_config.h ã«æå®ããã¦ãã ED_IPM ã®è¨­
+         å®ããIPM_LEVEL1 ãã IPM_LEVEL0 ã«å¤æ´ããã
+
+3.  ãªãªã¼ã¹ 1.3.x ãã 1.4 ã¾ã§ã®å¤æ´
+
+   (1)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv4 åä»å£ã®äºç´ ID ãå®
+         ç¾©ãã VRID_TCP_REP ãè¿½å ããã
+
+   (2)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv4 éä¿¡ç«¯ç¹ã®äºç´ ID ã
+         å®ç¾©ãã VRID_TCP_CEP ãè¿½å ããã
+
+   (3)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« UDP/IPv4 éä¿¡ç«¯ç¹ã®äºç´ ID ã
+         å®ç¾©ãã VRID_UDP_CEP ãè¿½å ããã
+
+   (4)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv6 åä»å£ã®äºç´ ID ãå®
+         ç¾©ãã VRID_TCP6_REP ãè¿½å ããã
+
+   (5)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« TCP/IPv6 éä¿¡ç«¯ç¹ã®äºç´ ID ã
+         å®ç¾©ãã VRID_TCP6_CEP ãè¿½å ããã
+
+   (6)   tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã« UDP/IPv6 éä¿¡ç«¯ç¹ã®äºç´ ID ã
+         å®ç¾©ãã VRID_UDP6_CEP ãè¿½å ããã
+
+   (7)   ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³
+         ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ TCP_CFG_EXTENTIONS ãè¿½å ããã
+
+   (8)   ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã³ã³ãã¤ã«æã³
+         ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ UDP_CFG_EXTENTIONS ãè¿½å ããã
+
+   (9)   ä¸è¬å®æ°ãã¯ã­ TCP_REP_NONE ãè¿½å ãããå¤ã¯ï¼0ï¼ã
+
+   (10)  ä¸è¬å®æ°ãã¯ã­ TCP_CEP_NONE ãè¿½å ãããå¤ã¯ï¼0ï¼ã
+
+   (11)  ä¸è¬å®æ°ãã¯ã­ UDP_CEP_NONE ãè¿½å ãããå¤ã¯ï¼0ï¼ã
+
+   (12)  å
+¨åå¤æ°ã¨ãã¦ã ipv6_addrany ããã¯ã­ã§å®ç¾©ããã å®ä½ã¯ã
+         in6_addr_unspecified ã§ãããããã«ä¼´ã£ã¦ããã­ãã³ã«ã¹ã¿ãã¯
+         å
+é¨åã®ãªãã¼ã ãããin6_addr_unspecified ãå¤ããã
+
+   (13)  UDP ã®éä¿¡ç«¯ç¹ã® myportno ã« UDP_PORTANY ãæå®ã§ããªãåé¡ã
+         ä¿®æ­£ããã
+
+   (14)  ITRON TCP/IP API ã® TCP/IPv4 åä»å£ãåçã«çæãã API ã®
+         cre_tcp_rep ãè¿½å ããã
+
+   (15)  ITRON TCP/IP API ã® TCP éä¿¡ç«¯ç¹ãåçã«çæãã API ã®
+         cre_tcp_cep ãè¿½å ããã
+
+   (16)  ITRON TCP/IP API ã® UDP/IPv4 éä¿¡ç«¯ç¹ãåçã«çæãã API ã®
+         cre_udp_cep ãè¿½å ããã
+
+   (17)  ITRON TCP/IP API ã® TCP åä»å£ãåçã«åé¤ãã API ã®
+         del_tcp_rep ãè¿½å ããã
+
+   (18)  ITRON TCP/IP API ã® TCP éä¿¡ç«¯ç¹ãåçã«åé¤ãã API ã®
+         del_tcp_cep ãè¿½å ããã
+
+   (19)  ITRON TCP/IP API ã® UDP éä¿¡ç«¯ç¹ãåçã«åé¤ãã API ã®
+         del_udp_cep ãè¿½å ããã
+
+   (20)  ITRON TCP/IP API ã® TCP/IPv6 åä»å£ãåçã«çæãã API ã®
+         cre_tcp6_rep ãè¿½å ããã
+
+   (21)  ITRON TCP/IP API ã® UDP/IPv6 éä¿¡ç«¯ç¹ãåçã«çæãã API ã®
+         cre_udp6_cep ãè¿½å ããã
+
+   (22)  ITRON TCP/IP API ã® TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãè¨­å®ãã API ã®
+         tcp_set_opt ãè¿½å ããã
+
+   (23)  ITRON TCP/IP API ã® TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãèª­åºã API ã®
+         tcp_get_opt ãè¿½å ããã
+
+   (24)  ITRON TCP/IP API ã® UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãè¨­å®ãã API ã®
+         udp_set_opt ãè¿½å ããã
+
+   (25)  ITRON TCP/IP API ã® UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãèª­åºã API ã®
+         udp_get_opt ãè¿½å ããã
+
+   (26)  å
+é¨çã«ä½¿ç¨ãã¦ããæ§é ä½åãå¤æ´ããã
+
+         [1]   struct t_tcp4_ccep â struct t_tcp4_cep
+         [2]   struct t_tcp6_ccep â struct t_tcp6_cep
+         [3]   T_TCP_CCEP â T_TCP_IN_CCEP â T_TCP_CEP
+         [4]   T_TCP_TW_CCEP â T_TCP_TWCEP
+         [5]   T_TCP4_CCEP â T_TCP4_CEP
+         [6]   T_TCP4_TW_CCEP â T_TCP4_TWCEP
+         [7]   T_TCP6_CCEP â T_TCP6_CEP
+         [8]   T_TCP4_TW_CCEP â T_TCP4_TWCEP
+         [9]   T_TCP_CREP â T_TCP_IN_CREP â T_TCP_REP
+         [10]  T_TCP4_CREP â T_TCP4_REP
+         [11]  T_TCP6_CREP â T_TCP6_REP
+         [12]  T_UDP_CCEP â T_UDP_IN_CCEP â T_UDP_CEP
+         [13]  T_UDP4_CCEP â T_UDP4_CEP
+         [14]  T_UDP6_CCEP â T_UDP6_CEP
+
+   (27)  å
+é¨çã«ä½¿ç¨ãã¦ããå¤æ°ã»é
+ååãå¤æ´ããã
+
+         [1]   tcp_crep â tcp_rep
+         [2]   tcp_ccep â tcp_cep
+         [3]   tcp_tw_ccep â tcp_twcep
+         [4]   udp_ccep â udp_cep
+         [5]   tmax_tcp_crepid â tmax_tcp_repid
+         [6]   tmax_tcp_ccepid â tmax_tcp_cepid
+         [7]   tmax_udp_ccepid â tmax_udp_cepid
+
+   (28)  å
+é¨çã«ä½¿ç¨ãã¦ãããã¯ã­åãå¤æ´ããã
+
+         [1]   VAID_TCP_CREPID â VAID_TCP_REPID
+         [2]   VAID_TCP_CCEPID â VAID_TCP_CEPID
+         [3]   VAID_UDP_CCEPID â VAID_UDP_CEPID
+         [4]   INDEX_TCP_CREP â INDEX_TCP_REP
+         [5]   INDEX_TCP_CCEP â INDEX_TCP_CEP
+         [6]   INDEX_UDP_CCEP â INDEX_UDP_CEP
+         [7]   GET_TCP_CREP â GET_TCP_REP
+         [8]   GET_TCP_CCEP â GET_TCP_CEP
+         [9]   GET_UDP_CCEP â GET_UDP_CEP
+         [10]  GET_TCP_CREPID â GET_TCP_REPID
+         [11]  GET_TCP_CCEPID â GET_TCP_CEPID
+         [12]  GET_UDP_CCEPID â GET_UDP_CEPID
+         [13]  GET_TCP_TW_CCEPID â GET_TCP_TWCEPID
+         [14]  TMIN_TCP_RCEPID â TMIN_TCP_REPID
+         [15]  TMIN_TCP_CCEPID â TMIN_TCP_CEPID
+         [16]  TMIN_UDP_CCEPID â TMIN_UDP_CEPID
+         [17]  TMIN_TCP_TW_CCEPID â TMIN_TCP_TWCEPID
+         [18]  TNUM_TCP_RCEPID â TNUM_TCP_REPID
+         [19]  TNUM_TCP_CCEPID â TNUM_TCP_CEPID
+         [20]  TNUM_UDP_CCEPID â TNUM_UDP_CEPID
+
+   (29)  å
+é¨çã«ä½¿ç¨ãã¦ããã«ã¼ãã«ãªãã¸ã§ã¯ãåãå¤æ´ããã
+
+         [1]   SEM_TCP_CCEP â SEM_TCP_CEP
+         [2]   SEM_UDP_CCEP â SEM_UDP_CEP
+
+   (30)  TW ç¨ TCP éä¿¡ç«¯ç¹ã§ãä¸è¦ãªã¡ã³ããåé¤ããã
+
+   (31)  ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãããè¦å®ããã³ã³ãã¤ã«æã³
+         ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ TCP_CFG_URG_OFFSET ãè¿½å ããã
+
+   (32)  ITRON TCP/IP API ã®ç·æ¥ãã¼ã¿åä¿¡ API ã® tcp_rcv_oob ãè¿½å ããã
+
+   (33)  ITRON TCP/IP API ã®ç·æ¥ãã¼ã¿éä¿¡ API ã® tcp_snd_oob ãè¿½å ããã
+
+   (34)  UDP ã®ã³ã¼ã«ããã¯ç¨åä¿¡ãã¼ã¿ã­ã¥ã¼ãä½¿ç¨ããªãããã«ããã
+
+   (35)  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©ãã
+         udp_usrreq.c ããåé¢ãã udp_usrreq_nblk.c ã«ç§»åããã
+         udp_usrreq_nblk.c ã¯ãudp_usrreq.c ã«ã¤ã³ã¯ã«ã¼ãããã
+
+   (36)  TCP ã§ãåéã 12 åè¡ãªã£ã¦ããéä¿¡ãåå¾©ããªãã¨ãã ã³ãã¯
+         ã·ã§ã³ãç ´æ£ãããªã»ããã»ã°ã¡ã³ããéä¿¡ãããªãåé¡ãä¿®æ­£ããã
+
+   (37)  TCP ã§ãACK ãæ­£å¸¸ã«éä¿¡ããªããã¨ãããåé¡ãä¿®æ­£ããã
+
+   (38)  TCP ã§ã é«éåè»¢éã¨é«éãªã«ããªãæ­£å¸¸ã«è¡ãªãããªããã¨ãã
+         ãåé¡ãä¿®æ­£ããã
+
+   (39)  åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ããã¨ãã TCP ã®ãã¼
+         ãã¯ã­ã¼ãºç¶æ
+ã§ã ãã¼ã¿ãå
+¨ã¦åä¿¡ã§ããªããã¨ãããåé¡ãä¿®
+         æ­£ããã
+
+   (40)  ããã°ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã«ããã¦ã TCP ãããã®ãã¬ã¼ã¹
+         åºåã§ã æ­£ããå¤ãè¡¨ç¤ºããªãåé¡ãä¿®æ­£ããã
+
+   (41)  TCP ãããã®ãã¬ã¼ã¹åºåã§ã éåä¿¡ãæ··ããå ´åãããåé¡ãä¿®
+         æ­£ããã
+
+   (42)  ã³ã¼ã«ããã¯ç¨ UDP åä¿¡ã­ã¥ã¼ãµã¤ãºãæå®ãã
+         NUM_DTQ_UDP_CB_RCVQ ã¯ãã¢ã«ã´ãªãºã ã®å¤æ´ã«ããä¸è¦ã«ãªã£ãã
+
+   (43)  TCP åä»å£ã tinet_$(UNAME).cfg ã«æå®ããã¦ããªãå ´åã
+         TCP_CFG_PASSIVE_OPEN ãæªå®ç¾©ã«ããªããã°ããªã³ã¯æã«æªå®ç¾©ã¨
+         ã©ã¼ã«ãªãåé¡ãä¿®æ­£ããã
+
+   (44)  T_NET_BUF_IF_PDU ã§ããã¬ã¼ã ã®çµããã®å¢çã®èª¿æ´éãæå®ãã
+         ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ä¾å­ãã©ã¡ã¼ã¿å®ç¾©
+         IF_PDU_HDR_PADDING ãè¿½å ããã
+
+   (45)  å
+é¨çã«ä½¿ç¨ãã¦ããæ§é ä½åãå¤æ´ããã
+
+         [1]   t_net_buf_reassm â t_net_buf4_reassm
+         [2]   T_NET_BUF_REASSM â T_NET_BUF4_REASSM
+
+   (46)  åæ§æãããã¡ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã³ã³ã
+         ã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MPF_NET_BUF_REASSM
+         ã NUM_MPF_NET_BUF4_REASSM ã«å¤æ´ãã IPv4 ç¨ã®åæ§æãããã¡
+         ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ãããã©ã¡ã¼ã¿ã¨ããã 
+
+   (47)  ICMP6 ã¨ã©ã¼ã®åºåæã«ãIPv6 MMTUï¼1,280 ãªã¯ãããï¼ãè¶
+ãã
+         ãã¼ã¿ã°ã©ã ãåºåããåé¡ãä¿®æ­£ããã 
+
+   (48)  IPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã
+         ãæå®ããã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         TMO_IP6_FRAG_GET_NET_BUF ãè¿½å ããã
+
+   (49)  IPv6 ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã³ã³ãã¤ã«æ
+         ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ IP6_CFG_FRAGMENT ãè¿½å ããã
+
+   (50)  IPv6 ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãºãæå®ããã³ã³ãã¤ã«æã³ã³
+         ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IP6_FRAG_QUEUE ãè¿½å ããã
+         æ¨æºå¤ã¯ 2 ã§ããã
+
+   (51)  IPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ã
+         ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         IP6_CFG_FRAG_REASSM_SIZE ãè¿½å ãããæ¨æºå¤ã¯ 4096 ã§ããã
+
+   (52)  ICMPv6 ã§ãåä¿¡ãããã§ãã¯ãµã ã®è¨ç®ãèª¤ããã¨ãããåé¡ãä¿®
+         æ­£ããã
+
+   (53)  IPv6 ã§ã èªè­ã§ããªãæ¬¡ãããã³ã¼ããå
+¥åããã¨ãã éä¿¡ãã
+         ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡ãä¿®æ­£ããã
+
+   (54)  IPv6 ã® Traffic Class ã¨ Flow Label ããµãã¼ãããªããã ãã
+         ãã« 0 ä»¥å¤ã®å¤ãè¨­å®ãã¦éä¿¡ãããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (55)  IPv6 ã§ã ããããªãããã 0 ã® ICMPv6 ã¨ã³ã¼è¦æ±ãã±ãããå
+         ä¿¡ããã¨ãã éä¿¡ãã ICMPv6 ã¨ã³ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡
+         ãä¿®æ­£ããã
+
+   (56)  IPv6 ã§ãéè¤ã¢ãã¬ã¹æ¤åºæã«ãèª¤ã£ããã¦å
+ã¢ãã¬ã¹ã®ãã¼ã¿ã°
+         ã©ã ãåä¿¡ããã¨ãã èª¤ã£ã¦èªã¢ãã¬ã¹ãéè¤ãã¦ããã¨èªè­ãã¦
+         ãã¾ããã¨ãããåé¡ãä¿®æ­£ããã
+
+   (57)  IPv6 ã§ãçå­æéãåãããã¬ãã£ãã¯ã¹ã®ã¢ãã¬ã¹ãæå¹ã«ãªã
+         äºãããåé¡ãä¿®æ­£ããã
+
+   (58)  IPv6 ã§ãè¿é£æ¢ç´¢ã­ã£ãã·ã¥ã®ç¶æ
+é·ç§»ã«ä¸é¨èª¤ãããã£ãåé¡ã
+         ä¿®æ­£ããã
+
+   (59)  IPv6 ã§ãè¿é£æ¢ç´¢è¦è«ãã«ãã­ã£ã¹ããã¼ã¿ã°ã©ã ã®éä¿¡å
+ã¢ãã¬
+         ã¹ã¨ãã¦èª¤ã£ãã¢ãã¬ã¹ãè¨­å®ããäºãããåé¡ãä¿®æ­£ããã 
+
+   (60)  IPv6 ã§ãã«ã¼ã¿è¦è«ã®åéæéééããèª¤ã£ã¦ããåé¡ï¼3 ç§â 4
+         ç§ï¼ãä¿®æ­£ããã
+
+   (61)  ã»ã°ã¡ã³ãã®ç°ãªããã¹ãã«éä¿¡ããã¨ãã ãã£ãã©ã«ãã«ã¼ã¿ã®
+         æ¤ç´¢ã«å¤±æãããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (62)  èªè­ã§ããªãè¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦çã«é¢ããåé¡ãä¿®æ­£ããã
+
+   (63)  IPv6 ã§ãã«ã¼ã¿ããéç¥ãããããããªããããæ­£ããå¦çãã¦ã
+         ãªãåé¡ãä¿®æ­£ããã
+
+   (64)  IPv6 ã§ãéè¤ã¢ãã¬ã¹æ¤åºä¸­ã« E_QOVR ã¨ã©ã¼ãçºçãããã¨ãã
+         ãåé¡ãä¿®æ­£ããã
+
+   (65)  IPv6 ã®è¿é£éç¥ã§ãèª¤ã£ããã©ã°ãè¨­å®ãã¦ããåé¡ãä¿®æ­£ããã
+
+   (66)  IPv6 ã§ã æ¬¡ãããã 0 ã® IPv6 ãã¼ã¿ã°ã©ã ãåä¿¡ããã¨ããé
+         ä¿¡ãã ICMPv6 ã¨ã³ã¼ã¡ãã»ã¼ã¸ã«èª¤ããããåé¡ãä¿®æ­£ããã
+
+   (67)  IPv6 ã§ãè¿é£éç¥ã®ã«ã¼ã¿ãã©ã°ãæ­£ããå¦çããªãåé¡ãä¿®æ­£ããã
+
+   (68)  IPv6 ã§ãè¿é£è¦è«ã®åéæéééããæ¨æºããé·ããªããã¨ããã
+         åé¡ãä¿®æ­£ããã
+
+   (69)  ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ãæå®ããã³ã³ãã¤ã«æã³ã³ãã£
+         ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_ND6_PREFIX_ENTRY ãè¿½å ããã
+
+   (70)  ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ãæå®ãã
+         ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         NUM_IN6_IFADDR_ENTRY ãè¿½å ããã
+
+   (71)  æ¬¡ãããç¡ãã® IP ãã¼ã¿ã°ã©ã ãåä¿¡ããã¨ããèª¤ã£ã ICMP6 ã¨
+         ã©ã¼ã¡ãã»ã¼ã¸ãåºåãã¦ããåé¡ãä¿®æ­£ããã 
+
+   (72)  ãã£ãã©ã«ãã«ã¼ã¿ã®æå¹æéãåããæã«ã å¥ã®ãã£ãã©ã«ãã«ã¼
+         ã¿ã«æ¥ç¶ã§ããªãåé¡ãä¿®æ­£ããã
+
+   (73)  IPv6 ã§ãã«ã¼ã¿ããéç¥ãããå°éå¯è½ç¶æ
+ã®æå¹æéãæ­£ããå¦
+         çãã¦ããªãåé¡ãä¿®æ­£ããã
+
+   (74)  IPv6 ã§ãã«ã¼ã¿ããéç¥ãããã«ã¼ã¿æå¹æéãæ­£ããå¦çãã¦ã
+         ãªãåé¡ãä¿®æ­£ããã
+
+   (75)  ãã«ãã­ã£ã¹ãå®ã® ICMPv6 ã¨ã³ã¼ãªã¯ã¨ã¹ãã¸ã®å¿ç­ã§ã éä¿¡å
+
+         ã¢ãã¬ã¹ãæ­£ããè¨­å®ãã¦ããªãåé¡ãä¿®æ­£ããã 
+
+   (76)  Path MTU ã¨ãã¹ãæ
+å ±ã­ã£ãã·ã¥ãå®è£
+ããã
+
+   (77)  IPv6 ç¨ãã¹ãã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ãæå®ããã³ã³ãã¤ã«æã³ã³
+         ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IN6_HOSTCACHE_ENTRY ãè¿½å ããã
+
+   (78)  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« PPP ãé¸æããã¨ããã³ã³ãã¤ã«ã¨
+         ã©ã¼ã«ãªãåé¡ãä¿®æ­£ããã
+
+   (79)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã§ã ã«ã¼ã¿éç¥ãæ­£ããå¦çããª
+         ãåé¡ãä¿®æ­£ããã
+
+   (80)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã§ã æ­çããããæ­£ããå¦çããª
+         ãåé¡ãä¿®æ­£ããã
+
+   (81)  ESP ç¨ã¨ãã¦ã ãããã¯ã¼ã¯ãããã¡ã®ãã©ã°ã« NB_FLG_DECRYPED
+         ãè¿½å ããããã ããTINET ã¯ãIPSec ãç´æ¥ãµãã¼ãããªãã
+
+   (82)  if_ed.c ã§ãIF_ETHER_NIC_HDR_ALIGN åã®ã¢ãã¬ã¹ãèª¿ç¯ãããã
+         ã«å¤æ´ããã
+
+   (83)  if_ed.c ã® NIC å²ãè¾¼ã¿ãã³ãã© if_ed_handler ã§ã ã¿ã¼ã²ãã
+         ä¾å­é¨ã®å²è¾¼ã¿ã¯ãªã¢é¢æ° ed_inter_clear ãå¼åºãããã«å¤æ´ããã
+
+   (84)  config/h8 ã«ãtinet_cpu_config.c ãæ°è¨­ããã¿ã¼ã²ããä¾å­é¨ã®
+         å²è¾¼ã¿ã¯ãªã¢é¢æ° ed_inter_clear ãè¿½å ããããã ããH8 ã§ã¯ã
+         æç¤ºçã«ãã­ã»ããµã®å²ãè¾¼ã¿ãã¯ãªã¢ããå¿
+è¦ã¯ãªãããã ä½ã
+         ããªãé¢æ°ã«ãªã£ã¦ããã
+
+   (85)  config/h8 ã® tinet_cpu_config.h ã«ã ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿
+         ã¯ãªã¢é¢æ° ed_inter_clear ã®ãã­ãã¿ã¤ãå®£è¨ãè¿½å ããã
+
+   (86)  config/h8 ã«ã tinet_cpu_config.c ãæ°è¨­ãããã¨ã«ä¼´ãã
+         Makefile.tinet ãè¿½å ããã
+
+   (87)  IPv6 ã§ã ã«ã¼ã¿ããéç¥ãããå°éå¯è½ç¶æ
+ã®æå¹æé
+         ï¼Reachable Timeï¼ã®åè¨ç®ã¯ãä»æ§ä¸ã¯ã0.5 ï½ 1.5 åã®ç¯å²ã§
+         ã©ã³ãã ãªå¤ã«è¨­å®ãããã ã¿ã¤ãã¼ã®èµ·åééãèæ
+®ãã¦ã 0.5
+         ï½ 1.45 ã®ç¯å²ã«ãªãããèª¿æ´ããã
+
+   (88)  ã¤ã¼ãµããããã£ãã¤ã¹ãã©ã¤ãã«ããã ãããã¯ã¼ã¯ãããã¡ã§ã
+         ã¢ã©ã¤ã³èª¿æ´ãè¡ã IF_ETHER_NIC_NET_BUF_ALIGN ãè¿½å ããã
+
+   (89)  IPv6 ã§ãã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹ã®æå¹æéãéãã
+         ç´å¾ã«ã æå¹ãªã¢ãã¬ã¹ã¨ãã¦å¦çãããã¨ãããåé¡ãä¿®æ­£ããã 
+
+   (90)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã®ãã§ãã¯ãµã è¨ç®ã®å¦çå¹çã
+         æ¹åããã
+
+4.  ãªãªã¼ã¹ 1.2.x ãããªãªã¼ã¹ 1.3 ã¾ã§ã®å¤æ´
+
+   (1)   IPv6 ã§ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼
+         ã¹ãæå®ããã¨ãã ã³ã³ãã¤ã«ã¨ã©ã¼ãçºçããåé¡ãä¿®æ­£ããã 
+
+   (2)   ãã§ãã¯ãµã è¨ç®ã§ã¨ã©ã¼ã«ãªãåé¡ãä¿®æ­£ããï¼TOPPERS/TINET
+         ãã°ãã©ãã¯ã·ã¹ãã  ID:1ï¼ã
+
+   (3)   echos ã§ã TCP_ECHO_SRV_STACK_SIZE ã®äºéå®ç¾©è­¦åãåºãåé¡ã
+         ä¿®æ­£ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã  ID:2ï¼ã
+
+   (4)   ãããã¯ã¼ã¯ãããã¡ã®åå¾å¤±æã®æã å¸¸ã«è­¦åãåºåããããã«
+         å¤æ´ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã  ID:3ï¼ã
+
+   (5)   echos/echos ã®åé¡ãä¿®æ­£ããï¼toppers-users 1724ï¼ã
+
+   (6)   IP4_CFG_FRAGMENT ãæå®ããã¨ãã tinet/netapp/dbg_cons.c ã¨
+         tinet/netinet/ip_output.c ã§ã ã³ã³ãã¤ã«ã¨ã©ã¼ã«ãªãåé¡ãä¿®
+         æ­£ããã
+
+   (7)   æ¡å¼µãããã®ä»ãã ICMPv6 ã¨ã³ã¼ãªã¯ã¨ã¹ãã«å¯¾ããå¿ç­ã®åé¡
+         ãä¿®æ­£ããã
+
+   (8)   è¿é£æ¢ç´¢ã®å°éå¯è½æ§ã®ç¢ºèªã§ã¿ã¤ã ã¢ã¦ãããå¾ã ã¢ãã¬ã¹è§£æ±º
+         ãåºæ¥ãªãåé¡ãä¿®æ­£ããã
+
+   (9)   TCP ã®å
+¥åã»ã°ã¡ã³ãã®åæ§æé¢æ°ã®æ½å¨çãªåé¡ç¹ãä¿®æ­£ããã
+
+   (10)  UDP ã®ã¿ä½¿ç¨ããã¨ãã® icmp6.c ã§ã_tinet_tcp_notify ã®åç
+§ã¨
+         ã©ã¼ãçºçããåé¡ãä¿®æ­£ããã
+
+   (11)  UDP ã®éä¿¡ã§ã ã¿ã¤ã ã¢ã¦ãããã¨ãããããã¯ã¼ã¯ãããã¡ãé
+         æ¾ããªãåé¡ãä¿®æ­£ããã
+
+   (12)  TCP ã®å¿ç­ã§ã IP ã®ãã¤ã­ã¼ããµã¤ãºãèª¤ãåé¡ãä¿®æ­£ãã
+         ï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã  ID:5ï¼ã
+
+   (13)  udp_rcv_dat ã§ã ã¿ã¤ã ã¢ã¦ãã«æéãæå®ããã¨ããã¿ã¹ã¯ã®å®
+         è¡ããã­ãã¯ãããåé¡ãä¿®æ­£ããã 
+
+   (14)  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬ã®å¤æ°ãµã¤ãºãã _int64_ ãå®ç¾©ãã
+         ã¦ããå ´åã®ã¿ UD ã¨ãªãããã«å¤æ´ããã
+
+   (15)  JSP ãªãªã¼ã¹ 1.4.2 ã«æ«å®å¯¾å¿ãããå¤æ´å
+å®¹ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   H8 ä¾å­é¨ã®å²è¾¼ã¿ã¬ãã«å°å
+¥ã«ä¼´ããif_ed ã¤ã¼ãµãããã»
+               ãã£ãã¤ã¹ãã©ã¤ãã®å²è¾¼ã¿å¦çãå®è£
+ãã
+               config/h8/akih8_3069f/tinet_sys_config.c ãè¿½å ããã
+         [2]   ed_ena_interãed_dis_inter ã®å¼æ°ã¨æ»ãå¤ãå¤æ´ããã
+         [3]   ed_ena_interãed_dis_inter ã®å¼æ°ã¨æ»ãå¤ã®å¤æ´ã«ä¼´ãã
+               tinet/netdev/if_ed/if_ed.c ãå¤æ´ããã
+         [4]   ed_ena_interã ed_dis_inter ã®å®ç¾©ãã
+               tinet/netdev/if_ed/if_edreg.h ããã
+               config/h8/akih8_3069f/tinet_sys_config.c ã«å¤æ´ããã
+
+   (16)  tcp_cls_cep ã§ã ã¿ã¤ã ã¢ã¦ãããå¾ãtcp_acp_cep ãã¨ã©ã¼ã«ãª
+         ãåé¡ãä¿®æ­£ããã
+
+   (17)  èª¤ã£ã IP SDU é·ã® TCP ãªã»ããã»ã°ã¡ã³ããéä¿¡ããåé¡ãä¿®æ­£ããã
+
+   (18)  TCP ã®ã·ã¼ã±ã³ã¹çªå·ãã©ã³ãã ã«åæåãããªãåé¡ãä¿®æ­£ããã
+
+   (19)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã§ãIPv6 ãããã®ãã¼ã¸ã§ã³ãã
+         ã©ããã¯ã¯ã©ã¹ã ãã­ã¼ã©ãã«ãã£ã¼ã«ããèª¤ã£ã¦åç
+§ã»å¤æ´ãã
+         åé¡ãä¿®æ­£ããã
+
+   (20)  ãªãã«ã¨ã³ãã£ã¢ã³ã®ãã­ã»ããµã«ãããåé¡ã«å¯¾å¿ããããã®å¤
+         æ´å
+å®¹ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   tinet/net/net.h ã§ã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³æã«ã¨ã©ã¼ã
+               çºçããåé¡ãä¿®æ­£ããã
+         [2]   ã«ã¼ã¿éç¥ã®åä¿¡ã§ãæå¹æéãèª¤ãåé¡ãä¿®æ­£ããã
+
+   (21)  JSP ãªãªã¼ã¹ 1.4.2 ã«å¯¾å¿ãããå¤æ´å
+å®¹ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   å²è¾¼ã¿ãã¯ã¿ã®çæã§ã¨ã©ã¼ã¨ãªãåé¡ãä¿®æ­£ããã
+         [2]   NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ã if_ed ã«ããã¦ãã·
+               ã¹ãã ä¾å­ã§ãã¹ã®åæåãè¡ã ed_bus_init ã¨ãå²è¾¼ã¿ã®
+               ã®åæåãè¡ã ed_inter_init ãæ°è¨­ããã
+         [3]   åå·éä¿¡è¨è£
+ãµã¼ãã¹è£½ NKEV-010H8ï¼H8/3069Fï¼ããµãã¼ãããã
+
+   (22)  TCP ã«ããã¦ãéä¿¡å´ã§åæ§æããã åå¾ã¨éãªããããã»ã°ã¡ã³
+         ãã®åæ§æãæ­£ããè¡ãããªãåé¡ãä¿®æ­£ããï¼TOPPERS/TINET ã
+         ã°ãã©ãã¯ã·ã¹ãã  ID:8ï¼ã
+
+   (23)  ä»¥ä¸ã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãå¤æ´ããã
+
+            NUM_MPF_NET_BUF_4096
+            â
+            NUM_MPF_NET_BUF_REASSM
+
+         ãã ãã tinet_config.h ã§ããªãªã¼ã¹ 1.2 ã¨ã®äºææ§ãç¢ºä¿ãã¦ããã
+
+   (24)  ãããã¯ã¼ã¯ãããã¡ã®åé·ãã®æå®ã§ãç¡æå®ã¾ãã¯ 0 ãæå®ã
+         ãå ´åã¯ã å¯¾å¿ããåºå®ã¡ã¢ãªãã¼ã«ãå²å½ã¦ãªãããã«å¤æ´ããã 
+
+   (25)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã åæ§æãããã¡
+         ãµã¤ãºãæå®ãã IP4_CFG_FRAG_REASSM_SIZE ãæ°è¨­ããã
+
+   (26)  ãããã¯ã¼ã¯ãããã¡ã«æ°ãããµã¤ãºãè¿½å ããã
+
+         [1]   T_NET_BUF_IPV6_CSEGããµã¤ãºã¯ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹
+               ã®ããããµã¤ãº + IP ããããµã¤ãº + TCP ããããµã¤ãº
+         [2]   T_NET_BUF_IP_MSS ã§ã ãµã¤ãºã¯ IP_MSSï¼ãããã¯ã¼ã¯ã¤ã³
+               ã¿ãã§ã¼ã¹ã®ããããµã¤ãº + 576 ãªã¯ãããï¼ã
+         [3]   T_NET_BUF_IPV6_MMTUããµã¤ãºã¯ IPV6_MMTUï¼ãããã¯ã¼ã¯ã¤
+               ã³ã¿ãã§ã¼ã¹ã®ããããµã¤ãº + 1280 ãªã¯ãããï¼ã
+
+   (27)  TINET å
+é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãå
+é¨ã®ã¿
+         ã¹ã¯ã®åªå
+åº¦ããã¼ã¿ã­ã¥ã¼ã®ã¨ã³ããªæ°ã åã³ä»¥ä¸ã®ã³ã³ãã¤ã«
+         æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã¯ãtinet/tinet_config.h ã§
+         å®ç¾©ããããã«å¤æ´ããã
+
+            MAX_TCP_RCV_SEG
+            DEF_TCP_SND_SEG
+            ARP_CACHE_KEEP
+            LOMTU
+
+   (28)  TCP ã®ååãªã¼ãã³ããµãã¼ãããå ´åã«æå®ãã
+         SUPPORT_TCP_POPEN ãè¿½å ããã
+
+   (29)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã
+         NUM_TCP_TW_CEP_ENTRY ãè¿½å ãããããã¯ãã¿ã¹ã¯ãã Time Wait
+         ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã§ã Time Wait ç¶æ
+ã® TCP é
+         ä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ãããæå®ããªããã 0 ãæå®ããã¨ã¿
+         ã¹ã¯ãã Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ãçµè¾¼ã¾ãªãã
+
+   (30)  TCP ã®ååãªã¼ãã³ããµãã¼ãããå ´åã«æå®ãã
+         SUPPORT_TCP_POPEN ã¯ TCP_CFG_PASSIVE_OPEN ã®ãã­ã¥ã¡ã³ãèª¤ãã
+
+   (31)  tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã® TCP_CRE_CEP
+         ã«å¯¾å¿ããæ§é ä½ T_TCP_CCEP ã®ãã£ã¼ã«ã sbuf ã¨ rbuf ã®å¤ã®
+         åã« (VP) ãã ãã£ã¼ã«ã callback ã®å¤ã®åã« (FP) ãåºåãã
+         ããã«å¤æ´ããã
+
+   (32)  tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã®
+         TCP6_CRE_CEP ã«å¯¾å¿ããæ§é ä½ T_TCP6_CCEP ã®ãã£ã¼ã«ã sbuf
+         ã¨ rbuf ã®å¤ã®åã« (VP) ãã ãã£ã¼ã«ã callback ã®å¤ã®åã«
+         (FP) ãåºåããããã«å¤æ´ããã
+
+   (33)  tinet ã³ã³ãã£ã®ã¥ã¬ã¼ã¿ãçæãã tinet_cfg.c ã«
+
+            #include <netinet/in_itron.h>
+
+         ãåºåããããã«å¤æ´ããã
+
+   (34)  TCP éä¿¡ç«¯ç¹ã§ã éåä¿¡ç¨ã®äºã¤ã®ã»ããã©ãã¤ãã³ããã©ã°ã«ã
+         ãå®è£
+ããã
+
+   (35)  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãå®è£
+ããã
+
+   (36)  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨ã«ã ä»¥ä¸
+         ã«ç¤ºãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãè¿½å ããã 
+
+         [1]   TCP_CFG_RWBUF_CSAVE_ONLYã TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããã
+               ãã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ãã®æ©è½ã®ã¿ä½¿ç¨ããã 
+         [2]   TCP_CFG_RWBUF_CSAVEãTCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡
+               ã®çã³ãã¼æ©è½ãçµè¾¼ãã
+         [3]   TCP_CFG_SWBUF_CSAVE_ONLYã TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããã
+               ãã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ãã®æ©è½ã®ã¿ä½¿ç¨ããã 
+         [4]   TCP_CFG_SWBUF_CSAVEãTCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡
+               ã®çã³ãã¼æ©è½ãçµè¾¼ãã
+         [5]   TCP_CFG_RWBUF_CSAVE_MAX_QUEUESã TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£
+               ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼
+               ã®æå¤§ã¨ã³ããªæ°ããã ãã æ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´
+               æ£ããããã åéåæ°ãå¢å ãããã¾ããæå®ããªãã¨å¶é
+               ããªããæ¨æºå¤ã¯ 2 ã§ããã
+         [6]   TCP_CFG_SWBUF_CSAVE_MAX_SIZEã TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³
+               ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨
+               ãããããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºã æ¨æºå¤ã¯
+               IF_PDU_SIZE ã§ããã
+         [7]   TCP_CFG_SWBUF_CSAVE_MIN_SIZEã TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³
+               ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨
+               ãããããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºã æ¨æºå¤ã¯ 0 ã§ããã
+
+   (37)  TCP ã¨ UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ã®çµè¾¼ã¿ãæå®ããã³ã³
+         ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãè¿½å ããã 
+
+         [1]   TCP_CFG_NON_BLOCKINGã TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+               ãçµè¾¼ãã
+         [2]   UDP_CFG_NON_BLOCKINGã UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+               ãçµè¾¼ãã
+
+   (38)  netinet/in.h ã«ã TINET ã®ãã¼ã¸ã§ã³æ
+å ± TINET_PRVER ãå®ç¾©ããã
+
+   (39)  netinet/in.h ã«ã8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãã
+         ãã«ãããã¯ã­ MAKE_IPV4_ADDR ãè¿½å ããã
+
+   (40)  TCP ã¨ UDP ã®ä¸é¨ãã©ã¤ãã©ãªåããã
+
+   (41)  ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã«ã¤ã³ã¯ã«ã¼ããã TINET ã®
+         Makefile.config ã Makefile.tinet ã«å¤æ´ããã
+
+   (42)  int ã®ãµã¤ãºã 16 ãããã®å¦çç³»ã«å¯¾å¿ããï¼åä½ç¢ºèªã¯ã ( æ ª
+         ) ã«ããµã¹è£½ã³ã³ãã¤ã© H8C ã§è¡ã£ãï¼ãå¤æ´å
+å®¹ãä»¥ä¸ã«ç¤ºãã
+
+         [1]   tcp_seq.h ã®ã¤ã³ã©ã¤ã³é¢æ°ã®è¨è¿°ãå¤æ´ããã
+         [2]   é¢æ° timeout ã¨é¢æ° untimeout ã®ç¬¬ 1 å¼æ°ã (FP) åã«æ
+               ç¤ºçã«ã­ã£ã¹ãããã
+         [3]   ãã¯ã­å
+ã§ã·ããæ¼ç®ã®ãªãã©ã³ãã¨ãã¦ä½¿ç¨ããã¦ããå¼
+               æ°ã®æ¹ãæç¤ºçã«ã­ã£ã¹ãããã
+         [4]   ãã¯ã­ GET_TCP_CREPIDã GET_TCP_CCEPIDã
+               GET_TCP_TW_CCEPIDã
+               GET_UDP_CCEPID ã®æ»ãå¤ã ID åã«æç¤ºçã«ã­ã£ã¹ãããã
+         [5]   tinet/net/net_buf.hããããã¯ã¼ã¯ãããã¡ã®ãã³ãã¬ã¼ã
+               ã®å®ç¾© struct t_net_buf ã§ã ãããã¡æ¬ä½ã®å¤§ããã
+               buf[4] ã«å¤æ´ããã
+         [6]   ä¹±æ°é¢æ° rand() ã®é¢æ°åã net_rand() ã«å¤æ´ãã æ»ãå¤
+               ã®åã UW ã«å¤æ´ããã
+         [7]   ä¹±æ°åæåé¢æ° srand() ã®é¢æ°åã net_srand() ã«å¤æ´ãã
+               å¼æ°ã®åã UW ã«å¤æ´ããã
+         [8]   tcp_read_rwbuf_cs() ã®ã³ã³ãã¤ã«ã¨ã©ã¼ï¼(UB*)data +=
+               blenï¼ã®åé¡ãä¿®æ­£ããã
+         [9]   MAKE_IPV4_ADDR ã®åå¼æ°ã¸ã®ã­ã£ã¹ãã UB ãã UW ã«å¤æ´ããã
+         [10]  SYSTIM_HZ ã®å®ç¾©ã§ãå®æ°ã«ã­ã£ã¹ã (SYSTIM) ãè¿½å ããã
+         [11]  IS_PTR_DEFINED ã®å®ç¾©ã§ã(a) ã«ã­ã£ã¹ã (VP) ãè¿½å ããã
+         [12]  UB åå¤æ°ãUH åå¤æ°ã¸ã®ä»£å
+¥ã§ã®è­¦åã®åé¡ãä¿®æ­£ããã
+         [13]  32 ãããå¹
+ãå¿
+è¦ãªå¤æ°ã®åã«ã¯ã æç¤ºçã« W ã¾ãã¯ UW
+               ãä½¿ç¨ããã
+         [14]  syslog ã®å¼æ°ã®åãæç¢ºã«ããã
+         [15]  è­¦åãåºãé¢æ°ã®å¼æ°ãã­ã£ã¹ãããã
+         [16]  è­¦åãåºãé¢æ°ã®æ»ãå¤ãã­ã£ã¹ãããã
+         [17]  ç²¾åº¦ã«é¢ããè­¦åãåºãä»£å
+¥ã®å³è¾ºãã­ã£ã¹ãããã
+
+   (43)  ãã¯ã­ ntohs ã¨ htons ã®å®ç¾©ã§ã ããã°ã¨ã³ãã£ã¢ã³ã®ãã­ã»ã
+         ãµã§ã¯ãUH ã®æ»ãå¤ãè¿ãããã«å¤æ´ããã
+
+   (44)  ãã¯ã­ ntohl ã¨ htonl ã®å®ç¾©ã§ã ããã°ã¨ã³ãã£ã¢ã³ã®ãã­ã»ã
+         ãµã§ã¯ãUW ã®æ»ãå¤ãè¿ãããã«å¤æ´ããã
+
+   (45)  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ã®çµè¾¼ã¿ãæå®ããã³ã³ãã¤ã«æã³
+         ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ãè¿½å ããã 
+
+         [1]   TCP_CFG_TRACEãTCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã
+         [2]   TCP_CFG_TRACE_IPV4_RADDRã ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ãã
+               ã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ãããIPV4_ADDRANY ãæå®ãã
+               ã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+         [3]   TCP_CFG_TRACE_LPORTNOããã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ã
+               ã®ãã¼ãçªå·ãæå®ããã TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦
+               ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+         [4]   TCP_CFG_TRACE_RPORTNOããã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ã
+               ã®ãã¼ãçªå·ãæå®ãããTCP_PORTANY ãæå®ããã¨ã å
+¨ã¦
+               ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+
+   (46)  ãµãã¼ãé¢æ° ip2str ã§ã ç¬¬ 1 å¼æ°ã« NULL ãæå®ããã¨ãTINET
+         å
+é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æå­åãæ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ã
+         è¿ãããã«å¤æ´ããã ããã«ä¼´ãããããã¡æ°ãæå®ããã³ã³ãã¤
+         ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_IPV4ADDR_STR_BUFF ã
+         è¿½å ããã
+
+   (47)  ãµãã¼ãé¢æ° ipv62str ã§ã ç¬¬ 1 å¼æ°ã« NULL ãæå®ããã¨ã
+         TINET å
+é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æå­åãæ¸ãè¾¼ã¿ã ãã®ã¢ã
+         ã¬ã¹ãè¿ãããã«å¤æ´ãããããã«ä¼´ãã ãããã¡æ°ãæå®ããã³
+         ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         NUM_IPV6ADDR_STR_BUFF ãè¿½å ããã
+
+   (48)  ãµãã¼ãé¢æ° mac2str ã§ãç¬¬ 1 å¼æ°ã« NULL ãæå®ããã¨ãTINET
+         å
+é¨ã§ç¢ºä¿ãã¦ãããããã¡ã«æå­åãæ¸ãè¾¼ã¿ã ãã®ã¢ãã¬ã¹ã
+         è¿ãããã«å¤æ´ãããããã«ä¼´ãã ãããã¡æ°ãæå®ããã³ã³ãã¤
+         ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ NUM_MACADDR_STR_BUFF ã
+         è¿½å ããã
+
+   (49)  tinet ã¨ tinet/netdev/if_ed ã«ããã Makefile ã®ã¤ã³ã¯ã«ã¼ã
+         ãã¡ã¤ã«ã Makefile.tinet ã«å¤æ´ããã
+
+   (50)  éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ãTCP_CFG_SWBUF_SAVE ãæ
+         å®ããTCP éä¿¡ç«¯ç¹ãçæããéç API ã«ããã¦ããéä¿¡ã¦ã£ã³ã
+         ãããã¡ãæå®ããå ´åã èª¤ã£ããã¼ã¿ãéä¿¡ããåé¡ãä¿®æ­£ããã 
+
+   (51)  tinet/Makefile.tinet ã«ããã TINET_KERNEL_CFG ã®å®ç¾©ãã
+         tinet_cfg.c ãããtinet_kern.cfgãtinet.cfgãTINET å
+é¨ã§ä½¿ç¨
+         ããã«ã¼ãã«ãªãã¸ã§ã¯ããå®ç¾©ãã¦ããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+         ãã¡ã¤ã«ã«å¤æ´ããã
+
+   (52)  8 ãããæ¯ã«æå®ãã IPv4 ã¢ãã¬ã¹ã 32 ãããã«ãããã¯ã­
+         MAKE_IPV4_ADDR ãè¿½å ããï¼TOPPERS/TINET ãã°ãã©ãã¯ã·ã¹ãã 
+         ID:4ï¼ã
+
+   (53)  åã½ã¼ã¹ã³ã¼ãã®ã³ãã¼ã©ã¤ããä¿®æ­£ããï¼TOPPERS/TINET ãã°ã
+         ã©ãã¯ã·ã¹ãã  ID:6ï¼ã
+
+5.  ãªãªã¼ã¹ 1.1.x ãã 1.2 ã¾ã§ã®å¤æ´
+
+   (1)   TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã§ã TCP åä»å£ãæå®ããª
+         ãã£ãã¨ãã®åé¡ã¯ã tinet/cfg/tinet_parser.cpp ã§ã
+         tinet_cfg.c ã«ããã¼ã® TCP åä»å£å¤æ°ãåºåããããã«ä¿®æ­£ããã
+
+   (2)   UDP ã®ã¿ä½¿ç¨ããã¨ãã® kernel_cfg.c ã§ã ã³ã³ãã¤ã«ã¨ã©ã¼ãçº
+         çããåé¡ã¯ãtinet/netinet/tcp.cfg ãã
+
+            INCLUDE("<netinet/in.h>");
+
+         ãåé¤ããtinet/netinet/ip.cfg ã«
+
+            INCLUDE("<netinet/in.h>");
+
+         ãè¿½å ããã
+
+   (3)   UDP ã®ã¿ä½¿ç¨ããã¨ãã® ip_icmp.c ã§ã_tinet_tcp_notify ã®åç
+§
+         ã¨ã©ã¼ãçºçããåé¡ã¯ã tinet/netinet/ip_icmp.c ã§ã ICMP
+         UNREACH ã¡ãã»ã¼ã¸ãç¡è¦ããããã«ä¿®æ­£ããã
+
+   (4)   ã«ã¼ãããã¯ã»ã¤ã³ã¿ãã§ã¼ã¹ã® IP ã¢ãã¬ã¹ãã¹ã¯ã ã­ã¼ã«ã«ã
+         ã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ã®å®ç¾©èª¤ããä¿®æ­£ããã 
+
+   (5)   tinet/netdev/if_ed/if_ed.c ã§ã ã¬ã¸ã¹ã¿ã SIL çµç±ã§ã¢ã¯ã»ã¹
+         ããããã«ä¿®æ­£ããã
+
+   (6)   IPv6 ã«å¯¾å¿ããã
+
+   (7)   ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ã«ã ãã£ãã©ã«ãã»
+         ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹ãæå®ãã
+         IPV4_ADDR_LOCAL_DEFAULT_GW ãæ°è¨­ãããããã«ããããã£ãã©ã«
+         ãã»ã²ã¼ãã¦ã§ã¤ã®ã¿ã®ãããã¯ã¼ã¯ã§ã¯ã éçã«ã¼ãã£ã³ã°æ
+å ±
+         è¨­å®ãã¡ã¤ã« route_cfg.c ã®å¤æ´ãä¸è¦ã«ããã
+
+   (8)   UDP ã®åä¿¡æã åä¿¡ãã¼ãçªå·ãæªå®ç¾©ã®å ´åããããã¯ã¼ã¯ãã
+         ãã¡ãæ­£ããè§£æ¾ããªãåé¡ã¨ãICMP ã®ã¨ã©ã¼éç¥ãæ­£ããè¡ããª
+         ãåé¡ãä¿®æ­£ããã
+
+   (9)   TCP ã®åä¿¡æãåä¿¡ãã¼ãçªå·ãæªå®ç¾©ã®å ´åã ãªã»ããã»ã°ã¡ã³
+         ããæ­£ããè¿éããªãåé¡ãä¿®æ­£ããã 
+
+   (10)  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ï¼net_countï¼ã®åå¤æ°ã _tinet_ ã§ãªãã¼
+         ã ããªãããã«å¤æ´ããã
+
+   (11)  ãã¤ããªã¼ãå¤æã®å®ç¾©ã netinet/in.h ããã net/net.h ã«éç´
+         ãã ãªãã«ã¨ã³ãã£ã¢ã³ç¨ã®ãã¯ã­ãè¿½å ããã
+
+   (12)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã»ãã¡ã¤ã«ã®ããããã§ã ã
+         ã¯ã­ SUPPORT_MIB ãå®ç¾©ãããã¨ã«ããã SNMP ç¨ç®¡çæ
+å ±ãã¼ã¹
+         ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ã®åå¾ãå¯è½ã¨ãªã£ãããã ãã
+         TINET èªä½ã¯ãç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨
+         ãæä¾ããã ãã§ï¼SNMP ããµãã¼ããã¦ããªããã¾ãã RFC1213ã
+         RFC2465ãRFC2466 ã«å®ç¾©ããã¦ããå
+¨ã¦ã®æ
+å ±ãåå¾ã§ããããã§
+         ã¯ãªãã åå¾ã§ããæ
+å ±ã¯ãé¢ä¿ããã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®æ§é 
+         ä½ã®å®ç¾©ãåç
+§ãããã¨ã
+
+   (13)  PPP ã® HDLC å
+¥åã«ãããåé¡ãä¿®æ­£ããã
+
+   (14)  èªè­ã§ããªãä¸ä½ãã­ãã³ã«ã¾ãã¯æ¡å¼µããããåä¿¡ããã¨ãã ã³ã¼
+         ãçªå· ICMP6_PARAMPROB_NEXTHEADERï¼1ï¼ã® ICMP6_PARAM_PROBï¼4ï¼
+         ã¡ãã»ã¼ã¸ãè¿éããããå¤æ´ããã 
+
+6.  ãªãªã¼ã¹ 1.0 ãã 1.1 ã¾ã§ã®å¤æ´
+
+   (1)   TINET ã³ã³ãã£ã°ã¬ã¼ã¿ã®çæã§ããªã³ã¯ãä¸è¦ã«ããã
+
+   (2)   ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ããè¦ç´ãã cpu_config.h ãã
+         tinet_config.hãcpu_defs.h ãã tinet_defs.h ãåé¤ããã
+
+   (3)   ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã®æå®å
+å®¹ãä¸é¨å¤æ´ããã
+
+         [1]   TCP ã®çµè¾¼ã¿ãSUPPORT_TCP ã®æå®ã
+         [2]   UDP ã®çµè¾¼ã¿ãSUPPORT_UDP ã®æå®ã
+
+   (4)   ãµã³ãã« nserv.c ãã WWW ãµã¼ãæ©è½ã tinet/netapp/wwws.c ã«
+         ç§»ããã
+
+   (5)   JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã« $(UNAME).cfg ã§ã¯ã
+         tinet/tinet.cfg ãæå®ããã ãã§ã ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨ã®ã«ã¼
+         ãã«ãªãã¸ã§ã¯ããåãè¾¼ããããã«å¤æ´ããã 
+
+   (6)   TINET ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ãã®
+         æå®ãã¡ã¤ã« tinet/tinet.cfg ã§ã®ãINCLUDEãéç API ããåã¢
+         ã¸ã¥ã¼ã«ã® JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã«ç§»åããã
+
+   (7)   tinet/include ã¯å»æ­¢ãã ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãä»¥ä¸ã®ããã«ç§»
+         åããã
+
+         [1]   tinet/include/net â tinet/netã
+         [2]   tinet/include/netdev â tinet/netdevã
+         [3]   tinet/include/netinet â tinet/netinetã
+         [4]   tinet/include/netapp â tinet/netappã
+         [5]   tinet/include/tinet_config.h â tinet/tinet_config.hã
+         [6]   tinet/include/tinet_defs.h â tinet/tinet_defs.hã
+
+   (8)   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ãã¤ã¹ä¾å­é¨ãç¬ç«ããããã®
+         å¤æ´ãè¡ã£ãã
+
+         [1]   tinet/netdev ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ä¾å­é¨ãé
+ç½®
+               ãããã£ã¬ã¯ããªãæ°è¨­ããã NE2000 äºæ NIC ã§ã¯ if_ed
+               ã§ãããä»¥ä¸ãã® NIC ã®è¨­å®ã«ã¤ãã¦è¿°ã¹ãã
+         [2]   æ±ç¨ã® JSP ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+               nic.cfg ãæ°è¨­ããã ç¾å¨ã¯ãif_ed.cfg ãã¤ã³ã¯ã«ã¼ãã
+               ãããã«ãªã£ã¦ããã
+         [3]   æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+               ã³ãã¡ã¤ã« tinet_nic_config.h ãæ°è¨­ãããç¾å¨ã¯ã æ±ç¨
+               ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã«
+               nic_rename.h ã¨ if_ed.h ãã¤ã³ã¯ã«ã¼ãããããã«ãªã£ã¦ããã
+         [4]   æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã«
+               nic_rename.h ãæ°è¨­ããã
+         [5]   if_ed.c ã¨ if_ed.cfg ä»¥å¤ã®ãã¡ã¤ã«ãã if_ed.h ã¨
+               if_edreg.h ãåé¤ããã
+         [6]   tinet/tinet_config.h ã®å¤æ´
+               #include <tinet_nic_config.h> ãè¿½å ãã ã¤ã³ã¯ã«ã¼ãã®
+               é çªãè¦ç´ããã
+
+                  #include "tinet_app_config.h"
+                  #include "tinet_sys_config.h"
+                  #include "tinet_cpu_config.h"
+                  â
+                  #ifdef SUPPORT_ETHER
+                  #include "tinet_nic_config.h"
+                  #endif      /* of #ifdef SUPPORT_ETHER */
+                  #include "tinet_sys_config.h"
+                  #include "tinet_cpu_config.h"
+                  #include "tinet_app_config.h"
+
+         [7]   tinet/net/ethernet.h ã®å¤æ´
+
+               ã»tinet/netdev/if_ed/if_ed.h ã® t_ed_softc ããããã£ã
+                 ã¤ã¹éä¾å­é¨ã t_if_softc ã¨ãã¦ç¬ç«ãã¦å®ç¾©ããã
+
+                    struct t_if_softc {
+                       T_IF_ADDR         ifaddr;
+                       UH             timer;
+                       T_IF_ETHER_SOFTC  *sc;
+                       ID             semid_txb_ready;
+                       ID             semid_rxb_ready;
+                       };
+                    typedef struct t_if_softc T_IF_SOFTC;
+
+               ã»ã¡ã³ã timer ã¯ããã£ãã¤ã¹éä¾å­é¨ã«ç§»åããã
+               ã»ãã¤ã³ã¿ãã§ã¼ã¹é¸æãã¯ã­ããã T_IF_SOFTC ãåé¤ããã
+
+         [8]   tinet/net/ethernet.cã tinet/net/if.cã
+               tinet/netinet/tcp_subr.c ã®å¤æ´
+               #include <netdev/if_ed.h> ãåé¤ããT_IF_ETHER_SOFTC ã
+               ããT_IF_SOFTC ã«å¤æ´ããã
+
+                  T_IF_ETHER_SOFTC *sc;
+                  â
+                  T_IF_SOFTC *ic;
+
+         [9]   tinet/netdev/if_ed/if_ed.h ã®å¤æ´
+
+               ã»t_ed_softc å®ç¾©ã tinet/netdev/if_ed/if_ed.c ã«ç§»åããã
+               ã»ãNIC é¸æãã¯ã­ãã® T_IF_ETHER_SOFTC ã T_ED_SOFTC
+                 ãã struct t_ed_softc ã«å¤æ´ããã
+               ã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®é¢æ°ã®å¼æ°ã T_ED_SOFTC
+                 ãã T_IF_SOFTC ã«å¤æ´ããã
+               ã»é¢æ° ed_watchdog ã®å¼æ°ã«ãT_IF_SOFTC* ãæå®ãããã
+                 ã«å¤æ´ããã
+
+         [10]  tinet/netdev/if_ed/if_ed.c ã®å¤æ´
+
+               ã»#include <netdev/if_ed.h> ãåé¤ããã
+               ã»if_edreg.h ã®ã¤ã³ã¯ã«ã¼ãæå®ã®å¤æ´
+
+                    #include <netdev/if_edreg.h>
+                    â
+                    #include "if_edreg.h"
+
+               ã»t_ed_softc ã®å®ç¾©ãã tinet/netdev/if_ed/if_ed.h ãã
+                 ç§»åããã
+               ã»t_ed_softc ã¯ããã£ãã¤ã¹ä¾å­é¨ã®ã¿å®ç¾©ããããã«å¤æ´ããã
+               ã»ä»¥ä¸ã®å±æé¢æ°ã®å¼æ°ã T_ED_SOFTC ãã T_IF_SOFTC ã«
+                 å¤æ´ããã
+
+                    ed_xmit
+                    ed_init_sub
+
+               ã»é¢æ°ã®å¼æ°ã T_ED_SOFTC ãã T_IF_SOFTC ã«ä»£ãã£ããã
+
+                    T_ED_SOFTC *sc = ic->sc;
+
+                 ã§ãT_ED_SOFTC ãåãåºããã¨ãåºæ¥ãã
+
+         [11]  tinet/netdev/if_ed/if_ed.cfg ã®å¤æ´
+
+                  INCLUDE("<netdev/if_ed.h>");
+                  INCLUDE("<netdev/if_edreg.h>");
+                  â
+                  INCLUDE("\"if_edreg.h\"");
+
+         [12]  tinet/net_rename.h ã®å¤æ´
+               if_ed ã®é¢æ°ã®ãªãã¼ã å®ç¾©ãã
+               tinet/netdev/if_ed/nic_rename.h ã«ç§»åããã
+         [13]  tinet/tinet.cfg ã®å¤æ´
+
+                  #ifdef IF_ETHER_CFG_ED
+                  #include "netdev/if_ed.cfg"
+                  #endif   /* of #ifdef IF_ETHER_CFG_ED */
+                  â
+                  #include "nic.cfg"
+
+         [14]  tinet_cpu_config.h ã¨ tinet_sys_config.h ã®å¤æ´
+               ãNIC (NE2000 äºæ ) ã«é¢ããå®ç¾©ãã
+               tinet_sys_config.h ã«ç§»åããã
+         [15]  $(CPU)/$(SYS)/Makefile.config ã®å¤æ´
+
+               ã»ãã³ã³ãã¤ã«ãªãã·ã§ã³ãã®å¤æ´
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªãå«ããããã
+                 INCLUDES ã®å®ç¾©ã®å¾ã«è¿½å ããã
+
+                    ifdef TINET_ROOT
+                    INCLUDES := $(INCLUDES) -I$(TINET_ROOT)/netdev/if_ed
+                    endif
+
+               ã»ãã«ã¼ãã«ã«é¢ããå®ç¾©ãã®å¤æ´
+                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã¨ãããã¯ã¼
+                 ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãªãã¸ã§ã¯ããå«ããããã
+                 KERNEL_COBJS ã®å®ç¾©ã®å¾ã«è¿½å ããã
+
+                    ifdef TINET_ROOT
+                    KERNEL_DIR  := $(KERNEL_DIR):$(TINET_ROOT)/netdev/if_ed
+                    KERNEL_COBJS   := $(KERNEL_COBJS) if_ed.o
+                    endif
+
+         [16]  åã½ã¼ã¹ãã IF_ETHER_CFG_ED ãåé¤ããã
+         [17]  if_ed.h ã¨ if_edreg.h ã§ãSUPPORT_ETHER ãåé¤ããã
+         [18]  åã½ã¼ã¹ã® PROTO_FLG_ETHER_ED ã PROTO_FLG_ETHER_NIC ã«
+               å¤æ´ããã
+         [19]  åã½ã¼ã¹ã® net_count_ether_ed åã³ net_count_ether_ed* ã
+               net_count_ether_nic åã³ net_count_ether_nic* ã«å¤æ´ããã
+         [20]  åã½ã¼ã¹ã® NET_COUNT_ETHER_ED åã³ NET_COUNT_ETHER_ED* ã
+               NET_COUNT_ETHER_NIC åã³ NET_COUNT_ETHER_NIC* ã«å¤æ´ããã
+         [21]  åã½ã¼ã¹ã® IF_ETHER_CFG_ACCEPT_ALL ã
+               ETHER_CFG_ACCEPT_ALL ã«å¤æ´ããã
+         [22]  åã½ã¼ã¹ã® IF_ETHER_* ã IF_ETHER_NIC_* ã«å¤æ´ããã
+
+   (9)   tinet/cfg/tinet_parser.cpp ã®å¤æ´
+
+         [1]   tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã«
+               tinet_config.h ãè¿½å ããã
+         [2]   tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã®ã¤ã³
+               ã¯ã«ã¼ãé çªãä»¥ä¸ã®ããã«å¤æ´ããã 
+
+                  tinet_defs.h
+                  tinet_config.h
+
+         [3]   tinet_cfg.c ã«åºåããæ¨æºã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ã§ã ä»¥
+               ä¸ã®ãã¡ã¤ã«æå®ãåé¤ããã
+
+                  #include <netinet/in_rename.h>
+
+   (10)  tinet/tinet_defs.h ã« tinet_nic_defs.h ãè¿½å ããã
+
+   (11)  tinet/netdev/if_ed ã« tinet_nic_defs.h ãè¿½å ããã
+
+   (12)  åã½ã¼ã¹ãã¡ã¤ã«ã«ãtinet_defs.hãtinet_config.h ãè¿½å ããã
+
+   (13)  åã½ã¼ã¹ãã¡ã¤ã«ã§ãtinet_defs.hãtinet_config.h ã®é çªã«ã¤ã³
+         ã¯ã«ã¼ãããããã«å¤æ´ããã
+
+   (14)  tinet_nic_defs.h ã« IF_ETHER_NIC_HDR_ALIGN ãè¿½å ãããããã¯ã
+         ä»¥ä¸ã®ãã¡ã¤ã«ã«ããã¤ã¼ãµããããããã®å®ç¾©ã§ã æåã«ã¢ã©ã¤
+         ã³ãèª¿æ´ããå ´åã«ã èª¿æ´éãæå®ããã
+
+            tinet/net/ethernet.h
+
+   (15)  TINET ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨ã®ãªãã¼ã æå®ãã¡ã¤ã«
+         tinet/net/net_rename.h ã¨ tinet/netinet/in_rename.h ã®ã¤ã³ã¯
+         ã«ã¼ãããtinet/tinet_config.h ã§æå®ããããã«å¤æ´ããåã½ã¼
+         ã¹ãã¡ã¤ã«ããä»¥ä¸ã®ãã¡ã¤ã«ãåé¤ããã 
+
+            #include <net/net_rename.h>
+            #include <netinet/in_rename.h>
+
+   (16)  TINET ã®æ¨æº Makefile.config ãä½æãã ã¢ããªã±ã¼ã·ã§ã³ã®
+         Makefile ããã¤ã³ã¯ã«ã¼ãããããã«å¤æ´ããã
+
+   (17)  tinet/netdev/if_ed/if_ed.c ã®ä»¥ä¸ã®é¢æ°ã§ããã£ã¹ãããç¦æ­¢ç¶
+         æ
+ã«ãªããªãããã«å¤æ´ããã
+
+            ed_pio_readmem
+            ed_pio_writemem
+
+   (18)  ã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°ãSYSTIM_HZ ãå®ç¾©ããã
+
+   (19)  cygwin ã§ g++ ã®ãã¼ã¸ã§ã³ã«ãã£ã¦ã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã¿
+         ã®çææã«ã¨ã©ã¼ãçºçããåé¡ãä¿®æ­£ããã 
+
+   (20)  Makefile.config ã«ãããæå®ã®å¤æ´
+
+         [1]   tinet/netdev/if_ed/if_ed.c ã« Makefile.config ãä½æãã
+               TINET ã®æ¨æº Makefile.config ããã¤ã³ã¯ã«ã¼ãããããã«
+               å¤æ´ããã
+         [2]   JSP ã®ã·ã¹ãã ä¾å­é¨ã® $(CPU)/$(SYS)/Makefile.config ã
+               ãã TINET ã®ãããã¯ã¼ã¯ã»ãã£ãã¤ã¹ã®ä¾å­é¨ã®å®ç¾©ãå
+               é¤ããã
+         [3]   ã¢ããªã±ã¼ã·ã§ã³ã® Makefile ã«ã¯ã
+
+                  #  ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ãã®é¸æ
+                  NET_DEV = if_ed
+
+               ãæå®ããå¿
+è¦ãããã
+
+   (21)  tinet/netapp/netapp.h ã«ã ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçª
+         å·ã®å®ç¾©ãè¿½å ããã
+
+            /*
+             *  ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·
+             */
+            #ifndef CONSOLE_PORTID
+            #define  CONSOLE_PORTID                                               LOGTASK_PORTID
+            #endif   /* of #ifndef CONSOLE_PORTID */
+
+   (22)  tcp_cls_cep() ã§ãä»æ§ã§ã¯ã FIN ãéã£ã¦ã³ãã¯ã·ã§ã³ãåæ­ã
+         ããã¨ã«ãªã£ã¦ãããã æ­£ããå®è£
+ãã¦ããªãåé¡ãä¿®æ­£ããã 
+
+   (23)  tinet_cpu_config.h ã§å®ç¾©ãã¦ããåä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+         ï¼MAX_TCP_RCV_SEGï¼ã éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+         ï¼MAX_TCP_SND_SEGï¼ã éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+         ï¼DEF_TCP_SND_SEGï¼ã åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+         ï¼DEF_TCP_RCV_SEGï¼ã®å¤ã«é¢ãã¦ãã¤ã¼ãµããããä½¿ç¨ããå ´åã
+         å
+¨ã¦ã®å¤ã 1,460 ã«å¤æ´ããã
+
+   (24)  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã¨ãã¦ã TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ã
+         ãè¿½å ããã
+
+   (25)  TCP ã® MSS (TCP_MSS) ã«é¢ãã¦ã
+
+            #define TCP_MSS (IP4_MSS - (IP4_HDR_SIZE + TCP_HDR_SIZE))
+
+         ãããBSD ã®æ¨æºå¤
+
+            #define TCP_MSS 512
+
+         ã«å¤æ´ããã
+
+   (26)  tcp_con_cep ã§ã ã¿ã¤ã ã¢ã¦ãã«ãã³ãã­ãã­ã³ã°ä»¥å¤ãæå®ãã
+         å ´åã ã¿ã¤ã ã¢ã¦ãåã«ã¨ã©ã¼ã«ãªãå¯è½æ§ãããåé¡ãä¿®æ­£ããã 
+
+   (27)  ãããã¯ã¼ã¯ã¿ã¤ãã§ã è¤æ°ã®ã¨ã³ããªãåæã«ã¿ã¤ã ã¢ã¦ããã¦
+         ãã ç»é²ããã¦ããå
+¨ã¦ã®é¢æ°ãå¼ã³åºããªãåé¡ãä¿®æ­£ããã 
+
+   (28)  ãã­ã¼ãã­ã£ã¹ãéä¿¡ãæ­£ããå¦çãã¦ããªãã£ãåé¡ãä¿®æ­£ããã
+         æ¬¡ã®å ´åã¯ãã¤ã¼ãµãããã®éä¿¡å
+ MAC ã«ã¯ãã­ã¼ãã­ã£ã¹ãã¢ã
+         ã¬ã¹ãè¨­å®ããã
+
+         ã»IP ã¢ãã¬ã¹ã®å
+¨ãããã 1
+         ã»IP ã¢ãã¬ã¹ã®ãã¹ãé¨ã®å
+¨ãããã 1 ã§ã ãããã¯ã¼ã¯é¨ãã­ã¼
+           ã«ã«ã¢ãã¬ã¹
+
+         åæã«ã IP ã¢ãã¬ã¹ã®å
+¨ãããã 1 ã®ãã­ã¼ãã­ã£ã¹ãã«å¯¾å¿ã
+         ããããéççµè·¯è¡¨ (route_cfg.c) ã«ã¯ãæå¾ã®ã¨ã³ããªã¨ãã¦ä»¥
+         ä¸ã®è¡ãè¿½å ããã
+
+            { 0xffffffff, 0xffffffff, 0 },
+
+         ã¾ãã ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         NUM_ROUTE_ENTRY ã 1 å¢å ããã
+
+   (29)  é¢æ° ntohl() ãä½¿ãã¹ãã¨ããã§é¢æ° ntohs() ãä½¿ã£ã¦ããåé¡
+         ãä¿®æ­£ããã
+
+   (30)  IP åã³ UDP ã®ãã§ãã¯ãµã ã®å¤ãé¢æ° htons() ãä½¿ã£ã¦ãä»£å
+¥ã
+         ã¦ããåé¡ãä¿®æ­£ããã
+
+   (31)  (SIL_ENDIAN == SIL_ENDIAN_LITTLE ã®ãHTONL() HTONS() ã®å®ç¾©èª¤
+         ããä¿®æ­£ããã
+
+   (32)  UDP ã®å
+¥åé¢æ° udp_input ã§ãå®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ã
+         ã¯ããé¢æ° dstaddr_accept ãå¼åºãåã«ã ãããã¯ã¼ã¯ãã¤ããªã¼
+         ããããã¹ããã¤ããªã¼ãã«å¤æãã¦ããªãåé¡ãä¿®æ­£ããã 
+
+   (33)  NE2000 äºæ NIC ã®éåä¿¡ãããã¡ãã¼ã¸ãµã¤ãºã®å®ç¾©èª¤ããä¿®æ­£ããã
+
+   (34)  NE2000 äºæ NIC ã§ã NIC ã®å
+èµ SRAM ã¸ã®ãã¼ã¿ã®æ¸è¾¼ã¿çµäºå¾ã
+         ä¸è¦ã®ããæ¸è¾¼ã¿å®äºãå¾
+ããªãããã«å¤æ´ããã 
+
+   (35)  UDP ã§ã ãã­ã¼ãã­ã£ã¹ãã»ãã¼ã¿ã°ã©ã ãåä¿¡ããããã«ä¿®æ­£ããã
+
+   (36)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿ DHCP_CFG ãæ°è¨­
+         ãããããã¯ãDHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããããã ãã
+         TINET ã¯ãDHCP ãå®è£
+ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ã DHCP ã¡ã
+         ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã DHCP_CFG ãæå®ããã¨ã
+         IPV4_ADDR_LOCAL ãæªå®ç¾©ï¼å
+¨ã¦ 0ï¼ã§ããUDP ã«éããDHCP ã¡ã
+         ã»ã¼ã¸ãåä¿¡ãããã¨ãå¯è½ã«ãªãã 
+
+   (37)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         IPV4_ADDR_LOCAL_BC ãåé¤ããèªåã® IP ã¢ãã¬ã¹ã®ãµããããã
+         ã¹ã¯ãæå®ãã IPV4_ADDR_LOCAL_MASK ãæ°è¨­ããã
+
+   (38)  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¿½å ããé¢æ°
+         in4_add_ifaddr ãæ°è¨­ããã ãã ãã ãã®é¢æ°ã¯ ITRON TCP/IP
+         API éäºæã§ããã ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®
+         ã¨ãã®ã¿æå¹ã§ããã
+
+   (39)  çµè·¯è¡¨ã«ã¨ã³ããªãè¿½å ããé¢æ° in4_add_route ãæ°è¨­ããããã 
+         ãã ãã®é¢æ°ã¯ ITRON TCP/IP API éäºæã§ããããããã¯ã¼ã¯ã¤
+         ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãã®ã¿æå¹ã§ããã 
+
+   (40)  ARP ã­ã£ãã·ã¥ã§ã ç©ºãããªãã£ãå ´åãã¿ã¤ã ã¢ã¦ãã¾ã§æéã
+         æç­ã®ã¨ã³ããªã¼ãæ¢ç´¢ããé¨åã®åé¡ãä¿®æ­£ããã 
+
+   (41)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         ETHER_NIC_CFG_RELEASE_NET_BUF ãæ°è¨­ããã ããã¯ã¤ã¼ãµããã
+         åºåæã«ãNIC ã§ net_buf ãéæ¾ããå ´åã«æå®ããã
+
+   (42)  ARP å
+¥åã§ãIP ã¢ãã¬ã¹ã®éè¤æ¤åºãè¡ãããã«å¤æ´ãããæ¤åºã
+         ãå ´åã¯ãéè¤ç¸æã® MAC ã¢ãã¬ã¹ã syslog ã«åºåããéè¤ç¸æ
+         ã«ãéè¤ãããã¨ãä¼ããã
+
+   (43)  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã©ã¡ã¼ã¿
+         ARP_CFG_CALLBACK_DUPLICATED ãæ°è¨­ããããããæå®ããã¨ãARP
+         å
+¥åã§ IP ã¢ãã¬ã¹ã®éè¤ãæ¤åºããæã«ã å¿ç¨ãã­ã°ã©ã ã§ç¨æ
+         ããã³ã¼ã«ããã¯é¢æ° arp_callback_duplicated ãå¼ã³åºãã
+
+   (44)  IP åºåæã«ãARP ã­ã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ãæ´æ°ãã¦ãããã
+         FreeBSD ã®å®è£
+ã«ãããã¦ã æ´æ°ããªãããã«å¤æ´ãããARP ã­ã£ã
+         ã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ã¯ ARP å
+¥åã§ã®ã¿æ´æ°ãããã
+
+   (45)  tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã
+         tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªãã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©
+         ã ç¨ã«ã¿ã¼ã²ããä¾å­ããªããã¤ããªã¼ãé¢æ°ã
+         tinet/netinet/in.h ã¨ tinet/netinet/in_subr.c ã«å®ç¾©ããã
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_config.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_config.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_config.txt	(revision 313)
@@ -0,0 +1,844 @@
+    ãªãªã¼ã¹ 1.7ãã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ï¼»2014/11/13ï¼½
+
+1.  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã«ã¤ãã¦
+
+  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼ä»¥ä¸ TINETï¼ã®åç¨®ã¿ã¤ãã³ã°ããã©ã¡ã¼ã¿
+ãã ã³ã³ãã¤ã«æã«æå®ããããã®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãè§£èª¬ããã 
+  TINET ããå¤æ§ãªã¿ã¼ã²ããã«å¯¾å¿ãããããä»¥ä¸ã®ãã¡ã¤ã«ãä½¿ç¨ãã¦ã
+ãã æå®ãããã©ã¡ã¼ã¿ã¯ã ãããã®ãã¡ã¤ã«ã§æå®ãã¦ãããã ã¾ãã
+Makefile ã§æå®ãããã¨ãå¯è½ã§ããã
+
+   (1)   tinet_config.h
+           TINET å
+¨ä½ãã©ã¡ã¼ã¿ãå®ç¾©ãã ä»¥ä¸ã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+         ãã¦ãããTINET ã®ã«ã¼ããã£ã¬ã¯ããªã«ç½®ãã
+
+   (2)   tinet_target_config.hï¼TOPPERS/ASPï¼
+           ã¿ã¼ã²ããã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ããã åã·ã¹ãã ã®ã¿ã¼
+         ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã«ç½®ãã 
+
+   (3)   tinet_cpu_config.hï¼TOPPERS/JSPï¼
+           ãã­ã»ããµã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ãã­ã»ã
+         ãµç¥ç§°ã®ãã£ã¬ã¯ããªã«ç½®ãã
+
+   (4)   tinet_sys_config.hï¼TOPPERS/JSPï¼
+           ã·ã¹ãã ã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ã·ã¹ãã ç¥
+         ç§°ã®ãã£ã¬ã¯ããªã«ç½®ãã
+
+   (5)   tinet_app_config.h
+           ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ããã
+         ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã®ãã£ã¬ã¯ããªã«ç½®ãã 
+
+   (6)   tinet_nic_config.h
+           ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ããã
+         tinet/netdev ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã«ç½®ãã
+         ãã ãã æ±ç¨ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¥ååãã¡ã¤ã«
+         nic_rename.h ã¨ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å¶å¾¡é¢æ°ãå®ç¾©ãã
+         ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããããã«ãªã£ã¦ããã 
+
+2.  ãµãã¼ããããããã¯ã¼ã¯æ©è½
+
+   (1)   SUPPORT_INET6
+         IPv6 ãæå¹ã«ããã
+
+   (2)   SUPPORT_INET4
+         IPv4 ãæå¹ã«ããã
+
+   (3)   API_CFG_IP4MAPPED_ADDR
+         ãããã¯ã¼ã¯å±¤ã¨ãã¦ IPv6 ãé¸æããå ´åã IPv6 ã® API ã«ãã
+         ã IPv6 ã¢ãã¬ã¹ã¨ãã¦ IPv4 å°å½±ã¢ãã¬ã¹ãä½¿ç¨ãããã¨ãå¯è½
+         ã«ããã
+
+   (4)   SUPPORT_TCP
+         TCP ãæå¹ã«ããã
+
+   (5)   SUPPORT_UDP
+         UDP ãæå¹ã«ããã
+
+   (6)   SUPPORT_PPP
+         PPP ãæå¹ã«ããã ãã ããSUPPORT_LOOP ã¨ SUPPORT_ETHER ã¨ã¯
+         æä»ã§ãããããããä¸ã¤æå®ã§ããããªãã PPP ã¯åèå®è£
+ã§ããã
+
+   (7)   SUPPORT_LOOP
+         ã«ã¼ãããã¯ãæå¹ã«ããã ãã ãã SUPPORT_PPP ã¨
+         SUPPORT_ETHER ã¨ã¯æä»ã§ãããããããä¸ã¤æå®ã§ããã ãªãã
+         ã«ã¼ãããã¯ã¯åèå®è£
+ã§ããã
+
+   (8)   SUPPORT_ETHER
+         ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ãæå¹ã«ããã ãã ãã SUPPORT_PPP
+         ã¨ SUPPORT_LOOP ã¨ã¯æä»ã§ãããããããä¸ã¤æå®ã§ããã
+
+   (9)   SUPPORT_MIB
+         SNMP ç¨ç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼ã«æºæ ãããããã¯ã¼ã¯çµ±è¨ã®åå¾
+         ãæå¹ã«ããããã ããTINET èªä½ã¯ãç®¡çæ
+å ±ãã¼ã¹ï¼MIBï¼ã«æº
+         æ ãããããã¯ã¼ã¯çµ±è¨ãæä¾ããã ãã§ï¼SNMP ããµãã¼ããã¦ããªãã
+
+3.  ãããã¯ã¼ã¯å
+¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿
+
+   (1)   NET_TIMER_STACK_SIZE
+         ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 
+
+   (2)   NET_TIMER_PRIORITY
+         ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã 
+
+   (3)   NUM_NET_CALLOUT
+         ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 ä»¥ä¸ã®å¤ãæå®ãããã¨ã
+
+   (4)   NUM_IN6_IFADDR_ENTRY
+         ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãªã¹ãï¼IPv6ï¼ã®ã¨ã³ããªæ°ã§ããã
+
+   (5)   NUM_MPF_NET_BUF_CSEG
+         ãã¬ã¼ã ããã + IP ããã + TCP ããããµã¤ãºã®ãããã¯ã¼ã¯ãã
+         ãã¡æ°ãæå®ããã
+
+   (6)   NUM_MPF_NET_BUF_64
+         ãµã¤ãº 64 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (7)   NUM_MPF_NET_BUF_128
+         ãµã¤ãº 128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (8)   NUM_MPF_NET_BUF_256
+         ãµã¤ãº 256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (9)   NUM_MPF_NET_BUF_512
+         ãµã¤ãº 512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (10)  NUM_MPF_NET_BUF_1024
+         ãµã¤ãº 1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (11)  NUM_MPF_NET_BUF_IF_PDU
+         ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æå¤§ PDUï¼ãã¬ã¼ã ãããé· + MTUï¼
+         ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã 
+
+   (12)  NUM_MPF_NET_BUF_IPV6_MMTU
+         ãã¬ã¼ã ããã + IPv6 MMTUï¼1280ï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+         æ°ãæå®ããã
+
+   (13)  NUM_MPF_NET_BUF_IP_MSS
+         ãã¬ã¼ã ããã + IP MSSï¼576ï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°
+         ãæå®ããã
+
+   (14)  NUM_MPF_NET_BUF4_REASSM
+         IPv4 ç¨ã®åæ§æãããã¡ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡æ°ãæå®ããã
+
+   (15)  NET_COUNT_ENABLE
+         è¨æ¸¬ãããããã¯ã¼ã¯çµ±è¨æ
+å ±ãã ãã­ãã³ã«è­å¥ãã©ã°ã® OR ã§
+         æå®ããã
+
+         PROTO_FLG_PPP_HDLC            PPP ã® HDLC ã®çµ±è¨æ
+å ±
+         PROTO_FLG_PPP_AUTH            PPP ã®èªè¨¼ã«é¢ããçµ±è¨æ
+å ±
+         PROTO_FLG_PPP_LCP             PPP ã® LCP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_PPP_IPCP            PPP ã® IPCP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_PPP                 PPP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_LOOP                ã«ã¼ãããã¯ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ETHER_NIC           ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ETHER               ã¤ã¼ãµãããã®çµ±è¨æ
+å ±
+         PROTO_FLG_IP6                 IPv6 ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ICMPv6              ICMPv6 ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ND6                 è¿é£æ¢ç´¢ã®çµ±è¨æ
+å ±
+         PROTO_FLG_IP4                 IPv4 ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ICMPv4              ICMPv4 ã®çµ±è¨æ
+å ±
+         PROTO_FLG_ARP                 ARP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_TCP                 TCP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_UDP                 UDP ã®çµ±è¨æ
+å ±
+         PROTO_FLG_NET_BUF             ãããã¯ã¼ã¯ãããã¡ã®çµ±è¨æ
+å ±
+
+4.  ãµãã¼ãé¢æ°ã«é¢ä¿ãããã©ã¡ã¼ã¿
+
+   (1)   NUM_IPV6ADDR_STR_BUFF
+         ãµãã¼ãé¢æ° ipv62str ã«ããã¦ã TINET å
+é¨ã§ç¢ºä¿ããæå­åãã
+         ãã¡æ°ãæå®ããã
+
+   (2)   NUM_IPV4ADDR_STR_BUFF
+         ãµãã¼ãé¢æ° ip2str ã«ããã¦ã TINET å
+é¨ã§ç¢ºä¿ããæå­åãã
+         ãã¡æ°ãæå®ããã
+
+   (3)   NUM_MACADDR_STR_BUFF
+         ãµãã¼ãé¢æ° mac2str ã«ããã¦ãTINET å
+é¨ã§ç¢ºä¿ããæå­åãã
+         ãã¡æ°ãæå®ããã
+
+5.  ã¤ã¼ãµãããé¢ä¿ã®ãã©ã¡ã¼ã¿
+
+5. 1  ã¤ã¼ãµãããå
+¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿
+
+   (1)   NUM_DTQ_ETHER_OUTPUT
+         ã¤ã¼ãµãããåºåãã¼ã¿ã­ã¥ã¼ãµã¤ãºãæå®ããã 2 ä»¥ä¸ã®å¤ãæ
+         å®ãããã¨ã
+
+   (2)   ETHER_INPUT_STACK_SIZE
+         ã¤ã¼ãµãããå
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 
+
+   (3)   ETHER_OUTPUT_STACK_SIZE
+         ã¤ã¼ãµãããåºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã 
+
+   (4)   ETHER_INPUT_PRIORITY
+         ã¤ã¼ãµãããå
+¥åã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã 
+
+   (5)   ETHER_OUTPUT_PRIORITY
+         ã¤ã¼ãµãããåºåã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã 
+
+   (6)   ETHER_CFG_UNEXP_WARNING
+         éãµãã¼ããã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããå ´åæå®ããã 
+
+   (7)   ETHER_CFG_802_WARNING
+         IEEE 802.3 ãã¬ã¼ã ã®è­¦åãè¡¨ç¤ºããå ´åæå®ããã ãªãã IEEE
+         802.3 ãã¬ã¼ã ã¯ãµãã¼ããã¦ããªãã
+
+   (8)   ETHER_CFG_MCAST_WARNING
+         ãã«ãã­ã£ã¹ãã®è­¦åãè¡¨ç¤ºããå ´åæå®ããã 
+
+   (9)   ETHER_CFG_ACCEPT_ALL
+         ãã«ãã­ã£ã¹ãã ã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããå ´åæå®ããã 
+
+   (10)  ETHER_NIC_CFG_RELEASE_NET_BUF
+         ã¤ã¼ãµãããåºåæã«ãNIC ã§ net_buf ãéæ¾ããå ´åã«æå®ããã
+
+   (11)  ETHER_CFG_COLLECT_ADDR
+         æå®ããã¨ä¸å®å¨æï¼256 åã®ãã¬ã¼ã åä¿¡æ¯ï¼ã«éä¿¡å
+ã® MAC ã¢
+         ãã¬ã¹ã«ããä¹±æ°ãæ´æ°ããã
+
+5. 2  NICï¼NE2000 äºæï¼é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   IF_ED_CFG_16BIT
+         16 ãããã¢ã¼ãã§ä½¿ç¨ããå ´åã«æå®ããã ãã ãã16 ãããã¢ã¼
+         ãã¯æªå®è£
+ã§ããã
+
+   (2)   NUM_IF_ED_TXBUF
+         éä¿¡ãã¬ã¼ã ã®ãããã¡æ°ãæå®ãããæ¨æºå¤ã¯ 1 ã§ããã 
+
+   (3)   TMO_IF_ED_GET_NET_BUF
+         åä½ã¯ [ms] ã§ã åä¿¡ãã¬ã¼ã ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤
+         ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1 [ms] ã§ããã
+
+   (4)   TMO_IF_ED_XMIT
+         éä¿¡ã¿ã¤ã ã¢ã¦ãå¤ãæå®ãããå¤ã¯ IF_TIMER_HZ ã®åæ°ã§æå®ãã
+         æ¨æºå¤ã¯ (2*IF_TIMER_HZ) ã§ããã
+
+   (5)   IF_ED_CFG_ACCEPT_ALL
+         ãã«ãã­ã£ã¹ãã ã¨ã©ã¼ãã¬ã¼ã ãåä¿¡ããå ´åæå®ããã 
+
+5. 3  NICï¼RTL8019ASï¼é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   ED_BASE_ADDRESS
+         NIC ã®ã¬ã¸ã¹ã¿ã®ãã¼ã¹ã¢ãã¬ã¹ãæå®ããã
+
+   (2)   INHNO_IF_ED
+         å²ãè¾¼ã¿çªå·ãæå®ããã
+
+   (3)   ED_IER_IP_BIT
+         å²ãè¾¼ã¿ã¤ãã¼ãã«ã¬ã¸ã¹ã¿ï¼IERï¼ã®å¶å¾¡ããããæå®ããã 
+
+   (4)   ED_IPR
+         å²ãè¾¼ã¿åªå
+ã¬ã¸ã¹ã¿ï¼IPRï¼ãæå®ããã
+
+   (5)   ED_IPR_IP_BIT
+         å²ãè¾¼ã¿åªå
+ã¬ã¸ã¹ã¿ï¼IPRï¼ã®å¶å¾¡ããããæå®ããã 
+
+   (6)   ED_RTL_CFG0_IRQS
+         å²ãè¾¼ã¿ã¤ãã¼ãã«ã¬ã¸ã¹ã¿ï¼IERï¼ã®å¶å¾¡ããããæå®ããã 
+
+6.  ARP é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   NUM_ARP_ENTRY
+         ARP ã­ã£ãã·ã¥ã¨ã³ããªæ°ãæå®ããã
+
+   (2)   ARP_CACHE_KEEP
+         ARP ã­ã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã å¤ã¯ NET_TIMER_HZ
+         ã®åæ°ã§æå®ããæ¨æºå¤ã¯ (20*60*NET_TIMER_HZ) ã§ããã
+
+   (3)   TMO_ARP_GET_NET_BUF
+         åä½ã¯ [ms] ã§ã ã¢ãã¬ã¹è§£æ±ºè¦æ±ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾
+         ã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (4)   TMO_ARP_OUTPUT
+         åä½ã¯ [ms] ã§ãARP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000
+         [ms] ã§ããã
+
+   (5)   ARP_CFG_CALLBACK_DUPLICATED
+         æå®ããã¨ãARP å
+¥åã§ IP ã¢ãã¬ã¹ã®éè¤ãæ¤åºããæã«ã å¿ç¨
+         ãã­ã°ã©ã ã§ç¨æããã³ã¼ã«ããã¯é¢æ° arp_callback_duplicated
+         ãå¼ã³åºãã
+
+7.  PPP é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+  PPP ã¯åèå®è£
+ã§ããã
+
+7. 1  PPP å
+¨ä½ã«é¢ä¿ãããã©ã¡ã¼ã¿
+
+   (1)   NUM_DTQ_PPP_OUTPUT
+         PPP åºåã®ãã¼ã¿ã­ã¥ã¼ãµã¤ãºãæå®ããã 2 ä»¥ä¸ã®å¤ãæå®ãããã¨ã
+
+   (2)   PPP_INPUT_STACK_SIZE
+         PPP å
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã
+
+   (3)   PPP_OUTPUT_STACK_SIZE
+         PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã
+
+   (4)   PPP_INPUT_PRIORITY
+         PPP å
+¥åã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã
+
+   (5)   PPP_OUTPUT_PRIORITY
+         PPP åºåã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã
+
+   (6)   TMO_PPP_GET_NET_BUF
+         åä½ã¯ [ms] ã§ã åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ã
+         ãæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (7)   PPP_IDLE_TIMEOUT
+         PPP æ¥ç¶ãåæ­ããã¾ã§ã®ã¢ã¤ãã«æéããNET_TIMER_HZ ã®åæ°ã§
+         æå®ããã
+
+7. 2  ã¢ãã ã«é¢ããå®ç¾©
+
+   (1)   PPP_CFG_MODEM
+         ã¢ãã æ¥ç¶ã®å ´åæå®ããã
+
+   (2)   MODEM_CFG_INIT
+         ã¢ãã ã®åæåæå­åãæå®ããã
+
+   (3)   MODEM_CFG_DIAL
+         ãã¤ã¢ã«ã³ãã³ãæå­åãæå®ããã 
+
+   (4)   MODEM_CFG_RETRY_CNT
+         ãã¤ã¢ã«ãªãã©ã¤åæ°ãæ¨æºå¤ã¯ 3 åã§ããã
+
+   (5)   MODEM_CFG_RETRY_WAIT
+         åä½ã¯ [ms] ã§ããã¤ã¢ã«ãªãã©ã¤ã¾ã§ã®å¾
+ã¡æéãæå®ããã æ¨
+         æºå¤ã¯ 10,000 [ms] ã§ããã
+
+   (6)   MODEM_CFG_PHONE_NUMBER
+         æ¥ç¶ç¸æã®é»è©±çªå·ãæå®ããã
+
+7. 3  HDLC ã«é¢ããå®ç¾©
+
+   (1)   DEF_LOCAL_ACCM
+         èªåã®éåæå¶å¾¡æå­ãããï¼ACCMï¼ãæå®ãããæ¨æºå¤ã¯ XON ã¨
+         XOFF ã®ã¿å¤æãããã¨ãæå³ãã 0x000a0000 ã§ããã
+
+   (2)   DEF_REMOTE_ACCM
+         ç¸æã®éåæå¶å¾¡æå­ãããï¼ACCMï¼ã æ¨æºã®åæå¤ã¯å
+¨ã¦å¤æã
+         ããã¨ãæå³ãã 0xffffffff ã§ããã
+
+   (3)   HDLC_PORTID
+         PPP ã«ä½¿ç¨ããã·ãªã¢ã«ãã¼ãçªå·ãæå®ããã
+
+7. 4  LCP ã«é¢ããå®ç¾©
+
+   (1)   LCP_CFG_MRU
+         LCP ã®æå¤§åä¿¡åä½ï¼MRUï¼ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã
+
+   (2)   LCP_CFG_ACCM
+         LCP ã®éåæå¶å¾¡æå­ãããï¼ACCMï¼ãªãã·ã§ã³ããµãã¼ãããã¨
+         ãã«æå®ããã
+
+   (3)   LCP_CFG_MAGIC
+         LCP ã®ãã¸ãã¯çªå·ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã
+
+   (4)   LCP_CFG_PCOMP
+         LCP ã®ãã­ãã³ã«é¨å§ç¸®ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã
+
+   (5)   LCP_CFG_ACCOMP
+         LCP ã®ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®ãªãã·ã§ã³ããµãã¼ãããã¨ãã«æå®ããã
+
+   (6)   LCP_CFG_PAP
+         LCP ã®ãã¹ã¯ã¼ãèªè¨¼ãã­ãã³ã«ï¼PAPï¼ãªãã·ã§ã³ããµãã¼ããã
+         ã¨ãã«æå®ããã
+
+   (7)   LCP_CFG_CHAP
+         LCP ã®ãã£ã¬ã³ã¸ãã³ãã·ã§ã¼ã¯èªè¨¼ãã­ãã³ã«ï¼CHAPï¼ãªãã·ã§
+         ã³ããµãã¼ãããã¨ãã«æå®ããããã ãã ç¾å¨æªå®è£
+ã§ããã 
+
+   (8)   LCP_ECHO_INTERVAL
+         ç¸æã®æ­£å¸¸æ§ãç¢ºèªããããã çµç«¯éã§äº¤æããã¨ã³ã¼ã¡ãã»ã¼ã¸
+         ã®ã¤ã³ã¿ã¼ãã«æéãæå®ããã å¤ã¯ NET_TIMER_HZ ã®åæ°ã§æå®
+         ããæ¨æºå¤ã¯ (20*NET_TIMER_HZ) ã§ããããã ãããã®ãªãã·ã§ã³
+         ã¯ LCP_CFG_MAGIC ãæå®ããã¨ãã®ã¿æå¹ã§ããã
+
+   (9)   LCP_ECHO_FAILS
+         ã¨ã³ã¼ã¡ãã»ã¼ã¸ã®å¤±æåæ°ãæå®ãããæ¨æºå¤ã¯ 3 åã§ãããã
+         ã ãããã®ãªãã·ã§ã³ã¯ LCP_CFG_MAGIC ãæå®ããã¨ãã®ã¿æå¹ã§ããã
+
+   (10)  DEF_LCP_LOCAL_CFGS
+         èªåã®æ§ææ
+å ±ã®æ¢å®å¤ãæå®ããã 
+
+   (11)  DEF_LCP_REMOTE_CFGS
+         ç¸æã«è¨±ãæ§ææ
+å ±ã®æ¢å®å¤ãæå®ããã 
+
+7. 5  ãã¹ã¯ã¼ãèªè¨¼ãã­ãã³ã«ï¼PAPï¼ã«é¢ããå®ç¾©
+
+   (1)   DEF_PAP_TIMEOUT
+         ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã§èªè¨¼ããå ´åã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã
+         å¤ã¯ NET_TIMER_HZ ã®åæ°ã§æå®ãã æ¨æºå¤ã¯ (3*NET_TIMER_HZ)
+         ã§ãããæå®ããªãã¨æ°¸ä¹
+ã«å¾
+ã¡ç¶æ
+ã«ãªãã 
+
+   (2)   DEF_PAP_REQTIME
+         ãµã¼ãã¢ã¼ãã§èªè¨¼ããå ´åã®ã¿ã¤ã ã¢ã¦ãå¤ãæå®ããã å¤ã¯
+         NET_TIMER_HZ ã®åæ°ã§æå®ãã æ¨æºå¤ã¯ (30*NET_TIMER_HZ) ã§ã
+         ãã æå®ããªãã¨æ°¸ä¹
+ã«å¾
+ã¡ç¶æ
+ã«ãªãã
+
+   (3)   MAX_PAP_REXMT
+         èªè¨¼è¦æ±ã¿ã¤ã ã¢ã¦ãã®æå¤§åéåæ°ãæå®ããã æ¨æºå¤ã¯ 10 å
+         ã§ããã
+
+7. 6  èªè¨¼ã«é¢ããå®ç¾©
+
+   (1)   AUTH_CFG_CLIENT
+         ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åæå®ããã AUTH_CFG_SERVER ã¨åæã«æ
+         å®ãããã¨ãå¯è½ã§ããã
+
+   (2)   AUTH_CFG_SERVER
+         ãµã¼ãã¢ã¼ãã®å ´åæå®ããã AUTH_CFG_CLIENT ã¨åæã«æå®ãã
+         ãã¨ãå¯è½ã§ããã
+
+   (3)   AUTH_LOCAL_USER
+         ãµã¼ãã¢ã¼ãã®å ´åã ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶åãæå®ããã 
+
+   (4)   AUTH_LOCAL_PASSWD
+         ãµã¼ãã¢ã¼ãã®å ´åã ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ããæå®ããã 
+
+   (5)   AUTH_REMOTE_USER
+         ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åã ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶åãæå®ããã 
+
+   (6)   AUTH_REMOTE_PASSWD
+         ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®å ´åã ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ããæå®ããã 
+
+8.  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã¯åèå®è£
+ã§ããã 
+
+   (1)   LOMTU
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã® MTU ãæå®ããã
+
+   (2)   NUM_DTQ_LOOP_OUTPUT
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãºãæå®ããã 
+
+   (3)   NUM_DTQ_LOOP_INPUT
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å
+¥åãã¼ã¿ã­ã¥ã¼ãµã¤ãºãæå®ããã 
+
+   (4)   LOOP_INPUT_STACK_SIZE
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã
+
+   (5)   LOOP_OUTPUT_STACK_SIZE
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã
+
+   (6)   LOOP_INPUT_PRIORITY
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å
+¥åã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã 
+
+   (7)   LOOP_OUTPUT_PRIORITY
+         ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã 
+
+9.  DHCP é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   DHCP6_CLI_CFG
+         DHCPv6 ã® DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããã ãã ãã
+         TINET ã¯ã DHCPv6 ãå®è£
+ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ãDHCP ã¡ã
+         ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã 
+
+   (2)   DHCP4_CLI_CFG
+         DHCPv4 ã® DHCP ã¡ãã»ã¼ã¸ãåä¿¡ããå ´åã«æå®ããã ãã ãã
+         TINET ã¯ãDHCPv4 ãå®è£
+ãã¦ããªããå¿ç¨ãã­ã°ã©ã ã§ã DHCP ã¡ã
+         ã»ã¼ã¸ãåä¿¡ããããã®å®ç¾©ã§ããã 
+
+10.  IPv6/IPv4 å
+±éãã©ã¡ã¼ã¿
+
+   (1)   TMO_IN_REDIRECT
+         åãç´ãã¡ãã»ã¼ã¸ã§è¨­å®ãããã«ã¼ãã£ã³ã°æ
+å ±ã®æå¹æéãæ
+         å®ãããæ¨æºå¤ã¯ 10*60*1000 [ms] ã§ããã
+
+11.  IPv6 é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   IP6_CFG_FRAGMENT
+         ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã 
+
+   (2)   NUM_IP6_FRAG_QUEUE
+         ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãºãæå®ããã æ¨æºå¤ã¯ 2 ã§ããã
+
+   (3)   TMO_IP6_FRAG_GET_NET_BUF
+         ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ãã
+         æå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (4)   IP6_CFG_FRAG_REASSM_SIZE
+         ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ããã
+         æ¨æºå¤ã¯ 4096 ã§ããã
+
+   (5)   NUM_IN6_STATIC_ROUTE_ENTRY
+         ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 
+
+   (6)   NUM_IN6_REDIRECT_ROUTE_ENTRY
+         ã«ã¼ãã£ã³ã°è¡¨ã§äºãç¢ºä¿ããã åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£
+         ã³ã°ã¨ã³ããªæ°ãæå®ããã0 ãæå®ããã¨ã åãç´ãï¼ICMPï¼ã
+         ç¡è¦ããã
+
+   (7)   IP6_CFG_IP4MAPPED_ADDR
+         IPv6 ã®ã¿ã«å¯¾å¿ããã¢ããªã±ã¼ã·ã§ã³ã§ IPv4 å°å½±ã¢ãã¬ã¹ãå©ç¨
+         ãã¦ãIPv4 ãã¼ã¿ã°ã©ã ãæ±ãå ´åã«æå®ããã
+
+12.  IPv4 é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   IPV4_ADDR_LOCAL
+         èªåã® IP ã¢ãã¬ã¹ãæå®ããã ãã ããPPP ãä½¿ç¨ããã¨ããç¸
+         æã«å²å½ã¦ã¦ãããå ´åã¯ 0 ãæå®ãããã¨ã
+
+   (2)   IPV4_ADDR_REMOTE
+         ç¸æã® IP ã¢ãã¬ã¹ãæå®ããããã ããPPP ãä½¿ç¨ããã¨ãã ç¸
+         æã«å²å½ã¦ã¦ãããå ´åã¯ 0 ãæå®ãããã¨ã
+
+   (3)   IPV4_ADDR_LOCAL_MASK
+         ãµãããããã¹ã¯ãæå®ããã ãã ãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼
+         ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã 
+
+   (4)   IPV4_ADDR_DEFAULT_GW
+         ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ãæå®ããã ãã ãããããã¯ã¼ã¯ã¤ã³
+         ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã 
+
+   (5)   IP4_CFG_FRAGMENT
+         ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ãå ´åã«æå®ããã 
+
+   (6)   NUM_IP4_FRAG_QUEUE
+         ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãµã¤ãºãæå®ãããæ¨æºå¤ã¯ 2 ã§ããã 
+
+   (7)   TMO_IP4_FRAG_GET_NET_BUF
+         ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿ã¤ã ã¢ã¦ãã
+         æå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (8)   IP4_CFG_FRAG_REASSM_SIZE
+         ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãæå®ããã
+         æ¨æºå¤ã¯ 4096 ã§ããã
+
+   (9)   NUM_IN4_STATIC_ROUTE_ENTRY
+         ã«ã¼ãã£ã³ã°è¡¨ã®éçã«ã¼ãã£ã³ã°ã¨ã³ããªæ°ãæå®ããã 
+
+   (10)  NUM_IN4_REDIRECT_ROUTE_ENTRY
+         ã«ã¼ãã£ã³ã°è¡¨ã§äºãç¢ºä¿ããã åãç´ãï¼ICMPï¼ã«ããã«ã¼ãã£
+         ã³ã°ã¨ã³ããªæ°ãæå®ããã 0 ãæå®ããã¨ãåãç´ãï¼ICMPï¼ã
+         ç¡è¦ããã
+
+13.  ICMPv6/v4 é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   ICMP_REPLY_ERROR
+         ICMP ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããå ´åã«æå®ããã
+
+   (2)   TMO_ICMP_OUTPUT
+         åä½ã¯ [ms] ã§ã IP åºåã®ã¿ã¤ã ã¢ã¦ããæå®ããã æ¨æºå¤ã¯
+         1000 [ms] ã§ããã
+
+14.  è¿é£æ¢ç´¢ï¼ICMPv6ï¼é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   IP6_CFG_AUTO_LINKLOCAL
+         ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®èªåè¨­å®ãè¡ãå ´åã«æå®ããã ãã ãã
+         ç¾å¨ã¯ãèªåè¨­å®ä»¥å¤ã«ã¢ãã¬ã¹ãè¨­å®ããæ¹æ³ããªãã®ã§ã å¿
+ã
+         æå®ããå¿
+è¦ãããã
+
+   (2)   NUM_IP6_DAD_COUNT
+         éè¤ã¢ãã¬ã¹æ¤åºã§éä¿¡ããè¿é£è¦è«ã®åæ°ã§ã 0 ãæå®ããã¨ã
+         éè¤ã¢ãã¬ã¹æ¤åºãè¡ããªããæ¨æºå¤ã¯ 1 ã§ããã
+
+   (3)   NUM_ND6_CACHE_ENTRY
+         è¿é£ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ããã 
+
+   (4)   NUM_ND6_DEF_RTR_ENTRY
+         ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®ã¨ã³ããªæ°ã§ãæå¤§å¤ã¯ 16 ã§ããã0
+         ãæå®ããã¨ã«ã¼ã¿éç¥ãåä¿¡ããªãã ãã ããç¾å¨ã¯ãã«ã¼ã¿é
+         ç¥ã®åä¿¡ä»¥å¤ã«ãµã¤ãã­ã¼ã«ã«ã¢ãã¬ã¹ç­ãè¨­å®ããæ¹æ³ããªãã 
+
+   (5)   NUM_ND6_RTR_SOL_RETRY
+         èµ·åæã®ã«ã¼ã¿è¦è«åºååæ°ã§ã 0 ãæå®ããã¨ã«ã¼ã¿è¦è«ãåºå
+         ããªãã
+
+   (6)   NUM_ND6_PREFIX_ENTRY
+         ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã¨ã³ããªæ°ã§ãæå¤§å¤ã¯ 16 ã§ããã
+
+   (7)   NUM_IN6_HOSTCACHE_ENTRY
+         IPv6 ç¨ãã¹ãæ
+å ±ã­ã£ãã·ã¥ã®ã¨ã³ããªæ°ã§ã 0 ãæå®ããã¨
+         IPv6 ç¨ãã¹ãæ
+å ±ã­ã£ãã·ã¥ãçµè¾¼ã¾ãªããã¾ãããã®å ´åãPath
+         MTU ã¸ã®å¯¾å¿ãéå®çã«ãªãã
+
+   (8)   TMO_ND6_NS_OUTPUT
+         è¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (9)   TMO_ND6_NA_OUTPUT
+         è¿é£éç¥åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (10)  TMO_ND6_RS_OUTPUT
+         ã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (11)  TMO_ND6_RTR_SOL_DELAY
+         ã«ã¼ã¿è¦è«åºåé
+å»¶ãæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (12)  TMO_ND6_RTR_SOL_INTERVAL
+         ã«ã¼ã¿è¦è«åºåééãæå®ãããæ¨æºå¤ã¯ 3000 [ms] ã§ããã
+
+15.  TCP é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   TCP_CFG_EXTENTIONS
+         ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãæå¹ã«ããã
+
+   (2)   MAX_TCP_SEG_SIZE
+         TCP ã®æå¤§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã ãã ããã³ãã¯ã·ã§ã³é
+         è¨­æã«äº¤æããæå¤§ã»ã°ã¡ã³ããµã¤ãºã¨ã¯ç°ãªãã æ¨æºå¤ã¯ä»¥ä¸ã®
+         å¤ã§ããã
+
+            (IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+
+   (3)   DEF_TCP_SND_SEG
+         éä¿¡ã®æå¤§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã ãã ããã³ãã¯ã·ã§ã³é
+         è¨­æã®åæã»ã°ã¡ã³ãã§ãç¸æããå¤ãä¸ããããæã¯ã ä¸ããã
+         ãå¤ã«èª¿æ´ãããã
+
+   (4)   DEF_TCP_RCV_SEG
+         åä¿¡ã®æå¤§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã TCP_CFG_MAX_SEG ãæå®
+         ããå ´åã¯ãã³ãã¯ã·ã§ã³éè¨­æã«ãTCP ã® MSS ãªãã·ã§ã³ã§ç¸æ
+         ã«ä¼ããããªããRFC791 ã§ã¯ã ãã¹ãã¯å°ãªãã¨ã 576 ãªã¯ãã
+         ãåä¿¡ã§ããªããã°ãªããªãã¨è¦å®ããã¦ããã®ã§ã TCP ãããã¨
+         IP ãããåãå¼ãã 536 ä»¥ä¸ã«ãªããªãããã«ãã¹ãã§ããã
+
+   (5)   MAX_TCP_REALLOC_SIZE
+         åä¿¡ããã»ã°ã¡ã³ãã®é çªãå
+¥ãæ¿ããã¨ãã æ°ãã«ãããã¯ã¼ã¯
+         ãããã¡ãå²å½ã¦ã¦ã ãã¼ã¿ãã³ãã¼ãããµã¤ãºã®ãããå¤ãä¾ã
+         ã°ãPPP ã§ã¯ã åä¿¡ããã¾ã§ã ãªã¯ãããæ°ãä¸æã®ããã æå¤§
+         PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã«ä½¿ããã TCP ã®åæ§æ
+         ã­ã¥ã¼ã«ä¿çããã¦ãã¾ãã¨ãæå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãã
+         ãã¡ãå²å½ã¦ããã¨ãã§ããªããªãããã å¶éãè¨­ãã¦ããã 
+
+   (6)   TMO_TCP_GET_NET_BUF
+         åä½ã¯ [ms] ã§ã åºåã»ã°ã¡ã³ãç¨ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¿
+         ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000 [ms] ã§ããã
+
+   (7)   TMO_TCP_OUTPUT
+         åä½ã¯ [ms] ã§ãTCP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000
+         [ms] ã§ããã
+
+   (8)   TCP_CFG_MAX_SEG
+         ã³ãã¯ã·ã§ã³éè¨­æã®åæã»ã°ã¡ã³ãã«æå¤§ã»ã°ã¡ã³ããµã¤ãºãªã
+         ã·ã§ã³ãã¤ãã¦éä¿¡ããå ´åæå®ããã 
+
+   (9)   TCP_CFG_DELAY_ACK
+         ç¢ºèªå¿ç­ãé
+ãããå ´åæå®ããã
+
+   (10)  TCP_CFG_ALWAYS_KEEP
+         å¸¸ã«ã­ã¼ãã¢ã©ã¤ãããå ´åæå®ããã 
+
+   (11)  TCP_OUT_TASK_STACK_SIZE
+         TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã
+
+   (12)  TCP_OUT_TASK_PRIORITY
+         TCP åºåã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã
+
+   (13)  NUM_TCP_TW_CEP_ENTRY
+         ã¿ã¹ã¯ãã Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã§ã
+         Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
+
+   (14)  TCP_CFG_RWBUF_CSAVE_ONLY
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã
+         ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦
+         ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ãã­ã°ã©ã å
+ã®é
+å
+         ãæå®ãã¦ãç¡è¦ããã
+
+   (15)  TCP_CFG_RWBUF_CSAVE
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP
+         éä¿¡ç«¯ç¹ãçæããéç API ã§ãåä¿¡ã¦ã¤ã³ããããã¡ã®å
+é ­ã¢ã
+         ã¬ã¹ã®æå®ã«ãå¿ç¨ãã­ã°ã©ã å
+ã®é
+åãæå®ããå ´åã¯ã åä¿¡ã¦ã£
+         ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ããªãã 
+
+   (16)  TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
+         TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã åä¿¡ã¦ã£
+         ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã ãã ããæ­£å¸¸ã«åä¿¡ããã»
+         ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ãããã¾ãã æå®ããªã
+         ã¨å¶éããªããæ¨æºå¤ã¯ 2 ã§ããã
+
+   (17)  TCP_CFG_SWBUF_CSAVE_ONLY
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ã¿ã ã
+         ã®æ©è½ã®ã¿ä½¿ç¨ãããTCP éä¿¡ç«¯ç¹ãçæããéç API ã§ãéä¿¡ã¦
+         ã¤ã³ããããã¡ã®å
+é ­ã¢ãã¬ã¹ã®æå®ã«ã å¿ç¨ãã­ã°ã©ã å
+ã®é
+å
+         ãæå®ãã¦ãç¡è¦ããã
+
+   (18)  TCP_CFG_SWBUF_CSAVE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãçµè¾¼ããTCP
+         éä¿¡ç«¯ç¹ãçæããéç API ã§ãéä¿¡ã¦ã¤ã³ããããã¡ã®å
+é ­ã¢ã
+         ã¬ã¹ã®æå®ã«ã å¿ç¨ãã­ã°ã©ã å
+ã®é
+åãæå®ããå ´åã¯ãåä¿¡ã¦ã£
+         ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ããªãã 
+
+   (19)  TCP_CFG_SWBUF_CSAVE_MAX_SIZE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£
+         ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºã æ¨æº
+         å¤ã¯ IF_PDU_SIZE ã§ããã
+
+   (20)  TCP_CFG_SWBUF_CSAVE_MIN_SIZE
+         TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã éä¿¡ã¦ã£
+         ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºã æ¨æº
+         å¤ã¯ 0 ã§ããã
+
+   (21)  TCP_CFG_NON_BLOCKING
+         TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã ãã ãã ãªãªã¼ã¹
+         1.2 ã¨ã®äºææ§ã®ãããtinet/tinet_config.h ã«æå®ããã¦ããã
+         æ¢å®ã§ã¯çµè¾¼ã¾ããããã«ãªã£ã¦ããã æå®ãè§£é¤ããå ´åã¯ã
+         tinet_app_config.h ãªã©ã§ã #undef ã«ããããã¯ã­æå®ãæªå®ç¾©
+         ã«ããã
+
+   (22)  TCP_CFG_TRACE
+         TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ãçµè¾¼ãã
+
+   (23)  TCP_CFG_TRACE_IPV4_RADDR
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹ãæå®ããã
+         IPV4_ADDRANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+
+   (24)  TCP_CFG_TRACE_LPORTNO
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·ãæå®ããã
+         TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+
+   (25)  TCP_CFG_TRACE_RPORTNO
+         ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·ãæå®ããã
+         TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+
+   (26)  TCP_CFG_URG_OFFSET
+         ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãããå¤ã -1 ã®å ´åã¯ BSD ã®
+         å®è£
+ã¨åãã§ãç·æ¥ãã¤ã³ã¿ã¯ã ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®
+         ãã¤ããå·®ãã å¤ã 0 ã®å ´åã¯ RFC1122 ã®è¦å®ã¨åãã§ãç·æ¥ã
+         ã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ããæ¢å®å¤ã¯ -1 ã§ããã
+
+   (27)  TCP_CFG_NON_BLOCKING_COMPAT14
+         ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ°
+         p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ­£ããããTINET ãªãªã¼ã¹ 1.4
+         ä»¥åã§ã¯å¤æ¸¡ãã¨ãã¦ãããTINET ãªãªã¼ã¹ 1.5 ä»¥éã§ã¯ããã®å®
+         è£
+ä¸ã®èª¤ããä¿®æ­£ããããã®ãããTINET ãªãªã¼ã¹ 1.4 ä»¥åã¨äºæ
+         æ§ãç¶­æãããã TCP_CFG_NON_BLOCKING_COMPAT14 ãæå®ããã¨ã
+         UDP ã®ã³ã¼ã«ããã¯é¢æ°ã®å¼ã³åºãã§ p_parblk ãå¤æ¸¡ãã«ããã
+
+16.  UDP é¢ä¿ã®ãã©ã¡ã¼ã¿
+
+   (1)   UDP_CFG_EXTENTIONS
+         ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãæå¹ã«ããã
+
+   (2)   NUM_DTQ_UDP_RCVQ
+         éã³ã¼ã«ããã¯ç¨ UDP åä¿¡ã­ã¥ã¼ã®ãµã¤ãºãæå®ããã
+
+   (3)   TMO_UDP_OUTPUT
+         åä½ã¯ [ms] ã§ãUDP åºåã¿ã¤ã ã¢ã¦ããæå®ãããæ¨æºå¤ã¯ 1000
+         [ms] ã§ããã
+
+   (4)   UDP_CFG_IN_CHECKSUM
+         UDP ã®å
+¥åãã§ãã¯ãµã ã®æ¤æ»ãè¡ãå ´åãæå®ããã
+
+   (5)   UDP_CFG_OUT_CHECKSUM
+         UDP ã®åºåãã§ãã¯ãµã ã®è¨­å®ãè¡ãå ´åãæå®ããã
+
+   (6)   UDP_CFG_NON_BLOCKING
+         UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã ãã ãã ãªãªã¼ã¹
+         1.2 ã¨ã®äºææ§ã®ãããtinet/tinet_config.h ã«æå®ããã¦ããã
+         æ¢å®ã§ã¯çµè¾¼ã¾ããããã«ãªã£ã¦ããã æå®ãè§£é¤ããå ´åã¯ã
+         tinet_app_config.h ãªã©ã§ã#undef ã«ããã ãã¯ã­æå®ãæªå®ç¾©
+         ã«ããã
+
+   (7)   NUM_DTQ_UDP_OUTPUT
+         UDP åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãºãæå®ããã ãã ãããã³ãã­ãã­ã³
+         ã°ã³ã¼ã«ãçµè¾¼ãã æã«æå¹ã§ããã 
+
+   (8)   UDP_OUT_TASK_STACK_SIZE
+         UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºãæå®ããã ãã ãããã³ãã­ã
+         ã­ã³ã°ã³ã¼ã«ãçµè¾¼ãã æã«æå¹ã§ããã 
+
+   (9)   UDP_OUT_TASK_PRIORITY
+         UDP åºåã¿ã¹ã¯ã®åªå
+åº¦ãæå®ããã ãã ãããã³ãã­ãã­ã³ã°ã³ã¼
+         ã«ãçµè¾¼ãã æã«æå¹ã§ããã
+
+   (10)  UDP_CFG_NON_BLOCKING_COMPAT14
+         ITRON TCP/IP API ã®ä»æ§ã«å®ç¾©ããã¦ããã³ã¼ã«ããã¯é¢æ°ã®å¼æ°
+         p_parblk ã«é¢ãã¦ãã¢ãã¬ã¹æ¸¡ããæ­£ããããTINET ãªãªã¼ã¹ 1.4
+         ä»¥åã§ã¯å¤æ¸¡ãã¨ãã¦ãããTINET ãªãªã¼ã¹ 1.5 ä»¥éã§ã¯ããã®å®
+         è£
+ä¸ã®èª¤ããä¿®æ­£ããããã®ãããTINET ãªãªã¼ã¹ 1.4 ä»¥åã¨äºæ
+         æ§ãç¶­æãããã UDP_CFG_NON_BLOCKING_COMPAT14 ãæå®ããã¨ã
+         UDP ã®ã³ã¼ã«ããã¯é¢æ°ã®å¼ã³åºãã§ p_parblk ãå¤æ¸¡ãã«ããã
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_defs.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_defs.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_defs.txt	(revision 313)
@@ -0,0 +1,58 @@
+                  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼TINETï¼
+       ãªãªã¼ã¹ 1.7ããã­ã»ããµã»ã·ã¹ãã ä¾å­å®ç¾©ï¼»2015/12/19ï¼½
+
+1.  ãã­ã»ããµã»ã·ã¹ãã ä¾å­å®ç¾©ã«ã¤ãã¦
+
+  TINET ããå¤æ§ãªã¿ã¼ã²ããã«å¯¾å¿ããããã®ã­ã»ããµã»ã·ã¹ãã ä¾å­å®ç¾©
+ã§ãä»¥ä¸ã®ãã¡ã¤ã«ãä½¿ç¨ãã¦ããã 
+
+   (1)   tinet_defs.h
+           TINET å
+¨ä½ãã©ã¡ã¼ã¿ãå®ç¾©ãã ä»¥ä¸ã®ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ã
+         ãã¦ãããTINET ã®ã«ã¼ããã£ã¬ã¯ããªã«ç½®ãã
+
+   (2)   tinet_target_defs.hï¼TOPPERS/ASPï¼
+           ã¿ã¼ã²ããã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ããã åã·ã¹ãã ã®ã¿ã¼
+         ã²ããä¾å­é¨ã®ãã£ã¬ã¯ããªã«ç½®ãã 
+
+   (3)   tinet_cpu_defs.hï¼TOPPERS/JSPï¼
+           ãã­ã»ããµã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ãããconfig ã®ãã­ã»ã
+         ãµç¥ç§°ã®ãã£ã¬ã¯ããªã«ç½®ãã
+
+   (4)   tinet_nic_defs.h
+           ã¤ã¼ãµãããã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ãããã©ã¡ã¼ã¿ãå®ç¾©ããã
+         tinet/netdev ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã£ã¬ã¯ããªã«ç½®ãã
+
+2.  ãã­ã»ããµã«ä¾å­ããå®ç¾©
+
+   (1)   CPU_NET_ALIGN
+           tinet_target_defs.hï¼TOPPERS/ASPï¼ã tinet_cpu_defs.h
+         ï¼TOPPERS/JSPï¼ã§å®ç¾©ããããã­ã»ããµã®ã¢ã©ã¤ã¡ã³ãã«é¢ããå®
+         ç¾©ã§ããã IP ãããä»¥éã¯ 4 ãªã¯ãããåä½ã«ã¢ã¯ã»ã¹ããå ´å
+         ããããIP ãããä»¥éãã4 ãªã¯ãããåä½ã§ãã¢ã©ã¤ã³ããå¿
+è¦
+         ãããã° 4 ãæå®ããã ãã®å®ç¾©ã¯ã ãããã¯ã¼ã¯ãããã¡
+         T_NET_BUF ã«åæ ãããã
+
+3.  NIC ã«ä¾å­ããå®ç¾©
+
+   (1)   IF_ETHER_NIC_HDR_ALIGN
+           tinet_nic_defs.h ã§å®ç¾©ããã4 ãªã¯ãããåä½ã«ãã¼ã¿ãå
+¥åº
+         åãã NIC ãããããã¤ã¼ãµããããããã¯ 14 ãªã¯ãããã®ããã
+         å 2 ãªã¯ããããããã¼ã«ããå¿
+è¦ãããã ãã®ãããª NIC ã§ã
+         ã¤ã¼ãµãããããã T_ETHER_HDR ã§ãã¢ã©ã¤ã³ãèª¿æ´ããå ´åã¯ã
+         èª¿æ´éãæå®ãããèª¿æ´ããªãå ´åã¯ã 0 ãæå®ããã 
+
+   (2)   IF_PDU_HDR_PADDING
+           tinet_nic_defs.h ã§å®ç¾©ããã T_NET_BUF_IF_PDU ã§ããã¬ã¼ã 
+         ã®çµããã®å¢çã®èª¿æ´éãæå®ãããä¾ãã°ã ã¤ã¼ãµãããã®ãã¬ã¼
+         ã é·ï¼CRC ãé¤ãï¼ã® 1,514 ãªã¯ããããã 16 ãªã¯ãããå¢çã«
+         èª¿æ´ããå ´åã¯ã 16 ãªã¯ãããã®åæ°ã§ãã 1,520 ãªã¯ãããã
+         ãã®å·®å 6 ãæå®ããã
+
+   (3)   IF_ETHER_NIC_NET_BUF_ALIGN
+           tinet_nic_defs.h ã§å®ç¾©ããããããã¯ã¼ã¯ãããã¡ã§ãã¢ã©ã¤
+         ã³ãèª¿æ´ããå ´åã¯ã èª¿æ´éãæå®ãããèª¿æ´ããªãå ´åã¯ãå®ç¾©
+         ããªãã
Index: rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_sample.txt
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_sample.txt	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/doc/tinet_sample.txt	(revision 313)
@@ -0,0 +1,1069 @@
+                  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ï¼TINETï¼
+        ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ï¼ãªãªã¼ã¹ 1.7ï¼ï¼»2017/5/15ï¼½
+
+1.  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³
+
+  ãµã³ãã«ã¨ãã¦ãä»¥ä¸ã®ã¢ããªã±ã¼ã·ã§ã³ãæä¾ãã¦ãããããå
+ã¯ãã¢ã
+ãªã±ã¼ã·ã§ã³åãå¯¾å¿ãããããã¯ã¼ã¯å±¤ãã§ãããIPv64 ã¯ãããã¯ã¼ã¯å±¤
+ã¨ãã¦ IPv6 ã¨ IPv4 ã®ä¸¡æ¹ãä½¿ç¨ãããã¨ãæå³ãã¦ããã IPv64m ã¯ã
+IPv4 ã¯ IPv6 ã® IPv4 å°å½±ã¢ãã¬ã¹ã«ããå®è£
+ãã¦ããã
+
+   (1)   IPv6 TCP ECHO ãµã¼ããechos6ãIPv6ã
+           ãããã¯ã¼ã¯ã¢ããªã±ã¼ã·ã§ã³ã«å¿
+è¦ãªåãã¡ã¤ã«ã®è¨­å®æ¹æ³ã®
+         åèã¨ãªãã TCP ã¨ã³ã¼ãµã¼ãæ©è½ã®ã¿ã®ã·ã³ãã«ãªã¢ããªã±ã¼ã·ã§
+         ã³ã§ããã
+   (2)   IPv4 TCP ECHO ãµã¼ããechos4ãIPv4ã
+           ãããã¯ã¼ã¯ã¢ããªã±ã¼ã·ã§ã³ã«å¿
+è¦ãªåãã¡ã¤ã«ã®è¨­å®æ¹æ³ã®
+         åèã¨ãªãã TCP ã¨ã³ã¼ãµã¼ãæ©è½ã®ã¿ã®ã·ã³ãã«ãªã¢ããªã±ã¼ã·ã§
+         ã³ã§ããã
+   (3)   IPv6 UDP ECHO ãµã¼ããusrv6ãIPv6ã
+           ãããã¯ã¼ã¯ã¢ããªã±ã¼ã·ã§ã³ã«å¿
+è¦ãªåãã¡ã¤ã«ã®è¨­å®æ¹æ³ã®
+         åèã¨ãªãã UDP ã¨ã³ã¼ãµã¼ãæ©è½ã®ã¿ã®ã·ã³ãã«ãªã¢ããªã±ã¼ã·ã§
+         ã³ã§ããã
+   (4)   IPv4 UDP ECHO ãµã¼ããusrv4ãIPv4ã
+           ãããã¯ã¼ã¯ã¢ããªã±ã¼ã·ã§ã³ã«å¿
+è¦ãªåãã¡ã¤ã«ã®è¨­å®æ¹æ³ã®
+         åèã¨ãªãã UDP ã¨ã³ã¼ãµã¼ãæ©è½ã®ã¿ã®ã·ã³ãã«ãªã¢ããªã±ã¼ã·ã§
+         ã³ã§ããã
+   (5)   ã¯ã©ã¤ã¢ã³ããµã¼ãã»ã»ãããnservãIPv64/IPv6/IPv64m/IPv4ã
+           ä»¥ä¸ã«ç¤ºããµã¼ããæä¾ããã¦ããã å¿
+è¦ã«å¿ãã¦çµã¿è¾¼ããµã¼
+         ããé¸æã§ããã
+
+            [1]   WWW ãµã¼ã
+            [2]   TCP ã¨ã³ã¼ãµã¼ã
+            [3]   UDP ã¨ã³ã¼ãµã¼ã
+            [4]   TCP ãã£ã¹ã«ã¼ããµã¼ã
+            [5]   ç°¡æã³ã³ã½ã¼ã«
+
+         ã¾ããã¯ã©ã¤ã¢ã³ãã¨ãã¦ã¯ä»¥ä¸ã®æ©è½ãæä¾ããã¦ããã å¿
+è¦ã«
+         å¿ãã¦çµã¿è¾¼ãã¯ã©ã¤ã¢ã³ããé¸æã§ããã 
+
+            [1]   TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ã
+            [2]   UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ã
+            [3]   TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ã
+            [4]   UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ã
+            [5]   DNS ãªã¾ã«ãã¼
+            [6]   DHCPv6 ã¯ã©ã¤ã¢ã³ã
+            [7]   DHCPv4 ã¯ã©ã¤ã¢ã³ã
+            [8]   ping
+
+   (6)   TOPPERS ASP/JSP ãµã³ãã«ãã­ã°ã©ã  sample1 ã®ãããã¯ã¼ã¯å¯¾å¿
+         ãã­ã°ã©ã ãsample1nãIPv6/IPv4ã
+           TOPPERS/ASP ã¨ TOPPERS/JSP ã®ãµã³ãã«ãã­ã°ã©ã  sample1 ã®
+         ãããã¯ã¼ã¯å¯¾å¿ãã­ã°ã©ã ã§ãããtelnet ã§æ¥ç¶ããã¨ãã·ãªã¢
+         ã«ã®å
+¥åºåãå¼ãç¶ãã§å®è¡ãããåæ­ããã¨ã å
+ã®ã·ãªã¢ã«ã«å
+¥
+         åºåãæ»ãã
+   (7)   æå°æ§æãµã¼ããminsvãIPv4ã
+           WWW ãµã¼ãã»ã¿ã¹ã¯ã¨ TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã®ã¿ãããªãæ
+         å°æ§æã®ãµã¼ãã§ãããH8/3069F ãå
+èµãã¦ãã RAMï¼16K ãã¤ãï¼
+         ã¨ ROMï¼512K ãã¤ãï¼ã«åã¾ããå¤é¨ã¡ã¢ãªã¯ä¸è¦ã§ãããç¾å¨ã¯ã
+         åå·éä¿¡è¨è£
+ãµã¼ãã¹è£½ NKEV-010H8ï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.2
+         ã®ã¿ï¼ã¨ç§æé»å­éåè£½ H8/3069Fï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.1
+         ä»¥éã¨ TOPPERS/ASPï¼ã®ã·ã¹ãã ã«å¯¾å¿ãã¦ããã
+
+2.  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯
+
+  TINET ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ã¯ã TOPPERS/ASP ç°å¢ã¨
+TOPPERS/JSP ç°å¢ã«ãããã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ã¨ã»ã¼åãã§ã
+ãã
+
+   (1)   TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡
+           TINET ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ç¨ãã£ã¬ã¯ããªãä½æãã
+         TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããå®è¡ããã
+
+         [1]   TOPPERS/ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®
+               å®è¡
+
+                  $ mkdir NETOBJ
+                  $ cd NETOBJ
+                  $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A echos6
+                                                      -i ether -v if_ed -n inet6 -s tcp
+
+               ãªãã·ã§ã³ï¼-Tã-Aã-aã-Uã-Lã-fã-Dã-lã-tã-dã -rã
+               -pã -gï¼ã¯ãTOPPERS/ASP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªã
+               ãã¨åãã§ããã TOPPERS/ASP ã«ã¼ãã«ã¦ã¼ã¶ã¼ãºããã¥ã¢
+               ã«ï¼user.txtï¼ã®ã ï¼ï¼ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãã
+               ã®ä½¿ãæ¹ ããåç
+§ãããã¨ããã®ä»ã®ãªãã·ã§ã³ã«ã¤ãã¦ã¯ã
+               ã9.2 TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§
+               ã³ ããåç
+§ãããã¨ã 
+                 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥ã
+ã«æ§ç¯ããæ¹æ³ã«ã¤ã
+               ã¦ã¯ã TOPPERS/ASP ç°å¢ã«ããããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³
+               ã®æ§ç¯ã¨åãã§ããã TOPPERS/ASP ã«ã¼ãã«ã¦ã¼ã¶ã¼ãºããã¥
+               ã¢ã«ï¼user.txtï¼ã®ã3.5 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥
+               ã
+ã«æ§ç¯ããæ¹æ³ ããåç
+§ãããã¨ã 
+         [2]   TOPPERS/JSP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡
+
+                  $ mkdir NETOBJ
+                  $ cd NETOBJ
+                  $ perl ../tinet/tinet_jsp_configure -C h8 -S akih8_3069f -A echos6
+                                                      -i ether -v if_ed -n inet6 -s tcp
+
+               ãªãã·ã§ã³ï¼-Cã -Sã-Tã-Aã-Uã-Lã-Dã-Pã-pã-lï¼ã¯ã
+               TOPPERS/JSP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã¨åãã§ã
+               ãã TOPPERS/JSP ã«ã¼ãã«ã¦ã¼ã¶ã¼ãºããã¥ã¢ã«ï¼user.txtï¼
+               ã®ã 7.6 ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ä½¿ãæ¹ ãã
+               åç
+§ãããã¨ã ãã®ä»ã®ãªãã·ã§ã³ã«ã¤ãã¦ã¯ããTINET ã³
+               ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³ ããåç
+§ãããã¨ã
+                 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥ã
+ã«æ§ç¯ããæ¹æ³ã«ã¤ã
+               ã¦ã¯ã TOPPERS/JSP ç°å¢ã«ããããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³
+               ã®æ§ç¯ã¨åãã§ããã TOPPERS/JSP ã«ã¼ãã«ã¦ã¼ã¶ã¼ãºããã¥
+               ã¢ã«ï¼user.txtï¼ã®ã7.5 ã¢ããªã±ã¼ã·ã§ã³ã¨ã«ã¼ãã«ãå¥
+               ã
+ã«æ§ç¯ããæ¹æ³ ããåç
+§ãããã¨ã 
+
+           ä¸è¨ã®ä¾ã§ãTOPPERS/ASP ç°å¢ã¨ TOPPERS/JSP ç°å¢ã®ãããã®å ´
+         åãããã£ã¬ã¯ããª NETOBJ ã«ä»¥ä¸ã®ãã¡ã¤ã«ãçæãããã
+
+            Makefile                Makefile
+            echos6.c                ãµã³ãã«ãã­ã°ã©ã æ¬ä½
+            echos6.h                ãµã³ãã«ãã­ã°ã©ã ã®ããããã¡ã¤ã«
+            echos6.cfg              ãµã³ãã«ãã­ã°ã©ã ç¨ ASP ã³ã³ãã£
+                                    ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+            tinet_echos6.cfg        ãµã³ãã«ãã­ã°ã©ã ç¨ TINET ã³ã³ãã£
+                                    ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+            route_cfg.c             ãµã³ãã«ãã­ã°ã©ã ç¨ã«ã¼ãã£ã³ã°è¡¨
+            tinet_app_config.h      ãµã³ãã«ãã­ã°ã©ã ç¨ã³ã³ãã¤ã«ææ
+                                    å®ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+
+         å¿
+è¦ã§ããã°ã Makefile ãä¿®æ­£ããã ä¿®æ­£ã«ã¤ãã¦ã¯ã
+         TOPPERS/ASP ç°å¢ã§ã¯ã7.3 ã¢ããªã±ã¼ã·ã§ã³ã® Makefileãã
+         TOPPERS/JSP ç°å¢ã§ã¯ã8.3 ã¢ããªã±ã¼ã·ã§ã³ã® Makefileããåç
+§
+         ãããã¨ã
+           ä»¥ä¸ã®ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã¯ãæ§ç¯ä¸ã®æ³¨æãããã å
+         ç« ãåç
+§ãããã¨ã
+
+            [1]   ã9.3 ã¯ã©ã¤ã¢ã³ããµã¼ãã»ã»ããã
+            [2]   ã9.4 TOPPERS ASP/JSP ãµã³ãã«ãã­ã°ã©ã  sample1 ã®
+                  ãããã¯ã¼ã¯å¯¾å¿ãã­ã°ã©ã ã
+            [3]   ã9.5 æå°æ§æãµã¼ãã
+
+   (2)   tinet_app_config.h ã®è¨­å®
+           IPv4 ã®å ´åã IP ã¢ãã¬ã¹ããµãããããã¹ã¯ããã£ãã©ã«ãã²ã¼
+         ãã¦ã§ã¤ãæå®ããã
+
+         [1]   IPV4_ADDR_LOCAL
+               èªåã® IP ã¢ãã¬ã¹ãæå®ããããã ãã PPP ãä½¿ç¨ããã¨
+               ããç¸æã«å²å½ã¦ã¦ãããå ´åã¯ 0 ãæå®ãããã¨ããªãã
+               PPP ã¯åèå®è£
+ã§ããã
+         [2]   IPV4_ADDR_REMOTE
+               ç¸æã® IP ã¢ãã¬ã¹ãæå®ããã ãã ããPPP ãä½¿ç¨ããã¨
+               ããç¸æã«å²å½ã¦ã¦ãããå ´åã¯ 0 ãæå®ãããã¨ããªãã
+               PPP ã¯åèå®è£
+ã§ããã
+         [3]   IPV4_ADDR_LOCAL_MASK
+               ãµãããããã¹ã¯ãæå®ããããã ãã ãããã¯ã¼ã¯ã¤ã³ã¿
+               ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã 
+         [4]   IPV4_ADDR_DEFAULT_GW
+               ãã£ãã©ã«ãã²ã¼ãã¦ã§ã¤ãæå®ããããã ãã ãããã¯ã¼
+               ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ãæå¹ã§ããã 
+
+   (3)   route_cfg.c ã®è¨­å®
+           ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®å ´åã¯ã ã«ã¼ãã£
+         ã³ã°è¡¨ routing_tbl ãè¨­å®ããããã ãããã£ãã©ã«ãã²ã¼ãã¦ã§
+         ã¤ã®ã¿ã®ã·ã³ãã«ãªãããã¯ã¼ã¯ã§ã¯ã å¤æ´ããå¿
+è¦ã¯ãªãã 
+
+   (4)   ãµã³ãã«ãã­ã°ã©ã ã®ã³ã³ãã¤ã«ã»ãªã³ã¯
+           TINET ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®æ§ç¯ç¨ãã£ã¬ã¯ããªã§ã ãµã³
+         ãã«ãã­ã°ã©ã ãã³ã³ãã¤ã«ã»ãªã³ã¯ããã ã³ã³ãã¤ã«ã»ãªã³ã¯ã®
+         æ¹æ³ãä»¥ä¸ã«ç¤ºãã
+
+            $ make depend
+            $ make
+
+3.  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³
+
+3. 1  TOPPERS/APS ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³
+
+  TOPPERS/ASP ç°å¢ã§ã¯ããªãã·ã§ã³ï¼-Tã-Aã-aã-Uã-Lã-fã-Dã-lã-dã
+-rã-pã-gï¼ã¯ãTOPPERS/ASP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã¨åãã§ã
+ãã TOPPERS/ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããç¹æã®ãªãã·ã§
+ã³ãä»¥ä¸ã«ç¤ºãã
+
+   -e <tinetdir>             TINET ã®ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+   -i <net_if>               ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼å¿
+é ï¼
+                             <net_if> ã«ã¯ etherãpppãloop ã®ä½ããã
+                             æå®ããã
+
+   -v <net_dev>              ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã
+                             ï¼ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« ether ãæ
+                             å®ããå ´åã¯å¿
+é ï¼
+   -n <net_proto>            ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+                             <net_proto> ã«æå®ã§ãããã­ãã³ã«ãä»¥ä¸
+                             ã«ç¤ºãã
+
+                             inet6               IPv6 ã®ã¿
+                             inet4               IPv4 ã®ã¿
+                             inet6/inet4         IPv6/IPv4 ã®ä¸¡æ¹
+                                                ï¼ãã¥ã¢ã«ã¹ã¿ãã¯ï¼
+                             inet6m              IPv6 ã®ã¿ã§ã IPv4 å°
+                                                 å½±ã¢ãã¬ã¹æå®å¯è½
+                             inet6m/inet4        IPv6/IPv4 ã®ä¸¡æ¹ã¨
+                                                 IPv4 å°å½±ã¢ãã¬ã¹æå®å¯è½
+
+   -s <trans_proto>          ãã©ã³ã¹ãã¼ãå±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+                             <trans_proto> ã«ã¯ tcpãudpãtcp/udp ã®ä½
+                             ãããæå®ããã
+   -t <templatedir>          TINET ãã³ãã¬ã¼ããã£ã¬ã¯ããª
+                             ããã©ã«ãã¯ tinet/asp_sample ã§ããã ãª
+                             ãã TOPPERS/ASP ã®åããªãã·ã§ã³ã®ããã©
+                             ã«ãã¯ sample ã§ããã
+   -m <asptemplatedir>       ASP ãã³ãã¬ã¼ããã£ã¬ã¯ããª
+                             ããã©ã«ãã¯ sample ã§ããã
+
+3. 2  TOPPERS/JPS ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®ãªãã·ã§ã³
+
+  TOPPERS/JSP ç°å¢ã§ã¯ããªãã·ã§ã³ï¼-Cã-Sã-Tã-Aã-Uã-Lã-Dã-Pã-pã
+-lï¼ã¯ã TOPPERS/JSP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã¨åãã§ããã
+TOPPERS/ASP ç¨ TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããç¹æã®ãªãã·ã§ã³
+ãä»¥ä¸ã«ç¤ºãã
+
+   -e <tinetdir>             TINET ã®ã½ã¼ã¹ã®ç½®ããã¦ãããã£ã¬ã¯ããª
+   -i <net_if>               ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼å¿
+é ï¼
+                             <net_if> ã«ã¯ etherãpppãloop ã®ä½ããã
+                             æå®ããã
+   -v <net_dev>              ã¤ã¼ãµãããã»ãã£ãã¤ã¹ãã©ã¤ã
+                             ï¼ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã« ether ãæ
+                             å®ããå ´åã¯å¿
+é ï¼
+   -n <net_proto>            ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+                             <net_proto> ã«æå®ã§ãããã­ãã³ã«ãä»¥ä¸
+                             ã«ç¤ºãã
+
+                             inet6               IPv6 ã®ã¿
+                             inet4               IPv4 ã®ã¿
+                             inet6/inet4         IPv6/IPv4 ã®ä¸¡æ¹
+                                                ï¼ãã¥ã¢ã«ã¹ã¿ãã¯ï¼
+                             inet6m              IPv6 ã®ã¿ã§ã IPv4 å°
+                                                 å½±ã¢ãã¬ã¹æå®å¯è½
+                             inet6m/inet4        IPv6/IPv4 ã®ä¸¡æ¹ã¨
+                                                 IPv4 å°å½±ã¢ãã¬ã¹æå®
+                                                 å¯è½
+
+   -s <trans_proto>          ãã©ã³ã¹ãã¼ãå±¤ãã­ãã³ã«ï¼å¿
+é ï¼
+                             <trans_proto> ã«ã¯ tcpãudpãtcp/udp ã®ä½
+                             ãããæå®ããã
+   -d <dir>                  TINET ãã³ãã¬ã¼ããã£ã¬ã¯ããª
+                             ããã©ã«ãã¯ tinet/jsp_sample ã§ããã ãª
+                             ãã TOPPERS/JSP ã®åããªãã·ã§ã³ã®ããã©
+                             ã«ãã¯ sample ã§ããã
+   -m <jsptemplatedir>       JSP ãã³ãã¬ã¼ããã£ã¬ã¯ããª
+                             ããã©ã«ãã¯ sample ã§ããã
+
+4.  ã¯ã©ã¤ã¢ã³ããµã¼ãã»ã»ããã®æ§ç¯
+
+  ä»¥ä¸ã«ç¤ºããµã¼ããæä¾ããã¦ãããå¿
+è¦ã«å¿ãã¦çµã¿è¾¼ããµã¼ããé¸æã§
+ãããï¼ï¼å
+ã¯ãtinet/netapp å
+ã«ããã½ã¼ã¹ãã¡ã¤ã«åã§ããããªãã ãã£
+ãã©ã«ãã§ã ITRON TCP/IP API ä»æ§ã® TCP ã¨ UDP ã®æ¡å¼µæ©è½ãçµè¾¼ã¾ãã¦
+ããã®ã§ãã9.3.2 ç°¡æã³ã³ã½ã¼ã«ã®ã³ãã³ã ãã® wtw (wtw4)ãwte (wte4)ã
+wueãwtd ã³ãã³ãã§ãããããã®ãµã¼ãã»ã¿ã¹ã¯ãèµ·åããå¿
+è¦ãããã
+
+   [1]   WWW ãµã¼ãã»ã¿ã¹ã¯ï¼wwws.cï¼
+         ã«ã¼ããã¼ã¸ã®ä»ã«ããããã¯ã¼ã¯çµ±è¨æ
+å ±ãè¡¨ç¤ºãã 2 ãã¼ã¸ã
+         ãæ§æãããã¿ã¹ã¯æ°ã¯æå¤§ 2 ã§ããã
+   [2]   TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯
+         tcp_echo_srv1.c ã¨ tcp_echo_srv2.c ã®ã©ã¡ãããé¸æããã
+         tcp_echo_srv1.c ãé¸æããå ´åãçã³ãã¼ API ãä½¿ç¨ãã¦ããã³
+         ãã­ãã­ã³ã°ã³ã¼ã«ãä½¿ç¨ããªãæã¯ãã¿ã¹ã¯æ°ã 8 ã¾ã§æå®å¯è½
+         ã§ããã
+   [3]   UDP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ï¼udp_echo_srv.cï¼
+   [4]   TCP ãã£ã¹ã«ã¼ããµã¼ãã»ã¿ã¹ã¯ï¼tcp_discard_srv.cï¼
+   [5]   ç°¡æã³ã³ã½ã¼ã«ã»ã¿ã¹ã¯ï¼dbg_cons.cï¼
+         ã·ãªã¢ã«ã¤ã³ã¿ãã§ã¼ã¹ã ãã§ãªããtelnet ãã­ãã³ã«ãä½¿ç¨ãã¦ã
+         ãããã¯ã¼ã¯çµç±ã§å©ç¨ãããã¨ãå¯è½ã§ãããtelnet ã§æ¥ç¶ãã
+         ã¨ãã·ãªã¢ã«ã®å
+¥åºåãå¼ãç¶ãã§å®è¡ãããåæ­ããã¨ã å
+ã®ã·
+         ãªã¢ã«ã«å
+¥åºåãæ»ãã ãã ããTCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã
+         çµè¾¼ãå¿
+è¦ãããã
+
+ã¾ããã¯ã©ã¤ã¢ã³ãã¨ãã¦ã¯ä»¥ä¸ã®æ©è½ãæä¾ããã¦ãããå¿
+è¦ã«å¿ãã¦çµã¿
+è¾¼ãã¯ã©ã¤ã¢ã³ããé¸æã§ããã
+
+   [1]   TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ï¼tcp_echo_cli.cï¼
+   [2]   UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ï¼udp_echo_cli.cï¼
+   [3]   TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ï¼tcp_discard_cli.cï¼
+   [4]   UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ï¼udp_discard_cli.cï¼
+   [5]   pingï¼ping.cï¼
+
+4. 1  Makefile ã®è¨­å®
+
+   (1)   çµè¾¼ãæ©è½ã®é¸æ
+
+         [1]   TCP ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®åä¿¡ã¦ã£ã³ããããã¡
+               ã®çã³ãã¼æ©è½ãçµè¾¼ãå ´åã¯ã
+
+                  TCP_CFG_RWBUF_CSAVE_ONLY = true
+
+               ã¾ãã¯ã
+
+                  TCP_CFG_RWBUF_CSAVE = true
+
+               ãé¸æããã TCP_CFG_RWBUF_CSAVE_ONLY ãé¸æããã¨ãTCP
+               éä¿¡ç«¯ç¹ãçæããéç API ã§ãã TCP_CRE_CEP ã§ã åä¿¡
+               ã¦ã£ã³ããããã¡ rbuf ã«ã ã¡ã¢ãªã¢ãã¬ã¹ãæå®ãã¦ãã
+               ãã­ãã³ã«ã¹ã¿ãã¯ã¯ããã®æå®ãç¡è¦ãã¦ã TCP ã®åä¿¡ã¦ã£
+               ã³ããããã¡ã®çã³ãã¼æ©è½ã«ããå¦çããã ã¾ãã
+               TCP_CFG_RWBUF_CSAVE ãé¸æããã¨ãTCP_CRE_CEP ã§ã åä¿¡
+               ã¦ã£ã³ããããã¡ rbuf ã«ã NADRï¼NULLï¼ãæå®ããã¨ãã®
+               ã¿ããã­ãã³ã«ã¹ã¿ãã¯ã¯ TCP ã®åä¿¡ã¦ã£ã³ããããã¡ã®ç
+               ã³ãã¼æ©è½ã«ããå¦çããã
+
+         [2]   TCP ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®éä¿¡ã¦ã£ã³ããããã¡
+               ã®çã³ãã¼æ©è½ãçµè¾¼ãå ´åã¯ã
+
+                  TCP_CFG_SWBUF_CSAVE_ONLY = true
+
+               ã¾ãã¯ã
+
+                  TCP_CFG_SWBUF_CSAVE = true
+
+               ãé¸æããã TCP_CFG_SWBUF_CSAVE_ONLY ãé¸æããã¨ãTCP
+               éä¿¡ç«¯ç¹ãçæããéç API ã§ãã TCP_CRE_CEP ã§ã éä¿¡
+               ã¦ã£ã³ããããã¡ rbuf ã«ã ã¡ã¢ãªã¢ãã¬ã¹ãæå®ãã¦ãã
+               ãã­ãã³ã«ã¹ã¿ãã¯ã¯ããã®æå®ãç¡è¦ãã¦ã TCP ã®éä¿¡ã¦ã£
+               ã³ããããã¡ã®çã³ãã¼æ©è½ã«ããå¦çããã ã¾ãã
+               TCP_CFG_SWBUF_CSAVE ãé¸æããã¨ãTCP_CRE_CEP ã§ã éä¿¡
+               ã¦ã£ã³ããããã¡ rbuf ã«ã NADRï¼NULLï¼ãæå®ããã¨ãã®
+               ã¿ããã­ãã³ã«ã¹ã¿ãã¯ã¯ TCP ã®éä¿¡ã¦ã£ã³ããããã¡ã®ç
+               ã³ãã¼æ©è½ã«ããå¦çããã
+
+         [3]   TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼
+               ã«ãçµè¾¼ãå ´åã¯ã
+
+                  TCP_CFG_NON_BLOCKING = true
+
+               ãé¸æããã
+
+         [4]   UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼
+               ã«ãçµè¾¼ãå ´åã¯ã
+
+                  UDP_CFG_NON_BLOCKING = true
+
+               ãé¸æããã
+
+         [5]   ITRON TCP/IP API ä»æ§ã® TCP ã®æ¡å¼µæ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®
+               TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå ´åã¯ã
+
+                  TCP_CFG_EXTENTIONS = true
+
+               ãé¸æããããã£ãã©ã«ãã§ true ã«è¨­å®ããã¦ããã
+
+         [6]   ITRON TCP/IP API ä»æ§ã® UDP ã®æ¡å¼µæ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®
+               UDP ã®æ¡å¼µæ©è½ãçµè¾¼ãå ´åã¯ã
+
+                  UDP_CFG_EXTENTIONS = true
+
+               ãé¸æããããã£ãã©ã«ãã§ true ã«è¨­å®ããã¦ããã
+
+   (2)   ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãITRON TCP/IP API ä»æ§ã®æ¡å¼µæ©è½ã¨çã³
+         ãã¼ API ã®é¸æ
+
+         [1]   TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼
+               ã«ãä½¿ç¨ããå ´åã¯ã
+
+                  USE_TCP_NON_BLOCKING = true
+
+               ãé¸æããã
+
+         [2]   ITRON TCP/IP API ä»æ§ã® TCP ã®æ¡å¼µæ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®
+               TCP ã®æ¡å¼µæ©è½ãä½¿ç¨ããå ´åã¯ã
+
+                  USE_TCP_EXTENTIONS = true
+
+               ãé¸æããããã£ãã©ã«ãã§ true ã«è¨­å®ããã¦ããã
+
+         [3]   çã³ãã¼ API
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ãçã³ãã¼ API ãä½¿ç¨ããå ´åã¯ã
+
+                  USE_COPYSAVE_API = true
+
+               ãé¸æããã
+
+         [4]   UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼
+               ã«ãä½¿ç¨ããå ´åã¯ã
+
+                  USE_UDP_NON_BLOCKING = true
+
+               ãé¸æããã ãã ãã ã³ã¼ã«ããã¯ã¨ã¯åæã«ä½¿ç¨ã§ããªãã
+
+         [5]   ITRON TCP/IP API ä»æ§ã® UDP ã®æ¡å¼µæ©è½
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã ITRON TCP/IP API ä»æ§ã®
+               UDP ã®æ¡å¼µæ©è½ãä½¿ç¨ããå ´åã¯ã
+
+                  USE_UDP_EXTENTIONS = true
+
+               ãé¸æããããã£ãã©ã«ãã§ true ã«è¨­å®ããã¦ããã
+
+         [6]   UDP ã®ã³ã¼ã«ããã¯
+                 ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã§ã UDP ã®ã³ã¼ã«ããã¯ãä½¿ç¨
+               ããå ´åã¯ã
+
+                  USE_UDP_CALL_BACK = true
+
+               ãé¸æããããã ãã ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã¨ã¯åæã«ä½¿
+               ç¨ã§ããªãã
+
+   (3)   å
+±éãµã¼ããã­ã°ã©ã ã®é¸æ
+
+         [1]   WWW ãµã¼ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã ä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_WWW_SRV = ture
+
+         [2]   WWW ãµã¼ããã­ã°ã©ã ï¼IPv4 åªå
+æ¥ç¶å¾
+ã¡ï¼ãä½¿ç¨ããå ´å
+               ã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_WWW4_SRV = ture
+
+         [3]   UDP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã ä»¥ä¸ã®è¡ã
+               æå¹ã«ããã
+
+                  USE_UDP_ECHO_SRV = ture
+
+         [4]   UDP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ï¼IPv4 åªå
+æ¥ç¶å¾
+ã¡ï¼ãä½¿ç¨ã
+               ãå ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_UDP4_ECHO_SRV = ture
+
+         [5]   TCP ãã£ã¹ã«ã¼ããµã¼ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã ä»¥ä¸
+               ã®è¡ãæå¹ã«ããã
+
+                  USE_TCP_DISCARD_SRV = ture
+
+         [6]   éåä¿¡ã¿ã¹ã¯åä¸åã® TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ãä½¿ç¨ã
+               ãå ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  TCP_ECHO_SRV = tcp_echo_srv1
+
+         [7]   éåä¿¡ã¿ã¹ã¯åé¢åã® TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ãä½¿ç¨ã
+               ãå ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  TCP_ECHO_SRV = tcp_echo_srv2
+
+         [8]   TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ï¼IPv4 åªå
+æ¥ç¶å¾
+ã¡ï¼ãä½¿ç¨ã
+               ãå ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããããã ãã éåä¿¡ã¿ã¹ã¯å
+               ä¸åã® TCP ã¨ã³ã¼ãµã¼ããã­ã°ã©ã ãä½¿ç¨ããå ´åã®ã¿æå¹
+               ã§ããã
+
+                  USE_TCP4_ECHO_SRV = ture
+
+         [9]   ã·ãªã¢ã«çµç±ã®ã¿ã³ã³ã½ã¼ã«å
+¥åºåãä½¿ç¨ããå ´åã¯ã ä»¥ä¸
+               ã®è¡ãæå¹ã«ããã
+
+                  USE_DBG_CONS = true
+
+         [10]  ã·ãªã¢ã«ã¨ãããã¯ã¼ã¯çµç±ã®ã³ã³ã½ã¼ã«å
+¥åºåãä½¿ç¨ãã
+               å ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_NET_CONS = true
+
+               ãã ãã ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ãã æã®ã¿æå¹ã§ããã
+
+   (4)   å
+±éã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ã®é¸æ
+
+         [1]   TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã ä»¥ä¸
+               ã®è¡ãæå¹ã«ããã
+
+                  USE_TCP_ECHO_CLI = ture
+
+         [2]   TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ã§ãIPv4 ã¢ãã¬ã¹ãæå®
+               ããæãtcp_con_cep ãå¼åºããIPv4 ã«ããæ¥ç¶ããå ´åã¯
+               ä»¥ä¸ã®è¡ãæå¹ã«ããã ãªãã ãããã¯ã¼ã¯å±¤ã®é¸æã§ã
+               IPv6 ã¨ IPv4 ã®ä¸¡æ¹ãæå®ããå ´åããã®æå®ãè¡ããªãã¨
+               tcp_con_cep ã§ã¯ãªãã tcp6_con_cep ãå¼åºãã å¾ã£ã¦ã
+               API_CFG_IP4MAPPED_ADDR ãæå®ãã¦ããªãã¨ãE_PAR ãè¿ã
+               ããããtcp6_con_cep ã®ãã¹ãã®ããã§ãããåé¡ã¯ãªãã
+
+                  USE_TCP4_ECHO_CLI = ture
+
+         [3]   UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã ä»¥ä¸
+               ã®è¡ãæå¹ã«ããã
+
+                  USE_UDP_ECHO_CLI = ture
+
+         [4]   UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ï¼IPv4 åªå
+æ¥ç¶å¾
+ã¡ï¼ã
+               ä½¿ç¨ããå ´åã¯ã ä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_UDP4_ECHO_CLI = ture
+
+         [5]   TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã
+               ä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_TCP_DISCARD_CLI = ture
+
+         [6]   UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ã
+               ä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_UDP_DISCARD_CLI = ture
+
+         [7]   DHCPv6 ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ãä»¥ä¸ã®è¡
+               ãæå¹ã«ããã
+
+                  USE_DHCP6_CLI = true
+
+         [8]   DHCPv4 ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ãä»¥ä¸ã®è¡
+               ãæå¹ã«ããã
+
+                  USE_DHCP4_CLI = true
+
+         [9]   DNS ãªã¾ã«ãã¼ãä½¿ç¨ããå ´åã¯ãä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  USE_RESOLVER = true
+
+         [10]  PING ã¯ã©ã¤ã¢ã³ããã­ã°ã©ã ãä½¿ç¨ããå ´åã¯ãä»¥ä¸ã®è¡ã
+               æå¹ã«ããã
+
+                  USE_PING = true
+
+   (5)   å
+±éãµã¼ãã¿ã¹ã¯æ°ã®é¸æ
+
+         [1]   WWW ãµã¼ãã¿ã¹ã¯æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæå¤§ 2 ã¿
+               ã¹ã¯ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_WWW_SRV_TASKS=2
+
+         [2]   TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ãé¸æããããã ãä»¥ä¸ã®æ¡ä»¶ã®ã¨
+               ãæå¹ã§ããã
+
+               ã»tcp_echo_srv1.c ãé¸æããã
+               ã»çã³ãã¼ API ãä½¿ç¨ããã
+               ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãä½¿ç¨ããªãã
+
+               TCP ECHO ãµã¼ãã¿ã¹ã¯æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæå¤§
+               8 ã¿ã¹ã¯ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_TCP_ECHO_SRV_TASKS=8
+
+   (6)   äºç´ ID æ°ã®é¸æ
+
+         [1]   TCP/IPv4 åä»å£äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ
+               å¤§ 2 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_TCP_REPS=2
+
+         [2]   TCP/IPv4 éä¿¡ç«¯ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã
+               æå¤§ 4 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_TCP_CEPS=4
+
+         [3]   UDP/IPv4 éä¿¡ç«¯ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã
+               æå¤§ 2 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_UDP_CEPS=2
+
+         [4]   TCP/IPv6 åä»å£äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ãæ
+               å¤§ 2 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_TCP6_REPS=2
+
+         [5]   TCP/IPv6 éä¿¡ç«¯ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã
+               æå¤§ 4 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_TCP6_CEPS=4
+
+         [6]   UDP/IPv6 éä¿¡ç«¯ç¹äºç´ ID æ°ã¯ä»¥ä¸ã®è¡ã§é¸æããããã ã
+               æå¤§ 2 ã§ããã
+
+                  CDEFS := $(CDEFS) -DNUM_VRID_UDP6_CEPS=2
+
+   (7)   ãã®ä»
+
+         [1]   TCP ã®ã»ã°ã¡ã³ããµã¤ãºã MSS ã«ããå ´åã¯ãä»¥ä¸ã®è¡ãæ
+               å¹ã«ããã
+
+                  CDEFS := $(CDEFS) -DUSE_TCP_MSS_SEG
+
+         [2]   IPv6 MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãçµè¾¼ãå ´åã¯ã
+               ä»¥ä¸ã®è¡ãæå¹ã«ããã
+
+                  CDEFS := $(CDEFS) -DUSE_IPV6_MMTU
+
+4. 2  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³ã®ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+
+   (1)   DHCPv6 ã¯ã©ã¤ã¢ã³ã
+
+         [1]   DHCP6_CLI_CFG_MODE
+               DHCPv6 ã¯ã©ã¤ã¢ã³ãã®åä½ã¢ã¼ããæå®ããã
+               ã¹ãã¼ãã¬ã¹ã¢ã¼ããé¸æããæã¯
+               fDHCP6_CLI_CFG_STATELESSã ã¹ãã¼ããã«ã¢ã¼ããé¸æãã
+               æã¯ fDHCP6_CLI_CFG_STATEFULL ãæå®ããã ã¹ãã¼ãã¬ã¹
+               ã¢ã¼ãã§ã¯ãIPv6 ã¢ãã¬ã¹ãåå¾ãããDNS ãµã¼ãã®æ
+å ±ãª
+               ã©ã®ã¿åå¾ããã
+
+         [2]   DHCP6_CLI_CFG_REQUIRED_OLIST
+               DHCPv6 ãµã¼ãããåå¾ããå¿
+é ãªãã·ã§ã³ãªã¹ããé
+åã®å
+               æåå½¢å¼ã§æå®ãããæå®ä¾ãä»¥ä¸ã«ç¤ºãã 
+                  #define DHCP6_CLI_CFG_REQUIRED_OLIST {  \
+                          DHCP6_OPT_NAME_SERVERS,         \
+                          }
+
+               ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç
+§ãããã¨ã
+
+         [3]   DHCP6_CLI_CFG_REQUEST_OLIST
+               DHCPv6 ãµã¼ãããåå¾ããå¿
+é ãªãã·ã§ã³ãªã¹ããé
+åã®å
+               æåå½¢å¼ã§æå®ããã æå®ä¾ãä»¥ä¸ã«ç¤ºãã
+                  #define DHCP6_CLI_CFG_REQUEST_OLIST {   \
+                          DHCP6_OPT_DOMAIN_SEARCH,        \
+                          }
+
+               ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç
+§ãããã¨ã
+
+   (2)   DHCPv4 ã¯ã©ã¤ã¢ã³ã
+
+         [1]   DHCP4_CLI_CFG_REQUIRED_OLIST
+               DHCPv4 ãµã¼ãããåå¾ããå¿
+é ãªãã·ã§ã³ãªã¹ããé
+åã®å
+               æåå½¢å¼ã§æå®ãããæå®ä¾ãä»¥ä¸ã«ç¤ºãã 
+                  #define DHCP4_CLI_CFG_REQUIRED_OLIST {  \
+                          DHCP4_OPT_NAME_SERVERS,         \
+                          }
+
+               ãªãã·ã§ã³ã¯ tinet/netapp/dhcp4.h ãåç
+§ãããã¨ã
+
+         [2]   DHCP4_CLI_CFG_REQUEST_OLIST
+               DHCPv4 ãµã¼ãããåå¾ããå¿
+é ãªãã·ã§ã³ãªã¹ããé
+åã®å
+               æåå½¢å¼ã§æå®ããã æå®ä¾ãä»¥ä¸ã«ç¤ºãã
+                  #define DHCP4_CLI_CFG_REQUEST_OLIST {   \
+                          DHCP4_OPT_DOMAIN_SEARCH,        \
+                          }
+
+               ãªãã·ã§ã³ã¯ tinet/netapp/dhcp6.h ãåç
+§ãããã¨ã
+
+   (3)   DNS ãªã¾ã«ãã¼
+
+         [1]   RSLV_CFG_DNS_DOMAIN_NAME_STR
+               ãã¡ã¤ã³åã®æå­åãæå®ãããDHCPv6 ã¯ã©ã¤ã¢ã³ããã¾ã
+               ã¯ DHCPv4 ã¯ã©ã¤ã¢ã³ãã«ããåå¾ãããã¨ãå¯è½ã§ããã
+
+         [2]   IPV6_ADDR_DNS_INIT
+               DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãé
+åã®åæåå½¢å¼ã§æå®ããã
+               DHCPv6 ã¯ã©ã¤ã¢ã³ãã«ããåå¾ãããã¨ãå¯è½ã§ããã DNS
+               ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãã
+               fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 ã®å ´åã®æå®ä¾ã
+               ä»¥ä¸ã«ç¤ºãã
+
+                  #define IPV6_ADDR_DNS_INIT \
+                      {{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
+                          UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
+                          UINT_C(0x02), UINT_C(0x01), UINT_C(0x02), UINT_C(0xff), \
+                          UINT_C(0xfe), UINT_C(0x81), UINT_C(0xe7), UINT_C(0xc9) }}}
+
+         [3]   IPV4_ADDR_DNS
+               DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæå®ãããDHCPv4 ã¯ã©ã¤ã¢ã³
+               ãã«ããåå¾ãããã¨ãå¯è½ã§ããã DNS ãµã¼ãã® IPv4 ã¢
+               ãã¬ã¹ãã172.25.129.140 ã®å ´åã®æå®ä¾ãä»¥ä¸ã«ç¤ºãã
+
+                  #define IPV4_ADDR_DNS   MAKE_IPV4_ADDR(172,25,129,140)
+
+4. 3  ç°¡æã³ã³ã½ã¼ã«ã³ãã³ã
+
+  ã¤ã³ã¿ã¼ããããµã¼ãã»ã»ããã«çµã¿è¾¼ã¾ãã¦ããç°¡æã³ã³ã½ã¼ã«ã®ã³ãã³
+ããä»¥ä¸ã«ç¤ºãã
+
+   cf                  tinet_app_config.h ç­ã§æå®ããããã³ã³ãã¤ã«æ
+                       ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãè¡¨ç¤ºããã 
+
+   ct <cepid> [<fncd>] 
+                       ãã³ãã£ã³ã°ãã¦ãã TCP éä¿¡ç«¯ç¹ <cepid> ã®å¦
+                       çãã­ã£ã³ã»ã«ãããã­ã£ã³ã»ã«ããå¦çã¯ <fncd>
+                       ã§æå®ããã<fncd> ãçç¥ããå ´åã¯ãå
+¨ã¦ã®å¦ç
+                       ãã­ã£ã³ã»ã«ããã
+
+   cu <cepid> [<fncd>] 
+                       ãã³ãã£ã³ã°ãã¦ãã UDP éä¿¡ç«¯ç¹ <cepid> ã®å¦
+                       çãã­ã£ã³ã»ã«ãããã­ã£ã³ã»ã«ããå¦çã¯ <fncd>
+                       ã§æå®ããã<fncd> ãçç¥ããå ´åã¯ãå
+¨ã¦ã®å¦ç
+                       ãã­ã£ã³ã»ã«ããã
+
+   dc                  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã PPP ã®æãã¾ãã¯ã
+                       ã·ãªã¢ã«ã¨ãããã¯ã¼ã¯çµç±ã®ã³ã³ã½ã¼ã«å
+¥åºåã
+                       ä½¿ç¨ããæã«æå¹ã§ããã æ¥ç¶ãåæ­ããããªãã
+                       PPP ã¯åèå®è£
+ã§ããã
+
+   dh                  DHCPv6 ã¨ DHCPv4 ã¯ã©ã¤ã¢ã³ãã®æ
+å ±ãåºåããã
+   dh6                 DHCPv6 ã¯ã©ã¤ã¢ã³ãã®æ
+å ±ãåºåããã
+   dh6n                IPv6 ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ãã¦ã DHCPv6 ãµã¼ããã
+                       IPv6 ã¢ãã¬ã¹æ
+å ±ãååå¾ããã
+   dh6r                IPv6 ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã
+   dh4                 DHCPv4 ã¯ã©ã¤ã¢ã³ãã®æ
+å ±ãåºåããã
+   dh4n                IPv4 ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ãã¦ã DHCPv4 ãµã¼ããã
+                       IPv4 ã¢ãã¬ã¹æ
+å ±ãååå¾ããã
+   dh4r                IPv4 ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã
+
+   dt <host> [<portno> [<repeat>]]
+                       TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åãã
+                       ãã£ã¹ã«ã¼ããµã¼ã <host> ã«ãã£ã¹ã«ã¼ããã¿ã¼
+                       ã³ãéä¿¡ããã<portno> ã¯ããã£ã¹ã«ã¼ããµã¼ãã®
+                       ãã¼ãçªå·ã§ãçç¥æï¼- ãæå®ããï¼ã¯ 9 ã§ããã
+                       <repeat> ã¯ãç¹°ãè¿ãåæ°ã§ãçç¥æã¯ 1 ã§ããã
+   dts                 TCP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ã
+                       åä½ãåæ­¢ããã
+
+   du <host> [<portno>]]
+                       ãã£ã¹ã«ã¼ããµã¼ã <host> ã«ãã£ã¹ã«ã¼ããã¿ã¼
+                       UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åãã
+                       ã³ãç¹°ãè¿ãéä¿¡ããã<portno> ã¯ããã£ã¹ã«ã¼ã
+                       ãµã¼ãã®ãã¼ãçªå·ã§ãçç¥æã¯ 9 ã§ããã
+   dus                 UDP ãã£ã¹ã«ã¼ãã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ã
+                       åä½ãåæ­¢ããã
+
+   et <host> [<portno> [<repeat>]]
+   et4 <host> [<portno> [<repeat>]]
+                       et ã§ã¯ TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åã
+                       ããet4 ã§ã¯ IPv4 å°ç¨ TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»
+                       ã¿ã¹ã¯ãèµ·åããã ä½ããã ã¨ã³ã¼ãµã¼ã <host>
+                       ã«ã¨ã³ã¼ãã¿ã¼ã³ãéä¿¡ããã<portno> ã¯ãã¨ã³ã¼
+                       ãµã¼ãã®ãã¼ãçªå·ã§ã çç¥æï¼- ãæå®ããï¼ã¯
+                       7 ã§ããã<repeat> ã¯ãç¹°ãè¿ãåæ°ã§ãçç¥æã¯
+                       1 ã§ããã
+   ets                 TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ãåä½ã
+                       åæ­¢ããã
+   ets4                IPv4 å°ç¨ TCP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ã
+                       è¿ãåä½ãåæ­¢ããã
+
+   eu <host> [<portno>] [<msg> | <repeat>]
+   eu4 <host> [<portno>] [<msg> | <repeat>]
+                       eu ã§ã¯ UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ãèµ·åã
+                       ããeu4 ã§ã¯ IPv4 å°ç¨ UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»
+                       ã¿ã¹ã¯ãèµ·åããã ä½ããã ã¨ã³ã¼ãµã¼ã <host>
+                       ã«ã¨ã³ã¼ãã¿ã¼ã³ãéä¿¡ããã<portno> ã¯ãã¨ã³ã¼
+                       ãµã¼ãã®ãã¼ãçªå·ã§ã çç¥æï¼- ãæå®ããï¼ã¯
+                       7 ã§ããã<repeat>ï¼æ°å­ï¼ãæå®ããå ´åã¯ã å®
+                       åã®ã¡ãã»ã¼ã¸ã <repeat> åç¹°ãè¿ãéä¿¡ããã
+                       <msg>ï¼æ°å­ä»¥å¤ï¼ãæå®ããå ´åã¯ã ã¡ãã»ã¼ã¸
+                       <msg> ãéä¿¡ããã
+   eus                 UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ãè¿ãåä½ã
+                       åæ­¢ããã
+   eus4                IPv4 å°ç¨ UDP ã¨ã³ã¼ã¯ã©ã¤ã¢ã³ãã»ã¿ã¹ã¯ã®ç¹°ã
+                       è¿ãåä½ãåæ­¢ããã
+
+   i                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã PPP ã®æã«æå¹ã§ã
+                       ããç´æ¥æ¥ç¶ã®å ´åã¯ãç´ã¡ã« LCP ãèµ·åãã¦ããµã¼
+                       ãã«æ¥ç¶ãããã¢ãã æ¥ç¶ã®å ´åã¯ã ã³ã³ãã¤ã«æ
+                       ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã® MODEM_CFG_PHONE_NUMBER
+                       ãã©ã¡ã¼ã¿ã§æå®ããã¦ãããµã¼ãã«çºå¼ããã ãª
+                       ããPPP ã¯åèå®è£
+ã§ããã
+
+   if [<addr> <mask>]  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã PPP ã®æã¯ã IP ã¢
+                       ãã¬ã¹ã ãµãããããã¹ã¯ããã­ã¼ãã­ã£ã¹ãã¢ã
+                       ã¬ã¹ãåºåããã ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼
+                       ãµãããã§ã ãããã¯ã¼ã¯å±¤ã IPv4 ã®æã¯ã
+                       [<addr> <mask>] ãæå®ã§ããã [<addr> <mask>]
+                       ãæå®ããªããã°ãMAC ã¢ãã¬ã¹ãIPv4 ã¢ãã¬ã¹ã
+                       ãµãããããã¹ã¯ã ãã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ã®åº
+                       åã®ã¿è¡ãã [<addr> <mask>] ãæå®ããæã¯ã
+                       IPv4 ã¢ãã¬ã¹ã¨ãµãããããã¹ã¯ãå¤æ´ããå¾ã
+                       MAC ã¢ãã¬ã¹ãIPv4 ã¢ãã¬ã¹ããµãããããã¹ã¯ã
+                       ãã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ãåºåããã<addr> ã¯ã
+                       IPv4 ã¢ãã¬ã¹ã <mask> ã¯ããµãããããã¹ã¯ã§ã
+                       ãããªããPPP ã¯åèå®è£
+ã§ããã
+
+   na                  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®æã«
+                       æå¹ã§ãããIPv6 ã§ã¯è¿é£ã¢ãã¬ã¹ã­ã£ãã·ã¥ã®ç¶
+                       æ
+ãIPv4 ã§ã¯ ARP ã­ã£ãã·ã¥ãåºåããã
+
+   nb                  ãããã¯ã¼ã¯ãããã¡ã®çµ±è¨æ
+å ±ãåºåããã
+
+   nc                  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ãè¡¨ç¤ºããã
+
+   nr [<index> <target> <mask> <gateway>]
+                       ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã®ã¨ã
+                       æå¹ã§ããã ãããã¯ã¼ã¯å±¤ã IPv4 ã®æã¯ã
+                       [<index> <target> <mask> <gateway>] ãæå®ã§ã
+                       ãã [<index> <target> <mask> <gateway>] ãæå®
+                       ããªããã°ã ã«ã¼ãã£ã³ã°è¡¨ã®åºåã®ã¿è¡ãã
+                       [<index> <target> <mask> <gateway>] ãæå®ãã
+                       æã¯ã ã«ã¼ãã£ã³ã°è¡¨ãå¤æ´ããå¾ãã«ã¼ãã£ã³ã°
+                       è¡¨ãåºåããã<index> ã¯ã çµè·¯ã¨ã³ããªã®ã¤ã³ãã
+                       ã¯ã¹ã<target> ã¯ãç®æ¨ãããã¯ã¼ã¯ã® IP ã¢ãã¬
+                       ã¹ã<mask> ã¯ãç®æ¨ãããã¯ã¼ã¯ã®ãµãããããã¹
+                       ã¯ã <gateway> ã¯ãã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹ã§ããã
+
+   nrl                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã§ã ãã
+                       ãã¯ã¼ã¯å±¤ã IPv6 ã®æã«æå¹ã§ããã ãã£ãã©ã«
+                       ãã«ã¼ã¿ã»ãªã¹ããåºåããã
+
+   nrp                 ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã¤ã¼ãµãããã§ã ãã
+                       ãã¯ã¼ã¯å±¤ã IPv6 ã®æã«æå¹ã§ããã ãã¬ãã£ã
+                       ã¯ã¹ãªã¹ããåºåããã
+
+   ns [<name>|<addr>]  DNS ãµã¼ãã«æ­£å¼ãã§ãã¹ãå <name>ãã¾ãã¯ãé
+                       å¼ãã§ IP ã¢ãã¬ã¹ <addr> ã®ã¢ãã¬ã¹æ
+å ±ãç
+§ä¼
+                       ãåºåãããããããæå®ããªãæã¯ã ãã¡ã¤ã³å
+                       ã¨ DNS ãµã¼ãã® IP ã¢ãã¬ã¹ãåºåããã
+
+   nt                  TCP éä¿¡ç«¯ç¹ã¨ TCP åä»å£ã®ç¶æ
+ãè¡¨ç¤ºããã
+
+   nu                  UDP éä¿¡ç«¯ç¹ã®ç¶æ
+ãè¡¨ç¤ºããã
+
+   p <host> [ <tmo> [<size>] ]
+                       ãã¹ã <host> ã« ICMP ãã±ãããéä¿¡ããã<tmo>
+                       ã¯ã¿ã¤ã ã¢ã¦ãå¤ï¼åä½ã¯ç§ï¼ã§ã çç¥æï¼- ãæ
+                       å®ããï¼ã¯ 3 ç§ã§ããã <size> ã¯ãã¼ã¿ãµã¤ãºã§ã
+                       æå®ããªãå ´åã¯ 64 ãªã¯ãããã§ããã
+
+   ps                  ã¿ã¹ã¯ã®ç¶æ
+ãè¡¨ç¤ºããã
+
+   r <tskid>           ã¿ã¹ã¯ <tskid> ã®å¾
+ã¡ç¶æ
+ãå¼·å¶çã«è§£é¤ããã
+
+   tt <repid>          ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããTCP åä»å£ <repid> ãåé¤ããå¯¾å¿ãããµã¼
+                       ããåæ­¢ããã
+
+   tu <cepid>          ITRON TCP/IP API ã® UDP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããUDP éä¿¡ç«¯ç¹ <cepid> ãåé¤ããå¯¾å¿ãã
+                       ãµã¼ããåæ­¢ããã
+
+   w <tskid>           ã¿ã¹ã¯ <tskid> ãèµ·åºããã
+
+   wtd                 ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããTCP ãã£ã¹ã«ã¼ããµã¼ãã»ã¿ã¹ã¯ã« TCP å
+                       ä»å£ã¨ TCP éä¿¡ç«¯ç¹ãå²å½ã¦ãTCP ãã£ã¹ã«ã¼ããµã¼
+                       ãã»ã¿ã¹ã¯ãèµ·åããã
+
+   wte                 ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããTCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã« TCP åä»å£ã¨
+                       TCP éä¿¡ç«¯ç¹ãå²å½ã¦ã TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯
+                       ãèµ·åããã
+
+   wte4                ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ãããã TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã« IPv4 ç¨ TCP
+                       åä»å£ã¨ IPv4 ç¨ TCP éä¿¡ç«¯ç¹ãå²å½ã¦ãTCP ã¨ã³ã¼
+                       ãµã¼ãã»ã¿ã¹ã¯ãèµ·åããã
+
+   wtw4                ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããWWW ãµã¼ãã»ã¿ã¹ã¯ã« IPv4 ç¨ TCP åä»å£
+                       ã¨ IPv4 ç¨ TCP éä¿¡ç«¯ç¹ãå²å½ã¦ãWWW ãµã¼ãã»ã¿
+                       ã¹ã¯ãèµ·åããã
+   wtw                 ITRON TCP/IP API ã® TCP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ãããã WWW ãµã¼ãã»ã¿ã¹ã¯ã« TCP åä»å£ã¨ TCP
+                       éä¿¡ç«¯ç¹ãå²å½ã¦ãWWW ãµã¼ãã»ã¿ã¹ã¯ãèµ·åããã
+
+   wue                 ITRON UDP/IP API ã® UDP ã®æ¡å¼µæ©è½ãçµè¾¼ãå¿
+è¦
+                       ããããUDP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã« UDP éä¿¡ç«¯ç¹
+                       ãå²å½ã¦ãUDP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ãèµ·åããã
+
+4. 4  DNSãªã¾ã«ãã¼ã«ãããã¹ãåã®æå®
+
+  Makefile ã®çµã¿è¾¼ãæ©è½ã®é¸æã§ã
+
+   USE_RESOLVER = true
+
+ãæå®ãã¦ DNS ãªã¾ã«ãã¼ãä½¿ç¨ããã¨ãç°¡æã³ã³ã½ã¼ã«ã³ãã³ãã® <host>
+ã«æå®ãããã¹ãåããDNS ãµã¼ãã«ç
+§ä¼ãã¦ IP ã¢ãã¬ã¹ãå¾ããã¨ãã§ã
+ãï¼æ­£å¼ãï¼ã
+  <host> ã®æ¸å¼ãä»¥ä¸ã«ç¤ºãã
+      [-[6|4][A|a|Q|q]] <name>
+
+  åãªãã·ã§ã³ãä»¥ä¸ã«ç¤ºãã
+
+      6   ãããã¯ã¼ã¯å±¤ã®ãã­ãã³ã«ã¨ãã¦ IPv6 ã«ãã DNS ãµã¼ãã«ç
+§
+          ä¼ããã
+      4   ãããã¯ã¼ã¯å±¤ã®ãã­ãã³ã«ã¨ãã¦ IPv4 ã«ãã DNS ãµã¼ãã«ç
+§
+          ä¼ããã
+      q   AAAA ã¬ã³ã¼ãã®ã¿ç
+§ä¼ããã
+      Q   AAAA ã¬ã³ã¼ãã®ã¿ç
+§ä¼ããã
+      a   A ã¬ã³ã¼ãã®ã¿ç
+§ä¼ããã
+      A   A ã¬ã³ã¼ãã®ã¿ç
+§ä¼ããã
+
+  6 ã¨ 4 ã®ã©ã¡ããæå®ããªãæã¯ãã¾ã IPv6 ã§ DNS ãµã¼ãã«ç
+§ä¼ãããã
+å¿ç­ããªãå ´åã¯ IPv4 ã«ãã©ã¼ã«ããã¯ãã¦ DNS ãµã¼ãã«ç
+§ä¼ããã ãã 
+ãããããã¯ã¼ã¯å±¤ã¨ãã¦ã©ã¡ããä¸æ¹ã®ã¿çµè¾¼ãã å ´åã¯ããã®ãªãã·ã§ã³
+ã¯ç¡è¦ãããã
+  qã QãaãA ã®ããããæå®ããªãæã¯ãAAAA ã¬ã³ã¼ãã®æ¬¡ã« A ã¬ã³ã¼ã
+ã®é ã§ DNS ãµã¼ãã«ç
+§ä¼ããã
+
+5.  sample1 ã®ãããã¯ã¼ã¯å¯¾å¿ãã­ã°ã©ã ï¼sample1nï¼ã®æ§ç¯
+
+  TOPPERS/ASP ã¨ TOPPERS/JSP ã®ãµã³ãã«ãã­ã°ã©ã  sample1 ã®ãããã¯ã¼
+ã¯å¯¾å¿ãã­ã°ã©ã ã§ãããtelnet ã§æ¥ç¶ããã¨ã ã·ãªã¢ã«ã®å
+¥åºåãå¼ãç¶
+ãã§å®è¡ããã åæ­ããã¨ã å
+ã®ã·ãªã¢ã«ã«å
+¥åºåãæ»ãã
+  ä»¥ä¸ã«æ§ç¯æ¹æ³ãè¿°ã¹ãã
+
+   (1)   ASP/JSP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡
+           ããããã®ç°å¢ã«ãããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªãããå®
+         è¡ãããä»¥ä¸ã¯ã TOPPERS/ASP ç°å¢ã«ãããã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§
+         ã³ã¹ã¯ãªããã®å®è¡ä¾ã§ããã
+
+            $ mkdir NETOBJ
+            $ cd NETOBJ
+            $ perl ../configure -T akih8_3069f_gcc
+
+   (2)   TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡
+           ããããã®ç°å¢ã«ããã TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªã
+         ããå®è¡ããã ãã®æã ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã åã¨ãã¦
+         sample1n ãæå®ããã ä»¥ä¸ã¯ã TOPPERS/ASP ç°å¢ã«ããã TINET
+         ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã¹ã¯ãªããã®å®è¡ä¾ã§ããã 
+
+            $ perl ../tinet/tinet_asp_configure -T akih8_3069f_gcc -A sample1n
+                                                -i ether -v if_ed -n inet6 -s tcp
+
+         ãªãããªãã·ã§ã³ -n ã« inet6/inet4 ãæå®ãã¦ãã IPv6 ã§ã®ã¿
+         æ¥ç¶ã§ããã
+
+   (3)   Makefile ã®ä¿®æ­£
+           ã¢ããªã±ã¼ã·ã§ã³æ¬ä½ï¼sample1n.cï¼ã¨ TOPPERS/ASP ã¨
+         TOPPERS/JSP ã® sample1.c ãä¸ç·ã«ã³ã³ãã¤ã«ã»ãªã³ã¯ããããã
+         Makefile ãä¿®æ­£ããã
+
+         [1]   TOPPERS/ASP ç°å¢
+                 Makefile ã® APPL_COBJS ã« sample1.o ãè¿½å ããã
+
+                  APPL_COBJS = $(APPLNAME).o sample1.o
+
+         [2]   TOPPERS/JSP ç°å¢
+                 Makefile ã® UTASK_COBJS ã« sample1.o ãè¿½å ããã
+
+                  UTASK_COBJS = $(UNAME).o sample1.o
+
+   (4)   sample1.c ã®ä¿®æ­£
+           TOPPERS/ASP ã¨ TOPPERS/JSP ã® sample1.c ã®ã¤ã³ã¯ã«ã¼ããã¡
+         ã¤ã«ã®æå®
+
+            #include "sample1.h"
+
+         ã®åã«ã ä»¥ä¸ã®ã¤ã³ã¯ã«ã¼ããã¡ã¤ã«ãè¿½å ããã
+
+            #include "sample1n.h"
+
+   (5)   tinet_app_config.h ã®è¨­å®
+           IPv4 ã®å ´åãIP ã¢ãã¬ã¹ããµãããããã¹ã¯ã ãã£ãã©ã«ãã²ã¼
+         ãã¦ã§ã¤ãæå®ããã
+
+6.  æå°æ§æãµã¼ãã®æ§ç¯
+
+  WWW ãµã¼ãã»ã¿ã¹ã¯ã¨ TCP ã¨ã³ã¼ãµã¼ãã»ã¿ã¹ã¯ã®ã¿ãããªãæå°æ§æã®
+ãµã¼ãã§ãããH8/3069F ãå
+èµãã¦ãã RAMï¼16K ãã¤ãï¼ã¨ ROMï¼512K ã
+ã¤ãï¼ã«åã¾ããå¤é¨ã¡ã¢ãªã¯ä¸è¦ã§ãããç¾å¨ã¯ãåå·éä¿¡è¨è£
+ãµã¼ãã¹è£½
+NKEV-010H8ï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.2 ã®ã¿ï¼ã¨ç§æé»å­éåè£½ H8/3069F
+ï¼TOPPERS/JSP ãªãªã¼ã¹ 1.4.1 ä»¥éã¨ TOPPERS/ASPï¼ã®ã·ã¹ãã ã«å¯¾å¿ãã¦
+ããã
+  åã·ã¹ãã ä¾å­é¨ã® Makefile.config ã®ãå®è¡ç°å¢ã®å®ç¾©ãã§ã
+
+   # ROMå å¤é¨RAMæªä½¿ç¨
+   #DBGENV := INMEM_ONLY
+
+ãæå¹ã«ãã¦ã ã³ã³ãã¤ã«ã»ãªã³ã¯ããã
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ether_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ether_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ether_var.h	(revision 313)
@@ -0,0 +1,60 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _ETHER_VAR_H_
+#define _ETHER_VAR_H_
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  Ethernet å¦çã¿ã¹ã¯
+ */
+
+extern void ether_input_task(intptr_t exinf);
+extern void ether_output_task(intptr_t exinf);
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _ETHER_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.c	(revision 313)
@@ -0,0 +1,515 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  Ethernet å¦çã¿ã¹ã¯ã®æ¬ä½
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/if_llc.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/if_ether.h>
+
+#include <netinet6/if6_ether.h>
+#include <netinet6/nd6.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  å¤æ°
+ */
+
+#if defined(_IP4_CFG)
+
+const uint8_t ether_broad_cast_addr[ETHER_ADDR_LEN] = {
+	UINT_C(0xff), UINT_C(0xff), UINT_C(0xff),
+	UINT_C(0xff), UINT_C(0xff), UINT_C(0xff)
+	};
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+/*
+ *  å¤æ°
+ */
+
+/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ */
+
+static T_IFNET ether_ifnet;
+
+#ifdef SUPPORT_MIB
+
+/*  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB) */
+
+T_IF_STATS if_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#ifdef ETHER_CFG_802_WARNING
+
+/*
+ *  é¢æ°
+ */
+
+static void ieee_802_input (T_NET_BUF *input);
+
+/*
+ *  ieee_802_input -- IEEE 802.3 å
+¥åå¦ç
+ */
+
+static void
+ieee_802_input (T_NET_BUF *input)
+{
+	T_8023MAC_HDR	*mhdr;
+	T_8022SNAP_HDR	*shdr;
+
+	mhdr = GET_8023MAC_HDR(input);
+	shdr = GET_8022SNAP_HDR(input);
+	syslog(LOG_WARNING, "[ETHER] unexp 802.3 from: %s, proto: 0x%04x.",
+	                    mac2str(NULL, mhdr->shost), ntohs(*(uint16_t*)&shdr->type));
+	}
+
+#endif	/* of #ifdef ETHER_CFG_802_WARNING */
+
+/*
+ *  ether_srand -- ä¹±æ°ãåæå¤ãè¿ãã
+ */
+
+uint32_t
+ether_srand (void)
+{
+	T_IF_SOFTC	*ic;
+	uint32_t	rval;
+
+	ic = IF_ETHER_NIC_GET_SOFTC();
+	rval  = (ic->ifaddr.lladdr[2] << 24)
+	      + (ic->ifaddr.lladdr[3] << 16)
+	      + (ic->ifaddr.lladdr[4] <<  8)
+	      + (ic->ifaddr.lladdr[5]      );
+
+#ifdef ETHER_CFG_COLLECT_ADDR
+
+	rval += (ether_collect_addr.lladdr[2] << 24)
+	      + (ether_collect_addr.lladdr[3] << 16)
+	      + (ether_collect_addr.lladdr[4] <<  8)
+	      + (ether_collect_addr.lladdr[5]      );
+
+#endif	/* of #ifdef ETHER_CFG_COLLECT_ADDR */
+
+	return rval;
+	}
+
+/*
+ *  ether_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ */
+
+T_IFNET *
+ether_get_ifnet (void)
+{
+	return &ether_ifnet;
+	}
+
+#if defined(_IP6_CFG)
+
+/*
+ *  ether_in6_resolve_multicast -- ã¤ã¼ãµãããã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ */
+
+ER
+ether_in6_resolve_multicast (T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr)
+{
+	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã*/
+	if (!IN6_IS_ADDR_MULTICAST(maddr))
+		return E_PAR;
+
+	/* ã¤ã¼ãµãããã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ */
+	ether_map_ipv6_multicast(ifaddr, maddr);
+
+	return E_OK;
+	}
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+/*
+ *  ether_raw_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºç¡ã
+ */
+
+ER
+ether_raw_output (T_NET_BUF *output, TMO tmout)
+{
+	ER error = E_OK;
+
+	/* Ethernet åºåã­ã¥ã¼ã«æå
+¥ããã*/
+	if ((error = tsnd_dtq(DTQ_ETHER_OUTPUT, (intptr_t)output, tmout)) != E_OK) {
+		NET_COUNT_ETHER(net_count_ether.out_err_packets, 1);
+		NET_COUNT_MIB(if_stats.ifOutDiscards, 1);
+
+		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+			syscall(rel_net_buf(output));
+			}
+		else {
+			output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+			}
+		IF_ETHER_NIC_RESET(IF_ETHER_NIC_GET_SOFTC());
+		}
+	return error;
+	}
+
+/*
+ *  ether_output -- Ethernet ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãMAC ã¢ãã¬ã¹è§£æ±ºæã
+ */
+
+ER
+ether_output (T_NET_BUF *output, const void *dst, T_IF_ADDR *gw, TMO tmout)
+{
+	T_IF_SOFTC	*ic;
+	ER		error = E_OK;
+
+	/* éä¿¡å
+ MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ic = IF_ETHER_NIC_GET_SOFTC();
+	memcpy(GET_ETHER_HDR(output)->shost, ic->ifaddr.lladdr, ETHER_ADDR_LEN);
+
+	switch(ntohs(GET_ETHER_HDR(output)->type)) {
+
+#if defined(_IP4_CFG)
+
+	case ETHER_TYPE_IP:		/* IPv4	*/
+		if (arp_resolve(&ic->ifaddr, output, *(uint32_t*)dst)) {	/* true ãªãã¢ãã¬ã¹è§£æ±ºæ¸ */
+			error = ether_raw_output(output, tmout);
+			}
+		break;
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG)
+
+	case ETHER_TYPE_IPV6:		/* IPv6	*/
+		error = nd6_storelladdr((T_ETHER_ADDR*)GET_ETHER_HDR(output)->dhost,
+		                        (const T_IN6_ADDR*)dst, gw);
+		if (error == E_OK)
+			error = ether_raw_output(output, tmout);
+
+		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		else if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+			syscall(rel_net_buf(output));
+			}
+		else {
+			output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+			}
+		break;
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+	default:
+		NET_COUNT_MIB(if_stats.ifOutErrors, 1);
+
+		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+			syscall(rel_net_buf(output));
+			}
+		else {
+			output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+			}
+		error = E_PAR;
+		break;
+		}
+
+	if (error != E_OK)
+		NET_COUNT_ETHER(net_count_ether.out_err_packets, 1);
+	return error;
+	}
+
+/*
+ *  Ethernet åºåã¿ã¹ã¯
+ */
+
+void
+ether_output_task(intptr_t exinf)
+{
+	T_IF_SOFTC	*ic;
+	T_NET_BUF	*output;
+	ID		tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[ETHER OUTPUT:%d] started.", tskid);
+
+	ic = IF_ETHER_NIC_GET_SOFTC();
+
+	while (true) {
+		while (rcv_dtq(DTQ_ETHER_OUTPUT, (intptr_t*)&output) == E_OK) {
+			NET_COUNT_ETHER(net_count_ether.out_octets,  output->len);
+			NET_COUNT_MIB(if_stats.ifOutOctets, output->len + 8);
+			NET_COUNT_ETHER(net_count_ether.out_packets, 1);
+
+#ifdef SUPPORT_MIB
+			if ((*(GET_ETHER_HDR(output)->dhost) & ETHER_MCAST_ADDR) == 0) {
+				NET_COUNT_MIB(if_stats.ifOutUcastPkts, 1);
+				}
+			else {
+				NET_COUNT_MIB(if_stats.ifOutNUcastPkts, 1);
+				}
+#endif	/* of #ifdef SUPPORT_MIB */
+
+			syscall(wai_sem(ic->semid_txb_ready));
+
+			IF_ETHER_NIC_START(ic, output);
+
+#ifndef ETHER_NIC_CFG_RELEASE_NET_BUF
+
+			if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+				syscall(rel_net_buf(output));
+				}
+			else {
+				output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+
+#ifdef SUPPORT_TCP
+				sig_sem(SEM_TCP_POST_OUTPUT);
+#endif	/* of #ifdef SUPPORT_TCP */
+				}
+
+#endif	/* of #ifndef ETHER_NIC_CFG_RELEASE_NET_BUF */
+
+			}
+		}
+	}
+
+/*
+ *  Ethernet å
+¥åã¿ã¹ã¯
+ */
+
+void
+ether_input_task(intptr_t exinf)
+{
+	T_IF_SOFTC	*ic;
+	T_NET_BUF	*input;
+	T_ETHER_HDR	*eth;
+	ID		tskid;
+	uint16_t	proto;
+	uint8_t		rcount = 0;
+
+	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/
+	ifinit();
+
+	/* ã¤ã¼ãµããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç®¡çãåæåããã*/
+
+#if defined(_IP4_CFG)
+
+	ether_ifnet.in4_ifaddr.addr = IPV4_ADDR_LOCAL;		/* IPv4 ã¢ãã¬ã¹		*/
+	ether_ifnet.in4_ifaddr.mask = IPV4_ADDR_LOCAL_MASK;	/* ãµãããããã¹ã¯		*/
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	/* NIC ãåæåããã*/
+	ic = IF_ETHER_NIC_GET_SOFTC();
+	IF_ETHER_NIC_PROBE(ic);
+	IF_ETHER_NIC_INIT(ic);
+
+	/* Ethernet åºåã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(ETHER_OUTPUT_TASK));
+
+	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(NET_TIMER_TASK));
+
+	get_tid(&tskid);
+
+	syslog(LOG_NOTICE, "[ETHER INPUT:%2d] started on MAC Addr: %s.",
+	                   tskid, mac2str(NULL, ic->ifaddr.lladdr));
+
+#if defined(_IP4_CFG)
+
+	/* ARP ãåæåããã*/
+	arp_init();
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	ether_ifnet.ic = ic;
+
+	/* ä¹±æ°çæãåæåããã*/
+	net_srand(0);
+
+	while (true) {
+		syscall(wai_sem(ic->semid_rxb_ready));
+		if ((input = IF_ETHER_NIC_READ(ic)) != NULL) {
+			NET_COUNT_ETHER(net_count_ether.in_octets,  input->len);
+			NET_COUNT_MIB(if_stats.ifInOctets, input->len + 8);
+			NET_COUNT_ETHER(net_count_ether.in_packets, 1);
+			eth = GET_ETHER_HDR(input);
+			proto = ntohs(eth->type);
+
+			/* ä¹±æ°çæãåæåããã*/
+			if (rcount == 0) {
+
+#ifdef ETHER_CFG_COLLECT_ADDR
+				memcpy(ether_collect_addr.lladdr, eth->shost, 
+				sizeof(ether_collect_addr.lladdr));
+#endif	/* of #ifdef ETHER_CFG_COLLECT_ADDR */
+
+				net_srand(0);
+				}
+			rcount ++;
+
+
+#ifdef SUPPORT_MIB
+			if ((*eth->dhost & ETHER_MCAST_ADDR) == 0) {
+				NET_COUNT_MIB(if_stats.ifInUcastPkts, 1);
+				}
+			else {
+				NET_COUNT_MIB(if_stats.ifInNUcastPkts, 1);
+				}
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#if defined(_IP4_CFG) && defined(ETHER_CFG_ACCEPT_ALL)
+
+			if ((*eth->dhost & ETHER_MCAST_ADDR) && *eth->dhost != 0xff) {
+
+#ifdef ETHER_CFG_MCAST_WARNING
+
+				if (proto <= 1500)
+					proto = ntohs(*(uint16_t*)&(GET_8022SNAP_HDR(input)->type));
+				syslog(LOG_WARNING, "[ETHER] mcast addr  from: %s, to: %s, proto: 0x%04x.",
+				                    mac2str(NULL, eth->shost), mac2str(NULL, eth->dhost), proto);
+
+#endif	/* of #ifdef ETHER_CFG_MCAST_WARNING */
+
+				NET_COUNT_ETHER(net_count_ether.in_err_packets, 1);
+				NET_COUNT_MIB(if_stats.ifInErrors, 1);
+				syscall(rel_net_buf(input));
+				continue;
+				}
+
+#endif	/* of #if defined(_IP4_CFG) && defined(ETHER_CFG_ACCEPT_ALL) */
+
+			switch(proto) {
+
+#if defined(_IP4_CFG)
+
+			case ETHER_TYPE_IP:		/* IP	*/
+				ip_input(input);
+				break;
+
+			case ETHER_TYPE_ARP:		/* ARP	*/
+				arp_input(&ic->ifaddr, input);
+				break;
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG)
+
+			case ETHER_TYPE_IPV6:		/* IPv6	*/
+				ip6_input(input);
+				break;
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+			default:
+
+#ifdef ETHER_CFG_UNEXP_WARNING
+
+#ifdef ETHER_CFG_802_WARNING
+
+				if (proto <= 1500)
+					ieee_802_input(input);
+				else
+					syslog(LOG_NOTICE, "[ETHER] unexp proto from: %s, proto: 0x%04x.",
+					                   mac2str(NULL, GET_ETHER_HDR(input)->shost), proto);
+
+#else	/* of #ifdef ETHER_CFG_802_WARNING */
+
+				syslog(LOG_INFO, "[ETHER] unexp proto from: %s, proto: 0x%04x.",
+				                   mac2str(NULL, GET_ETHER_HDR(input)->shost), proto);
+
+#endif	/* of #ifdef ETHER_CFG_802_WARNING */
+
+#endif	/* of #ifdef ETHER_CFG_UNEXP_WARNING */
+
+				NET_COUNT_ETHER(net_count_ether.in_err_packets, 1);
+				NET_COUNT_MIB(if_stats.ifUnknownProtos, 1);
+				syscall(rel_net_buf(input));
+				break;
+				}
+			}
+		}
+	}
+
+#endif /* of #ifdef SUPPORT_ETHER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.cfg	(revision 313)
@@ -0,0 +1,61 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  Ethernet ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef SUPPORT_ETHER
+
+CRE_TSK(ETHER_OUTPUT_TASK, { TA_HLNG       , 0, ether_output_task, ETHER_OUTPUT_PRIORITY, ETHER_OUTPUT_STACK_SIZE, NULL });
+CRE_TSK(ETHER_INPUT_TASK,  { TA_HLNG|TA_ACT, 0, ether_input_task,  ETHER_INPUT_PRIORITY,  ETHER_INPUT_STACK_SIZE,  NULL });
+
+CRE_DTQ(DTQ_ETHER_OUTPUT,  { TA_TFIFO, NUM_DTQ_ETHER_OUTPUT,  NULL });
+
+/* ãµãã¼ãé¢æ° max2str ç¨ã»ããã© */
+
+CRE_SEM(SEM_MAC2STR_BUFF_LOCK,	{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef SUPPORT_ETHER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ethernet.h	(revision 313)
@@ -0,0 +1,324 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * Fundamental constants relating to ethernet.
+ *
+ * $FreeBSD: src/sys/net/ethernet.h,v 1.9.2.1 1999/08/29 16:28:13 peter Exp $
+ *
+ */
+
+#ifndef _ETHERNET_H_
+#define _ETHERNET_H_
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ãã£ã¼ã«ãé·
+ */
+
+#define ETHER_ADDR_LEN		6	/* Ethernet (MAC) Address	*/
+#define ETHER_TYPE_LEN		2	/* Type		*/
+#define ETHER_CRC_LEN		4	/* CRC		*/
+
+/*
+ *  ãã¬ã¼ã é· (Ethernet ãããã¨ CRC ãå«ã)
+ */
+
+#define ETHER_MIN_LEN		64
+#define ETHER_MAX_LEN		(IF_MTU + sizeof(T_ETHER_HDR) + ETHER_CRC_LEN)
+
+/*
+ *  Ethernet ããã
+ */
+
+#ifndef IF_ETHER_NIC_HDR_ALIGN
+#error IF_ETHER_NIC_HDR_ALIGN expected.
+#endif	/* of #ifndef IF_ETHER_NIC_HDR_ALIGN */
+
+#if defined(__RX)
+
+#pragma pack
+typedef struct t_ether_header {
+
+#if IF_ETHER_NIC_HDR_ALIGN != 0
+
+	uint8_t		align[IF_ETHER_NIC_HDR_ALIGN];	/* ã¢ã©ã¤ã³èª¿æ´ */
+
+#endif	/* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
+
+	uint8_t		dhost[ETHER_ADDR_LEN];
+	uint8_t		shost[ETHER_ADDR_LEN];
+	uint16_t	type;
+	} T_ETHER_HDR;
+#pragma packoption
+
+#elif defined(TOPPERS_S810_CLG3_85)	/* of #if defined(__RX) */
+
+typedef struct t_ether_header {
+
+#if IF_ETHER_NIC_HDR_ALIGN != 0
+
+	uint8_t		align[IF_ETHER_NIC_HDR_ALIGN];	/* ã¢ã©ã¤ã³èª¿æ´ */
+
+#endif	/* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
+
+	uint8_t		dhost[ETHER_ADDR_LEN];
+	uint8_t		shost[ETHER_ADDR_LEN];
+	uint16_t	type;
+	} T_ETHER_HDR;
+
+#else	/* of #if defined(__RX) */
+
+typedef struct t_ether_header {
+
+#if IF_ETHER_NIC_HDR_ALIGN != 0
+
+	uint8_t		align[IF_ETHER_NIC_HDR_ALIGN];	/* ã¢ã©ã¤ã³èª¿æ´ */
+
+#endif	/* of #if IF_ETHER_NIC_HDR_ALIGN != 0 */
+
+	uint8_t		dhost[ETHER_ADDR_LEN];
+	uint8_t		shost[ETHER_ADDR_LEN];
+	uint16_t	type;
+	} __attribute__((packed))T_ETHER_HDR;
+
+#endif	/* of #if defined(__RX) */
+
+#define GET_ETHER_HDR(nbuf)		((T_ETHER_HDR*)((nbuf)->buf))
+
+/*
+ *  MAC ã¢ãã¬ã¹ã®å®ç¾©
+ */
+
+#define ETHER_MCAST_ADDR	UINT_C(0x01)	/* ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹	*/
+#define ETHER_LOCAL_ADDR	UINT_C(0x02)	/* ã­ã¼ã«ã«ã»ã¢ãã¬ã¹		*/
+
+typedef struct t_ether_addr {
+	uint8_t		lladdr[ETHER_ADDR_LEN];
+	} T_ETHER_ADDR;
+
+/*
+ *  Type ãã£ã¼ã«ã
+ */
+
+#define ETHER_TYPE_IP		UINT_C(0x0800)	/* IPv4	*/
+#define ETHER_TYPE_ARP		UINT_C(0x0806)	/* ARP	*/
+#define ETHER_TYPE_IPV6		UINT_C(0x86dd)	/* IPv6	*/
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
+ */
+
+#define T_IF_HDR		T_ETHER_HDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã				*/
+#define T_IF_ADDR		T_ETHER_ADDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹			*/
+#define IF_HDR_ALIGN		2			/* ãããã®ã¢ã©ã¤ã³åä½				*/
+#define IF_MTU			1500			/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU				*/
+#define IF_MIN_LEN		ETHER_MIN_LEN		/* ã¤ã³ã¿ã¼ãã§ã¼ã¹ãã¬ã¼ã ã®æç­é·		*/
+
+#define IF_OUTPUT(o,d,g,t)	ether_output(o,d,g,t)	/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°			*/
+#define IF_RAW_OUTPUT(o,t)	ether_raw_output(o,t)	/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã	*/
+#define IF_SET_PROTO(b,p)	(GET_ETHER_HDR(b)->type = htons(p))
+							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°		*/
+#define IF_SOFTC_TO_IFADDR(s)	((T_IF_ADDR*)(s)->ifaddr.lladdr)
+							/* ã½ããã¦ã§ã¢æ
+å ±ãã MAC ã¢ãã¬ã¹ãåãåºã	*/
+#define IF_GET_IFNET()		ether_get_ifnet()	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã		*/
+#define IF_TYPE			IFT_ETHER		/* ã¤ã³ã¿ãã§ã¼ã¹ã®å				*/
+#define IF_SRAND()		ether_srand()	/* ã¤ã³ã¿ãã§ã¼ã¹ã®ä¹±æ°åæå¤			*/
+
+/* IPv4 é¢ä¿ */
+
+#define IF_PROTO_IP		ETHER_TYPE_IP		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ãã­ãã³ã«æå®		*/
+#define IF_PROTO_ARP		ETHER_TYPE_ARP		/* ã¤ã³ã¿ãã§ã¼ã¹ã® ARP ãã­ãã³ã«æå®		*/
+
+/* IPv6 é¢ä¿ */
+
+#define MAX_IF_MADDR_CNT	2			/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®æå¤§ãµã¤ãº	*/
+#define IF_MADDR_INIT		{ { { 0, 0, 0, 0, 0, 0 } }, { { 0, 0, 0, 0, 0, 0 } } }
+							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®åæå	*/
+#define IF_PROTO_IPV6		ETHER_TYPE_IPV6		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv6 ãã­ãã³ã«æå®			*/
+#define IF_ADDMULTI(s)		IF_ETHER_NIC_ADDMULTI(s)
+							/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²				*/
+#define IF_IN6_NEED_CACHE(i)	(true)			/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãä½¿ç¨ããã				*/
+#define IF_IN6_IFID(i,a)	IF_ETHER_NIC_IN6_IFID(i,a)
+							/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ã®è¨­å®				*/
+#define IF_IN6_RESOLVE_MULTICAST(i,m)	\
+				ether_in6_resolve_multicast(i,m)
+							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ		*/
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+#ifndef T_IF_SOFTC_DEFINED
+
+typedef struct t_if_softc T_IF_SOFTC;
+
+#define T_IF_SOFTC_DEFINED
+
+#endif	/* of #ifndef T_IF_SOFTC_DEFINED */
+
+#ifndef T_IN4_ADDR_DEFINED
+
+typedef uint32_t T_IN4_ADDR;
+
+#define T_IN4_ADDR_DEFINED
+
+#endif	/* of #ifndef T_IN4_ADDR_DEFINED */
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
+å ±
+ */
+
+#ifdef T_IF_ETHER_NIC_SOFTC
+
+struct t_if_softc {
+	T_IF_ADDR		ifaddr;			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+	uint16_t		timer;			/* éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
+	T_IF_ETHER_NIC_SOFTC	*sc;			/* ãã£ãã¤ã¹ä¾å­ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	ID			semid_txb_ready;	/* éä¿¡ã»ããã©				*/
+	ID			semid_rxb_ready;	/* åä¿¡ã»ããã©				*/
+
+#ifdef _IP6_CFG
+
+	T_IF_ADDR 	maddrs[MAX_IF_MADDR_CNT];	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªã¹ã	*/
+
+#endif	/* of #ifdef _IP6_CFG */
+	};
+
+#endif	/* of #ifdef T_IF_ETHER_NIC_SOFTC */
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef ETHER_CFG_COLLECT_ADDR
+
+T_ETHER_ADDR ether_collect_addr;
+
+#endif	/* of #ifdef ETHER_CFG_COLLECT_ADDR */
+
+/*
+ *  é¢æ°
+ */
+
+#ifdef _IP6_CFG
+
+/* åæ¹åç
+§ */
+
+#ifndef T_IN6_ADDR_DEFINED
+
+typedef struct t_in6_addr T_IN6_ADDR;
+
+#define T_IN6_ADDR_DEFINED
+
+#endif	/* of #ifndef T_IN6_ADDR_DEFINED */
+
+extern ER ether_in6_resolve_multicast(T_ETHER_ADDR *ifaddr, const T_IN6_ADDR *maddr);
+
+#endif	/* of #ifdef _IP6_CFG */
+
+extern T_IFNET *ether_get_ifnet (void);
+extern ER ether_output (T_NET_BUF *data, const void *dst, T_IF_ADDR *gw, TMO tmout);
+extern ER ether_raw_output (T_NET_BUF *data, TMO tmout);
+extern uint32_t ether_srand (void);
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _ETHERNET_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/fcstab.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/fcstab.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/fcstab.c	(revision 313)
@@ -0,0 +1,34 @@
+static UH fcstab[256] = {
+	0x0000, 0x1189, 0x2312, 0x329b, 0x4624, 0x57ad, 0x6536, 0x74bf,
+	0x8c48, 0x9dc1, 0xaf5a, 0xbed3, 0xca6c, 0xdbe5, 0xe97e, 0xf8f7,
+	0x1081, 0x0108, 0x3393, 0x221a, 0x56a5, 0x472c, 0x75b7, 0x643e,
+	0x9cc9, 0x8d40, 0xbfdb, 0xae52, 0xdaed, 0xcb64, 0xf9ff, 0xe876,
+	0x2102, 0x308b, 0x0210, 0x1399, 0x6726, 0x76af, 0x4434, 0x55bd,
+	0xad4a, 0xbcc3, 0x8e58, 0x9fd1, 0xeb6e, 0xfae7, 0xc87c, 0xd9f5,
+	0x3183, 0x200a, 0x1291, 0x0318, 0x77a7, 0x662e, 0x54b5, 0x453c,
+	0xbdcb, 0xac42, 0x9ed9, 0x8f50, 0xfbef, 0xea66, 0xd8fd, 0xc974,
+	0x4204, 0x538d, 0x6116, 0x709f, 0x0420, 0x15a9, 0x2732, 0x36bb,
+	0xce4c, 0xdfc5, 0xed5e, 0xfcd7, 0x8868, 0x99e1, 0xab7a, 0xbaf3,
+	0x5285, 0x430c, 0x7197, 0x601e, 0x14a1, 0x0528, 0x37b3, 0x263a,
+	0xdecd, 0xcf44, 0xfddf, 0xec56, 0x98e9, 0x8960, 0xbbfb, 0xaa72,
+	0x6306, 0x728f, 0x4014, 0x519d, 0x2522, 0x34ab, 0x0630, 0x17b9,
+	0xef4e, 0xfec7, 0xcc5c, 0xddd5, 0xa96a, 0xb8e3, 0x8a78, 0x9bf1,
+	0x7387, 0x620e, 0x5095, 0x411c, 0x35a3, 0x242a, 0x16b1, 0x0738,
+	0xffcf, 0xee46, 0xdcdd, 0xcd54, 0xb9eb, 0xa862, 0x9af9, 0x8b70,
+	0x8408, 0x9581, 0xa71a, 0xb693, 0xc22c, 0xd3a5, 0xe13e, 0xf0b7,
+	0x0840, 0x19c9, 0x2b52, 0x3adb, 0x4e64, 0x5fed, 0x6d76, 0x7cff,
+	0x9489, 0x8500, 0xb79b, 0xa612, 0xd2ad, 0xc324, 0xf1bf, 0xe036,
+	0x18c1, 0x0948, 0x3bd3, 0x2a5a, 0x5ee5, 0x4f6c, 0x7df7, 0x6c7e,
+	0xa50a, 0xb483, 0x8618, 0x9791, 0xe32e, 0xf2a7, 0xc03c, 0xd1b5,
+	0x2942, 0x38cb, 0x0a50, 0x1bd9, 0x6f66, 0x7eef, 0x4c74, 0x5dfd,
+	0xb58b, 0xa402, 0x9699, 0x8710, 0xf3af, 0xe226, 0xd0bd, 0xc134,
+	0x39c3, 0x284a, 0x1ad1, 0x0b58, 0x7fe7, 0x6e6e, 0x5cf5, 0x4d7c,
+	0xc60c, 0xd785, 0xe51e, 0xf497, 0x8028, 0x91a1, 0xa33a, 0xb2b3,
+	0x4a44, 0x5bcd, 0x6956, 0x78df, 0x0c60, 0x1de9, 0x2f72, 0x3efb,
+	0xd68d, 0xc704, 0xf59f, 0xe416, 0x90a9, 0x8120, 0xb3bb, 0xa232,
+	0x5ac5, 0x4b4c, 0x79d7, 0x685e, 0x1ce1, 0x0d68, 0x3ff3, 0x2e7a,
+	0xe70e, 0xf687, 0xc41c, 0xd595, 0xa12a, 0xb0a3, 0x8238, 0x93b1,
+	0x6b46, 0x7acf, 0x4854, 0x59dd, 0x2d62, 0x3ceb, 0x0e70, 0x1ff9,
+	0xf78f, 0xe606, 0xd49d, 0xc514, 0xb1ab, 0xa022, 0x92b9, 0x8330,
+	0x7bc7, 0x6a4e, 0x58d5, 0x495c, 0x3de3, 0x2c6a, 0x1ef1, 0x0f78,
+	};
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/genfcstab.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/genfcstab.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/genfcstab.c	(revision 313)
@@ -0,0 +1,32 @@
+/*
+ * Generate a FCS table for the HDLC FCS (RFC1171).
+ *
+ * Drew D. Perkins at Carnegie Mellon University.
+ *
+ * Code liberally borrowed from Mohsen Banan and D. Hugh Redelmeier.
+ */
+
+#include <stdio.h>
+
+/* The HDLC polynomail: X**0 + X**5 + X**12 + X**16 (0x8408) */
+
+#define Polynomial	0x8408
+
+int
+main (int argc, char *argv[])
+{
+	unsigned int	count, octet;
+	int		bit;
+
+	printf("%s = {\n", argv[1]);
+	for (count = 0; count < 256; count ++) {
+		octet = count;
+		for (bit = 8; bit-- > 0; )
+			octet = (octet & 0x01) ? ((octet >> 1) ^ Polynomial) : (octet >> 1);
+		printf("%c0x%04x,", count % 8 ? ' ' : '\t', octet & 0xffff);
+		if (count % 8 == 7)
+			putchar('\n');
+		}
+	fputs("\t};\n", stdout);
+	return 0;
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if.c	(revision 313)
@@ -0,0 +1,194 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1980, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if.c	8.3 (Berkeley) 1/4/94
+ * $FreeBSD: src/sys/net/if.c,v 1.64.2.1 1999/08/29 16:28:14 peter Exp $
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+#include <netinet6/in6.h>
+#include <netinet6/in6_var.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  é¢æ°
+ */
+
+static void if_slowtimo (void *ignore);
+
+/*
+ *  if_slowtimo -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ãå¶å¾¡
+ */
+
+static void
+if_slowtimo (void *ignore)
+{
+	T_IF_SOFTC	*ic;
+
+	ic = IF_ETHER_NIC_GET_SOFTC();
+
+	if (ic->timer > 0) {
+		ic->timer --;
+		if (ic->timer == 0)
+			IF_ETHER_NIC_WATCHDOG(ic);
+		}
+	timeout(if_slowtimo, NULL, IF_TIMER_TMO);
+	}
+
+/*
+ *  ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ç®¡çã®åæå
+ */
+
+void
+ifinit (void)
+{
+	timeout(if_slowtimo, NULL, IF_TIMER_TMO);
+	}
+
+#endif /* of #ifdef SUPPORT_ETHER */
+
+#ifdef _IP6_CFG
+
+/*
+ *  if_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²
+ */
+
+ER
+if_addmulti (T_IFNET *ifp, void *maddr, uint8_t type)
+{
+#if MAX_IF_MADDR_CNT > 0
+
+	T_IF_ADDR	llmaddr;
+	ER		error = E_OK;
+	int_t		ix;
+
+	if (type == AT_INET6) {
+
+		if ((ix = in6_addr2maix((T_IN6_ADDR*)maddr)) == IPV6_MADDR_IX_EXTRA)
+			return E_PAR;
+
+		/* IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		ifp->in6_maddrs[ix] = *(T_IN6_ADDR*)maddr;
+
+		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã«å¤æããç»é²ããã*/
+		error = IF_IN6_RESOLVE_MULTICAST(&llmaddr, (T_IN6_ADDR*)maddr);
+		if (error != E_OK)
+			return error;
+		ifp->ic->maddrs[ix] = llmaddr;
+		}
+
+	return IF_ADDMULTI(ifp->ic);
+
+#else	/* of #if MAX_IF_MADDR_CNT > 0 */
+
+	return E_OK;
+
+#endif	/* of #if MAX_IF_MADDR_CNT > 0 */
+	}
+
+#endif	/* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if.h	(revision 313)
@@ -0,0 +1,120 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if.h,v 1.49.2.1 1999/08/29 16:28:15 peter Exp $
+ */
+
+#ifndef _IF_H_
+#define _IF_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ç¨ã¿ã¤ãã®å®ç¾©
+ */
+
+#define IF_TIMER_TMO		NET_TIMER_HZ	/* ã¿ã¤ã ã¢ã¦ãã1 [s]	*/
+#define IF_TIMER_HZ		1		/* ã¿ã¤ãã®å¨æ³¢æ°ã1 [s]	*/
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã©ã°
+ */
+
+#define IFF_UP			UINT_C(0x0001)	/* èµ·åæ¸ã¿		*/
+#define IFF_RUNNING		UINT_C(0x0002)	/* åä½ä¸­		*/
+
+/*
+ *  æ±ç¨å®ç¾©
+ */
+
+#define IF_HDR_SIZE		(sizeof(T_IF_HDR))
+#define IF_PDU_SIZE		(IF_HDR_SIZE + IF_MTU)	/* Protocol Data Unit */
+
+/*
+ *  é¢æ°
+ */
+
+#ifdef SUPPORT_ETHER
+
+extern void ifinit (void);
+
+#else	/* of #ifdef SUPPORT_ETHER */
+
+#define ifinit
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _IF_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if6_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if6_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if6_var.h	(revision 313)
@@ -0,0 +1,157 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _IF6_VAR_H_
+#define _IF6_VAR_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½
+ */
+
+#if defined(_IP6_CFG)
+
+#if defined(_IP4_CFG)
+
+struct t_ifnet {
+	T_IF_SOFTC	*ic;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	T_IN6_IFADDR 	in6_ifaddrs[NUM_IN6_IFADDR_ENTRY];
+					/* IPv6 ã¢ãã¬ã¹æ
+å ±				*/
+	T_IN6_ADDR	in6_maddrs [MAX_IN6_MADDR_CNT];
+					/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	T_IN4_IFADDR 	in4_ifaddr;	/* IPv4 ã¢ãã¬ã¹æ
+å ±				*/
+	uint8_t		flags;		/* ãã©ã°					*/
+	};
+
+#else	/* of #if defined(_IP4_CFG) */
+
+struct t_ifnet {
+	T_IF_SOFTC	*ic;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	T_IN6_IFADDR 	in6_ifaddrs[NUM_IN6_IFADDR_ENTRY];
+					/* IPv6 ã¢ãã¬ã¹æ
+å ±				*/
+	T_IN6_ADDR	in6_maddrs [MAX_IN6_MADDR_CNT];
+					/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	uint8_t		flags;		/* ãã©ã°					*/
+	};
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+struct t_ifnet {
+	T_IF_SOFTC	*ic;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	T_IN4_IFADDR 	in4_ifaddr;	/* IPv4 ã¢ãã¬ã¹æ
+å ±				*/
+	};
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+#if defined(_IP6_CFG)
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define ND6_IFPTOMAC(i)		(IF_SOFTC_TO_IFADDR((i)->ic))
+
+/*
+ *  é¢æ°
+ */
+
+extern ER if_addmulti (T_IFNET *ifp, void *maddr, uint8_t type);
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#endif	/* of #ifndef _IF6_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_arp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_arp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_arp.h	(revision 313)
@@ -0,0 +1,151 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_arp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_arp.h,v 1.10.2.3 1999/11/19 09:30:31 julian Exp $
+ */
+
+#ifndef _IF_ARP_H_
+#define _IF_ARP_H_
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  Address Resolution Protocol.
+ *
+ *  RFC 826 åç
+§
+ */
+
+/*
+ *  æ§é ä½
+ */
+
+/* ARP ããã */
+
+typedef struct t_arp_hdr {
+	uint16_t	hrd_addr;	/* ç©çã¢ãã¬ã¹ãã©ã¼ããã	*/
+	uint16_t	proto;		/* ãã­ãã³ã«			*/
+	uint8_t		hdr_len;	/* ç©çã¢ãã¬ã¹é·		*/
+	uint8_t		proto_len;	/* ãã­ãã³ã«é·			*/
+	uint16_t	opcode;		/* å½ä»¤ã³ã¼ã			*/
+	} T_ARP_HDR;
+
+#define ARP_HDR_SIZE			(sizeof(T_ARP_HDR))
+#define IF_ARP_HDR_SIZE			(IF_HDR_SIZE + ARP_HDR_SIZE)
+
+#define GET_ARP_HDR(nbuf)		((T_ARP_HDR*)((nbuf)->buf + IF_HDR_SIZE))
+
+#define GET_IF_ARP_HDR_SIZE(nbuf)	(IF_HDR_SIZE + ARP_HDR_SIZE)
+
+/* hrd_addrãç©çã¢ãã¬ã¹ãã©ã¼ãããã®å¤ */
+
+#define ARPHRD_ETHER	1	/* Ethernet	*/
+
+/* opcode, å½ä»¤ã³ã¼ãã®å¤ */
+
+#define ARPOP_REQUEST		UINT_C(1)	/* ã¢ãã¬ã¹è§£æ±ºè¦æ±		*/
+#define ARPOP_REPLY		UINT_C(2)	/* ã¢ãã¬ã¹è§£æ±ºå¿ç­		*/
+#define ARPOP_REV_REQUEST	UINT_C(3)	/* ãã­ãã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±	*/
+#define ARPOP_REV_REPLY		UINT_C(4)	/* ãã­ãã³ã«ã»ã¢ãã¬ã¹è§£æ±ºè¦æ±	*/
+#define ARPOP_INV_REQUEST	UINT_C(8)	/* çµç«¯è­å¥è¦æ±			*/
+#define ARPOP_INV_REPLY		UINT_C(9)	/* çµç«¯è­å¥è¦æ±			*/
+
+/*
+ *  ã¤ã¼ãµããããã©ã¤ãã¢ã¸ã¥ã¼ã«ã§ä½¿ç¨ããã ARP æ
+å ±
+ */
+
+typedef struct arpcom {
+	uint8_t		mac_addr[ETHER_ADDR_LEN];
+	} T_ARPCOM;
+
+/*
+ *  ARP ã­ã£ãã·ã¥æ´æ°ã¿ã¤ãã®å®ç¾©
+ */
+
+#define ARP_TIMER_TMO		(60*NET_TIMER_HZ)	/* ã¿ã¤ã ã¢ã¦ãã60 [s]	*/
+
+/*
+ *  å¤æ°
+ */
+
+extern const uint8_t	ether_broad_cast_addr[ETHER_ADDR_LEN];
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _IF_ARP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_llc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_llc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_llc.h	(revision 313)
@@ -0,0 +1,121 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *      @(#)if_llc.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_llc.h,v 1.6.4.1 1999/08/29 16:28:18 peter Exp $
+ */
+
+#ifndef _IF_LLC_H_
+#define _IF_LLC_H_
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  é·ãã®å®ç¾©
+ */
+
+#define SNAP_ORG_LEN		3
+#define SNAP_TYPE_LEN		2
+
+/*
+ *  802.3 ããã
+ */
+
+typedef struct t_8023mac_header {
+	uint8_t		dhost[ETHER_ADDR_LEN];
+	uint8_t		shost[ETHER_ADDR_LEN];
+	uint16_t	len;
+	} T_8023MAC_HDR;
+
+typedef struct t_8022llc_header {
+	uint8_t		dsap;
+	uint8_t		ssap;
+	uint8_t		control;
+	} T_8022LLC_HDR;
+
+typedef struct t_8022snap_header {
+	uint8_t		original[SNAP_ORG_LEN];
+	uint8_t		type[SNAP_TYPE_LEN];
+	} T_8022SNAP_HDR;
+
+#define GET_8023MAC_HDR(nbuf)		((T_8023MAC_HDR*)((nbuf)->buf))
+#define GET_8022LLC_HDR(nbuf)		((T_8022LLC_HDR*)((nbuf)->buf + sizeof(T_8023MAC_HDR)))
+#define GET_8022SNAP_HDR(nbuf)		((T_8022SNAP_HDR*)((nbuf)->buf + sizeof(T_8023MAC_HDR) + sizeof(T_8022LLC_HDR)))
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _IF_LLC_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.c	(revision 313)
@@ -0,0 +1,249 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_loop.c	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/net/if_loop.c,v 1.37.2.1 1999/08/29 16:28:19 peter Exp $
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/udp.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_LOOP
+
+/*
+ *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹
+ */
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  å¤æ°
+ */
+
+/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ */
+
+#if defined(_IP6_CFG)
+
+static T_IFNET loop_ifnet = {
+	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	{},			/* IPv6 ã¢ãã¬ã¹æ
+å ±				*/
+	{},			/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	};
+
+#elif defined(_IP4_CFG)	/* of #if defined(_IP6_CFG) */
+
+static T_IFNET loop_ifnet = {
+	NULL,			/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	{
+		IPV4_ADDR_LOOPBACK,		/* IPv4 ã¢ãã¬ã¹			*/
+		IPV4_ADDR_LOOPBACK_MASK,	/* ãµãããããã¹ã¯			*/
+		},
+	};
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+/*
+ *  loop_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ */
+
+T_IFNET *
+loop_get_ifnet (void)
+{
+	return &loop_ifnet;
+	}
+
+/*
+ *  looutput -- ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°
+ */
+
+ER
+looutput (T_NET_BUF *output, TMO tmout)
+{
+	ER error;
+
+	NET_COUNT_LOOP(net_count_loop.out_octets,  output->len);
+	NET_COUNT_LOOP(net_count_loop.out_packets, 1);
+
+	if ((error = tsnd_dtq(DTQ_LOOP_OUTPUT, output, tmout)) != E_OK)
+		syslog(LOG_NOTICE, "[LOOP] drop error: %s", itron_strerror(error));
+	return error;
+	}
+
+/*
+ *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»åºåã¿ã¹ã¯
+ */
+
+void
+if_loop_output_task (intptr_t exinf)
+{
+	T_NET_BUF	*output;
+	ER		error;
+	ID		tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[LOOP OUTPUT:%d] started.", tskid);
+	while (true) {
+		if (rcv_dtq(DTQ_LOOP_OUTPUT, (intptr_t*)&output) == E_OK) {
+			NET_COUNT_LOOP(net_count_loop.in_octets,  output->len);
+			NET_COUNT_LOOP(net_count_loop.in_packets, 1);
+			if ((error = snd_dtq(DTQ_LOOP_INPUT, output)) != E_OK)
+				syslog(LOG_NOTICE, "[LOOP OUTPUT] drop error: %s", itron_strerror(error));
+			}
+		}
+	}
+
+/*
+ *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å
+¥åã¿ã¹ã¯
+ */
+
+void
+if_loop_input_task (intptr_t exinf)
+{
+	T_NET_BUF	*input;
+	ID		tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[LOOP INPUT:%d] started.", tskid);
+	while (true) {
+		if (rcv_dtq(DTQ_LOOP_INPUT, (intptr_t)&input) == E_OK) {
+			NET_COUNT_LOOP(net_count_loop.in_octets,  input->len);
+			NET_COUNT_LOOP(net_count_loop.in_packets, 1);
+
+#if defined(_IP4_CFG)
+
+			/* IPv4 å
+¥åé¢æ°ãå¼ã³åºã */
+			if (IP4_VHL_V(GET_IP4_HDR(input)->vhl) == IPV4_VERSION)
+				ip_input(input);
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG)
+
+			/* IPv6 å
+¥åé¢æ°ãå¼ã³åºã */
+			if (IP6_VCF_V(ntohl(GET_IP6_HDR(input)->vcf)) == IPV6_VERSION)
+				ip6_input(input);
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+			}
+		}
+	}
+
+#endif	/* of #ifdef SUPPORT_LOOP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.cfg	(revision 313)
@@ -0,0 +1,73 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef SUPPORT_LOOP
+
+CRE_TSK(LOOP_OUTPUT_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	if_loop_output_task,
+	LOOP_OUTPUT_PRIORITY,
+	LOOP_OUTPUT_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(LOOP_INPUT_TASK,  {
+	TA_HLNG|TA_ACT,
+	0,
+	if_loop_input_task,
+	LOOP_INPUT_PRIORITY,
+	LOOP_INPUT_STACK_SIZE,
+	NULL
+	});
+
+CRE_DTQ(DTQ_LOOP_OUTPUT,  { TA_TFIFO, NUM_DTQ_LOOP_OUTPUT, NULL });
+CRE_DTQ(DTQ_LOOP_INPUT,   { TA_TFIFO, NUM_DTQ_LOOP_INPUT,  NULL });
+
+#endif	/* of #ifdef SUPPORT_LOOP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_loop.h	(revision 313)
@@ -0,0 +1,169 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ */
+
+#ifndef _IF_LOOP_H_
+#define _IF_LOOP_H_
+
+#ifdef SUPPORT_LOOP
+
+/*
+ *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»ãããã¨ã¢ãã¬ã¹
+ */
+
+typedef struct t_loop_hdr  { } T_LOOP_HDR;
+typedef struct t_loop_addr { } T_LOOP_ADDR;
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
+ */
+
+#define T_IF_HDR		T_LOOP_HDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã	*/
+#define T_IF_ADDR		T_LOOP_ADDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+#define IF_HDR_ALIGN		4			/* ãããã®ã¢ã©ã¤ã³åä½		*/
+#define IF_MTU			LOMTU			/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU		*/
+
+#define IF_OUTPUT(o,d,g,t)	looutput(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°	*/
+#define IF_RAW_OUTPUT(o,t)	looutput(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/
+#define IF_SET_PROTO(b,p)				/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°	*/
+#define IF_GET_IFNET()		loop_get_ifnet()	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã		*/
+#define IF_SRAND()		(0)			/* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä¹±æ°åæå¤			*/
+
+/* IPv4 é¢ä¿ */
+
+#define IF_PROTO_IP		0			/* ã¤ã³ã¿ãã§ã¼ã¹ã® IP ãã­ãã³ã«æå®		*/
+
+/* IPv6 é¢ä¿ */
+
+#define MAX_IF_MADDR_CNT	0			/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®æå¤§ãµã¤ãº	*/
+#define IF_IN6_NEED_CACHE(i)	(false)			/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãä½¿ç¨ããã				*/
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+#ifndef T_IF_SOFTC_DEFINED
+
+typedef struct t_if_softc T_IF_SOFTC;
+
+#define T_IF_SOFTC_DEFINED
+
+#endif	/* of #ifndef T_IF_SOFTC_DEFINED */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
+å ±
+ */
+
+struct t_if_softc { };
+
+/*
+ *  é¢æ°
+ */
+
+extern T_IFNET *loop_get_ifnet (void);
+ER looutput (T_NET_BUF *output, TMO tmout);
+
+/*
+ *  ã­ã¼ã«ã«ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã»å¦çã¿ã¹ã¯
+ */
+
+extern void	if_loop_output_task(intptr_t exinf);
+extern void	if_loop_input_task(intptr_t exinf);
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#endif	/* of #ifndef _IF_LOOP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_ppp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_ppp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_ppp.h	(revision 313)
@@ -0,0 +1,173 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * if_ppp.h - Point-to-Point Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/sys/net/if_ppp.h,v 1.13.2.1 1999/08/29 16:28:21 peter Exp $
+ */
+
+#ifndef _IF_PPP_H_
+#define _IF_PPP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  PPP ã¢ãã¬ã¹ã®å®ç¾©ï¼ããã¼ï¼
+ */
+
+typedef struct t_ppp_addr {
+	uint8_t		lladdr[0];
+	} T_PPP_ADDR;
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã®é¸æãã¯ã­
+ */
+
+#define T_IF_HDR		T_PPP_HDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ããã		*/
+#define T_IF_ADDR		T_PPP_ADDR		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹			*/
+#define IF_HDR_ALIGN		2			/* ãããã®ã¢ã©ã¤ã³åä½			*/
+#define IF_MTU			DEF_PPP_MTU		/* ã¤ã³ã¿ãã§ã¼ã¹ã® MTU			*/
+
+#define IF_OUTPUT(o,d,g,t)	ppp_output(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°		*/
+#define IF_RAW_OUTPUT(o,t)	ppp_output(o,t)		/* ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°ãã¢ãã¬ã¹è§£æ±ºç¡ã*/
+#define IF_SET_PROTO(b,p)	(*GET_PPP_HDR(b) = htons(p))
+							/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã­ãã³ã«è¨­å®é¢æ°	*/
+#define IF_SOFTC_TO_IFADDR(s)	((T_IF_ADDR*)(s)->ifaddr.lladdr)
+							/* ã½ããã¦ã§ã¢æ
+å ±ãã PPP ã¢ãã¬ã¹ãåãåºã	*/
+#define IF_GET_IFNET()		ppp_get_ifnet()		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã*/
+#define IF_SRAND()		(0)			/* ã¤ã³ã¿ã¼ãã§ã¼ã¹ã®ä¹±æ°åæå¤			*/
+
+/* IPv4 é¢ä¿ */
+
+#define IF_PROTO_IP		PPP_IP			/* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv4 ãã­ãã³ã«æå®	*/
+
+/* IPv6 é¢ä¿ */
+
+#define MAX_IF_MADDR_CNT	0			/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®æå¤§ãµã¤ãº*/
+#define IF_PROTO_IPV6		PPP_IPV6		/* ã¤ã³ã¿ãã§ã¼ã¹ã® IPv6 ãã­ãã³ã«æå®	*/
+#define IF_IN6_NEED_CACHE(i)	(false)			/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãä½¿ç¨ããã	*/
+#define IF_IN6_IFID(i,a)	get_rand_ifid(i,a)	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ã®è¨­å®		*/
+#define IF_IN6_RESOLVE_MULTICAST(i,m)	{}		/* ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ		*/
+
+/*
+ *  MTU (MRU) ã«é¢ããå®ç¾©
+ */
+
+#define DEF_PPP_MTU		1500	/* PPP ã® æ¨æº MTU	*/
+#define MAX_PPP_MTU		16384	/* PPP ã® æå¤§ MTU	*/
+#define MIN_PPP_MTU		128	/* PPP ã® æå° MTU	*/
+
+/*
+ *  PPP ããã
+ */
+
+typedef uint16_t T_PPP_HDR;				/* ä¸ä½ãã­ãã³ã«		*/
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+#ifndef T_IF_SOFTC_DEFINED
+
+typedef struct t_if_softc T_IF_SOFTC;
+
+#define T_IF_SOFTC_DEFINED
+
+#endif	/* of #ifndef T_IF_SOFTC_DEFINED */
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
+å ±
+ */
+
+struct t_if_softc {
+	T_IF_ADDR	ifaddr;		/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+	};
+
+/*
+ *  é¢æ°
+ */
+
+extern T_IFNET *ppp_get_ifnet (void);
+ER ppp_output (T_NET_BUF *data, TMO tmout);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _IF_PPP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_types.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_types.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_types.h	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+/*-
+ * Copyright (c) 1989, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_types.h	8.3 (Berkeley) 4/28/95
+ * $FreeBSD: src/sys/net/if_types.h,v 1.23.6.1 2008/11/25 02:59:29 kensmith Exp $
+ * $NetBSD: if_types.h,v 1.16 2000/04/19 06:30:53 itojun Exp $
+ */
+
+#ifndef _IF_TYPES_
+#define _IF_TYPES_
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã®åã®å®ç¾©
+ */
+
+#define IFT_ETHER	0x6	/* Ethernet CSMA/CD	*/
+
+#endif	/* of #ifndef _IF_TYPES_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/if_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/if_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/if_var.h	(revision 313)
@@ -0,0 +1,110 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _IF_VAR_H_
+#define _IF_VAR_H_
+
+#include <net/if6_var.h>
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_if_stats {
+	uint32_t	ifInOctets;
+	uint32_t	ifInUcastPkts;
+	uint32_t	ifInNUcastPkts;
+/*	uint32_t	ifInDiscards;*/
+	uint32_t	ifInErrors;
+	uint32_t	ifUnknownProtos;
+	uint32_t	ifOutOctets;
+	uint32_t	ifOutUcastPkts;
+	uint32_t	ifOutNUcastPkts;
+	uint32_t	ifOutDiscards;
+	uint32_t	ifOutErrors;
+/*	uint32_t	ifOutQlen;*/
+} T_IF_STATS;
+
+extern T_IF_STATS if_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#endif	/* of #ifndef _IF_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net.cfg	(revision 313)
@@ -0,0 +1,79 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  å
+±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ * ãããã¯ã¼ã¯ã¿ã¤ã
+ */
+
+CRE_TSK(NET_TIMER_TASK, {
+		TA_HLNG,
+		0,
+		net_timer_task,
+		NET_TIMER_PRIORITY,
+		NET_TIMER_STACK_SIZE,
+		NULL
+		});
+
+CRE_CYC(NET_TIMER_HANDLER, {
+		TA_HLNG | TA_ACT,
+		0,
+		net_timer_handler,
+		NET_TIMER_CYCLE,
+		1
+		});
+
+/* ãããã¯ã¼ã¯ã¿ã¤ãã®å¼åºãã¨ã³ããªç¨ã»ããã© */
+
+CRE_SEM(SEM_CALL_OUT_LOCK,	{ TA_TPRI, 1, 1 });
+CRE_SEM(SEM_CALL_OUT_TIMEOUT,	{ TA_TPRI, 0, NUM_NET_CALLOUT });
+
+/* ãµãã¼ãé¢æ° ip2strãipv62str ç¨ã»ããã© */
+
+CRE_SEM(SEM_IP2STR_BUFF_LOCK,	{ TA_TPRI, 1, 1 });
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net.h	(revision 313)
@@ -0,0 +1,142 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _NET_H_
+#define _NET_H_
+
+/*
+ *  ãã­ãã³ã«ãè­å¥ãããã©ã°ã«é¢ããå®ç¾©
+ *
+ *    ã»çµ±è¨æ
+å ±
+ */
+
+#define PROTO_FLG_PPP_HDLC	ULONG_C(0x00000001)	/* ppp_hdlc.c	*/
+#define PROTO_FLG_PPP_FSM	ULONG_C(0x00000002)	/* ppp_fsm.c	*/
+#define PROTO_FLG_PPP_AUTH	ULONG_C(0x00000004)	/* ppp_auth.c	*/
+#define PROTO_FLG_PPP_LCP	ULONG_C(0x00000008)	/* ppp_lcp.c	*/
+#define PROTO_FLG_PPP_IPCP	ULONG_C(0x00000010)	/* ppp_ipcp.c	*/
+#define PROTO_FLG_PPP_IPV6CP	ULONG_C(0x00000020)	/* ppp_ipv6cp.c	*/
+#define PROTO_FLG_PPP_CCP	ULONG_C(0x00000040)	/* ppp_ccp.c	*/
+#define PROTO_FLG_PPP_PAP	ULONG_C(0x00000080)	/* ppp_upap.c	*/
+#define PROTO_FLG_PPP_MODEM	ULONG_C(0x00000100)	/* ppp_modem.c	*/
+#define PROTO_FLG_PPP		ULONG_C(0x00000200)	/* ppp.c	*/
+
+#define PROTO_FLG_ETHER_NIC	ULONG_C(0x00000001)	/* if_??.c	*/
+
+#define PROTO_FLG_LOOP		ULONG_C(0x00000100)	/* if_loop.c	*/
+
+#define PROTO_FLG_ETHER		ULONG_C(0x00000100)	/* ethernet.c	*/
+
+#define PROTO_FLG_IF		ULONG_C(0x00000800)	/* if.c		*/
+
+#define PROTO_FLG_ARP		ULONG_C(0x00008000)	/* if_ether.c	*/
+
+#define PROTO_FLG_IP4		ULONG_C(0x00010000)	/* ip_*.c	*/
+#define PROTO_FLG_ICMP4		ULONG_C(0x00040000)	/* ip_icmp.c	*/
+
+#define PROTO_FLG_IP6		ULONG_C(0x00100000)	/* ip6_*.c	*/
+#define PROTO_FLG_ICMP6		ULONG_C(0x00400000)	/* icmp6.c	*/
+#define PROTO_FLG_ND6		ULONG_C(0x00800000)	/* nd6_*.c	*/
+
+#define PROTO_FLG_UDP		ULONG_C(0x08000000)	/* udp_*.c	*/
+
+#define PROTO_FLG_TCP		ULONG_C(0x01000000)	/* tcp_*.c	*/
+
+#define PROTO_FLG_NET_BUF	ULONG_C(0x10000000)	/* net_buf.c	*/
+#define PROTO_FLG_NET		ULONG_C(0x80000000)	/* route.c, net*.c	*/
+
+/*
+ *  ã¢ãã¬ã¹å½¢å¼ã®å®ç¾©
+ */
+
+#define AT_ETHER		UINT_C(0x01)		/* ã¤ã¼ãµããã		*/
+#define AT_INET4		UINT_C(0x10)		/* IPv4 ã¢ãã¬ã¹	*/
+#define AT_INET6		UINT_C(0x20)		/* IPv6 ã¢ãã¬ã¹	*/
+
+#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
+
+/*
+ *  TINET ç¬èªé¢æ°
+ */
+
+extern char *mac2str (char *buf, uint8_t *macaddr);
+
+#endif /* #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) */
+
+#endif	/* of #ifndef _NET_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_asp.cfg	(revision 313)
@@ -0,0 +1,183 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ASPç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+INCLUDE("net/net.cfg");
+
+/*
+ * ãããã¯ã¼ã¯ãããã¡
+ */
+
+#if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0
+CRE_MPF(MPF_NET_BUF_CSEG, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_CSEG,
+		sizeof(T_NET_BUF_CSEG),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */
+
+#if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0
+CRE_MPF(MPF_NET_BUF_64, {
+		TA_TFIFO, NUM_MPF_NET_BUF_64,
+		sizeof(T_NET_BUF_64),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0
+CRE_MPF(MPF_NET_BUF_128, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_128,
+		sizeof(T_NET_BUF_128),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0
+CRE_MPF(MPF_NET_BUF_256, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_256,
+		sizeof(T_NET_BUF_256),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0
+CRE_MPF(MPF_NET_BUF_512, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_512,
+		sizeof(T_NET_BUF_512),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0
+CRE_MPF(MPF_NET_BUF_IP_MSS, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IP_MSS,
+		sizeof(T_NET_BUF_IP_MSS),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0 */
+
+#if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0
+CRE_MPF(MPF_NET_BUF_1024, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_1024,
+		sizeof(T_NET_BUF_1024),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0
+CRE_MPF(MPF_NET_BUF_IPV6_MMTU, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IPV6_MMTU,
+		sizeof(T_NET_BUF_IPV6_MMTU),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0
+CRE_MPF(MPF_NET_BUF_IF_PDU, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IF_PDU,
+		sizeof(T_NET_BUF_IF_PDU),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0 */
+
+#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
+
+CRE_MPF(MPF_NET_BUF_REASSM, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF6_REASSM,
+		sizeof(T_NET_BUF6_REASSM),
+		NULL,
+		NULL
+		});
+
+#else /* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
+
+CRE_MPF(MPF_NET_BUF_REASSM, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF4_REASSM,
+		sizeof(T_NET_BUF4_REASSM),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
+
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0
+CRE_MPF(MPF_NET_BUF6_65536, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF6_65536,
+		sizeof(T_NET_BUF6_65536),
+		NULL,
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.c	(revision 313)
@@ -0,0 +1,522 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+
+/*
+ *  é¢æ°
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+/*
+ *  å¤æ°
+ */
+
+static T_NET_BUF_ENTRY net_buf_table[] = {
+
+#if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0
+	{
+		MPF_NET_BUF6_65536,
+		IF_IP6_HDR_SIZE + 65536,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF6_65536,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */
+
+#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
+
+	{
+		MPF_NET_BUF_REASSM,
+		IP6_CFG_FRAG_REASSM_SIZE,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF6_REASSM,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+
+#else	/* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
+
+	{
+		MPF_NET_BUF_REASSM,
+		IP4_CFG_FRAG_REASSM_SIZE,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF4_REASSM,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+
+#endif	/* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
+
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0
+	{
+		MPF_NET_BUF_IF_PDU,
+		IF_PDU_SIZE,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_IF_PDU,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0
+	{
+		MPF_NET_BUF_IPV6_MMTU,
+		IF_HDR_SIZE + IPV6_MMTU,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_IPV6_MMTU,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0 */
+
+#if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0
+	{
+		MPF_NET_BUF_1024,
+		UINT_C(1024),
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_1024,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0
+	{
+		MPF_NET_BUF_IP_MSS,
+		IF_HDR_SIZE + IP4_MSS,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_IP_MSS,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0 */
+
+#if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0
+	{
+		MPF_NET_BUF_512,
+		UINT_C(512),
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_512,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0
+	{
+		MPF_NET_BUF_256,
+		UINT_C(256),
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_256,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0
+	{
+		MPF_NET_BUF_128,
+		UINT_C(128),
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_128,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
+
+#if defined(_IP4_CFG)
+
+#if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0
+	{
+		MPF_NET_BUF_64,
+		UINT_C(64),
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_64,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0
+	{
+		MPF_NET_BUF_CSEG,
+		IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE,
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+		NUM_MPF_NET_BUF_CSEG,
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+		},
+#endif	/* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */
+
+	};
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+/*
+ *  nbuf_get_tbl -- ãããã¯ã¼ã¯ãããã¡ç®¡çè¡¨ãç²å¾ããã
+ *
+ *    æ³¨æ: ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬ç¨
+ */
+
+const T_NET_BUF_ENTRY *
+nbuf_get_tbl (void)
+{
+	return net_buf_table;
+	}
+
+/*
+ *  nbuf_get_tbl_size -- ãããã¯ã¼ã¯ãããã¡ç®¡çã¨ã³ããªæ°ãç²å¾ããã
+ *
+ *    æ³¨æ: ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬ç¨
+ */
+
+uint_t
+nbuf_get_tbl_size (void)
+{
+	return sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
+	}
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+/*
+ *  tget_net_buf_up -- å¤§ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã
+ */
+
+static ER
+tget_net_buf_up (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, TMO tmout)
+{
+	int_t	ix, req_ix;
+	ER	error = E_OK;
+
+	/* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/
+	ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
+	while (ix -- > 0 && minlen > net_buf_table[ix].size)
+		;
+	req_ix = ix;
+
+	NET_COUNT_NET_BUF(net_buf_table[req_ix].requests, 1);
+
+	while (1) {
+		if ((error = tget_mpf((ID)net_buf_table[ix].index, (void*)buf, ix == 0 ? tmout : TMO_POL)) == E_OK) {
+			(*buf)->idix  = (uint8_t)ix;
+			(*buf)->len   = (uint16_t)minlen;
+			(*buf)->flags = 0;
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+			NET_COUNT_NET_BUF(net_buf_table[ix].allocs, 1);
+			net_buf_table[ix].busies ++;
+#endif
+			return error;
+			}
+		else if (ix == 0 || net_buf_table[ix].size > maxlen)
+			break;
+		ix --;
+		}
+
+	syslog(LOG_WARNING, "[BUF] busy, up   index:%d,%d[%4d], len:%4d.",
+	                    (uint16_t)req_ix, ix, net_buf_table[req_ix].size, minlen);
+	*buf = NULL;
+	NET_COUNT_NET_BUF(net_buf_table[req_ix].errors, 1);
+	return error;
+	}
+
+/*
+ *  tget_net_buf_down -- å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ãã¦ããããã¯ã¼ã¯ãããã¡ãç²å¾ããã
+ */
+
+static ER
+tget_net_buf_down (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, TMO tmout)
+{
+	int_t	ix, req_ix;
+	ER	error = E_OK;
+
+	/* æé©ãªãµã¤ãºã®åºå®é·ã¡ã¢ãªãã¼ã«ãæ¢ãã*/
+	ix = sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY);
+	while (ix -- > 0 && maxlen > net_buf_table[ix].size)
+		;
+	req_ix = ix;
+
+	NET_COUNT_NET_BUF(net_buf_table[req_ix].requests, 1);
+
+	while (1) {
+		if ((error = tget_mpf((ID)net_buf_table[ix].index, (void*)buf,
+		                      ix == sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY) - 1 ? tmout : TMO_POL)) == E_OK) {
+			(*buf)->idix  = (uint8_t)ix;
+			(*buf)->len   = net_buf_table[ix].size;
+			(*buf)->flags = 0;
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+			NET_COUNT_NET_BUF(net_buf_table[ix].allocs, 1);
+			net_buf_table[ix].busies ++;
+#endif
+			return error;
+			}
+		ix ++;
+		if (ix == sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY) || net_buf_table[ix].size < minlen)
+			break;
+		}
+
+	syslog(LOG_WARNING, "[BUF] busy, down index:%d,%d[%4d], len:%4d.",
+	                    (uint16_t)req_ix, ix, net_buf_table[req_ix].size, minlen);
+	*buf = NULL;
+	NET_COUNT_NET_BUF(net_buf_table[req_ix].errors, 1);
+	return error;
+	}
+
+/*
+ *  tget_net_buf_ex -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼æ¡å¼µæ©è½ï¼ã
+ */
+
+ER
+tget_net_buf_ex (T_NET_BUF **buf, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout)
+{
+	/* æå°ãµã¤ãºãæå¤§ãµã¤ãºãè¶
+ãã¦ãããã¨ã©ã¼ */
+	if ((nbatr & NBA_SEARCH_DESCENT) != 0 && minlen > maxlen) {
+		syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d > maxlen=%4d.", minlen, maxlen);
+		return E_PAR;
+		}
+
+	/* å²å½ã¦å¯è½ãªæå¤§ã®ãµã¤ãºãè¶
+ãã¦ãããã¨ã©ã¼ */
+	if (minlen > net_buf_table[0].size || maxlen > net_buf_table[0].size) {
+		syslog(LOG_WARNING, "[NET BUF] E_PAR, minlen=%4d or maxlen=%4d > %4d",
+		                    minlen, maxlen, net_buf_table[0].size);
+		return E_PAR;
+		}
+
+#if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE)
+
+	/* TCP ã§äºç´ãããããã¯ã¼ã¯ãããã¡ãåãåºãã*/
+	if ((nbatr & NBA_RESERVE_TCP) != 0) {
+		if ((*buf = TCP_PULL_RES_NBUF(nbatr)) != NULL) {
+			return E_OK;
+			}
+		}
+
+#endif	/* of #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) */
+
+	if ((nbatr & NBA_SEARCH_DESCENT) != 0)
+		return tget_net_buf_down(buf, minlen, maxlen, tmout);
+	else if ((nbatr & NBA_SEARCH_ASCENT) != 0)
+		return tget_net_buf_up(buf, minlen, (uint_t)net_buf_table[0].size, tmout);
+	else {
+		syslog(LOG_WARNING, "[NET BUF] E_PAR, nbatr=%08x.", nbatr);
+		return E_PAR;
+		}
+	}
+
+/*
+ *  tget_net_buf -- ãããã¯ã¼ã¯ãããã¡ãç²å¾ããï¼äºæï¼ã
+ */
+
+ER
+tget_net_buf (T_NET_BUF **buf, uint_t len, TMO tmout)
+{
+	return tget_net_buf_ex(buf, len, (uint_t)net_buf_table[0].size, NBA_SEARCH_ASCENT, tmout);
+	}
+
+/*
+ * rel_net_buf -- ãããã¯ã¼ã¯ãããã¡ãè¿å´ããã
+ */
+
+ER
+rel_net_buf (T_NET_BUF *buf)
+{
+	ER	error = E_OK;
+
+	/* ãããã¯ã¼ã¯ãããã¡ã® ID ã®æ­£å½æ§ãæ¤è¨¼ããã*/
+	if ((int_t)buf->idix >= (int_t)(sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY))) {
+		syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix);
+		error = E_ID;
+		}
+	else {
+
+#if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE)
+
+		/* TCP ã§ããããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+		if (TCP_PUSH_RES_NBUF(buf) == NULL)
+			return E_OK;
+
+#endif	/* of #if defined(SUPPORT_TCP) && defined(TCP_CFG_SWBUF_CSAVE) */
+
+		/* åºå®ã¡ã¢ãªãã¼ã«ã«è¿ãã*/
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+		net_buf_table[buf->idix].busies --;
+#endif
+		if ((error = rel_mpf((ID)net_buf_table[buf->idix].index, buf)) != E_OK) {
+			syslog(LOG_WARNING, "[NET BUF] %s, ID=%d.", itron_strerror(error), buf->idix);
+			}
+		}
+	return error;
+	}
+
+/*
+ * rus_net_buf -- ãããã¯ã¼ã¯ãããã¡ãåå©ç¨ããã
+ */
+
+ER
+rus_net_buf (T_NET_BUF *buf)
+{
+	ER	error = E_OK;
+
+	if (buf->idix >= sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY)) {
+		syslog(LOG_WARNING, "[NET BUF] E_ID, ID=%d.", buf->idix);
+		error = E_ID;
+		}
+	else {
+		buf->len   = net_buf_table[buf->idix].size;
+		buf->flags = 0;
+		error = E_OK;
+		}
+	return error;
+	}
+
+/*
+ * net_buf_siz -- ãããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºãè¿ãã
+ */
+
+ER_UINT
+net_buf_siz (T_NET_BUF *buf)
+{
+	if (buf->idix >= sizeof(net_buf_table) / sizeof(T_NET_BUF_ENTRY)) {
+		syslog(LOG_WARNING, "[BUF SIZ] E_ID, ID=%d.", buf->idix);
+		return E_ID;
+		}
+	else
+		return (ER_UINT)net_buf_table[buf->idix].size;
+	}
+
+/*
+ * net_buf_max_siz -- ãããã¯ã¼ã¯ãããã¡ã®æå¤§ãµã¤ãºãè¿ãã
+ */
+
+uint_t
+net_buf_max_siz (void)
+{
+	return (uint_t)net_buf_table[0].size;
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_buf.h	(revision 313)
@@ -0,0 +1,264 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NET_BUF_H_
+#define _NET_BUF_H_
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡
+ *
+ *    4 ãªã¯ãããã§ã¢ã©ã¤ã³ããå¿
+è¦ã®ãããã­ã»ããµãèæ
+®ãã¦ã
+ *    IF ããããµã¤ãºã 4 ãªã¯ãããå¢çã§ãªãã®å ´åã
+ *    IP ãããä»¥éã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+ */
+
+#ifndef CPU_NET_ALIGN
+#error "CPU_NET_ALIGN expected."
+#endif
+
+/*
+ *  ãã³ãã¬ã¼ã
+ */
+
+struct t_net_buf {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_MIN_LEN];	/* ãããã¡æ¬ä½ */
+	};
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+/*
+ *  64 ãªã¯ããã
+ */
+
+typedef struct t_net_buf_64 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[64]; /* ãããã¡æ¬ä½	*/
+	} T_NET_BUF_64;
+
+/*
+ *  128 ãªã¯ããã
+ */
+
+typedef struct t_net_buf_128 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[128]; /* ãããã¡æ¬ä½	*/
+	} T_NET_BUF_128;
+
+/*
+ *  256 ãªã¯ããã
+ */
+
+typedef struct t_net_buf_256 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[256]; /* ãããã¡æ¬ä½	*/
+	} T_NET_BUF_256;
+
+/*
+ *  512 ãªã¯ããã
+ */
+
+typedef struct t_net_buf_512 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[512];/* ãããã¡æ¬ä½	*/
+	} T_NET_BUF_512;
+
+/*
+ *  1024 ãªã¯ããã
+ */
+
+typedef struct t_net_buf_1024 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[1024]; /* ãããã¡æ¬ä½	*/
+	} T_NET_BUF_1024;
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æå¤§ PDU ãµã¤ãº
+ */
+
+#if defined(IF_PDU_SIZE)
+
+typedef struct t_net_buf_if_pdu {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_PDU_SIZE];
+				/* ãããã¡æ¬ä½		*/
+#if defined(IF_PDU_HDR_PADDING)
+	uint8_t		padding[IF_PDU_HDR_PADDING];
+#endif				/* ãããã®ä½å		*/
+	} T_NET_BUF_IF_PDU;
+
+#endif	/* of #if defined(IF_PDU_SIZE) */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡è¡¨
+ */
+
+typedef struct t_net_buf_entry {
+
+	uint16_t	index;
+	uint_t		size;
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+	ulong_t		prepares;
+	ulong_t		busies;
+	ulong_t		requests;
+	ulong_t		allocs;
+	ulong_t		errors;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+	} T_NET_BUF_ENTRY;
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã»ãã©ã°	
+ */
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹åºåå¾ã«ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªãã
+ *  æ³¨æ: åºåå¾ã«ãã®ãã©ã°ã¯ã¯ãªã¢ãããã
+ */
+#define NB_FLG_NOREL_IFOUT	UINT_C(0x80)
+
+/*
+ *  ESP ç¨ãã©ã°
+ */
+#define NB_FLG_DECRYPED		UINT_C(0x40)
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ç²å¾å±æ§
+ */
+
+/* æ¢ç´¢å±æ§ */
+
+#define NBA_SEARCH_ASCENT	UINT_C(0x1000)	/* å¤§ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã	*/
+#define NBA_SEARCH_DESCENT	UINT_C(0x2000)	/* å°ããªãµã¤ãºã®æ¹åã«æ¢ç´¢ããã	*/
+#define NBA_RESERVE_TCP		UINT_C(0x4000)	/* TCP ç¨ã«ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+#define NBA_ID_MASK		UINT_C(0x0fff)	/* éä¿¡ç«¯ç¹ ID ãæ¸¡ãå ´åã®ãã¹ã¯å¤	*/
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define get_net_buf(b,l)	tget_net_buf((b),(l),TMO_FEVR)
+
+/*
+ *  é¢æ°
+ */
+
+extern ER tget_net_buf_ex (T_NET_BUF **blk, uint_t minlen, uint_t maxlen, ATR nbatr, TMO tmout);
+extern ER tget_net_buf (T_NET_BUF **blk, uint_t len, TMO tmout);
+extern ER rel_net_buf (T_NET_BUF *blk);
+extern ER rus_net_buf (T_NET_BUF *blk);
+extern ER_UINT net_buf_siz (T_NET_BUF *blk);
+extern uint_t net_buf_max_siz (void);
+extern const T_NET_BUF_ENTRY *nbuf_get_tbl (void);
+extern uint_t nbuf_get_tbl_size (void);
+
+#endif	/* of #ifndef _NET_BUF_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.c	(revision 313)
@@ -0,0 +1,275 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_count.h>
+
+/*
+ *  è¨æ¸¬ç¨å¤æ°
+ */
+
+#ifdef SUPPORT_PPP
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP
+
+T_NET_COUNT	net_count_ppp;
+T_NET_COUNT_VAL	net_count_ppp_no_bufs;		/* net_buf å²ãå½ã¦å¤±ææ°	*/
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP
+
+T_NET_COUNT_VAL	net_count_ppp_lcp_in_octets;
+T_NET_COUNT_VAL	net_count_ppp_lcp_in_packets;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP
+
+T_NET_COUNT_VAL	net_count_ppp_ipv6cp_in_octets;
+T_NET_COUNT_VAL	net_count_ppp_ipv6cp_in_packets;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP
+
+T_NET_COUNT_VAL	net_count_ppp_ipcp_in_octets;
+T_NET_COUNT_VAL	net_count_ppp_ipcp_in_packets;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_PAP
+
+T_NET_COUNT_VAL	net_count_ppp_upap_in_octets;
+T_NET_COUNT_VAL	net_count_ppp_upap_in_packets;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_PAP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_HDLC
+
+T_NET_COUNT	net_count_hdlc;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_HDLC */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+#if NET_COUNT_ENABLE & PROTO_FLG_LOOP
+
+T_NET_COUNT	net_count_loop;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_LOOP */
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_ETHER
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ETHER
+
+T_NET_COUNT	net_count_ether;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC
+
+T_NET_COUNT_VAL net_count_ether_nic[NC_ETHER_NIC_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if defined(_IP4_CFG)
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ARP
+
+T_NET_COUNT	net_count_arp;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ARP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_IP4
+
+T_NET_COUNT_VAL net_count_ip4[NC_IP4_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP4 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ICMP4
+
+T_NET_COUNT	net_count_icmp4;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG)
+
+#if NET_COUNT_ENABLE & PROTO_FLG_IP6
+
+T_NET_COUNT_VAL net_count_ip6[NC_IP6_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP6 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ICMP6
+
+T_NET_COUNT_VAL	net_count_icmp6[NC_ICMP6_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ND6
+
+T_NET_COUNT_VAL	net_count_nd6[NC_ND6_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ND6 */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#ifdef SUPPORT_TCP
+
+#if NET_COUNT_ENABLE & PROTO_FLG_TCP
+
+T_NET_COUNT_VAL net_count_tcp[NC_TCP_SIZE];
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_TCP */
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+#if NET_COUNT_ENABLE & PROTO_FLG_UDP
+
+T_NET_COUNT	net_count_udp;
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_UDP */
+
+#endif	/* of #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_count.h	(revision 313)
@@ -0,0 +1,594 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _NET_COUNT_H_
+#define _NET_COUNT_H_
+
+/*
+ *  ãããã¯ã¼ã¯çµ±è¨æ
+å ±ã®è¨æ¸¬
+ */
+
+#if NET_COUNT_ENABLE != 0
+
+#ifndef _MACRO_ONLY
+
+#ifdef _int64_
+typedef uint64_t T_NET_COUNT_VAL;
+#else
+typedef uint32_t T_NET_COUNT_VAL;
+#endif
+
+typedef struct t_net_count {
+	T_NET_COUNT_VAL	in_octets;		/* åä¿¡ãªã¯ãããæ°	*/
+	T_NET_COUNT_VAL	out_octets;		/* éä¿¡ãªã¯ãããæ°	*/
+	T_NET_COUNT_VAL	in_packets;		/* åä¿¡ãã±ããæ°	*/
+	T_NET_COUNT_VAL	out_packets;		/* éä¿¡ãã±ããæ°	*/
+	T_NET_COUNT_VAL	in_err_packets;		/* åä¿¡ã¨ã©ã¼ãã±ããæ°	*/
+	T_NET_COUNT_VAL	out_err_packets;	/* éä¿¡ã¨ã©ã¼ãã±ããæ°	*/
+	} T_NET_COUNT;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #if NET_COUNT_ENABLE != 0 */
+
+#ifdef SUPPORT_PPP
+
+/* PPP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP
+
+#define NET_COUNT_PPP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_ppp;
+extern T_NET_COUNT_VAL	net_count_ppp_no_bufs;	/* net_buf å²ãå½ã¦å¤±ææ°	*/
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#define NC_PPP_SIZE	7			/* ã«ã¦ã³ã¿æ° */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
+
+#define NET_COUNT_PPP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP */
+
+/* PPP HDLC */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_HDLC
+
+#define NET_COUNT_PPP_HDLC(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_hdlc;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_HDLC */
+
+#define NET_COUNT_PPP_HDLC(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_HDLC */
+
+/* PPP LCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP
+
+#define NET_COUNT_PPP_LCP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ppp_lcp_in_octets;
+extern T_NET_COUNT_VAL net_count_ppp_lcp_in_packets;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP */
+
+#define NET_COUNT_PPP_LCP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_LCP */
+
+/* PPP IPV6CP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP
+
+#define NET_COUNT_PPP_IPV6CP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_octets;
+extern T_NET_COUNT_VAL net_count_ppp_ipv6cp_in_packets;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
+
+#define NET_COUNT_PPP_IPV6CP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPV6CP */
+
+/* PPP IPCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP
+
+#define NET_COUNT_PPP_IPCP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ppp_ipcp_in_octets;
+extern T_NET_COUNT_VAL net_count_ppp_ipcp_in_packets;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP */
+
+#define NET_COUNT_PPP_IPCP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_IPCP */
+
+/* PPP CCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_CCP
+
+#define NET_COUNT_PPP_CCP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ppp_ccp_in_octets;
+extern T_NET_COUNT_VAL net_count_ppp_ccp_in_packets;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_CCP */
+
+#define NET_COUNT_PPP_CCP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_CCP */
+
+/* PPP PAP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_PPP_PAP
+
+#define NET_COUNT_PPP_PAP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ppp_upap_in_octets;
+extern T_NET_COUNT_VAL net_count_ppp_upap_in_packets;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_PAP */
+
+#define NET_COUNT_PPP_PAP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_PPP_PAP */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+/* ã«ã¼ãããã¯ */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_LOOP
+
+#define NET_COUNT_LOOP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_loop;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_LOOP */
+
+#define NET_COUNT_LOOP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_LOOP */
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_ETHER
+
+/* Ethernet */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ETHER
+
+#define NET_COUNT_ETHER(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_ether;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER */
+
+#define NET_COUNT_ETHER(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER */
+
+/* NIC (if_ed) */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC
+
+#define NC_ETHER_NIC_RESETS		0	/* ãªã»ããæ°			*/
+#define NC_ETHER_NIC_TXB_QOVRS		1	/* éä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/
+#define NC_ETHER_NIC_TIMEOUTS		2	/* éä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
+#define NC_ETHER_NIC_COLS		3	/* ã³ãªã¸ã§ã³æ°			*/
+#define NC_ETHER_NIC_OUT_ERR_PACKETS	4	/* éä¿¡ã¨ã©ã¼ãã±ããæ°		*/
+#define NC_ETHER_NIC_OUT_PACKETS	5	/* éä¿¡ãã±ããæ°		*/
+#define NC_ETHER_NIC_OUT_OCTETS		6	/* éä¿¡ãªã¯ãããæ°		*/
+#define NC_ETHER_NIC_RXB_QOVRS		7	/* åä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°*/
+#define NC_ETHER_NIC_NO_BUFS		8	/* net_buf å²ãå½ã¦å¤±ææ°	*/
+#define NC_ETHER_NIC_IN_ERR_PACKETS	9	/* åä¿¡ã¨ã©ã¼ãã±ããæ°		*/
+#define NC_ETHER_NIC_IN_PACKETS		10	/* åä¿¡ãã±ããæ°		*/
+#define NC_ETHER_NIC_IN_OCTETS		11	/* åä¿¡ãªã¯ãããæ°		*/
+#define NC_ETHER_NIC_SIZE		12	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_ETHER_NIC(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ether_nic[NC_ETHER_NIC_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC */
+
+#define NET_COUNT_ETHER_NIC(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ETHER_NIC */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/* ãããã¯ã¼ã¯ãããã¡ */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF
+
+#define NET_COUNT_NET_BUF(v,c)		((v)+=(c))
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+#define NET_COUNT_NET_BUF(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_NET_BUF */
+
+#if defined(_IP4_CFG)
+
+/* ARP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ARP
+
+#define NET_COUNT_ARP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_arp;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ARP */
+
+#define NET_COUNT_ARP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ARP */
+
+/* IPv4 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_IP4
+
+#define NC_IP4_FRAG_OUT_FRAGS		0	/* åå²éä¿¡ããã©ã°ã¡ã³ãæ°	*/
+#define NC_IP4_FRAG_OUT			1	/* åå²éä¿¡æ°			*/
+#define NC_IP4_OUT_ERR_PACKETS		2	/* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
+#define NC_IP4_OUT_PACKETS		3	/* éä¿¡ãã¼ã¿ã°ã©ã æ°		*/
+#define NC_IP4_OUT_OCTETS		4	/* éä¿¡ãªã¯ãããæ°		*/
+#define NC_IP4_FRAG_IN_TMOUT		5	/* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
+#define NC_IP4_FRAG_IN_NO_BUF		6	/* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°	*/
+#define NC_IP4_FRAG_IN_DROP		7	/* åå²åä¿¡ç ´æ£æ°		*/
+#define NC_IP4_FRAG_IN_OK		8	/* åå²åä¿¡åæ§ææåæ°		*/
+#define NC_IP4_FRAG_IN_FRAGS		9	/* åå²åä¿¡ãã©ã°ã¡ã³ãæ°		*/
+#define NC_IP4_FRAG_IN			10	/* åå²åä¿¡æ°			*/
+#define NC_IP4_OPTS			11	/* ãªãã·ã§ã³å
+¥åæ°		*/
+#define NC_IP4_IN_ERR_PROTO		12	/* ãã­ãã³ã«ã¨ã©ã¼æ°		*/
+#define NC_IP4_IN_ERR_ADDR		13	/* ã¢ãã¬ã¹ã¨ã©ã¼æ°		*/
+#define NC_IP4_IN_ERR_VER		14	/* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°		*/
+#define NC_IP4_IN_ERR_SHORT		15	/* é·ãã¨ã©ã¼æ°			*/
+#define NC_IP4_IN_ERR_CKSUM		16	/* ãã§ãã¯ãµã ã¨ã©ã¼æ°		*/
+#define NC_IP4_IN_ERR_PACKETS		17	/* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
+#define NC_IP4_IN_PACKETS		18	/* åä¿¡ãã¼ã¿ã°ã©ã æ°		*/
+#define NC_IP4_IN_OCTETS		19	/* åä¿¡ãªã¯ãããæ°		*/
+#define NC_IP4_SIZE			20	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_IP4(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ip4[NC_IP4_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP4 */
+
+#define NET_COUNT_IP4(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP4 */
+
+/* ICMP4 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ICMP4
+
+#define NET_COUNT_ICMP4(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_icmp4;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
+
+#define NET_COUNT_ICMP4(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP4 */
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG)
+
+/* IPv6 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_IP6
+
+#define NC_IP6_FRAG_OUT_FRAGS		0	/* åå²éä¿¡ããã©ã°ã¡ã³ãæ°	*/
+#define NC_IP6_FRAG_OUT			1	/* åå²éä¿¡æ°			*/
+#define NC_IP6_OUT_ERR_PACKETS		2	/* éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
+#define NC_IP6_OUT_PACKETS		3	/* éä¿¡ãã¼ã¿ã°ã©ã æ°		*/
+#define NC_IP6_OUT_OCTETS		4	/* éä¿¡ãªã¯ãããæ°		*/
+#define NC_IP6_FRAG_IN_TMOUT		5	/* åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°		*/
+#define NC_IP6_FRAG_IN_NO_BUF		6	/* åå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°	*/
+#define NC_IP6_FRAG_IN_DROP		7	/* åå²åä¿¡ç ´æ£æ°		*/
+#define NC_IP6_FRAG_IN_OK		8	/* åå²åä¿¡åæ§ææåæ°		*/
+#define NC_IP6_FRAG_IN_FRAGS		9	/* åå²åä¿¡ãã©ã°ã¡ã³ãæ°		*/
+#define NC_IP6_FRAG_IN			10	/* åå²åä¿¡æ°			*/
+#define NC_IP6_IN_ERR_PROTO		11	/* ãã­ãã³ã«ã¨ã©ã¼æ°		*/
+#define NC_IP6_IN_ERR_ADDR		12	/* ã¢ãã¬ã¹ã¨ã©ã¼æ°		*/
+#define NC_IP6_IN_ERR_VER		13	/* ãã¼ã¸ã§ã³ã¨ã©ã¼æ°		*/
+#define NC_IP6_IN_ERR_SHORT		14	/* é·ãã¨ã©ã¼æ°			*/
+#define NC_IP6_IN_ERR_PACKETS		15	/* åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°	*/
+#define NC_IP6_IN_PACKETS		16	/* åä¿¡ãã¼ã¿ã°ã©ã æ°		*/
+#define NC_IP6_IN_OCTETS		17	/* åä¿¡ãªã¯ãããæ°		*/
+#define NC_IP6_SIZE			18	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_IP6(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_ip6[NC_IP6_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP6 */
+
+#define NET_COUNT_IP6(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_IP6 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ICMP6
+
+#define NC_ICMP6_OUT_ERR_PACKETS	0	/* éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	*/
+#define NC_ICMP6_OUT_PACKETS		1	/* éä¿¡ ICMP ãã¼ã¿æ°		*/
+#define NC_ICMP6_OUT_OCTETS		2	/* éä¿¡ ICMP ãªã¯ãããæ°		*/
+#define NC_ICMP6_IN_ERR_CKSUM		3	/* é·ãã¨ã©ã¼æ°			*/
+#define NC_ICMP6_IN_ERR_PACKETS		4	/* åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	*/
+#define NC_ICMP6_IN_PACKETS		5	/* åä¿¡ ICMP ãã¼ã¿æ°		*/
+#define NC_ICMP6_IN_OCTETS		6	/* åä¿¡ ICMP ãªã¯ãããæ°		*/
+#define NC_ICMP6_SIZE			7	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_ICMP6(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL	net_count_icmp6[NC_ICMP6_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6 */
+
+#define NET_COUNT_ICMP6(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ICMP6 */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_ND6
+
+#define NC_ND6_DAD_OUT_PACKETS		0	/* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°		*/
+#define NC_ND6_NS_OUT_PACKETS		1	/* è¿é£è¦è«éä¿¡æ°		*/
+#define NC_ND6_NS_IN_PACKETS		2	/* è¿é£è¦è«åä¿¡æ°		*/
+#define NC_ND6_NA_OUT_PACKETS		3	/* è¿é£éç¥éä¿¡æ°		*/
+#define NC_ND6_NA_IN_PACKETS		4	/* è¿é£éç¥åä¿¡æ°		*/
+#define NC_ND6_RS_OUT_PACKETS		5	/* ã«ã¼ã¿è¦è«åºåæ°		*/
+#define NC_ND6_RA_IN_PACKETS		6	/* ã«ã¼ã¿éç¥åä¿¡æ°		*/
+#define NC_ND6_SIZE			7	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_ND6(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL	net_count_nd6[NC_ND6_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ND6 */
+
+#define NET_COUNT_ND6(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_ND6 */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#ifdef SUPPORT_TCP
+
+/* TCP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_TCP
+
+#define NC_TCP_CONNECTS			0	/* è½åãªã¼ãã³æ°		*/
+#define NC_TCP_ACCEPTS			1	/* ååãªã¼ãã³æ°		*/
+#define NC_TCP_RTT_UPDATES		2	/* RTT æ´æ°æ°			*/
+#define NC_TCP_SEND_RSTS		3	/* éä¿¡ãRST æ°			*/
+#define NC_TCP_SEND_ACKS		4	/* éä¿¡ãACK æ°			*/
+#define NC_TCP_SEND_URG_SEGS		5	/* éä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°	*/
+#define NC_TCP_SEND_DATA_SEGS		6	/* éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°	*/
+#define NC_TCP_SEND_REXMIT_SEGS		7	/* åéä¿¡ã»ã°ã¡ã³ãæ°		*/
+#define NC_TCP_SEND_SEGS		8	/* éä¿¡ã»ã°ã¡ã³ãæ°		*/
+#define NC_TCP_SEND_CNTL_SEGS		9	/* éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°		*/
+#define NC_TCP_SEND_DATA_OCTETS		10	/* éä¿¡ãã¼ã¿ãªã¯ãããæ°	*/
+#define NC_TCP_FREE_RCV_QUEUE		11	/* åä¿¡ã­ã¥ã¼è§£æ¾æ°		*/
+#define NC_TCP_RECV_DUP_SEGS		12	/* åä¿¡ãå¤éæ°			*/
+#define NC_TCP_RECV_DROP_SEGS		13	/* åä¿¡ãç ´æ£æ°			*/
+#define NC_TCP_RECV_RSTS		14	/* åä¿¡ãRST æ°			*/
+#define NC_TCP_RECV_DUP_ACKS		15	/* åä¿¡ãå¤é ACK æ°		*/
+#define NC_TCP_RECV_ACKS		16	/* åä¿¡ãACK æ°			*/
+#define NC_TCP_RECV_BAD_CKSUMS		17	/* åä¿¡ããã§ãã¯ãµã ä¸æ­£æ°	*/
+#define NC_TCP_RECV_BAD_HEADERS		18	/* åä¿¡ããããä¸æ­£æ°		*/
+#define NC_TCP_RECV_URG_SEGS		19	/* åä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°	*/
+#define NC_TCP_RECV_DATA_SEGS		20	/* åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°	*/
+#define NC_TCP_RECV_SEGS		21	/* åä¿¡ã»ã°ã¡ã³ãæ°		*/
+#define NC_TCP_RECV_DATA_OCTETS		22	/* åä¿¡ãã¼ã¿ãªã¯ãããæ°	*/
+#define NC_TCP_RECV_OCTETS		23	/* åä¿¡ãªã¯ãããæ°		*/
+#define NC_TCP_SIZE			24	/* ã«ã¦ã³ã¿æ°			*/
+
+#define NET_COUNT_TCP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT_VAL net_count_tcp[NC_TCP_SIZE];
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_TCP */
+
+#define NET_COUNT_TCP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_TCP */
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+/* UDP */
+
+#if NET_COUNT_ENABLE & PROTO_FLG_UDP
+
+#define NET_COUNT_UDP(v,c)	((v)+=(c))
+
+#ifndef _MACRO_ONLY
+
+extern T_NET_COUNT	net_count_udp;
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#else	/* of #if NET_COUNT_ENABLE & PROTO_FLG_UDP */
+
+#define NET_COUNT_UDP(v,c)
+
+#endif	/* of #if NET_COUNT_ENABLE & PROTO_FLG_UDP */
+
+#endif	/* of #ifdef SUPPORT_UDP */
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+#define NET_COUNT_MIB(v, c)		((v)+=(c))
+
+#else	/* of #ifdef SUPPORT_MIB */
+
+#define NET_COUNT_MIB(v, c)
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#endif	/* of #ifndef _NET_COUNT_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_endian.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_endian.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_endian.h	(revision 313)
@@ -0,0 +1,209 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _NET_ENDIAN_H_
+#define _NET_ENDIAN_H_
+
+/*
+ *  ãã¤ããªã¼ãã®å®ç¾©
+ */
+
+#define _NET_CFG_LITTLE_ENDIAN	1234
+#define _NET_CFG_BIG_ENDIAN	4321
+
+#ifdef TARGET_KERNEL_ASP
+
+#if defined(SIL_ENDIAN_LITTLE)
+
+#define _NET_CFG_BYTE_ORDER	_NET_CFG_LITTLE_ENDIAN
+
+#elif defined(SIL_ENDIAN_BIG)
+
+#define _NET_CFG_BYTE_ORDER	_NET_CFG_BIG_ENDIAN
+
+#else	/* of #if defined(SIL_ENDIAN_BIG) */
+
+#error "SIL_ENDIAN expected."
+
+#endif	/* of #if defined(SIL_ENDIAN_BIG) */
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#if SIL_ENDIAN == SIL_ENDIAN_LITTLE
+
+#define _NET_CFG_BYTE_ORDER	_NET_CFG_LITTLE_ENDIAN
+
+#elif SIL_ENDIAN == SIL_ENDIAN_BIG	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
+
+#define _NET_CFG_BYTE_ORDER	_NET_CFG_BIG_ENDIAN
+
+#else	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
+
+#error "SIL_ENDIAN expected."
+
+#endif	/* of #if SIL_ENDIAN == SIL_ENDIAN_LITTLE */
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+/*
+ *  ãã¤ããªã¼ãå¤æã®å®ç¾©
+ */
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+#define ntohs(n)		((uint16_t)n)
+#define htons(h)		((uint16_t)h)
+#define ntohl(n)		((uint32_t)n)
+#define htonl(h)		((uint32_t)h)
+
+#define NTOHS(n)
+#define HTONS(h)
+#define NTOHL(n)
+#define HTONL(h)
+
+/*
+ *  æ³¨æ: IPãããä»¥éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã
+ *        åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã
+ *        ãã­ã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³
+ *        ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ãä½¿ç¨ãããã¨ã
+ */
+
+#define ntoahs(h,n)		memcpy((void*)&(h),(n),sizeof(uint16_t))
+#define ahtons(n,h)		memcpy((n),(void*)&(h),sizeof(uint16_t))
+#define ntoahl(h,n)		memcpy((void*)&(h),(n),sizeof(uint32_t))
+#define ahtonl(n,h)		memcpy((n),(void*)&(h),sizeof(uint32_t))
+
+#define nahcmpl(n,h)		memcmp((n),(void*)&(h),sizeof(uint32_t))
+
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#ifndef NET_REV_ENDIAN_HWORD
+
+#define NET_REV_ENDIAN_HWORD(d)	((uint16_t)((((uint16_t)(d)&0xff)<<8)|(((uint16_t)(d)>>8)&0xff)))
+
+#endif	/* of #ifndef NET_REV_ENDIAN_HWORD */
+
+#ifndef NET_REV_ENDIAN_WORD
+
+#define NET_REV_ENDIAN_WORD(d)	((uint32_t)((((uint32_t)(d)&0xff)<<24)|(((uint32_t)(d)&0xff00)<<8)| \
+				            (((uint32_t)(d)>>8)&0xff00)|(((uint32_t)(d)>>24)&0xff)))
+
+#endif	/* of #ifndef NET_REV_ENDIAN_WORD */
+
+#define ntohs(n)		NET_REV_ENDIAN_HWORD(n)
+#define htons(h)		NET_REV_ENDIAN_HWORD(h)
+#define ntohl(n)		NET_REV_ENDIAN_WORD(n)
+#define htonl(h)		NET_REV_ENDIAN_WORD(h)
+
+#define NTOHS(n)		((n)=NET_REV_ENDIAN_HWORD(n))
+#define HTONS(h)		((h)=NET_REV_ENDIAN_HWORD(h))
+#define NTOHL(n)		((n)=NET_REV_ENDIAN_WORD(n))
+#define HTONL(h)		((h)=NET_REV_ENDIAN_WORD(h))
+
+/*
+ *  æ³¨æ: IPãããä»¥éã¯ã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã¦ããäºã
+ *        åæã¨ãã¦ãããã4 ãã¤ãå¢çã§ã¢ã¯ã»ã¹ãã
+ *        ãã­ã»ããµã§ããããã¯ã¼ã¯å´ã®ãã¼ã¿ãã4 ãã¤ãå¢çã«ã¢ã©ã¤ã³
+ *        ããã¦ããªãå ´åã¯ãntoahlãahtonlãnahcmpl ãä½¿ç¨ãããã¨ã
+ */
+
+#ifndef _MACRO_ONLY
+
+extern void rev_memcpy_word  (void *dst, void *src);
+extern void rev_memcpy_hword (void *dst, void *src);
+
+extern int  rev_memcmp_word (void *data1, void *data2);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#define ntoahs(h,n)		rev_memcpy_hword((void*)&(h),(n))
+#define ahtons(n,h)		rev_memcpy_hword((n),(void*)&(h))
+#define ntoahl(h,n)		rev_memcpy_word((void*)&(h),(n))
+#define ahtonl(n,h)		rev_memcpy_word((n),(void*)&(h))
+
+#define nahcmpl(n,h)		rev_memcmp_word((n),(void*)&(h))
+
+#else	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#error "_NET_CFG_BYTE_ORDER expected."
+
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#endif	/* of #ifndef _NET_ENDIAN_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_jsp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_jsp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_jsp.cfg	(revision 313)
@@ -0,0 +1,173 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  JSPç¨ æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+
+/*
+ *  å
+±é æ±ç¨ãããã¯ã¼ã¯ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#include "net/net.cfg"
+
+/*
+ * ãããã¯ã¼ã¯ãããã¡
+ */
+
+#if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0
+CRE_MPF(MPF_NET_BUF_CSEG, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_CSEG,
+		sizeof(T_NET_BUF_CSEG),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_CSEG) && NUM_MPF_NET_BUF_CSEG > 0 */
+
+#if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0
+CRE_MPF(MPF_NET_BUF_64, {
+		TA_TFIFO, NUM_MPF_NET_BUF_64,
+		sizeof(T_NET_BUF_64),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_64) && NUM_MPF_NET_BUF_64 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0
+CRE_MPF(MPF_NET_BUF_128, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_128,
+		sizeof(T_NET_BUF_128),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_128) && NUM_MPF_NET_BUF_128 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0
+CRE_MPF(MPF_NET_BUF_256, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_256,
+		sizeof(T_NET_BUF_256),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_256) && NUM_MPF_NET_BUF_256 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0
+CRE_MPF(MPF_NET_BUF_512, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_512,
+		sizeof(T_NET_BUF_512),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_512) && NUM_MPF_NET_BUF_512 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0
+CRE_MPF(MPF_NET_BUF_IP_MSS, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IP_MSS,
+		sizeof(T_NET_BUF_IP_MSS),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IP_MSS) && NUM_MPF_NET_BUF_IP_MSS > 0 */
+
+#if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0
+CRE_MPF(MPF_NET_BUF_1024, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_1024,
+		sizeof(T_NET_BUF_1024),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_1024) && NUM_MPF_NET_BUF_1024 > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0
+CRE_MPF(MPF_NET_BUF_IPV6_MMTU, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IPV6_MMTU,
+		sizeof(T_NET_BUF_IPV6_MMTU),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IPV6_MMTU) && NUM_MPF_NET_BUF_IPV6_MMTU > 0 */
+
+#if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0
+CRE_MPF(MPF_NET_BUF_IF_PDU, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF_IF_PDU,
+		sizeof(T_NET_BUF_IF_PDU),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF_IF_PDU) && NUM_MPF_NET_BUF_IF_PDU > 0 */
+
+#if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0
+
+CRE_MPF(MPF_NET_BUF_REASSM, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF6_REASSM,
+		sizeof(T_NET_BUF6_REASSM),
+		NULL
+		});
+
+#else	/* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0
+
+CRE_MPF(MPF_NET_BUF_REASSM, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF4_REASSM,
+		sizeof(T_NET_BUF4_REASSM),
+		NULL
+		});
+
+#endif	/* of #if defined(NUM_MPF_NET_BUF4_REASSM) && NUM_MPF_NET_BUF4_REASSM > 0 */
+
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_REASSM) && NUM_MPF_NET_BUF6_REASSM > 0 */
+
+#if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0
+CRE_MPF(MPF_NET_BUF6_65536, {
+		TA_TFIFO,
+		NUM_MPF_NET_BUF6_65536,
+		sizeof(T_NET_BUF6_65536),
+		NULL
+		});
+#endif	/* of #if defined(NUM_MPF_NET_BUF6_65536) && NUM_MPF_NET_BUF6_65536 > 0 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_rename.h	(revision 313)
@@ -0,0 +1,186 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NET_RENAME_H_
+#define _NET_RENAME_H_
+
+/*
+ *  æ±ç¨ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å
+é¨åã®ãªãã¼ã 
+ */
+
+/* net/ethernet.c */
+
+#define ether_input_task	_tinet_ether_input_task
+#define ether_get_ifnet		_tinet_ether_get_ifnet
+#define ether_in6_resolve_multicast	\
+				_tinet_ether_in6_resolve_multicast
+#define ether_srand		_tinet_ether_srand
+#define ether_output		_tinet_ether_output
+#define	ether_raw_output	_tinet_ether_raw_output
+#define ether_output_task	_tinet_ether_output_task
+
+#define ether_broad_cast_addr	_tinet_ether_broad_cast_addr
+#define ether_ipv4_addr_local	_tinet_ether_ipv4_addr_local
+#define ether_ipv4_addr_local_mask	\
+				_tinet_ether_ipv4_addr_local_mask
+
+#define ether_in6_ifaddr	_tinet_ether_in6_ifaddr
+#define ether_in6_ifaddr_list	_tinet_ether_in6_ifaddr_list
+
+/* net/if.c */
+
+#ifdef SUPPORT_ETHER
+
+#define ifinit			_tinet_ifinit
+#define if_addmulti		_tinet_if_addmulti
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/* net/net_buf.c */
+
+#define tget_net_buf_ex		_tinet_tget_net_buf_ex
+#define tget_net_buf		_tinet_tget_net_buf
+#define rel_net_buf		_tinet_rel_net_buf
+#define rus_net_buf		_tinet_rus_net_buf
+#define net_buf_siz		_tinet_net_buf_siz
+#define net_buf_max_siz		_tinet_net_buf_max_siz
+#define nbuf_get_tbl		_tinet_nbuf_get_tbl
+#define nbuf_get_tbl_size	_tinet_nbuf_get_tbl_size
+
+/* net/net_subr.c */
+
+#define convert_hexdigit	_tinet_convert_hexdigit
+#define net_rand		_tinet_net_rand
+#define net_srand		_tinet_net_srand
+#define rev_memcpy_word		_tinet_rev_memcpy_word
+#define rev_memcmp_word		_tinet_rev_memcmp_word
+
+/* net/net_timer.c */
+
+#define timeout			_tinet_timeout
+#define untimeout		_tinet_untimeout
+#define busy_callout		_tinet_busy_callout
+#define max_busy		_tinet_max_busy
+
+/* route_cfg.c */
+
+#define routing6_tbl		_tinet_routing6_tbl
+#define routing4_tbl		_tinet_routing4_tbl
+
+#ifdef SUPPORT_PPP
+
+/* net/ppp.c */
+
+#define ppp_output		_tinet_ppp_output
+#define ppp_cp_output		_tinet_ppp_cp_output
+#define ppp_phase		_tinet_ppp_phase
+#define protocols		_tinet_protocols
+
+/* net/ppp_hdlc.c */
+
+#define HDLC_dummy_read		_tinet_HDLC_dummy_read
+#define HDLC_read		_tinet_HDLC_read
+#define HDLC_write		_tinet_HDLC_write
+#define remote_ACCM		_tinet_remote_ACCM
+
+/* net/ppp_lcp.c */
+
+#define lcp_close		_tinet_lcp_close
+#define lcp_open		_tinet_lcp_open
+#define lcp_lowerdown		_tinet_lcp_lowerdown
+#define lcp_sprotrej		_tinet_lcp_sprotrej
+#define lcp_lowerup		_tinet_lcp_lowerup
+#define lcp_finished		_tinet_lcp_finished
+#define lcp_down		_tinet_lcp_down
+#define lcp_callbacks		_tinet_lcp_callbacks
+#define lcp_fsm			_tinet_lcp_fsm
+#define lcp_protent		_tinet_lcp_protent
+#define lcp_local_ack_cfg	_tinet_lcp_local_ack_cfg
+#define lcp_remote_ack_cfg	_tinet_lcp_remote_ack_cfg
+
+/* net/ppp_fsm.c */
+
+#define fsm_init		_tinet_fsm_init
+#define fsm_open		_tinet_fsm_open
+#define fsm_input		_tinet_fsm_input
+#define fsm_protreject		_tinet_fsm_protreject
+#define fsm_lowerdown		_tinet_fsm_lowerdown
+#define fsm_close		_tinet_fsm_close
+#define fsm_lowerup		_tinet_fsm_lowerup
+#define ppp_open_mode		_tinet_ppp_open_mode
+
+/* net/ppp_auth.c */
+
+#define auth_reset		_tinet_auth_reset
+#define link_terminated		_tinet_link_terminated
+#define link_established	_tinet_link_established
+#define link_required		_tinet_link_required
+#define network_phase		_tinet_network_phase
+#define link_down		_tinet_link_down
+
+/* net/ppp_ipcp.c */
+
+#define wait_ipcp		_tinet_wait_ipcp
+#define ppp_get_ifnet		_tinet_ppp_get_ifnet
+#define ipcp_protent		_tinet_ipcp_protent
+#define ipcp_callbacks		_tinet_ipcp_callbacks
+#define ipcp_fsm		_tinet_ipcp_fsm
+#define ipcp_remote_ack_cfg	_tinet_ipcp_remote_ack_cfg
+#define ipcp_local_ack_cfg	_tinet_ipcp_local_ack_cfg
+
+/* net/ppp_upap.c */
+
+#define upap_auth_client	_tinet_upap_auth_client
+#define upap_auth_server	_tinet_upap_auth_server
+#define pap_protent		_tinet_pap_protent
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#endif	/* of #ifndef _NET_RENAME_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_subr.c	(revision 313)
@@ -0,0 +1,257 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯æ±ç¨ãµãã¼ãã«ã¼ãã³
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+
+/*
+ *  å¤æ°
+ */
+
+static uint32_t next = ULONG_C(1);
+
+/*
+ *  net_rand -- ä¹±æ°ãè¿ãã
+ */
+
+uint32_t
+net_rand (void)
+{
+	next = (next * 99991 + 12345) & ULONG_C(0x7fffffff);
+	return next;
+	}
+
+/*
+ *  srand -- ä¹±æ°ãåæåããã
+ */
+
+void
+net_srand (uint32_t seed)
+{
+	SYSTIM now;
+
+	syscall(get_tim(&now));
+	next += now + seed + IF_SRAND();
+	}
+
+/*
+ *  convert_hexdigit -- 16é²æ°âæå­åå¤æ
+ */
+
+int_t
+convert_hexdigit (char *buf, uint_t val, int_t radix, int_t width, char padchar)
+{
+	static const char radhex[] = "0123456789abcdef";
+
+	char	digits[11], *start;
+	int_t	ix, pad;
+
+	ix = 0;
+	start = buf;
+	do {
+		digits[ix ++] = radhex[(val % radix) & 0x0f];
+		val /= radix;
+		} while (val != 0);
+	for (pad = ix; pad < width; pad ++)
+		*buf ++ = padchar;
+	while (ix -- > 0)
+		*buf ++ = digits[ix];
+	*buf = '\0';
+	return (int_t)(buf - start);
+	}
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  mac2str -- MAC ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ */
+
+char *
+mac2str (char *buf, uint8_t *macaddr)
+{
+	static char	addr_sbuf[NUM_MACADDR_STR_BUFF][sizeof("00:00:00:00:00:00")];
+	static int_t	bix = NUM_MACADDR_STR_BUFF;
+
+	char *start;
+
+	if (buf == NULL) {
+		syscall(wai_sem(SEM_MAC2STR_BUFF_LOCK));
+		buf = addr_sbuf[-- bix];
+		if (bix <= 0)
+			bix = NUM_MACADDR_STR_BUFF;
+		syscall(sig_sem(SEM_MAC2STR_BUFF_LOCK));
+		}
+
+	start = buf;
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*(buf ++) = ':';
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*(buf ++) = ':';
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*(buf ++) = ':';
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*(buf ++) = ':';
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*(buf ++) = ':';
+	buf += convert_hexdigit(buf, (uint_t)(*macaddr ++), 16, 2, '0');
+	*buf = '\0';
+	return start;
+	}
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
+
+/*
+ *  rev_memcpy_hword -- åè»¢ã¡ã¢ãªã³ãã¼ï¼2 ãã¤ãï¼
+ *
+ *    ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã
+ *    å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ãè§£æ±ºããã
+ */
+
+void
+rev_memcpy_hword (void *dst, void *src)
+{
+	*((uint8_t*)dst    ) = *((uint8_t*)src + 1);
+	*((uint8_t*)dst + 1) = *((uint8_t*)src    );
+	}
+
+/*
+ *  rev_memcpy_word -- åè»¢ã¡ã¢ãªã³ãã¼ï¼4 ãã¤ãï¼
+ *
+ *    ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã
+ *    å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ãè§£æ±ºããã
+ */
+
+void
+rev_memcpy_word (void *dst, void *src)
+{
+	*((uint8_t*)dst    ) = *((uint8_t*)src + 3);
+	*((uint8_t*)dst + 1) = *((uint8_t*)src + 2);
+	*((uint8_t*)dst + 2) = *((uint8_t*)src + 1);
+	*((uint8_t*)dst + 3) = *((uint8_t*)src    );
+	}
+
+/*
+ *  rev_memcmp_word -- åè»¢ã¡ã¢ãªæ¯è¼ï¼4 ãã¤ãï¼
+ *
+ *    ãã¤ãåä½ã«ã¢ã¯ã»ã¹ããäºã«ããã
+ *    å¢çã¸ã®ã¢ã©ã¤ã³ã®åé¡ãè§£æ±ºããã
+ */
+
+int_t
+rev_memcmp_word (void *data1, void *data2)
+{
+	int_t	ix, diff;
+
+	for (ix = sizeof(uint32_t); ix -- > 0; ) {
+		diff = *((uint8_t*)data1 + ix) -  *((uint8_t*)data2 + (3 - ix));
+		if (diff != 0)
+			return diff;
+		}
+	return 0;
+	}
+
+#endif	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.c	(revision 313)
@@ -0,0 +1,257 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+
+/*
+ *  å¤æ°
+ */
+
+static T_NET_CALLOUT callout[NUM_NET_CALLOUT];
+
+/*
+ *  å¼åºãã¨ã³ããªç»é²
+ */
+
+void
+timeout (callout_func func, void *arg, RELTIM timeout)
+{
+	int_t ix;
+
+	/* å¼åºãã¨ã³ããªãç²å¾ãã */
+	syscall(wai_sem(SEM_CALL_OUT_LOCK));
+	for (ix = NUM_NET_CALLOUT; callout[-- ix].func != NULL; )
+		if (ix == 0) {
+			syslog(LOG_WARNING, "[NET] callout busy, size=%d.", NUM_NET_CALLOUT);
+			syscall(sig_sem(SEM_CALL_OUT_LOCK));
+			return;
+			}
+
+	/* å¼åºãã¨ã³ããªãè¨­å®ãã */
+	callout[ix].func	= func;
+	callout[ix].arg		= arg;
+	callout[ix].timeout	= timeout;
+	syscall(sig_sem(SEM_CALL_OUT_LOCK));
+	}
+
+/*
+ *  å¼åºãã¨ã³ããªåé¤
+ */
+
+void
+untimeout (callout_func func, void *arg)
+{
+	int_t ix;
+
+	/* ã¨ã³ããªãæ¢ã */
+	for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
+		syscall(wai_sem(SEM_CALL_OUT_LOCK));
+		if (callout[ix].func == func && callout[ix].arg == arg && callout[ix].timeout > 0) {
+			callout[ix].func = NULL;
+			syscall(sig_sem(SEM_CALL_OUT_LOCK));
+			break;
+			}
+		syscall(sig_sem(SEM_CALL_OUT_LOCK));
+		}
+	}
+
+/*
+ *  ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯
+ *
+ *    æ³¨æ: ã¿ã¹ã¯ã³ã³ãã­ã¹ãã§å®è¡ããå¿
+è¦ãããããï¼
+ *          å¨æãã³ãã©ã¯ä½¿ç¨ã§ããªãã
+ */
+
+static char const tinet_banner[] =
+"\n"
+"TINET %d.%d.%d (" __DATE__ ", " __TIME__ ")\n"
+"Copyright (C) 2001-2012 by Dep. of Computer Science and Engineering\n"
+"                    Tomakomai National College of Technology, JAPAN\n";
+
+void
+net_timer_task(intptr_t exinf)
+{
+	ID		tskid;
+	int_t		ix;
+	callout_func	func;
+	void 		*arg;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, tinet_banner,
+	       (TINET_PRVER   >> 12) & UINT_C(0x0f),
+	       (TINET_PRVER   >>  4) & UINT_C(0x0f),
+	        TINET_PRVER          & UINT_C(0x0f));
+	syslog(LOG_NOTICE, "[NET/TIMER:%d] started.", tskid);
+
+	/* IP ãåæåããã*/
+
+#if defined(_IP6_CFG)
+	ip6_init();
+#endif
+
+#if defined(_IP4_CFG)
+	ip_init();
+#endif
+
+#ifdef SUPPORT_TCP
+
+	/* TCP åºåã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(TCP_OUTPUT_TASK));
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING)
+
+	/* UDP åºåã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(UDP_OUTPUT_TASK));
+
+#endif	/* of #if defined(SUPPORT_UDP) && defined(UDP_CFG_NON_BLOCKING) */
+
+	while (true) {
+		/* ã¿ã¤ã ã¢ã¦ãããã¨ã³ããªãå¼åºãã*/
+		syscall(wai_sem(SEM_CALL_OUT_TIMEOUT));
+		for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
+			syscall(wai_sem(SEM_CALL_OUT_LOCK));
+			if (callout[ix].func != NULL && callout[ix].timeout == 0) {
+				func = callout[ix].func;
+				arg  = callout[ix].arg;
+				callout[ix].func = NULL;
+				syscall(sig_sem(SEM_CALL_OUT_LOCK));
+				(func)(arg);
+				}
+			else
+				syscall(sig_sem(SEM_CALL_OUT_LOCK));
+			}
+		}
+	}
+
+/*
+ *  ãããã¯ã¼ã¯ã¿ã¤ããã³ãã©
+ *
+ *    NET_TIMER_CYCLE (100ms) æ¯ã«å¼åºãããã
+ */
+
+void
+net_timer_handler(intptr_t exinf)
+{
+	int_t	ix, count = 0;
+
+	for (ix = NUM_NET_CALLOUT; ix -- > 0; ) {
+		if (callout[ix].func != NULL && callout[ix].timeout > 0) {
+			callout[ix].timeout --;
+			if (callout[ix].timeout == 0)
+				count ++;
+			}
+		}
+
+	if (count)
+		syscall(isig_sem(SEM_CALL_OUT_TIMEOUT));
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_timer.h	(revision 313)
@@ -0,0 +1,130 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _NET_TIMER_H_
+#define _NET_TIMER_H_
+
+#include <tinet_kernel_defs.h>	/* ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã*/
+
+/*
+ *  TOPPERS/JSP ã«ã¼ãã«ãã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°
+ */
+
+#define SYSTIM_HZ		ULONG_C(1000)	/* [ms]					*/
+
+/*
+ *  ãããã¯ã¼ã¯ã¿ã¤ãã®å®ç¾©
+ */
+
+#define NET_TIMER_CYCLE		ULONG_C(100)	/* [ms]ãfast timeout ä½¿ç¨æã®åä½å¨æ	*/
+						/* ã¿ã¤ãã®å¨æ³¢æ°			*/
+#define NET_TIMER_HZ		(SYSTIM_HZ/NET_TIMER_CYCLE)
+
+#ifdef _IP6_CFG
+#define NUM_NET_CALLOUT		12		/* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 ä»¥ä¸	*/
+#else
+#define NUM_NET_CALLOUT		10		/* ã¿ã¤ã ã¢ã¦ãå¼åºãæ°ã10 ä»¥ä¸	*/
+#endif
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãå¼åºãã¨ã³ããª
+ */
+
+typedef void	(*callout_func)(void*);
+
+typedef struct t_net_callout {
+	callout_func	func;		/* å¼åºãé¢æ°		*/
+	void		*arg;		/* é¢æ°ã¸ã®å¼æ°		*/
+	RELTIM		timeout;	/* ã¿ã¤ã ã¢ã¦ã		*/
+	} T_NET_CALLOUT;
+
+/*
+ *  é¢æ°
+ */
+
+extern void timeout (callout_func func, void *arg, RELTIM timeout);
+extern void untimeout (callout_func func, void *arg);
+
+/*
+ *  ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã¨å¨æãã³ãã©
+ */
+
+extern void net_timer_task(intptr_t exinf);
+extern void net_timer_handler(intptr_t exinf);
+
+#endif	/* of #ifndef _NET_TIMER_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/net_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/net_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/net_var.h	(revision 313)
@@ -0,0 +1,95 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _NET_VAR_H_
+#define _NET_VAR_H_
+
+/*
+ *  é¢æ°
+ */
+
+extern int_t convert_hexdigit (char *buf, uint_t val, int_t radix, int_t width, char padchar);
+
+/*
+ *  é¢æ°
+ */
+
+extern uint32_t net_rand (void);
+extern void net_srand (uint32_t seed);
+
+#endif	/* of #ifndef _NET_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.c	(revision 313)
@@ -0,0 +1,461 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/* 
+ *  PPP å¦çã¿ã¹ã¯ã®æ¬ä½
+ */
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_ipv6cp.h>
+#include <net/ppp_ipcp.h>
+#include <net/ppp_ccp.h>
+#include <net/ppp_upap.h>
+#include <net/ppp_modem.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+uint8_t	ppp_phase = PPP_PHASE_INITIALIZE;	/* ãªã³ã¯ã®ç¶æ
+		*/
+
+/*
+ *  ãã­ãã³ã«è¡¨
+ */
+
+T_PPP_PROTENT *protocols[] = {
+	&lcp_protent,
+
+#ifdef _IP6_CFG
+	&ipv6cp_protent,
+#endif	/* of #ifdef _IP6_CFG */
+
+#ifdef _IP4_CFG
+	&ipcp_protent,
+#endif	/* of #ifdef _IP4_CFG */
+
+#ifdef SUPPORT_CCP
+	&ccp_protent,
+#endif	/* of #ifdef SUPPORT_CCP */
+
+#ifdef LCP_CFG_PAP
+	&pap_protent,
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_CHAP
+	&chap_protent,
+#endif	/* of #ifdef LCP_CFG_CHAP */
+
+	NULL
+	};
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef PPP_IDLE_TIMEOUT
+
+static bool_t idle = false;
+
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+/*
+ *  é¢æ°
+ */
+
+static void parse_input (T_NET_BUF *input);
+
+#ifdef PPP_IDLE_TIMEOUT
+
+static void idle_timeout (void *arg);
+
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+/*
+ *  PPP å
+¥åã®è§£æ
+ */
+
+static void
+parse_input(T_NET_BUF *input)
+{
+	T_PPP_PROTENT	*entry;
+	int_t		ix;
+	uint16_t	proto;
+
+	NET_COUNT_PPP(net_count_ppp.in_octets,  input->len);
+	NET_COUNT_PPP(net_count_ppp.in_packets, 1);
+
+	/* ãã¬ã¼ã é·ããã§ãã¯ãã */
+	if (input->len < sizeof(T_PPP_HDR)) {	/* FreeBSD ã§ã¯ PPP_HDRLEN ã¯ 4 */
+		syslog(LOG_NOTICE, "[PPP] recv short frame.");
+		goto buf_rel;
+		}
+
+	proto = ntohs(*GET_PPP_HDR(input));
+
+	/* ãã­ãã³ã«ã LCP ä»¥å¤ã§ãLCP ããªã¼ãã³ããã¦ããªããã°ã¨ã©ã¼ */
+	if (proto != PPP_LCP && lcp_fsm.state != PPP_FSM_OPENED) {
+		syslog(LOG_NOTICE, "[PPP] LCP not open.");
+		goto buf_rel;
+		}
+
+	/* ãªã³ã¯ãèªè¨¼ç¶æ
+ä»¥åã¯ãLCPãLQRãPAPãCHAP ã®ã¿åãä»ãã */
+	if (ppp_phase <= PPP_PHASE_AUTHENTICATE &&
+	    !(proto == PPP_LCP || proto == PPP_LQR ||
+	      proto == PPP_PAP || proto == PPP_CHAP)) {
+		syslog(LOG_NOTICE, "[PPP] disc proto: 0x%04x, phase: %d.", proto, ppp_phase);
+		goto buf_rel;
+		}
+
+	/* ä¸ä½ãã­ãã³ã«ã®å
+¥åé¢æ°ãå¼åºã */
+	for (ix = 0; (entry = protocols[ix]) != NULL; ix ++) {
+		if (entry->proto == proto && entry->input != NULL) {
+			(*entry->input)(input);
+			syscall(rel_net_buf(input));
+			return;
+			}
+		if ((entry->proto & ~0x8000) == proto && entry->datainput != NULL) {
+			(*entry->datainput)(input);
+			return;
+			}
+		}
+
+	syslog(LOG_INFO, "[PPP] unexp proto: 0x%04x.", proto);
+	lcp_sprotrej(input);
+
+buf_rel:
+	NET_COUNT_PPP(net_count_ppp.in_err_packets, 1);
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  ppp_output -- PPP ã¤ã³ã¿ãã§ã¼ã¹ã®åºåé¢æ°
+ */
+
+ER
+ppp_output (T_NET_BUF *output, TMO tmout)
+{
+	ER error = E_OK;
+
+#ifdef PPP_CFG_MODEM
+
+#if 0	/* ä¿ç */
+	/* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+	if ((error = wait_modem()) != E_OK)
+		goto buf_ret;
+#endif
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+#ifdef _IP6_CFG
+	/* IPV6CP ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+	if ((error = wait_ipv6cp()) != E_OK)
+		goto buf_ret;
+#endif	/* of #ifdef _IP6_CFG */
+
+#ifdef _IP4_CFG
+	/* IPCP ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+	if ((error = wait_ipcp()) != E_OK)
+		goto buf_ret;
+#endif	/* of #ifdef _IP4_CFG */
+
+#ifdef _IP4_CFG
+	/* IPCP ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+	if ((error = wait_ipcp()) != E_OK)
+		goto buf_ret;
+#endif	/* of #ifdef _IP4_CFG */
+
+#ifdef PPP_IDLE_TIMEOUT
+	wai_sem(SEM_IDLE_TIMEOUT);
+	if (idle) {
+		untimeout((FP)idle_timeout, NULL);
+		idle = false;
+		}
+	sig_sem(SEM_IDLE_TIMEOUT);
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+	/* PPP åºåã­ã¥ã¼ã«æå
+¥ããã*/
+	if ((error = tsnd_dtq(DTQ_PPP_OUTPUT, output, tmout)) != E_OK)
+		goto buf_ret;
+
+#ifdef PPP_IDLE_TIMEOUT
+	wai_sem(SEM_IDLE_TIMEOUT);
+	if (!idle && ppp_phase == PPP_PHASE_NETWORK) {
+		timeout((FP)idle_timeout, NULL, PPP_IDLE_TIMEOUT);
+		idle = true;
+		}
+	sig_sem(SEM_IDLE_TIMEOUT);
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+	return error;
+
+buf_ret:
+	syscall(rel_net_buf(output));
+	NET_COUNT_PPP(net_count_ppp.out_err_packets, 1);
+	return error;
+	}
+
+/*
+ *  ppp_cp_output -- CP ãã¬ã¼ã ã®éä¿¡
+ */
+
+void
+ppp_cp_output (uint8_t code, uint8_t id, T_NET_BUF *output)
+{
+	T_PPP_CP_HDR	*cph;
+
+	/* CP ããããè¨­å®ãã */
+	cph = GET_PPP_CP_HDR(output);
+	cph->code = code;
+	cph->id   = id;
+	cph->len  = htons(output->len - sizeof(T_PPP_HDR));
+
+	/* PPP åºåã­ã¥ã¼ã«æå
+¥ããã*/
+	if (snd_dtq(DTQ_PPP_OUTPUT, output) != E_OK) {
+		syscall(rel_net_buf(output));
+		NET_COUNT_PPP(net_count_ppp.out_err_packets, 1);
+		}
+	}
+
+/*
+ *  PPP å
+¥åã¿ã¹ã¯
+ */
+
+void
+ppp_input_task(intptr_t exinf)
+{
+	T_NET_BUF	*input;
+	T_PPP_PROTENT	*proto;
+	ID		tskid;
+	int_t		ix;
+	uint8_t		rcount = 0;
+
+	/* ãã¼ããåæè¨­å®ãã */
+	syscall(serial_opn_por(HDLC_PORTID));
+	syscall(serial_ctl_por(HDLC_PORTID, IOCTL_FCSND | IOCTL_FCRCV));
+
+	get_tid(&tskid);
+
+#ifdef PPP_CFG_MODEM
+
+	init_modem();
+	syslog(LOG_NOTICE, "[PPP INPUT:%d] started with modem on port %d.", tskid, HDLC_PORTID);
+
+#else	/* of #ifdef PPP_CFG_MODEM */
+
+	syslog(LOG_NOTICE, "[PPP INPUT:%d] started on port %d.", tskid, HDLC_PORTID);
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(NET_TIMER_TASK));
+
+	/* ä¸ä½ãã­ãã³ã«ãåæåãã */
+	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
+		if (proto->init != NULL)
+			(*proto->init)();
+
+	lcp_lowerup();
+	lcp_open(PPP_OPEN_PASSIVE);
+
+	/* PPP åºåã¿ã¹ã¯ãèµ·åãã */
+	syscall(act_tsk(PPP_OUTPUT_TASK));
+
+	/* ä¹±æ°çæãåæåããã*/
+	net_srand(0);
+
+	while (true) {
+		if (tget_net_buf(&input, IF_PDU_SIZE, TMO_PPP_GET_NET_BUF) == E_OK) {
+			while (HDLC_read(input, IF_PDU_SIZE) != E_OK)
+				;
+			if (input->len > 0) {
+
+				/* ä¹±æ°çæãåæåããã*/
+				if (rcount == 0)
+					net_srand(input->len);
+				rcount ++;
+
+#ifdef PPP_IDLE_TIMEOUT
+				wai_sem(SEM_IDLE_TIMEOUT);
+				if (idle && ntohs(*GET_PPP_HDR(input)) != PPP_LCP) {
+					untimeout((FP)idle_timeout, NULL);
+					idle = false;
+					}
+				sig_sem(SEM_IDLE_TIMEOUT);
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+				parse_input(input);
+				}
+			else
+				syscall(rel_net_buf(input));
+
+#ifdef PPP_IDLE_TIMEOUT
+			wai_sem(SEM_IDLE_TIMEOUT);
+			if (!idle && ppp_phase == PPP_PHASE_NETWORK) {
+				timeout((FP)idle_timeout, NULL, PPP_IDLE_TIMEOUT);
+				idle = true;
+				}
+			else if (idle && ppp_phase != PPP_PHASE_NETWORK) {
+				untimeout((FP)idle_timeout, NULL);
+				idle = false;
+				}
+			sig_sem(SEM_IDLE_TIMEOUT);
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+			}
+		else {
+			HDLC_dummy_read();
+			NET_COUNT_PPP(net_count_ppp.in_err_packets, 1);
+			NET_COUNT_PPP(net_count_ppp_no_bufs, 1);
+			}
+		}
+	}
+
+/*
+ *  PPP åºåã¿ã¹ã¯
+ */
+
+void
+ppp_output_task(intptr_t exinf)
+{
+	T_NET_BUF	*output;
+	ID		tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[PPP OUTPUT:%d] started.", tskid);
+
+	while (true) {
+		while (rcv_dtq(DTQ_PPP_OUTPUT, (intptr_t*)&output) == E_OK) {
+			NET_COUNT_PPP(net_count_ppp.out_octets,  output->len);
+			NET_COUNT_PPP(net_count_ppp.out_packets, 1);
+			syscall(HDLC_write(output));
+			syscall(rel_net_buf(output));
+			}
+		}
+	}
+
+#ifdef PPP_IDLE_TIMEOUT
+
+/*
+ *  ã¢ã¤ãã«ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+idle_timeout (void *arg)
+{
+	syslog(LOG_NOTICE, "[PPP] idel %d [s], disconnecting.", (uint16_t)(PPP_IDLE_TIMEOUT / NET_TIMER_HZ));
+	lcp_close();
+	}
+
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.cfg	(revision 313)
@@ -0,0 +1,86 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  PPP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef SUPPORT_PPP
+
+CRE_TSK(PPP_OUTPUT_TASK, {
+	TA_HLNG,
+	0,
+	ppp_output_task,
+	PPP_OUTPUT_PRIORITY,
+	PPP_OUTPUT_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(PPP_INPUT_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	ppp_input_task,
+	PPP_INPUT_PRIORITY,
+	PPP_INPUT_STACK_SIZE,
+	NULL
+	});
+
+CRE_DTQ(DTQ_PPP_OUTPUT,   { TA_TFIFO, NUM_DTQ_PPP_OUTPUT,  NULL });
+
+CRE_SEM(SEM_MODEM_READY,  { TA_TPRI, 0, 1 });
+
+#if defined(_IP6_CFG)
+CRE_SEM(SEM_IPV6CP_READY, { TA_TPRI, 0, 1 });
+#endif
+
+#if defined(_IP4_CFG)
+CRE_SEM(SEM_IPCP_READY,   { TA_TPRI, 0, 1 });
+#endif
+
+#ifdef PPP_IDLE_TIMEOUT
+CRE_SEM(SEM_IDLE_TIMEOUT, { TA_TPRI, 1, 1 });
+#endif	/* of #ifdef PPP_IDLE_TIMEOUT */
+
+#endif	/* of #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp.h	(revision 313)
@@ -0,0 +1,152 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#ifndef _PPP_H_
+#define _PPP_H_
+
+/*
+ *  PPP ãããã®ãã­ãã³ã«ãã£ã¼ã«ãã®å¤
+ */
+
+#define PPP_IP		UINT_C(0x0021)		/* IPv4		*/
+#define PPP_IPV6	UINT_C(0x0057)		/* IPv6		*/
+
+#define PPP_IPCP	UINT_C(0x8021)		/* IPCP		*/
+#define PPP_IPV6CP	UINT_C(0x8057)		/* IPV6CP	*/
+#define PPP_CCP		UINT_C(0x80fd)		/* CCP		*/
+
+#define PPP_LCP		UINT_C(0xc021)		/* LCP		*/
+#define PPP_PAP		UINT_C(0xc023)		/* PAP		*/
+#define PPP_LQR		UINT_C(0xc025)		/* LQR		*/
+#define PPP_CHAP	UINT_C(0xc223)		/* CHAP		*/
+
+#define GET_PPP_HDR(nbuf)	((T_PPP_HDR*)((nbuf)->buf))
+
+/*
+ *  ãªã³ã¯ã®ç¶æ
+
+ */
+
+#define PPP_PHASE_DEAD		0
+#define PPP_PHASE_INITIALIZE	1
+#define PPP_PHASE_DORMANT	2
+#define PPP_PHASE_ESTABLISH	3
+#define PPP_PHASE_AUTHENTICATE	4
+#define PPP_PHASE_CALLBACK	5
+#define PPP_PHASE_NETWORK	6
+#define PPP_PHASE_TERMINATE	7
+#define PPP_PHASE_HOLDOFF	8
+
+/*
+ *  PPP ãªã³ã¯å¶å¾¡ (CP) ãããæ§é ä½
+ */
+
+typedef struct t_ppp_cp_hdr {
+	uint8_t		code;		/* å¶å¾¡ã³ã¼ã	*/
+	uint8_t		id;		/* è­å¥å­	*/
+	uint16_t	len;		/* é·ã		*/
+	} T_PPP_CP_HDR;
+
+#define GET_PPP_CP_HDR(nbuf)	((T_PPP_CP_HDR*)((nbuf)->buf + sizeof(T_PPP_HDR)))
+
+/*
+ *  PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã
+ */
+
+#define PPP_VENDER		UINT_C(0)	/* Vender Specific		*/
+#define PPP_CONFREQ		UINT_C(1)	/* Configuration Request	*/
+#define PPP_CONFACK		UINT_C(2)	/* Configuration ACK		*/
+#define PPP_CONFNAK		UINT_C(3)	/* Configuration NAK		*/
+#define PPP_CONFREJ		UINT_C(4)	/* Configuration Reject		*/
+#define PPP_TERMREQ		UINT_C(5)	/* Termination Request		*/
+#define PPP_TERMACK		UINT_C(6)	/* Termination ACK		*/
+#define PPP_CODEREJ		UINT_C(7)	/* Code Reject			*/
+
+/*
+ * æ§ææ
+å ± (CI) ããã
+ */
+
+typedef struct t_ppp_ci_hdr {
+	uint8_t		type;		/* CI ã®å	*/
+	uint8_t		len;		/* é·ã		*/
+	} T_PPP_CI_HDR;
+
+#endif	/* of #ifndef _PPP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.c	(revision 313)
@@ -0,0 +1,294 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * auth.c - PPP authentication and phase control.
+ *
+ * Copyright (c) 1993 The Australian National University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Australian National University.  The name of the University
+ * may not be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *			PPP Secret Key Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1994, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/auth.c,v 1.50 1999/12/27 11:43:30 brian Exp $
+ *
+ *	TODO:
+ *		o Implement check against with registered IP addresses.
+ */
+
+#include <s_services.h>
+#include <t_services.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_auth.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_upap.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  å®æ°
+ */
+
+#define PAP_PEND_SERVER		UINT_C(0x01)
+#define PAP_PEND_CLIENT		UINT_C(0x02)
+#define CHAP_PEND_SERVER	UINT_C(0x04)
+#define CHAP_PEND_CLIENT	UINT_C(0x08)
+
+/*
+ *  network_phase -- ã³ãã¯ã·ã§ã³ç¢ºç«
+ */
+
+void
+network_phase (void)
+{
+	int_t		num, ix;
+	T_PPP_PROTENT	*proto;
+
+	ppp_phase = PPP_PHASE_NETWORK;
+
+	/* ä¸ä½ãã­ãã³ã«ããªã¼ãã³ãã */
+	num = 0;
+	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
+#if 0	/* ä¿çãåé¤ç¦æ­¢ */
+		if (proto->proto < 0xc000 && proto->open != NULL) {
+#else	/* of #if 0 */
+		if (proto->open != NULL) {
+#endif	/* of #if 0 */
+			(*proto->open)();
+			if (proto->proto != PPP_CCP)
+				num ++;
+			}
+
+	if (num == 0)
+		/* ä¸ä½ãã­ãã³ã«ããªã */
+		lcp_close();
+	else
+		syslog(LOG_NOTICE, "[PPP] up.");
+	}
+
+/*
+ *  link_required -- ãªã³ã¯ãéè¨­ããã
+ */
+
+void
+link_required (void)
+{
+	}
+
+/*
+ *  link_terminated -- ã­ã°ã¢ã¦ããã¦ããªã³ã¯ãåæ­ããã
+ */
+
+void
+link_terminated (void)
+{
+	ppp_phase     = PPP_PHASE_DEAD;
+	ppp_open_mode = PPP_OPEN_PASSIVE;
+	syslog(LOG_NOTICE, "[PPP] down.");
+	}
+
+/*
+ *  link_down -- ãªã³ã¯ãè§£æ¾ããã
+ */
+
+void
+link_down (void)
+{
+	int_t		ix;
+	T_PPP_PROTENT	*proto;
+
+	/* ä¸ä½ãã­ãã³ã«ãè§£æ¾ãã */
+	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++) {
+		if (proto->proto != PPP_LCP && proto->lowerdown != NULL)
+			(*proto->lowerdown)();
+		if (proto->proto < 0xc000 && proto->close != NULL)
+			(*proto->close)();
+		}
+
+	if (ppp_phase != PPP_PHASE_DEAD)
+		ppp_phase = PPP_PHASE_TERMINATE;
+	}
+
+/*
+ *  link_established -- ãªã³ã¯ã®æ¥ç¶ãç¢ºç«ããã
+ */
+
+void
+link_established (void)
+{
+	int_t		ix;
+	T_PPP_PROTENT	*proto;
+
+#if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP)
+
+	int		auth;
+
+#endif	/* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */
+
+	/* ä¸ä½ãã­ãã³ã«ãèµ·åãã */
+	for (ix = 0; (proto = protocols[ix]) != NULL; ix ++)
+		if (proto->lowerup != NULL)
+			(*proto->lowerup)();
+
+	/* èªè¨¼ãªãã·ã§ã³ãç¢ºèªããããæªå®è£
+ã*/
+
+	ppp_phase = PPP_PHASE_AUTHENTICATE;
+
+#if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP)
+
+	auth = 0;
+
+#ifdef AUTH_CFG_SERVER
+
+#if defined(LCP_CFG_CHAP)
+
+	if (lcp_local_ack_cfg.options & LCP_CFG_CHAP) {
+		chap_auth_server();
+		auth |= CHAP_PEND_SERVER;
+		}
+
+#endif	/* of #if defined(LCP_CFG_CHAP) */
+
+#if defined(LCP_CFG_PAP)
+	
+	if (lcp_local_ack_cfg.options & LCP_CFG_PAP) {
+		upap_auth_server();
+		auth |= PAP_PEND_SERVER;
+		}
+
+#endif	/* of #if defined(LCP_CFG_PAP) */
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+#ifdef AUTH_CFG_CLIENT
+
+#if defined(LCP_CFG_PAP)
+	
+	if (lcp_remote_ack_cfg.options & LCP_CFG_PAP) {
+		upap_auth_client();
+		auth |= PAP_PEND_CLIENT;
+		}
+
+#endif	/* of #if defined(LCP_CFG_PAP) */
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+	if (auth == 0)
+		network_phase();
+
+#else	/* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */
+
+	network_phase();
+
+#endif	/* of #if defined(LCP_CFG_CHAP) || defined(LCP_CFG_PAP) */
+
+	}
+
+/*
+ *  auth_reset -- èªè¨¼ãªãã·ã§ã³ãåç¢ºèªããã
+ */
+
+void
+auth_reset (void)
+{
+	}
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_auth.h	(revision 313)
@@ -0,0 +1,86 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/auth.h,v 1.18 1999/08/28 01:18:16 peter Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_AUTH_H_
+#define _PPP_AUTH_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  é¢æ°
+ */
+
+extern void link_required (void);
+extern void link_established (void);
+extern void link_terminated (void);
+extern void link_down (void);
+extern void auth_reset (void);
+extern void network_phase (void);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_AUTH_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.c	(revision 313)
@@ -0,0 +1,264 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ccp.c - PPP Compression Control Protocol.
+ *
+ * Copyright (c) 1994 The Australian National University.
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation is hereby granted, provided that the above copyright
+ * notice appears in all copies.  This software is provided without any
+ * warranty, express or implied. The Australian National University
+ * makes no representations about the suitability of this software for
+ * any purpose.
+ *
+ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
+ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
+ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
+ * OR MODIFICATIONS.
+ */
+
+/*
+ *	   PPP Compression Control Protocol (CCP) Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1994, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ccp.c,v 1.54.2.2 2000/08/19 09:29:59 brian Exp $
+ *
+ *	TODO:
+ *		o Support other compression protocols
+ */
+
+/*
+ *  å®è£
+äºå®ãç¾å¨ã¯ãã¹ã¦æå¦
+ */
+
+#include <t_services.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_ccp.h>
+
+/*
+ *  é¢æ°
+ */
+
+static void ccp_init (void);
+static void ccp_input (T_NET_BUF *nbuf);
+static void ccp_protrej (void);
+static void ccp_lowerup (void);
+static void ccp_lowerdown (void);
+static void ccp_open (void);
+static void ccp_close (void);
+
+/*
+ * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢
+ */
+
+static int_t  ccp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *nbuf);
+					/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+T_PPP_FSM_CALLBACKS ccp_callbacks = {
+	NULL,				/* èªæ§ææ
+å ±ããªã»ããããã	*/
+	NULL,				/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+	NULL,				/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+	NULL,				/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+	NULL,				/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+	NULL,				/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+	ccp_reqci,			/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+	NULL,				/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+	NULL,				/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+	NULL,				/* ä¸ä½å±¤ãéå§ããã		*/
+	NULL,				/* ä¸ä½å±¤ãçµäºããã		*/
+	NULL,				/* åéããã			*/
+	NULL,				/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	};
+
+T_PPP_FSM ccp_fsm = {
+	&ccp_callbacks,			/* ã³ã¼ã«ããã¯é¢æ°		*/
+	PPP_CCP,			/* ãã­ãã³ã«			*/
+	};
+
+T_PPP_PROTENT ccp_protent = {
+	PPP_CCP,
+	ccp_init,			/* åæå			*/
+	ccp_input,			/* å
+¥å				*/
+	ccp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
+	ccp_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
+	ccp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
+	ccp_open,			/* ãªã¼ãã³ãã			*/
+	ccp_close,			/* ã¯ã­ã¼ãºãã			*/
+	NULL,				/* ãã¼ã¿å
+¥å			*/
+	};
+
+/*
+ *  ccp_init -- CCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+static void
+ccp_init (void)
+{
+	fsm_init(&ccp_fsm);
+	}
+
+/*
+ *  ccp_input -- CCP å
+¥å
+ */
+
+static void
+ccp_input (T_NET_BUF *nbuf)
+{
+	NET_COUNT_PPP_CCP(net_count_ppp_ccp_in_octets,  nbuf->len);
+	NET_COUNT_PPP_CCP(net_count_ppp_ccp_in_packets, 1);
+	fsm_input(&ccp_fsm, nbuf);
+	}
+
+/*
+ *  ccp_reqci -- ç¸æã®æ§ææ
+å ±ãè§£æããã
+ */
+
+static int_t
+ccp_reqci (T_PPP_FSM *fsm, T_NET_BUF *nbuf)
+{
+/*
+ *  å®è£
+äºå®ãç¾å¨ã¯ãã¹ã¦ã®ãªãã·ã§ã³ãæå¦ããã
+ */
+	return nbuf->len > (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) ? PPP_CONFREJ : PPP_CONFACK;
+	}
+
+/*
+ *  ccp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+ccp_protrej (void)
+{
+	fsm_lowerdown(&ccp_fsm);
+	}
+
+/*
+ *  ccp_lowerup -- CCP ä¸ä½å±¤ãèµ·åããã
+ */
+
+static void
+ccp_lowerup (void)
+{
+	fsm_lowerup(&ccp_fsm);
+	}
+
+/*
+ *  ccp_lowerdown -- CCP ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+static void
+ccp_lowerdown (void)
+{
+	fsm_lowerdown(&ccp_fsm);
+	}
+
+/*
+ *  ccp_open -- CCP ã®ãªã¼ã
+ */
+
+static void
+ccp_open (void)
+{
+	fsm_open(&ccp_fsm);
+	}
+
+/*
+ *  ccp_close -- CCP ã®ã¯ã­ã¼ãº
+ */
+
+static void
+ccp_close (void)
+{
+	fsm_close(&ccp_fsm);
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ccp.h	(revision 313)
@@ -0,0 +1,110 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ccp.h - Definitions for PPP Compression Control Protocol.
+ *
+ * Copyright (c) 1994 The Australian National University.
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation is hereby granted, provided that the above copyright
+ * notice appears in all copies.  This software is provided without any
+ * warranty, express or implied. The Australian National University
+ * makes no representations about the suitability of this software for
+ * any purpose.
+ *
+ * IN NO EVENT SHALL THE AUSTRALIAN NATIONAL UNIVERSITY BE LIABLE TO ANY
+ * PARTY FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
+ * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
+ * THE AUSTRALIAN NATIONAL UNIVERSITY HAVE BEEN ADVISED OF THE POSSIBILITY
+ * OF SUCH DAMAGE.
+ *
+ * THE AUSTRALIAN NATIONAL UNIVERSITY SPECIFICALLY DISCLAIMS ANY WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS
+ * ON AN "AS IS" BASIS, AND THE AUSTRALIAN NATIONAL UNIVERSITY HAS NO
+ * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
+ * OR MODIFICATIONS.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/ccp.h,v 1.7.2.1 1999/08/29 15:46:56 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ccp.h,v 1.22 1999/08/28 01:18:19 peter Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_CCP_H_
+#define _PPP_CCP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  å¤æ°
+ */
+
+extern T_PPP_PROTENT	ccp_protent;
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_CCP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.c	(revision 313)
@@ -0,0 +1,828 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * fsm->c - {Link, IP} Control Protocol Finite State Machine.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *		PPP Finite State Machine for LCP/IPCP
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/fsm->c,v 1.52.2.3 2000/08/19 09:30:03 brian Exp $
+ *
+ *  TODO:
+ */
+
+#include <string.h>
+
+#include <s_services.h>
+#include <t_services.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_timer.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_fsm.h>
+
+#include <netinet/in.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+uint8_t	ppp_open_mode = PPP_OPEN_PASSIVE;	/* ãªã¼ãã³æã®åä½ã¢ã¼ã	*/
+
+/*
+ *  é¢æ°
+ */
+
+static void fsm_sconfreq	(T_PPP_FSM *fsm, int_t retansmit);
+static void fsm_rconfreq	(T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input);
+static void fsm_rconfack	(T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input);
+static void fsm_rconfnakrej	(T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input);
+static void fsm_rtermreq	(T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input);
+static void fsm_rtermack	(T_PPP_FSM *fsm, T_NET_BUF *input);
+static void fsm_rcoderej	(T_PPP_FSM *fsm, T_NET_BUF *input);
+static void fsm_stermreq	(T_PPP_FSM *fsm, uint8_t id);
+static void fsm_timeout		(void *arg);
+
+/*
+ *  fsm_sconfreq -- Configure-Request ãéä¿¡ããã
+ */
+
+static void
+fsm_sconfreq (T_PPP_FSM *fsm, int_t retransmit)
+{
+	T_NET_BUF	*output;
+	uint16_t	len;
+
+	if (!(fsm->state == PPP_FSM_REQSENT ||
+	      fsm->state == PPP_FSM_ACKRCVD ||
+	      fsm->state == PPP_FSM_ACKSENT)) {
+		/* ã¾ã ãã´ããã¦ããªãããªãã·ã§ã³ããªã»ããããã */
+		if (fsm->callbacks->resetci)
+			(*fsm->callbacks->resetci)(fsm);
+		fsm->failures = 0;
+		}
+	if (retransmit == 0) {
+		/* æ°ãããªã¯ã¨ã¹ããåéã«ã¦ã³ã¿ããªã»ããããæ°ãã ID ãè¨­å®ããã */
+		fsm->retrans = MAX_PPP_CONFIGURES;
+		fsm->reqid   = ++ fsm->id;
+		}
+
+	fsm->seen_ack = 0;
+
+	if (fsm->callbacks->cilen && fsm->callbacks->addci) {
+		/* æ§ææ
+å ±ãã±ãããä½ãã */
+		len = (*fsm->callbacks->cilen)(fsm);
+
+		syscall(get_net_buf(&output, len + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+		(*fsm->callbacks->addci)(fsm, output);
+
+		/* æ§ææ
+å ±ãã±ãããéä¿¡ããã */
+		IF_SET_PROTO(output, fsm->proto);
+		ppp_cp_output(PPP_CONFREQ, fsm->reqid, output);
+
+		-- fsm->retrans;
+		timeout((FP)fsm_timeout, fsm, DEF_PPP_TIMEOUT);
+		}
+	}
+
+/*
+ *  fsm_rconfreq -- Configure-Request ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rconfreq (T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input)
+{
+	T_NET_BUF	*output;
+	uint16_t	code;
+
+	switch (fsm->state) {
+	case PPP_FSM_CLOSED:
+		syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		ppp_cp_output(PPP_TERMACK, id, output);
+		return;
+		break;
+
+	case PPP_FSM_CLOSING:
+	case PPP_FSM_STOPPING:
+		return;
+		break;
+
+	case PPP_FSM_OPENED:
+		/* ä¸ä½å±¤ãåæ­¢ãã¦ããã´ã«ç§»ãã */
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm_sconfreq(fsm, 0);		/* æåã® Configure-Request ãéãã */
+		break;
+
+	case PPP_FSM_STOPPED:
+		/* ç¸æãããã´ãéå§ããã */
+		fsm_sconfreq(fsm, 0);		/* æåã® Configure-Request ãéãã */
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+		}
+
+	syscall(get_net_buf(&output, input->len));
+
+	/* ä¸ä½ãã­ãã³ã«ã«è¦æ±ããã Configure-Request ãéãã */
+	if (fsm->callbacks->reqci != NULL)	/* æ§ææ
+å ±ããã§ãã¯ããã */
+		code = (*fsm->callbacks->reqci)(fsm, input, output);
+	else if (output->len > sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))
+		code = PPP_CONFREJ;
+	else
+		code = PPP_CONFACK;
+
+	/* ç¸æã« ACK, NAK ã¾ãã¯ REJ ãéä¿¡ããã */
+	ppp_cp_output(code, id, output);
+
+	if (code == PPP_CONFACK) {
+		if (fsm->state == PPP_FSM_ACKRCVD) {
+			untimeout((FP)fsm_timeout, fsm);
+			fsm->state = PPP_FSM_OPENED;
+			if (fsm->callbacks->up != NULL)
+				(*fsm->callbacks->up)(fsm);
+			}
+		else
+			fsm->state = PPP_FSM_ACKSENT;
+		fsm->failures = 0;
+		}
+	else {
+		/* ACK ã REJ ãéã */
+		if (fsm->state != PPP_FSM_ACKRCVD)
+			fsm->state = PPP_FSM_REQSENT;
+		if (code == PPP_CONFNAK)
+			fsm->failures ++;
+		}
+	}
+
+/*
+ *  fsm_rconfnakrej -- Configure-NAK/REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rconfnakrej (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input)
+{
+	int_t		ret = 0;
+	T_NET_BUF	*output;
+
+	/* äºæãã ID ã§ãªãããNAK/REJ ãäºæãã¦ããªãã¨ãã¯çµäºããã*/
+	if (id != fsm->reqid || fsm->seen_ack) {
+		syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp NAK/REJ.");
+		return;
+		}
+
+	if (code == PPP_CONFNAK) {
+		if (fsm->callbacks->nakci != NULL && (ret = (*fsm->callbacks->nakci)(fsm, input)) == 0) {
+			syslog(LOG_WARNING, "[PPP/FSM] bad NAK.");
+			return;
+			}
+		}
+	else {
+		if (fsm->callbacks->rejci != NULL && (ret = (*fsm->callbacks->rejci)(fsm, input)) == 0) {
+			syslog(LOG_WARNING, "[PPP/FSM] bad REJ.");
+			return;
+			}
+		}
+
+	fsm->seen_ack = 1;
+
+	switch (fsm->state) {
+	case PPP_FSM_CLOSED:
+	case PPP_FSM_STOPPED:
+		syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		ppp_cp_output(PPP_TERMACK, id, output);
+		return;
+		break;
+
+	case PPP_FSM_REQSENT:
+	case PPP_FSM_ACKSENT:
+		untimeout((FP)fsm_timeout, fsm);
+		if (ret < 0)		/* éä¿¡ãã Conf-Req ãç ´æãç©ºã® NAK/REJ ãå±ããã*/
+			fsm->state = PPP_FSM_STOPPED;
+		else
+			fsm_sconfreq(fsm, 0);
+		break;
+
+	case PPP_FSM_ACKRCVD:
+		untimeout((FP)fsm_timeout, fsm);
+		fsm_sconfreq(fsm, 0);
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+	case PPP_FSM_OPENED:
+		/* åèµ·åãããã´ãããç´ãã*/
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm_sconfreq(fsm, 0);
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+		}
+	}
+
+/*
+ *  fsm_rconfack -- Configure-ACK ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rconfack (T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input)
+{
+	T_NET_BUF	*output;
+
+	/* äºæãã ID ã§ãªãããACK ãäºæãã¦ããªãã¨ãã¯çµäºããã*/
+	if (id != fsm->reqid || fsm->seen_ack) {
+		syslog(LOG_WARNING, "[PPP/FSM] bad ID or unexp ACK.");
+		return;
+		}
+
+	if (fsm->callbacks->ackci != NULL) {
+		if ((*fsm->callbacks->ackci)(fsm, input) != true) {
+			syslog(LOG_WARNING, "[PPP/FSM] bad ACK.");
+			return;
+			}
+		}
+	else if (input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) != 0) {
+		syslog(LOG_WARNING, "[PPP/FSM] bad ACK.");
+		return;
+		}
+
+	fsm->seen_ack = 1;
+
+	switch (fsm->state) {
+	case PPP_FSM_CLOSED:
+	case PPP_FSM_STOPPED:
+		syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		ppp_cp_output(PPP_TERMACK, id, output);
+		break;
+
+	case PPP_FSM_REQSENT:
+		fsm->state = PPP_FSM_ACKRCVD;
+		fsm->retrans = MAX_PPP_CONFIGURES;
+		break;
+
+	case PPP_FSM_ACKRCVD:
+		untimeout((FP)fsm_timeout, fsm);
+		fsm_sconfreq(fsm, 0);
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+	case PPP_FSM_ACKSENT:
+		untimeout((FP)fsm_timeout, fsm);
+		fsm->state = PPP_FSM_OPENED;
+		fsm->retrans = MAX_PPP_CONFIGURES;
+		if (fsm->callbacks->up != NULL)
+			(*fsm->callbacks->up)(fsm);
+		break;
+
+	case PPP_FSM_OPENED:
+		/* åèµ·åãããã´ãããç´ãã*/
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm_sconfreq(fsm, 0);
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+	default	:
+		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in recv Conf-ACK.", fsm->state);
+		break;
+		}
+
+	}
+
+/*
+ *  fsm_rtermreq -- Terminate-Request ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rtermreq (T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input)
+{
+	T_NET_BUF	*output;
+
+	switch (fsm->state) {
+	case PPP_FSM_ACKRCVD:
+	case PPP_FSM_ACKSENT:
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+	case PPP_FSM_OPENED:
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm->retrans = 0;
+		fsm->state = PPP_FSM_STOPPING;
+		timeout((FP)fsm_timeout, fsm, DEF_PPP_TIMEOUT);
+		break;
+		}
+	syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+	memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+	ppp_cp_output(PPP_TERMACK, id, output);
+	}
+
+/*
+ *  fsm_rtermack -- Terminate-ACK ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rtermack (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	switch (fsm->state) {
+	case PPP_FSM_CLOSING:
+		untimeout((FP)fsm_timeout, fsm);
+#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+		fsm->state = PPP_FSM_CLOSED;
+#else	/* of #if 0 */
+		fsm->state = PPP_FSM_STOPPED;
+#endif	/* of #if 0 */
+		if (fsm->callbacks->finished != NULL)
+			(*fsm->callbacks->finished)(fsm);
+		break;
+
+	case PPP_FSM_STOPPING:
+		untimeout((FP)fsm_timeout, fsm);
+		fsm->state = PPP_FSM_STOPPED;
+		if (fsm->callbacks->finished != NULL)
+			(*fsm->callbacks->finished)(fsm);
+		break;
+
+	case PPP_FSM_ACKRCVD:
+		fsm->state = PPP_FSM_REQSENT;
+		break;
+
+	case PPP_FSM_OPENED:
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm_sconfreq(fsm, 0);
+		break;
+		}
+	}
+
+/*
+ *  fsm_rcoderej -- Code-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+fsm_rcoderej (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_PPP_CP_HDR	*hdr;
+
+ 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	if (input->len < sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) {
+ 		syslog(LOG_WARNING, "[PPP/FSM] bad len: %d in recv Code-REJ.", input->len);
+ 		return;
+ 		}
+
+ 	hdr = GET_PPP_CP_HDR(input);
+
+	syslog(LOG_WARNING, "[PPP/FSM] recv Code-REJ, code=%d, id=%d.", hdr->code, hdr->id);
+
+	if (fsm->state == PPP_FSM_ACKRCVD)
+		fsm->state = PPP_FSM_REQSENT;
+	}
+
+/*
+ *  fsm_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+fsm_timeout (void *arg)
+{
+	T_PPP_FSM *fsm = (T_PPP_FSM*)arg;
+
+	switch (fsm->state) {
+	case PPP_FSM_CLOSING:
+	case PPP_FSM_STOPPING:
+		if (fsm->retrans <= 0) {
+			/* æå¤§åéåæ°ãè¶
+ããã¨ãã®å¦ç */
+#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+			fsm->state = (fsm->state == PPP_FSM_CLOSING) ? PPP_FSM_CLOSED : PPP_FSM_STOPPED;
+#else	/* of #if 0 */
+			fsm->state = PPP_FSM_STOPPED;
+#endif	/* of #if 0 */
+			if (fsm->callbacks->finished != NULL)
+				(*fsm->callbacks->finished)(fsm);
+			}
+		else {
+			/* Terminate-Request ãéä¿¡ããã*/
+			fsm_stermreq(fsm, ++ fsm->id);
+			}
+		break;
+	case PPP_FSM_REQSENT:
+	case PPP_FSM_ACKRCVD:
+	case PPP_FSM_ACKSENT:
+		if (fsm->retrans <= 0) {
+			/* æå¤§åéåæ°ãè¶
+ããã¨ãã®å¦ç */
+			syslog(LOG_WARNING, "[PPP/FSM] retrans Conf-Req.");
+			fsm->state = PPP_FSM_STOPPED;
+			if (ppp_open_mode != PPP_OPEN_PASSIVE && fsm->callbacks->finished)
+				(*fsm->callbacks->finished)(fsm);
+			}
+		else {
+			/* Configure-Request ãåéããã*/
+			if (fsm->callbacks->retrans != NULL)
+				(*fsm->callbacks->retrans)(fsm);
+			fsm_sconfreq(fsm, 1);
+			if (fsm->state == PPP_FSM_ACKRCVD)
+				fsm->state = PPP_FSM_REQSENT;
+			}
+
+		break;
+
+	default	:
+		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in timeout.", fsm->state);
+		break;
+		}
+	}
+
+/*
+ *  fsm_stermreq -- Terminate-Request ãéä¿¡ããã
+ */
+
+static void
+fsm_stermreq (T_PPP_FSM *fsm, uint8_t id)
+{
+	T_NET_BUF	*input;
+
+	syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+	IF_SET_PROTO(input, fsm->proto);
+	ppp_cp_output(PPP_TERMREQ, id, input);
+
+	timeout((FP)fsm_timeout, fsm, DEF_PPP_TIMEOUT);
+	fsm->retrans --;
+	}
+
+/*
+ *  fsm_init -- FSM ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+void
+fsm_init (T_PPP_FSM *fsm)
+{
+	fsm->state = PPP_FSM_INITIAL;
+	fsm->id	   = 0;
+	}
+
+/*
+ *  fsm_lowerup -- FSM ä¸ä½å±¤ãèµ·åããã
+ */
+
+void
+fsm_lowerup (T_PPP_FSM *fsm)
+{
+	switch (fsm->state) {
+	case PPP_FSM_INITIAL:
+		fsm->state = PPP_FSM_CLOSED;
+		break;
+
+	case PPP_FSM_STARTING:
+		if (ppp_open_mode == PPP_OPEN_PASSIVE)
+			fsm->state = PPP_FSM_STOPPED;
+        	else {
+			fsm_sconfreq(fsm, 0);
+			fsm->state = PPP_FSM_REQSENT;
+			}
+		break;
+
+	default	:
+		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in lowerup", fsm->state);
+		break;
+		}
+	}
+
+/*
+ *  fsm_lowerdown -- FSM ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+void
+fsm_lowerdown (T_PPP_FSM *fsm)
+{
+	switch (fsm->state) {
+	case PPP_FSM_CLOSED:
+		fsm->state = PPP_FSM_INITIAL;
+		break;
+
+	case PPP_FSM_STOPPED:
+		fsm->state = PPP_FSM_STARTING;
+		if (fsm->callbacks->starting != NULL)
+			(*fsm->callbacks->starting)(fsm);
+		break;
+
+	case PPP_FSM_CLOSING:
+		fsm->state = PPP_FSM_INITIAL;
+		untimeout((FP)fsm_timeout, fsm);
+		break;
+
+	case PPP_FSM_STOPPING:
+	case PPP_FSM_REQSENT:
+	case PPP_FSM_ACKRCVD:
+	case PPP_FSM_ACKSENT:
+		fsm->state = PPP_FSM_STARTING;
+		untimeout((FP)fsm_timeout, fsm);
+		break;
+
+	case PPP_FSM_OPENED:
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+		fsm->state = PPP_FSM_STARTING;
+		break;
+
+	default	:
+		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in lowerdown", fsm->state);
+		break;
+		}
+	}
+
+/*
+ *  fsm_open -- FSM ã®ãªã¼ãã³
+ */
+
+void
+fsm_open (T_PPP_FSM *fsm)
+{
+	switch (fsm->state) {
+	case PPP_FSM_INITIAL:
+		fsm->state = PPP_FSM_STARTING;
+		if (fsm->callbacks->starting != NULL)
+			(*fsm->callbacks->starting)(fsm);
+		break;
+
+	case PPP_FSM_CLOSED:
+		if (ppp_open_mode == PPP_OPEN_PASSIVE)
+			fsm->state = PPP_FSM_STOPPED;
+		else {
+			fsm_sconfreq(fsm, 0);
+			fsm->state = PPP_FSM_REQSENT;
+			}
+		break;
+
+	case PPP_FSM_CLOSING:
+		fsm->state = PPP_FSM_STOPPING;
+		/* nobreak;	ä¸ã«è½ã¡ã */
+
+	case PPP_FSM_STOPPED:
+	case PPP_FSM_OPENED:
+		fsm_lowerdown(fsm);
+		fsm_lowerup(fsm);
+		break;
+		}
+	}
+
+/*
+ *  fsm_close -- ãªã³ã¯ã®åæ­ãéå§ããã
+ */
+
+void
+fsm_close (T_PPP_FSM *fsm)
+{
+	switch (fsm->state) {
+	case PPP_FSM_STARTING:
+		fsm->state = PPP_FSM_INITIAL;
+		break;
+
+#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+	case PPP_FSM_STOPPED:
+		fsm->state = PPP_FSM_CLOSED;
+		break;
+#endif	/* of #if 0 */
+
+	case PPP_FSM_STOPPING:
+		fsm->state = PPP_FSM_CLOSING;
+		break;
+
+	case PPP_FSM_REQSENT:
+	case PPP_FSM_ACKRCVD:
+	case PPP_FSM_ACKSENT:
+	case PPP_FSM_OPENED:
+		if (fsm->state != PPP_FSM_OPENED)
+			untimeout((FP)fsm_timeout, fsm);
+		else if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+
+		/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããTerminate-Request ãéä¿¡ããã*/
+		fsm->retrans = MAX_PPP_TERMINATES;
+		fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
+		fsm->state = PPP_FSM_CLOSING;
+		break;
+		}
+	}
+
+/*
+ *  fsm_input -- å
+¥åãPPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ */
+
+void
+fsm_input (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_PPP_CP_HDR	*hdr;
+	T_NET_BUF	*output;
+
+ 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
+ 		syslog(LOG_WARNING, "[PPP/FSM] short hdr: %d.", input->len);
+ 		return;
+ 		}
+
+ 	hdr = GET_PPP_CP_HDR(input);
+
+ 	/* ãããã®é·ãã¨å
+¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */
+ 	if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
+ 		syslog(LOG_WARNING, "[PPP/FSM] bad len: %d.", hdr->len);
+ 		return;
+ 		}
+ 
+ 	/* ç¶æ
+ã INITIAL ã STARTING ãªãã¨ã©ã¼ */
+ 	if (fsm->state == PPP_FSM_INITIAL || fsm->state == PPP_FSM_STARTING) {
+ 		syslog(LOG_WARNING, "[PPP/FSM] unexp state: %d in input.", fsm->state);
+ 		return;
+ 		}
+ 
+ 	/*
+ 	 *  å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ 	 */
+
+	switch (hdr->code) {
+	case PPP_CONFREQ:
+		fsm_rconfreq(fsm, hdr->id, input);
+		break;
+
+	case PPP_CONFACK:
+		fsm_rconfack(fsm, hdr->id, input);
+		break;
+
+	case PPP_CONFNAK:
+	case PPP_CONFREJ:
+		fsm_rconfnakrej(fsm, hdr->code, hdr->id, input);
+		break;
+
+	case PPP_TERMREQ:
+		fsm_rtermreq(fsm, hdr->id, input);
+		break;
+
+	case PPP_TERMACK:
+		fsm_rtermack(fsm, input);
+		break;
+
+	case PPP_CODEREJ:
+		fsm_rcoderej(fsm, input);
+		break;
+
+	default:
+		if (fsm->callbacks->extcode == NULL ||
+		    (*fsm->callbacks->extcode)(fsm, hdr->code, hdr->id, input) != true) {
+			syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+			memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+			ppp_cp_output(PPP_CODEREJ, ++ fsm->id, output);
+			}
+		break;
+		}
+	}
+
+/*
+ *  fsm_protoreject -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+void
+fsm_protreject (T_PPP_FSM *fsm)
+{
+	switch (fsm->state) {
+	case PPP_FSM_CLOSING:
+		untimeout((FP)fsm_timeout, fsm);
+
+#if 0	/* æ¬æ¥ã®åä½ã¯ CLOSED ã«é·ç§»ããã*/
+		/* ä¸ã«è½ã¡ã */
+#else	/* of #if 0 */
+		fsm->state = PPP_FSM_STOPPED;
+		if (fsm->callbacks->finished != NULL)
+			(*fsm->callbacks->finished)(fsm);
+		break;
+#endif	/* of #if 0 */
+
+	case PPP_FSM_CLOSED:
+		fsm->state = PPP_FSM_CLOSED;
+		if (fsm->callbacks->finished != NULL)
+			(*fsm->callbacks->finished)(fsm);
+		break;
+
+	case PPP_FSM_STOPPING:
+	case PPP_FSM_REQSENT:
+	case PPP_FSM_ACKRCVD:
+	case PPP_FSM_ACKSENT:
+		untimeout((FP)fsm_timeout, fsm);
+		/* ä¸ã«è½ã¡ã */
+
+	case PPP_FSM_STOPPED:
+		fsm->state = PPP_FSM_STOPPED;
+		if (fsm->callbacks->finished != NULL)
+			(*fsm->callbacks->finished)(fsm);
+		break;
+
+	case PPP_FSM_OPENED:
+		if (fsm->callbacks->down != NULL)
+			(*fsm->callbacks->down)(fsm);
+
+		/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããTerminate-Request ãéä¿¡ããã*/
+		fsm->retrans = MAX_PPP_TERMINATES;
+		fsm_stermreq(fsm, fsm->reqid = ++ fsm->id);
+		fsm->state = PPP_FSM_STOPPING;
+		break;
+
+		}
+	}
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_fsm.h	(revision 313)
@@ -0,0 +1,203 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * fsm.h - {Link, IP} Control Protocol Finite State Machine definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/fsm.h,v 1.6.2.1 1999/08/29 15:47:00 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/fsm.h,v 1.23 1999/12/27 11:54:53 brian Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_FSM_H_
+#define _PPP_FSM_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  ç¶æ
+ç®¡çæ§é ä½
+ */
+
+struct t_ppp_fsm_callbacks;
+
+typedef struct t_fsm {
+	struct t_ppp_fsm_callbacks	*callbacks;	/* ã³ã¼ã«ããã¯é¢æ°*/
+	uint16_t	proto;		/* ãã­ãã³ã«				*/
+	uint8_t		state;		/* FSM ã®ç¶æ
+				*/
+	uint8_t		id;		/* ç¾å¨ã® ID				*/
+	uint8_t		reqid;		/* è¦æ± ID				*/
+	uint8_t		seen_ack;	/* è¦æ±ã«å¯¾ãæ­£å¸¸ãª ACK/NAK/REJ ãåä¿¡	*/
+	int8_t		failures;	/* é»èªãã NAK æ°			*/
+	int8_t		retrans;	/* Configure-Request ã¾ãã¯ã		*/
+					/* Terminate-Request ã®åéåæ°		*/
+	} T_PPP_FSM;
+
+#define T_PPP_FSM_DEFINED
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°æ§é ä½
+ */
+
+typedef struct t_ppp_fsm_callbacks {
+	void (*resetci)	(T_PPP_FSM *);	/* èªæ§ææ
+å ±ããªã»ããããã	*/
+	int_t  (*cilen)	(T_PPP_FSM *);	/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+	void (*addci)	(T_PPP_FSM *, T_NET_BUF *);
+					/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+	bool_t (*ackci)	(T_PPP_FSM *, T_NET_BUF *);
+					/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+	int_t  (*nakci)	(T_PPP_FSM *, T_NET_BUF *);
+					/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+	int_t  (*rejci)	(T_PPP_FSM *, T_NET_BUF *);
+					/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+	int_t  (*reqci)	(T_PPP_FSM *, T_NET_BUF *, T_NET_BUF *);
+					/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+	void (*up)	(T_PPP_FSM *);	/* ãªã³ã¯ã®æ¥ç¶ãç¢ºç«ããã	*/
+	void (*down)	(T_PPP_FSM *);	/* ãªã³ã¯ã®æ¥ç¶ãè§£æ¾ããã	*/
+	void (*starting)(T_PPP_FSM *);	/* ä¸ä½å±¤ãéå§ããã		*/
+	void (*finished)(T_PPP_FSM *);	/* ä¸ä½å±¤ãçµäºããã		*/
+	void (*retrans)	(T_PPP_FSM *);	/* åéããã			*/
+					/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	bool_t  (*extcode)(T_PPP_FSM *, uint8_t, uint8_t, T_NET_BUF *);
+	} T_PPP_FSM_CALLBACKS;
+
+/*
+ *  FSM ã®ç¶æ
+
+ */
+
+#define PPP_FSM_INITIAL		0	/* æªæ¥ç¶ãæªãªã¼ãã³	*/
+#define PPP_FSM_STARTING	1	/* æªæ¥ç¶ããªã¼ãã³	*/
+#define PPP_FSM_CLOSED		2	/* æ¥ç¶ã  æªãªã¼ãã³	*/
+#define PPP_FSM_STOPPED		3	/* ãªã¼ãã³ãåæ­å¾
+ã¡	*/
+#define PPP_FSM_CLOSING		4	/* åæ­ä¸­ãæªãªã¼ãã³	*/
+#define PPP_FSM_STOPPING	5	/* åæ­ä¸­ããªã¼ãã³	*/
+#define PPP_FSM_REQSENT		6	/* Config REQ éä¿¡æ¸ã¿	*/
+#define PPP_FSM_ACKRCVD		7	/* Config ACK åä¿¡æ¸ã¿	*/
+#define PPP_FSM_ACKSENT		8	/* Config ACK éä¿¡æ¸ã¿	*/
+#define PPP_FSM_OPENED		9	/* æ¥ç¶ãéä¿¡å¯è½	*/
+
+/*
+ *  ãªã¼ãã³æã®åä½ã¢ã¼ã
+ */
+
+#define PPP_OPEN_PASSIVE	false	/* ååãªã¼ãã³		*/
+#define PPP_OPEN_ACTIVE		true	/* è½åãªã¼ãã³		*/
+
+/*
+ *  åéãã¿ã¤ã ã¢ã¦ãã®æ¢å®å¤
+ */
+
+#define DEF_PPP_TIMEOUT		(3*NET_TIMER_HZ)
+					/* RFC1661 ã§ã¯  3 ç§			*/
+#define MAX_PPP_TERMINATES	2	/* Terminate-Requests ã®æå¤§åéåæ°	*/
+					/* RFC1661 ã§ã¯  2 å			*/
+#define MAX_PPP_CONFIGURES	10	/* Configure-Requests ã®æå¤§åéåæ°	*/
+					/* RFC1661 ã§ã¯ 10 å			*/
+#define MAX_PPP_FAILURES	5	/* Configure-NAK ã®æå¤§é»èªåæ°		*/
+					/* RFC1661 ã§ã¯  5 å			*/
+
+/*
+ *  é¢æ°
+ */
+
+extern void fsm_init    (T_PPP_FSM *fsm);
+extern void fsm_lowerup (T_PPP_FSM *fsm);
+extern void fsm_lowerdown(T_PPP_FSM *fsm);
+extern void fsm_open    (T_PPP_FSM *fsm);
+extern void fsm_close	(T_PPP_FSM *fsm);
+extern void fsm_input	(T_PPP_FSM *fsm, T_NET_BUF *data);
+extern void fsm_protreject(T_PPP_FSM *fsm);
+
+/*
+ *  å¤æ°
+ */
+
+extern uint8_t ppp_open_mode;
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_FSM_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.c	(revision 313)
@@ -0,0 +1,564 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	     PPP High Level Link Control (HDLC) Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/hdlc.c,v 1.46 1999/12/20 20:29:42 brian Exp $
+ *
+ *	TODO:
+ */
+
+#include <s_services.h>
+#include <t_services.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_modem.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©
+ */
+
+/*
+ *  å¤æ°
+ */
+
+uint32_t remote_ACCM	= DEF_REMOTE_ACCM;
+
+/*
+ *  é¢æ°
+ */
+
+static ER HDLC_putoctet (uint8_t octet);
+static ER HDLC_getoctet (uint8_t *octet);
+
+/*
+ *  genfcstab.c ã«ããä½æãã FCS ã®ã«ãã¯ã¢ããè¡¨
+ *  RFC1171 åç
+§
+ */
+
+static uint16_t fcstab[256] = {
+	UINT_C(0x0000), UINT_C(0x1189), UINT_C(0x2312), UINT_C(0x329b),
+	UINT_C(0x4624), UINT_C(0x57ad), UINT_C(0x6536), UINT_C(0x74bf),
+	UINT_C(0x8c48), UINT_C(0x9dc1), UINT_C(0xaf5a), UINT_C(0xbed3),
+	UINT_C(0xca6c), UINT_C(0xdbe5), UINT_C(0xe97e), UINT_C(0xf8f7),
+	UINT_C(0x1081), UINT_C(0x0108), UINT_C(0x3393), UINT_C(0x221a),
+	UINT_C(0x56a5), UINT_C(0x472c), UINT_C(0x75b7), UINT_C(0x643e),
+	UINT_C(0x9cc9), UINT_C(0x8d40), UINT_C(0xbfdb), UINT_C(0xae52),
+	UINT_C(0xdaed), UINT_C(0xcb64), UINT_C(0xf9ff), UINT_C(0xe876),
+	UINT_C(0x2102), UINT_C(0x308b), UINT_C(0x0210), UINT_C(0x1399),
+	UINT_C(0x6726), UINT_C(0x76af), UINT_C(0x4434), UINT_C(0x55bd),
+	UINT_C(0xad4a), UINT_C(0xbcc3), UINT_C(0x8e58), UINT_C(0x9fd1),
+	UINT_C(0xeb6e), UINT_C(0xfae7), UINT_C(0xc87c), UINT_C(0xd9f5),
+	UINT_C(0x3183), UINT_C(0x200a), UINT_C(0x1291), UINT_C(0x0318),
+	UINT_C(0x77a7), UINT_C(0x662e), UINT_C(0x54b5), UINT_C(0x453c),
+	UINT_C(0xbdcb), UINT_C(0xac42), UINT_C(0x9ed9), UINT_C(0x8f50),
+	UINT_C(0xfbef), UINT_C(0xea66), UINT_C(0xd8fd), UINT_C(0xc974),
+	UINT_C(0x4204), UINT_C(0x538d), UINT_C(0x6116), UINT_C(0x709f),
+	UINT_C(0x0420), UINT_C(0x15a9), UINT_C(0x2732), UINT_C(0x36bb),
+	UINT_C(0xce4c), UINT_C(0xdfc5), UINT_C(0xed5e), UINT_C(0xfcd7),
+	UINT_C(0x8868), UINT_C(0x99e1), UINT_C(0xab7a), UINT_C(0xbaf3),
+	UINT_C(0x5285), UINT_C(0x430c), UINT_C(0x7197), UINT_C(0x601e),
+	UINT_C(0x14a1), UINT_C(0x0528), UINT_C(0x37b3), UINT_C(0x263a),
+	UINT_C(0xdecd), UINT_C(0xcf44), UINT_C(0xfddf), UINT_C(0xec56),
+	UINT_C(0x98e9), UINT_C(0x8960), UINT_C(0xbbfb), UINT_C(0xaa72),
+	UINT_C(0x6306), UINT_C(0x728f), UINT_C(0x4014), UINT_C(0x519d),
+	UINT_C(0x2522), UINT_C(0x34ab), UINT_C(0x0630), UINT_C(0x17b9),
+	UINT_C(0xef4e), UINT_C(0xfec7), UINT_C(0xcc5c), UINT_C(0xddd5),
+	UINT_C(0xa96a), UINT_C(0xb8e3), UINT_C(0x8a78), UINT_C(0x9bf1),
+	UINT_C(0x7387), UINT_C(0x620e), UINT_C(0x5095), UINT_C(0x411c),
+	UINT_C(0x35a3), UINT_C(0x242a), UINT_C(0x16b1), UINT_C(0x0738),
+	UINT_C(0xffcf), UINT_C(0xee46), UINT_C(0xdcdd), UINT_C(0xcd54),
+	UINT_C(0xb9eb), UINT_C(0xa862), UINT_C(0x9af9), UINT_C(0x8b70),
+	UINT_C(0x8408), UINT_C(0x9581), UINT_C(0xa71a), UINT_C(0xb693),
+	UINT_C(0xc22c), UINT_C(0xd3a5), UINT_C(0xe13e), UINT_C(0xf0b7),
+	UINT_C(0x0840), UINT_C(0x19c9), UINT_C(0x2b52), UINT_C(0x3adb),
+	UINT_C(0x4e64), UINT_C(0x5fed), UINT_C(0x6d76), UINT_C(0x7cff),
+	UINT_C(0x9489), UINT_C(0x8500), UINT_C(0xb79b), UINT_C(0xa612),
+	UINT_C(0xd2ad), UINT_C(0xc324), UINT_C(0xf1bf), UINT_C(0xe036),
+	UINT_C(0x18c1), UINT_C(0x0948), UINT_C(0x3bd3), UINT_C(0x2a5a),
+	UINT_C(0x5ee5), UINT_C(0x4f6c), UINT_C(0x7df7), UINT_C(0x6c7e),
+	UINT_C(0xa50a), UINT_C(0xb483), UINT_C(0x8618), UINT_C(0x9791),
+	UINT_C(0xe32e), UINT_C(0xf2a7), UINT_C(0xc03c), UINT_C(0xd1b5),
+	UINT_C(0x2942), UINT_C(0x38cb), UINT_C(0x0a50), UINT_C(0x1bd9),
+	UINT_C(0x6f66), UINT_C(0x7eef), UINT_C(0x4c74), UINT_C(0x5dfd),
+	UINT_C(0xb58b), UINT_C(0xa402), UINT_C(0x9699), UINT_C(0x8710),
+	UINT_C(0xf3af), UINT_C(0xe226), UINT_C(0xd0bd), UINT_C(0xc134),
+	UINT_C(0x39c3), UINT_C(0x284a), UINT_C(0x1ad1), UINT_C(0x0b58),
+	UINT_C(0x7fe7), UINT_C(0x6e6e), UINT_C(0x5cf5), UINT_C(0x4d7c),
+	UINT_C(0xc60c), UINT_C(0xd785), UINT_C(0xe51e), UINT_C(0xf497),
+	UINT_C(0x8028), UINT_C(0x91a1), UINT_C(0xa33a), UINT_C(0xb2b3),
+	UINT_C(0x4a44), UINT_C(0x5bcd), UINT_C(0x6956), UINT_C(0x78df),
+	UINT_C(0x0c60), UINT_C(0x1de9), UINT_C(0x2f72), UINT_C(0x3efb),
+	UINT_C(0xd68d), UINT_C(0xc704), UINT_C(0xf59f), UINT_C(0xe416),
+	UINT_C(0x90a9), UINT_C(0x8120), UINT_C(0xb3bb), UINT_C(0xa232),
+	UINT_C(0x5ac5), UINT_C(0x4b4c), UINT_C(0x79d7), UINT_C(0x685e),
+	UINT_C(0x1ce1), UINT_C(0x0d68), UINT_C(0x3ff3), UINT_C(0x2e7a),
+	UINT_C(0xe70e), UINT_C(0xf687), UINT_C(0xc41c), UINT_C(0xd595),
+	UINT_C(0xa12a), UINT_C(0xb0a3), UINT_C(0x8238), UINT_C(0x93b1),
+	UINT_C(0x6b46), UINT_C(0x7acf), UINT_C(0x4854), UINT_C(0x59dd),
+	UINT_C(0x2d62), UINT_C(0x3ceb), UINT_C(0x0e70), UINT_C(0x1ff9),
+	UINT_C(0xf78f), UINT_C(0xe606), UINT_C(0xd49d), UINT_C(0xc514),
+	UINT_C(0xb1ab), UINT_C(0xa022), UINT_C(0x92b9), UINT_C(0x8330),
+	UINT_C(0x7bc7), UINT_C(0x6a4e), UINT_C(0x58d5), UINT_C(0x495c),
+	UINT_C(0x3de3), UINT_C(0x2c6a), UINT_C(0x1ef1), UINT_C(0x0f78),
+	};
+
+/*
+ *  ã¤ã³ã©ã¤ã³é¢æ°
+ */
+
+Inline uint16_t Next_FCS (uint16_t FCS, uint8_t Octet) {
+	return (FCS >> 8) ^ fcstab[(FCS ^ Octet) & 0xff];
+	};
+
+/*
+ *  HDLC_putoctet -- HDLC ãªã¯ãããåºå
+ */
+
+static
+ER HDLC_putoctet (uint8_t octet)
+{
+	static uint8_t escape[2] = { HDLC_CNTL_ESC };
+
+	ER error;
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1);
+
+	if ((octet < 0x20 && ((1 << octet) & lcp_remote_ack_cfg.ACCM)) ||
+	    octet == HDLC_CNTL_ESC || octet == HDLC_FLAG_SEQ) {
+		escape[1] = octet ^ HDLC_ESC_MASK;
+		error = serial_wri_dat(HDLC_PORTID, escape, sizeof(escape));
+		}
+	else
+		error = serial_wri_dat(HDLC_PORTID, &octet, sizeof(octet));
+
+	return error > 0 ? E_OK : error;
+	}
+
+/*
+ *  HDLC_wirte -- HDLC åºå
+ */
+
+ER HDLC_write (T_NET_BUF *nbuf)
+{
+	static char flag_seq_ac[4] = {
+		HDLC_FLAG_SEQ,
+		HDLC_ADDR_ALL,
+		HDLC_CNTL_ESC,
+		HDLC_CNTL_UI ^ HDLC_ESC_MASK,
+		};
+
+#ifdef LCP_CFG_ACCOMP
+
+	static char flag_seq = HDLC_FLAG_SEQ;
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+	ER		error;
+	uint32_t	fcs;
+	uint16_t	len;
+	uint8_t 	*buf;
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.out_packets, 1);
+
+#ifdef LCP_CFG_ACCOMP
+
+	if (lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) {
+		NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq));
+		/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ ãéä¿¡ãã    */
+		if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq, sizeof(flag_seq))) < 0) {
+			goto err_ret;
+			}
+		fcs = HDLC_INIT_FCS;
+		}
+	else {
+
+		NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
+		/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress ã¨ Control ãéä¿¡ãã    */
+		if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
+			goto err_ret;
+			}
+		/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+		fcs = HDLC_INIT_FCS_AC;
+		}
+
+#else	/* of #ifdef LCP_CFG_ACCOMP */
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, sizeof(flag_seq_ac));
+	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ãAddress ã¨ Control ãéä¿¡ãã    */
+	if ((error = serial_wri_dat(HDLC_PORTID, flag_seq_ac, sizeof(flag_seq_ac))) < 0) {
+		goto err_ret;
+		}
+	/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+	fcs = HDLC_INIT_FCS_AC;
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+	buf = nbuf->buf;
+	len = nbuf->len;
+
+#ifdef LCP_CFG_PCOMP
+
+	if ((lcp_local_ack_cfg.options & LCP_CFG_ACCOMP) && *buf == 0 && *(buf + 1) < 0xff) {
+		buf ++;
+		len --;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+	/* ãã¼ã¿ãéä¿¡ãã */
+	while (len -- > 0) {
+
+		if ((error = HDLC_putoctet(*buf)) != E_OK)
+			goto err_ret;
+		fcs = Next_FCS(fcs, *buf);
+		buf ++;
+		}
+
+	/* FCS ãéä¿¡ãã */
+	fcs = ~fcs;
+	if ((error = HDLC_putoctet(fcs & 0xff)) != E_OK)
+		goto err_ret;
+	if ((error = HDLC_putoctet(fcs >> 8)) != E_OK)
+		goto err_ret;
+
+	/* ãã¬ã¼ã çµäºãã©ã°ã·ã¼ã±ã³ã¹ãéä¿¡ãã */
+	if ((error = serial_wri_dat(HDLC_PORTID, &flag_seq_ac[0], sizeof(char))) < 0)
+		goto err_ret;
+
+	return E_OK;
+
+err_ret:
+	NET_COUNT_PPP_HDLC(net_count_hdlc.out_err_packets, 1);
+	return error;
+	}
+
+/*
+ *  HDLC_getoctet -- HDLC ãªã¯ãããå
+¥å
+ *
+ *	æ»ãå¤ã true ãªããã©ã°ã·ã¼ã±ã³ã¹
+ */
+
+static
+ER_BOOL HDLC_getoctet (uint8_t *octet)
+{
+	ER error;
+
+	/* 1ãªã¯ãããå
+¥åãã */
+	if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0) {
+		return error;
+		}
+
+	/* å
+¥åãããªã¯ãããããã©ã°ã·ã¼ã±ã³ã¹ãªã true ãè¿ã */
+	if (*octet == HDLC_FLAG_SEQ)
+		return true;
+
+	/* å
+¥åãããªã¯ããããã¨ã¹ã±ã¼ããªããããï¼ãªã¯ãããå
+¥åããã¹ã¯ãè§£é¤ãã */
+	if (*octet == HDLC_CNTL_ESC) {
+		if ((error = serial_rea_dat(HDLC_PORTID, octet, sizeof(uint8_t))) <= 0)
+			return error;
+		*octet ^= HDLC_ESC_MASK;
+		}
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.in_octets, 1);
+	return E_OK;
+	}
+
+/*
+ *  HDLC_read -- HDLC å
+¥å
+ *
+ *	HDLC ãã¬ã¼ã ãå
+¥åããã
+ */
+
+ER HDLC_read (T_NET_BUF *nbuf, uint16_t size)
+{
+	ER		error;
+	uint32_t	fcs = 0;
+	uint16_t	olen = 0;
+	uint8_t		*buf, octet;
+
+	buf = nbuf->buf;
+
+	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å
+¥åãèª­ã¿é£ã°ã */
+	while ((error = HDLC_getoctet(&octet)) != true) {
+
+		if (error != E_OK)
+			goto err_ret;
+
+#ifdef PPP_CFG_MODEM
+
+		else if (octet == '\n') {
+			/* ã¢ãã å¶å¾¡ãå¼ã³åºãã*/
+			modem_cntl(modem_getline(nbuf, size));
+			/* ä¸åº¦ããã®é¢æ°ãçµäºããã*/
+			nbuf->len = 0;
+			return E_OK;
+			}
+
+#endif/* of #ifdef PPP_CFG_MODEM */
+
+		}
+
+	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å
+¥åãèª­ã¿é£ã°ã */
+	while (1) {
+		if ((error = HDLC_getoctet(&octet)) == E_OK)
+			break;
+		else if (error != true)
+			goto err_ret;
+		}
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.in_packets, 1);
+
+	/* å
+¥åãããªã¯ãããã¯ Address: All-Stations ã */
+	if (octet == HDLC_ADDR_ALL) {
+
+		/* æ¬¡ã¯ Control: UI */
+		if ((error = HDLC_getoctet(&octet)) != E_OK || octet != HDLC_CNTL_UI) {
+			error = E_SYS;
+			goto err_ret;
+			}
+		if ((error = HDLC_getoctet(&octet)) != E_OK)
+			goto err_ret;
+		/* Address ã¨ Control ã® FCS ã®è¨ç®ã¯ HDLC_INIT_FCS_AC ã«å«ãã¦ãã */
+		fcs = HDLC_INIT_FCS_AC;
+		}
+
+#ifdef LCP_CFG_ACCOMP
+
+	else if (lcp_remote_ack_cfg.options & LCP_CFG_ACCOMP) {
+		fcs = HDLC_INIT_FCS;
+		}
+
+#endif/* of #ifdef LCP_CFG_ACCOMP */
+
+	else {
+		error = E_SYS;
+		goto err_ret;
+		}
+
+	nbuf->len = 0;
+
+#ifdef LCP_CFG_PCOMP
+
+	if ((lcp_remote_ack_cfg.options & LCP_CFG_PCOMP) && (octet & 0x01) != 0) {
+		*buf ++ = 0x00;
+		size  --;
+		nbuf->len ++;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+	fcs = Next_FCS(fcs, octet);
+	*buf ++ = octet;
+	size  --;
+	nbuf->len ++;
+
+	/* SUD + FCS ãå
+¥åãã */
+	while ((error = HDLC_getoctet(&octet)) == E_OK) {
+		fcs = Next_FCS(fcs, octet);
+		if (size > 0) {
+			*buf ++ = octet;
+			size  --;
+			}
+		else
+			olen ++;
+		nbuf->len ++;
+		}
+
+	if (error == true) {
+		if (size > 0)
+			nbuf->len -= 2;
+		else if (olen <= 2)
+			nbuf->len -= olen;
+		else {
+			error = E_BOVR;
+			goto err_ret;
+			}
+		}
+	else
+		goto err_ret;
+
+	/* FCS ããã§ãã¯ãã */
+	if (fcs != HDLC_GOOD_FCS) {
+		error = E_SYS;
+		goto err_ret;
+		}
+
+	return E_OK;
+
+err_ret:
+	NET_COUNT_PPP_HDLC(net_count_hdlc.in_err_packets, 1);
+	return error;
+	}
+
+/*
+ *  HDLC_dummy_read -- HDLC å
+¥å (ç©ºèª­ã¿)
+ *
+ *	HDLC ãã¬ã¼ã ãç©ºèª­ã¿ããã
+ */
+
+void
+HDLC_dummy_read (void)
+{
+	uint8_t	octet;
+	ER	error;
+
+	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã¾ã§å
+¥åãèª­ã¿é£ã°ã */
+	while ((error = HDLC_getoctet(&octet)) != true) {
+		if (error != E_OK)
+			return;
+		}
+
+	/* ãã¬ã¼ã éå§ãã©ã°ã·ã¼ã±ã³ã¹ã®éã¯å
+¥åãèª­ã¿é£ã°ã */
+	while (octet == HDLC_FLAG_SEQ)
+		if (HDLC_getoctet(&octet) != E_OK)
+			return;
+
+	/* å
+¥åãããªã¯ãããã¯ Address: All-Stations ã */
+	if (octet == HDLC_ADDR_ALL) {
+
+		/* æ¬¡ã¯ Control: UI */
+		if (HDLC_getoctet(&octet) != E_OK || octet != HDLC_CNTL_UI)
+			return;
+		if (HDLC_getoctet(&octet) != E_OK)
+			return;
+		}
+
+#ifdef LCP_CFG_ACCOMP
+
+	else if (lcp_remote_ack_cfg.options & LCP_CFG_ACCOMP)
+		;
+
+#endif/* of #ifdef LCP_CFG_ACCOMP */
+
+	else
+		return;
+
+	while (HDLC_getoctet(&octet) == E_OK)
+		;
+	}
+
+#ifdef PPP_CFG_MODEM
+
+/*
+ *  HDLC_raw_getoctet -- HDLC ãªã¯ããã (Raw) å
+¥å
+ */
+
+int HDLC_raw_getoctet (void)
+{
+	uint8_t ch;
+
+	/* 1ãªã¯ãããå
+¥åãã */
+	if (serial_rea_dat(HDLC_PORTID, &ch, sizeof(ch)) <= 0)
+		return '\0';
+
+	NET_COUNT_PPP_HDLC(net_count_hdlc.in_octets, 1);
+	return ch;
+	}
+
+/*
+ *  HDLC_raw_putoctet -- HDLC ãªã¯ããã (Raw) åºå
+ */
+
+void HDLC_raw_putoctet (uint8_t ch)
+{
+	NET_COUNT_PPP_HDLC(net_count_hdlc.out_octets, 1);
+	/* 1ãªã¯ãããåºåãã */
+	serial_wri_dat(HDLC_PORTID, &ch, sizeof(ch));
+	}
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_hdlc.h	(revision 313)
@@ -0,0 +1,108 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/hdlc.h,v 1.21 1999/12/30 13:27:15 brian Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP__HDLC_H_
+#define _PPP__HDLC_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  RFC1171 (PPP) ã® HDLC é¨ã®å®ç¾©
+ */
+
+/*
+ *  æ¢å®å¤
+ */
+
+#define HDLC_FLAG_SEQ		UINT_C(0x7e)		/* Flag Sequence			*/
+#define HDLC_CNTL_ESC		UINT_C(0x7d)		/* Control Escape octet			*/
+#define HDLC_ADDR_ALL		UINT_C(0xff)		/* Address: All-Stations		*/
+#define HDLC_CNTL_UI		UINT_C(0x03)		/* Control: UI				*/
+#define HDLC_ESC_MASK		UINT_C(0x20)		/* Escape Mask				*/
+#define HDLC_INIT_FCS		UINT_C(0xffff)		/* Initial FCS value			*/
+#define HDLC_INIT_FCS_AC	UINT_C(0x3de3)		/* Initial FCS value with		*/
+							/* Address and Control: UI		*/
+#define HDLC_GOOD_FCS		UINT_C(0xf0b8)		/* Good final FCS value			*/
+
+/*
+ *  é¢æ°
+ */
+
+extern ER HDLC_write (T_NET_BUF *data);
+extern ER HDLC_read (T_NET_BUF *data, uint16_t size);
+extern void HDLC_dummy_read (void);
+
+#ifdef PPP_CFG_MODEM
+
+extern int_t HDLC_raw_getoctet (void);
+extern void HDLC_raw_putoctet (uint8_t ch);
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP__HDLC_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.c	(revision 313)
@@ -0,0 +1,722 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ipcp.c - PPP IP Control Protocol.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	PPP IP Control Protocol (IPCP) Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ipcp.c,v 1.90.2.4 2000/08/19 09:30:03 brian Exp $
+ *
+ *	TODO:
+ *		o Support IPADDRS properly
+ *		o Validate the length in IpcpDecodeConfig
+ */
+
+#include <string.h>
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_ipcp.h>
+#include <net/ppp_modem.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_timer.h>
+#include <netinet/udp_var.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  é¢æ°
+ */
+
+static void ipcp_init (void);
+static void ipcp_input (T_NET_BUF *input);
+static void ipcp_protrej (void);
+static void ipcp_lowerup (void);
+static void ipcp_lowerdown (void);
+static void ipcp_open (void);
+static void ipcp_close (void);
+
+/*
+ * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢
+ */
+
+static void  ipcp_resetci(T_PPP_FSM *fsm);	/* èªæ§ææ
+å ±ããªã»ããããã	*/
+static int_t ipcp_cilen	(T_PPP_FSM *fsm);	/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+static void  ipcp_addci	(T_PPP_FSM *fsm, T_NET_BUF *output);
+						/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+static bool_t  ipcp_ackci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t  ipcp_nakci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t  ipcp_rejci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+static int_t ipcp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
+						/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+static void ipcp_up	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+static void ipcp_down	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+static void ipcp_finished(T_PPP_FSM *fsm);	/* ä¸ä½å±¤ãçµäºããã		*/
+
+/*
+ *  å¤æ°
+ */
+
+static T_IFNET ipcp_local_def_cfg = {		/* èªæ§ææ
+å ±ã®è¦å®å¤		*/
+	NULL,
+	{
+		IPV4_ADDR_LOCAL,		/* IPv4 ã¢ãã¬ã¹			*/
+		UINT_C(0),			/* ãµãããããã¹ã¯		*/
+		},
+	};
+
+static T_IFNET ipcp_remote_def_cfg = {		/* ç¸æã®æ§ææ
+å ±ã®è¦å®å¤	*/
+	NULL,
+	{
+		IPV4_ADDR_REMOTE,		/* IPv4 ã¢ãã¬ã¹			*/
+		UINT_C(0),			/* ãµãããããã¹ã¯		*/
+		}
+	};
+
+static T_IFNET ipcp_local_neg_cfg;		/* ãã´ä¸­ã®èªæ§ææ
+å ±		*/
+
+static T_IFNET ipcp_remote_neg_cfg;		/* ãã´ä¸­ã®ç¸æã®æ§ææ
+å ±		*/
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+T_PPP_FSM_CALLBACKS ipcp_callbacks = {
+	ipcp_resetci,			/* èªæ§ææ
+å ±ããªã»ããããã	*/
+	ipcp_cilen,			/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+	ipcp_addci,			/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+	ipcp_ackci,			/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipcp_nakci,			/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipcp_rejci,			/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipcp_reqci,			/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+	ipcp_up,			/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+	ipcp_down,			/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+	NULL,				/* ä¸ä½å±¤ãéå§ããã		*/
+	ipcp_finished,			/* ä¸ä½å±¤ãçµäºããã		*/
+	NULL,				/* åéããã			*/
+	NULL,				/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	};
+
+T_PPP_FSM ipcp_fsm = {
+	&ipcp_callbacks,		/* ã³ã¼ã«ããã¯é¢æ°		*/
+	PPP_IPCP,			/* ãã­ãã³ã«			*/
+	};
+
+T_PPP_PROTENT ipcp_protent = {
+	PPP_IPCP,
+	ipcp_init,			/* åæå			*/
+	ipcp_input,			/* å
+¥å				*/
+	ipcp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
+	ipcp_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
+	ipcp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
+	ipcp_open,			/* ãªã¼ãã³ãã			*/
+	ipcp_close,			/* ã¯ã­ã¼ãºãã			*/
+	ip_input,			/* ãã¼ã¿å
+¥åãIPv4 å
+¥å	*/
+	};
+
+T_IFNET ipcp_local_ack_cfg;		/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
+å ±	*/
+T_IFNET ipcp_remote_ack_cfg;		/* ç¸æã«è¨±å¯ããæ§ææ
+å ±	*/
+
+/*
+ *  ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ */
+
+T_IFNET *
+ppp_get_ifnet (void)
+{
+	return &ipcp_local_ack_cfg;
+	}
+
+/*
+ *  wait_ipcp -- IP æ¥ç¶å®äºã¾ã§å¾
+ã¤ã
+ *
+ *	æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã
+ */
+
+ER
+wait_ipcp (void)
+{
+#ifdef PPP_CFG_MODEM
+	ER error;
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+	if (ipcp_fsm.state <= PPP_FSM_STOPPED) {
+
+#ifdef PPP_CFG_MODEM
+
+		/* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+		if ((error = wait_modem()) != E_OK)
+			return error;
+
+#else	/* of #ifdef PPP_CFG_MODEM */
+
+		/*
+		 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾
+ã¡ãªã LCP ãä¸åº¦ã¯ã­ã¼ãºãã
+		 * è½åãªã¼ãã³ç¶æ
+ã§ãåãªã¼ãã³ããã
+		 */
+		lcp_close();
+		lcp_open(PPP_OPEN_ACTIVE);
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+		}
+
+	if (ipcp_fsm.state != PPP_FSM_OPENED) {
+		/* IP æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+		wai_sem(SEM_IPCP_READY);
+		if (ipcp_fsm.state != PPP_FSM_OPENED)
+			return E_OBJ;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  ipcp_init -- IPCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+static void
+ipcp_init (void)
+{
+	fsm_init(&ipcp_fsm);
+	}
+
+/*
+ *  ipcp_input -- IPCP å
+¥å
+ */
+
+static void
+ipcp_input (T_NET_BUF *input)
+{
+	NET_COUNT_PPP_IPCP(net_count_ppp_ipcp_in_octets,  input->len);
+	NET_COUNT_PPP_IPCP(net_count_ppp_ipcp_in_packets, 1);
+	fsm_input(&ipcp_fsm, input);
+	}
+
+/*
+ *  ipcp_resetci -- IPCPã®æ§ææ
+å ±ããªã»ããããã
+ */
+
+static void
+ipcp_resetci (T_PPP_FSM *fsm)
+{
+	/* èªæ§ææ
+å ±ã®åæè¨­å® */
+	ipcp_local_neg_cfg = ipcp_local_def_cfg;
+	memset((void*)&ipcp_local_ack_cfg, 0, sizeof(T_IFNET));
+
+	/* ç¸æã®æ§ææ
+å ±ã®åæè¨­å® */
+	ipcp_remote_neg_cfg = ipcp_remote_def_cfg;
+	memset((void*)&ipcp_remote_ack_cfg, 0, sizeof(T_IFNET));
+	}
+
+/*
+ *  ipcp_cilen -- æ§ææ
+å ±ã®é·ããè¿ãã
+ */
+
+static int_t
+ipcp_cilen (T_PPP_FSM *fsm)
+{
+	int_t cilen = 0;
+
+	cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* IPv4 ã¢ãã¬ã¹ */
+
+	return cilen;
+	}
+
+/*
+ *  ipcp_addci -- IPCPã®æ§ææ
+å ±ãè¿½å ããã
+ */
+
+static void
+ipcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output)
+{
+	uint8_t *buf;
+
+	buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+
+	/* IPv4 ã¢ãã¬ã¹ãªãã·ã§ã³ãè¿½å ããã */
+	*buf ++ = IPCP_CIT_ADDR;
+	*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+	ahtonl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr);
+	buf += sizeof(uint32_t);
+	}
+
+/*
+ *  ipcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	true  ACK ã¯æ­£å¸¸
+ *		false ACK ã¯ç°å¸¸
+ */
+
+static bool_t
+ipcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	uint8_t		*buf;
+	uint16_t	len;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	/*
+	 *  æ§ææ
+å ±ã¯éä¿¡ããé ã«å®å
+¨ã«ä¸è´ããªããã°ãªããªãã
+	 *  å¾ã£ã¦ãipcp_addci ã§ä½æããé ã«è§£æããã
+	 */
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
+	    *buf ++ != IPCP_CIT_ADDR			||
+	    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)||
+	    nahcmpl(buf, ipcp_local_neg_cfg.in4_ifaddr.addr))
+		return false;
+	buf += sizeof(uint32_t);
+	len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+
+	return true;
+	}
+
+/*
+ *  ipcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  NAK ã¯æ­£å¸¸
+ *		0  NAK ã¯ç°å¸¸
+ */
+
+static int_t
+ipcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_IFNET		new_cfg;
+	uint32_t	cilong;
+	uint16_t	len;
+	uint8_t		*buf, cilen;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = ipcp_local_neg_cfg;
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == IPCP_CIT_ADDR				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) {
+	    	ntoahl(cilong, buf + 2);
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		new_cfg.in4_ifaddr.addr = cilong;
+		}
+
+	/* å¾ã¯ç¡è¦ããã*/
+	while (len > sizeof(T_PPP_CI_HDR)) {
+		cilen = *(buf + 1);
+		if (len < cilen)
+			return 0;
+		buf += cilen;
+		len -= cilen;
+		}
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED)
+		ipcp_local_neg_cfg = new_cfg;
+               		
+	return 1;
+	}
+
+/*
+ *  ipcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  REJ ã¯æ­£å¸¸
+ *		0  REJ ã¯ç°å¸¸
+ */
+
+static int_t
+ipcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_IFNET		new_cfg;
+	uint8_t		*buf;
+	uint16_t	len;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = ipcp_local_neg_cfg;
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == IPCP_CIT_ADDR				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)) {
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		new_cfg.in4_ifaddr.addr = 0;
+		}
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED)
+		ipcp_local_neg_cfg = new_cfg;
+
+	return 1;
+	}
+
+/*
+ *  ipcp_reqci -- ç¸æã®æ§ææ
+å ±ãè§£æããã
+ */
+
+static int_t
+ipcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output)
+{
+	uint32_t	addr;
+	uint16_t	code, final, len, cilen;
+	uint8_t		*np, *rp, *ap, *cp, type = 0;
+
+	rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+				/* rp: REJãap: ACK ãã CI ã®ãã¤ã³ã¿	*/
+				/* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã	*/
+	len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+	np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	final = PPP_CONFACK;	/* æçµçã«éä¿¡ããã³ã¼ã */
+	while (len > 0) {
+		code = PPP_CONFACK;
+		cp   = ap;	/* cp: ç¾å¨å¦çä¸­ã® CI	*/
+
+		if (len < sizeof(T_PPP_CI_HDR)) {
+
+			/* æ®ãã CI ãããããç­ã */
+			syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", len);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len  = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+
+		type  = *ap ++;	/* CI ã®å		*/
+		cilen = *ap ++;	/* CI ã®é·ã		*/
+		if (len < cilen) {
+
+			/* æ®ãã CI é·ããç­ã */
+			syslog(LOG_NOTICE, "[PPP/IPCP] bad CI len: %d.", cilen);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len  = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+		len -= sizeof(T_PPP_CI_HDR);
+
+		/* CI ã®åã«ããåå²ããã*/
+		switch (type) {
+
+		case IPCP_CIT_ADDR:	/* IPv4 ã¢ãã¬ã¹ */
+
+		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
+				code = PPP_CONFREJ;
+			else {
+				ntoahl(addr, ap);
+				if (addr != ipcp_remote_neg_cfg.in4_ifaddr.addr &&
+				    (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr != 0)) {
+					*np ++ = IPCP_CIT_ADDR;
+					*np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+					ahtonl(np, ipcp_remote_neg_cfg.in4_ifaddr.addr);
+					np  += sizeof(uint32_t);
+					code = PPP_CONFNAK;
+					}
+#if 1	/* è¦ç¢ºèª */
+				else if (addr == 0 && ipcp_remote_neg_cfg.in4_ifaddr.addr == 0)
+#else
+				else if (addr == 0 || ipcp_remote_neg_cfg.in4_ifaddr.addr == 0)
+#endif
+					code = PPP_CONFREJ;
+				else
+					ipcp_remote_neg_cfg.in4_ifaddr.addr = addr;
+				}
+			break;
+
+		default:
+			syslog(LOG_INFO, "[PPP/IPCP] unexp opt: %d.", type);
+			code = PPP_CONFREJ;
+			break;
+			}
+endswitch:
+
+		if (code == PPP_CONFNAK) {
+			/* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã	*/
+			/* æå¤§å¤ MAX_PPP_FAILURES  ãè¶
+ãããæå¦ããã	*/
+			if (fsm->failures >= MAX_PPP_FAILURES)
+				code = PPP_CONFREJ;
+			else if (final != PPP_CONFREJ)
+				final = PPP_CONFNAK;
+			}
+
+		/* ãã® CI ãæå¦ãã */
+		if (code == PPP_CONFREJ) {
+			if (rp < cp)		/* åã«è©°ããã*/
+				memcpy(rp, cp, cilen);
+			rp += cilen;
+			final = PPP_CONFREJ;
+			}
+
+		ap   += cilen - sizeof(T_PPP_CI_HDR);
+		len  -= cilen - sizeof(T_PPP_CI_HDR);
+		}
+
+	/* æçµçãªé·ããèª¿æ´ããã*/
+	switch (final) {
+	case PPP_CONFNAK:
+		output->len = np - output->buf;
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		break;
+	case PPP_CONFREJ:
+		memcpy(output->buf, input->buf, output->len = rp - input->buf);
+		break;
+	case PPP_CONFACK:
+		memcpy(output->buf, input->buf, input->len);
+		break;
+		}
+
+	return final;
+	}
+
+/*
+ *  ipcp_up -- ãªã³ã¯æ¥ç¶ãç¢ºç«ããã
+ */
+
+static void
+ipcp_up (T_PPP_FSM *fsm)
+{
+	/* èªæ§ææ
+å ±ã®åæè¨­å® */
+	ipcp_local_ack_cfg = ipcp_local_neg_cfg;
+
+	/*
+	 *  ãµãããããã¹ã¯ã¨
+	 *  ã­ã¼ã«ã«ã»ãã­ã¼ãã­ã£ã¹ã IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+	 */
+	ipcp_local_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_local_neg_cfg.in4_ifaddr.addr);
+
+	/* ç¸æã®æ§ææ
+å ±ã®åæè¨­å® */
+	ipcp_remote_ack_cfg = ipcp_remote_neg_cfg;
+
+	/*
+	 *  ãµãããããã¹ã¯ã¨
+	 *  ã­ã¼ã«ã«ã»ãã­ã¼ãã­ã£ã¹ã IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+	 */
+	ipcp_remote_ack_cfg.in4_ifaddr.mask = MAKE_IPV4_LOCAL_MASK(ipcp_remote_neg_cfg.in4_ifaddr.addr);
+
+	sig_sem(SEM_IPCP_READY);
+
+	syslog(LOG_NOTICE, "[PPP/IPCP] up, Local IPv4 Addr: %s, Remote IPv4 Addr: %s.",
+	                   ip2str(NULL, &ipcp_local_neg_cfg.in4_ifaddr.addr),
+	                   ip2str(NULL, &ipcp_remote_neg_cfg.in4_ifaddr.addr));
+	}
+
+/*
+ *  ipcp_down -- ãªã³ã¯æ¥ç¶ãè§£æ¾ããã
+ */
+
+static void
+ipcp_down (T_PPP_FSM *fsm)
+{
+	sig_sem(SEM_IPCP_READY);
+	syslog(LOG_NOTICE, "[PPP/IPCP] down.");
+	}
+
+/*
+ *  ipcp_finished -- ä¸ä½å±¤ãçµäºããã
+ */
+
+static void
+ipcp_finished (T_PPP_FSM *fsm)
+{
+	}
+
+/*
+ *  ipcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+ipcp_protrej (void)
+{
+	fsm_lowerdown(&ipcp_fsm);
+	}
+
+/*
+ *  ipcp_lowerup -- IPCP ä¸ä½å±¤ãèµ·åããã
+ */
+
+static void
+ipcp_lowerup (void)
+{
+	fsm_lowerup(&ipcp_fsm);
+	}
+
+/*
+ *  ipcp_lowerdown -- IPCP ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+static void
+ipcp_lowerdown (void)
+{
+	fsm_lowerdown(&ipcp_fsm);
+	}
+
+/*
+ *  ipcp_open -- IPCP ã®ãªã¼ãã³
+ */
+
+static void
+ipcp_open (void)
+{
+	fsm_open(&ipcp_fsm);
+	}
+
+/*
+ *  ipcp_close -- IPCP ã®ã¯ã­ã¼ãº
+ */
+
+static void
+ipcp_close (void)
+{
+	fsm_close(&ipcp_fsm);
+	}
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipcp.h	(revision 313)
@@ -0,0 +1,143 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ipcp.h - IP Control Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/ipcp.h,v 1.9.2.1 1999/08/29 15:47:01 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ipcp.h,v 1.30.2.2 2000/06/15 17:08:28 brian Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_IPCP_H_
+#define _PPP_IPCP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  IPCP ã®æ§ææ
+å ± (CI)
+ */
+
+/*
+ *  CI ã®å
+ */
+
+#define IPCP_CIT_ADDRS		UINT_C(1)	/* IP ã¢ãã¬ã¹ (å»æ£)	*/
+#define IPCP_CIT_COMP_TYPE	UINT_C(2)	/* å§ç¸®æ¹å¼		*/
+#define IPCP_CIT_ADDR		UINT_C(3)	/* IP ã¢ãã¬ã¹		*/
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef T_PPP_FSM_DEFINED
+extern T_PPP_FSM	ipcp_fsm;
+#endif	/* of #ifdef T_PPP_FSM_DEFINED */
+
+#ifdef T_PPP_PROTENT_DEFINED
+extern T_PPP_PROTENT	ipcp_protent;
+#endif	/* of #ifdef T_PPP_PROTENT_DEFINED */
+
+extern T_IFNET	ipcp_local_ack_cfg;
+extern T_IFNET	ipcp_remote_ack_cfg;
+
+/*
+ *  é¢æ°
+ */
+
+extern ER wait_ipcp (void);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_IPCP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.c	(revision 313)
@@ -0,0 +1,713 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ipv6cp.c - PPP IP Control Protocol.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	PPP IP Control Protocol (IPV6CP) Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ipv6cp.c,v 1.90.2.4 2000/08/19 09:30:03 brian Exp $
+ *
+ *	TODO:
+ *		o Support IPADDRS properly
+ *		o Validate the length in IpcpDecodeConfig
+ */
+
+#include <string.h>
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_ipv6cp.h>
+#include <net/ppp_modem.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_timer.h>
+#include <netinet/udp_var.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  é¢æ°
+ */
+
+static void ipv6cp_init (void);
+static void ipv6cp_input (T_NET_BUF *input);
+static void ipv6cp_protrej (void);
+static void ipv6cp_lowerup (void);
+static void ipv6cp_lowerdown (void);
+static void ipv6cp_open (void);
+static void ipv6cp_close (void);
+
+/*
+ * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢
+ */
+
+static void  ipv6cp_resetci(T_PPP_FSM *fsm);	/* èªæ§ææ
+å ±ããªã»ããããã	*/
+static int_t ipv6cp_cilen	(T_PPP_FSM *fsm);	/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+static void  ipv6cp_addci	(T_PPP_FSM *fsm, T_NET_BUF *output);
+						/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+static bool_t  ipv6cp_ackci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t  ipv6cp_nakci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t  ipv6cp_rejci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+static int_t ipv6cp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
+						/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+static void ipv6cp_up	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+static void ipv6cp_down	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+static void ipv6cp_finished(T_PPP_FSM *fsm);	/* ä¸ä½å±¤ãçµäºããã		*/
+
+/*
+ *  å¤æ°
+ */
+
+static T_IFNET ipv6cp_local_def_cfg = {		/* èªæ§ææ
+å ±ã®è¦å®å¤		*/
+	NULL,					/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	{},					/* IPv6 ã¢ãã¬ã¹æ
+å ±				*/
+	{},					/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	0,					/* ãã©ã°					*/
+	};
+
+static T_IFNET ipv6cp_remote_def_cfg = {	/* ç¸æã®æ§ææ
+å ±ã®è¦å®å¤	*/
+	NULL,					/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	{},					/* IPv6 ã¢ãã¬ã¹æ
+å ±				*/
+	{},					/* ãã«ãã­ã£ã¹ã IPv6 ã¢ãã¬ã¹			*/
+	0,					/* ãã©ã°					*/
+	};
+
+static T_IFNET ipv6cp_local_neg_cfg;		/* ãã´ä¸­ã®èªæ§ææ
+å ±		*/
+
+static T_IFNET ipv6cp_remote_neg_cfg;		/* ãã´ä¸­ã®ç¸æã®æ§ææ
+å ±		*/
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+T_PPP_FSM_CALLBACKS ipv6cp_callbacks = {
+	ipv6cp_resetci,			/* èªæ§ææ
+å ±ããªã»ããããã	*/
+	ipv6cp_cilen,			/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+	ipv6cp_addci,			/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+	ipv6cp_ackci,			/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipv6cp_nakci,			/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipv6cp_rejci,			/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+	ipv6cp_reqci,			/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+	ipv6cp_up,			/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+	ipv6cp_down,			/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+	NULL,				/* ä¸ä½å±¤ãéå§ããã		*/
+	ipv6cp_finished,			/* ä¸ä½å±¤ãçµäºããã		*/
+	NULL,				/* åéããã			*/
+	NULL,				/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	};
+
+T_PPP_FSM ipv6cp_fsm = {
+	&ipv6cp_callbacks,		/* ã³ã¼ã«ããã¯é¢æ°		*/
+	PPP_IPV6CP,			/* ãã­ãã³ã«			*/
+	};
+
+T_PPP_PROTENT ipv6cp_protent = {
+	PPP_IPV6CP,
+	ipv6cp_init,			/* åæå			*/
+	ipv6cp_input,			/* å
+¥å				*/
+	ipv6cp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
+	ipv6cp_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
+	ipv6cp_lowerdown,		/* ä¸ä½å±¤ãåæ­¢ãã		*/
+	ipv6cp_open,			/* ãªã¼ãã³ãã			*/
+	ipv6cp_close,			/* ã¯ã­ã¼ãºãã			*/
+	ip6_input,			/* ãã¼ã¿å
+¥åãIPv6 å
+¥å	*/
+	};
+
+T_IFNET ipv6cp_local_ack_cfg;		/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
+å ±	*/
+T_IFNET ipv6cp_remote_ack_cfg;		/* ç¸æã«è¨±å¯ããæ§ææ
+å ±	*/
+
+/*
+ *  ppp_get_ifnet -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ãè¿ãã
+ */
+
+T_IFNET *
+ppp_get_ifnet (void)
+{
+	return &ipv6cp_local_ack_cfg;
+	}
+
+/*
+ *  wait_ipv6cp -- IP æ¥ç¶å®äºã¾ã§å¾
+ã¤ã
+ *
+ *	æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã
+ */
+
+ER
+wait_ipv6cp (void)
+{
+#ifdef PPP_CFG_MODEM
+	ER error;
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+	if (ipv6cp_fsm.state <= PPP_FSM_STOPPED) {
+
+#ifdef PPP_CFG_MODEM
+
+		/* ã¢ãã ã®æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+		if ((error = wait_modem()) != E_OK)
+			return error;
+
+#else	/* of #ifdef PPP_CFG_MODEM */
+
+		/*
+		 * ååãªã¼ãã³ããç¸æããã®æ¥ç¶å¾
+ã¡ãªã LCP ãä¸åº¦ã¯ã­ã¼ãºãã
+		 * è½åãªã¼ãã³ç¶æ
+ã§ãåãªã¼ãã³ããã
+		 */
+		lcp_close();
+		lcp_open(PPP_OPEN_ACTIVE);
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+		}
+
+	if (ipv6cp_fsm.state != PPP_FSM_OPENED) {
+		/* IP æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+		wai_sem(SEM_IPV6CP_READY);
+		if (ipv6cp_fsm.state != PPP_FSM_OPENED)
+			return E_OBJ;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  ipv6cp_init -- IPV6CP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+static void
+ipv6cp_init (void)
+{
+	fsm_init(&ipv6cp_fsm);
+	}
+
+/*
+ *  ipv6cp_input -- IPV6CP å
+¥å
+ */
+
+static void
+ipv6cp_input (T_NET_BUF *input)
+{
+	NET_COUNT_PPP_IPV6CP(net_count_ppp_ipv6cp_in_octets,  input->len);
+	NET_COUNT_PPP_IPV6CP(net_count_ppp_ipv6cp_in_packets, 1);
+	fsm_input(&ipv6cp_fsm, input);
+	}
+
+/*
+ *  ipv6cp_resetci -- IPV6CPã®æ§ææ
+å ±ããªã»ããããã
+ */
+
+static void
+ipv6cp_resetci (T_PPP_FSM *fsm)
+{
+	/* èªæ§ææ
+å ±ã®åæè¨­å® */
+	ipv6cp_local_neg_cfg = ipv6cp_local_def_cfg;
+	memset((void*)&ipv6cp_local_ack_cfg, 0, sizeof(T_IFNET));
+
+	/* ç¸æã®æ§ææ
+å ±ã®åæè¨­å® */
+	ipv6cp_remote_neg_cfg = ipv6cp_remote_def_cfg;
+	memset((void*)&ipv6cp_remote_ack_cfg, 0, sizeof(T_IFNET));
+	}
+
+/*
+ *  ipv6cp_cilen -- æ§ææ
+å ±ã®é·ããè¿ãã
+ */
+
+static int_t
+ipv6cp_cilen (T_PPP_FSM *fsm)
+{
+	int_t cilen = 0;
+
+	cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* IPv6 ã¢ãã¬ã¹ */
+
+	return cilen;
+	}
+
+/*
+ *  ipv6cp_addci -- IPV6CPã®æ§ææ
+å ±ãè¿½å ããã
+ */
+
+static void
+ipv6cp_addci (T_PPP_FSM *fsm, T_NET_BUF *output)
+{
+	uint8_t *buf;
+
+	buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+
+	/* IPv6 ã¢ãã¬ã¹ãªãã·ã§ã³ãè¿½å ããã */
+	*buf ++ = IPV6CP_CIT_ADDR;
+	*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+	ahtonl(buf, ipv6cp_local_neg_cfg.in6_ifaddrs[0].addr);
+	buf += sizeof(uint32_t);
+	}
+
+/*
+ *  ipv6cp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	true  ACK ã¯æ­£å¸¸
+ *		false ACK ã¯ç°å¸¸
+ */
+
+static bool_t
+ipv6cp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	uint8_t		*buf;
+	uint16_t	len;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	/*
+	 *  æ§ææ
+å ±ã¯éä¿¡ããé ã«å®å
+¨ã«ä¸è´ããªããã°ãªããªãã
+	 *  å¾ã£ã¦ãipv6cp_addci ã§ä½æããé ã«è§£æããã
+	 */
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
+	    *buf ++ != IPV6CP_CIT_ADDR			||
+	    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)||
+	    nahcmpl(buf, ipv6cp_local_neg_cfg.in6_ifaddrs[0].addr))
+		return false;
+	buf += sizeof(uint32_t);
+	len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+
+	return true;
+	}
+
+/*
+ *  ipv6cp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  NAK ã¯æ­£å¸¸
+ *		0  NAK ã¯ç°å¸¸
+ */
+
+static int_t
+ipv6cp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_IFNET		new_cfg;
+	uint32_t	addr;
+	uint16_t	len;
+	uint8_t		*buf, cilen;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = ipv6cp_local_neg_cfg;
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(addr)		&&
+	    * buf      == IPV6CP_CIT_ADDR			&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(addr)) {
+		memcpy(&new_cfg.in6_ifaddrs[0].addr, buf + 2, sizeof(addr));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(addr);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(addr);
+		}
+
+	/* å¾ã¯ç¡è¦ããã*/
+	while (len > sizeof(T_PPP_CI_HDR)) {
+		cilen = *(buf + 1);
+		if (len < cilen)
+			return 0;
+		buf += cilen;
+		len -= cilen;
+		}
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED)
+		ipv6cp_local_neg_cfg = new_cfg;
+               		
+	return 1;
+	}
+
+/*
+ *  ipv6cp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  REJ ã¯æ­£å¸¸
+ *		0  REJ ã¯ç°å¸¸
+ */
+
+static int_t
+ipv6cp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_IFNET		new_cfg;
+	uint8_t		*buf;
+	uint16_t	len;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = ipv6cp_local_neg_cfg;
+
+	/* ADDR ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr)	&&
+	    * buf      == IPV6CP_CIT_ADDR					&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr)) {
+		memcpy(&new_cfg.in6_ifaddrs[0].addr, &in6_addr_unspecified,
+		 sizeof(new_cfg.in6_ifaddrs[0].addr));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(new_cfg.in6_ifaddrs[0].addr);
+		}
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED)
+		ipv6cp_local_neg_cfg = new_cfg;
+
+	return 1;
+	}
+
+/*
+ *  ipv6cp_reqci -- ç¸æã®æ§ææ
+å ±ãè§£æããã
+ */
+
+static int_t
+ipv6cp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output)
+{
+	T_IN6_ADDR	addr;
+	uint16_t	code, final, len, cilen;
+	uint8_t		*np, *rp, *ap, *cp, type = 0;
+
+	rp = ap = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+				/* rp: REJãap: ACK ãã CI ã®ãã¤ã³ã¿	*/
+				/* æå¦ããå ´åã¯ãå¼æ° buf ã«ä¸æ¸ãããã	*/
+	len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+	np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	final = PPP_CONFACK;	/* æçµçã«éä¿¡ããã³ã¼ã */
+	while (len > 0) {
+		code = PPP_CONFACK;
+		cp   = ap;	/* cp: ç¾å¨å¦çä¸­ã® CI	*/
+
+		if (len < sizeof(T_PPP_CI_HDR)) {
+
+			/* æ®ãã CI ãããããç­ã */
+			syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", len);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len  = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+
+		type  = *ap ++;	/* CI ã®å		*/
+		cilen = *ap ++;	/* CI ã®é·ã		*/
+		if (len < cilen) {
+
+			/* æ®ãã CI é·ããç­ã */
+			syslog(LOG_NOTICE, "[PPP/IPV6CP] bad CI len: %d.", cilen);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len  = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+		len -= sizeof(T_PPP_CI_HDR);
+
+		/* CI ã®åã«ããåå²ããã*/
+		switch (type) {
+
+		case IPV6CP_CIT_ADDR:	/* IPv6 ã¢ãã¬ã¹ */
+
+		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã°ã¨ã©ã¼ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(addr))
+				code = PPP_CONFREJ;
+			else {
+				memcpy((uint8_t*)&ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr, ap,
+				           sizeof(ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr));
+				if (!IN6_ARE_ADDR_EQUAL(&addr, &ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr) &&
+				    (IN6_IS_ADDR_UNSPECIFIED(&addr) ||
+				     IN6_IS_ADDR_UNSPECIFIED(&ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr))) {
+					memcpy(np, (uint8_t*)&ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr,
+					               sizeof(ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr));
+					*np ++ = IPV6CP_CIT_ADDR;
+					*np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+					np    += sizeof(ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr);
+					code = PPP_CONFNAK;
+					}
+#if 1	/* è¦ç¢ºèª */
+				else if (IN6_IS_ADDR_UNSPECIFIED(&addr) &&
+				         IN6_IS_ADDR_UNSPECIFIED(&ipv6cp_remote_neg_cfg.in6_ifaddrs[0]))
+#else
+				else if (IN6_IS_ADDR_UNSPECIFIED(&addr) ||
+				         IN6_IS_ADDR_UNSPECIFIED(&ipv6cp_remote_neg_cfg.in6_ifaddrs[0]))
+#endif
+					code = PPP_CONFREJ;
+				else
+					ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr = addr;
+				}
+			break;
+
+		default:
+			syslog(LOG_INFO, "[PPP/IPV6CP] unexp opt: %d.", type);
+			code = PPP_CONFREJ;
+			break;
+			}
+endswitch:
+
+		if (code == PPP_CONFNAK) {
+			/* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã	*/
+			/* æå¤§å¤ MAX_PPP_FAILURES  ãè¶
+ãããæå¦ããã	*/
+			if (fsm->failures >= MAX_PPP_FAILURES)
+				code = PPP_CONFREJ;
+			else if (final != PPP_CONFREJ)
+				final = PPP_CONFNAK;
+			}
+
+		/* ãã® CI ãæå¦ãã */
+		if (code == PPP_CONFREJ) {
+			if (rp < cp)		/* åã«è©°ããã*/
+				memcpy(rp, cp, cilen);
+			rp += cilen;
+			final = PPP_CONFREJ;
+			}
+
+		ap   += cilen - sizeof(T_PPP_CI_HDR);
+		len  -= cilen - sizeof(T_PPP_CI_HDR);
+		}
+
+	/* æçµçãªé·ããèª¿æ´ããã*/
+	switch (final) {
+	case PPP_CONFNAK:
+		output->len = np - output->buf;
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		break;
+	case PPP_CONFREJ:
+		memcpy(output->buf, input->buf, output->len = rp - input->buf);
+		break;
+	case PPP_CONFACK:
+		memcpy(output->buf, input->buf, input->len);
+		break;
+		}
+
+	return final;
+	}
+
+/*
+ *  ipv6cp_up -- ãªã³ã¯æ¥ç¶ãç¢ºç«ããã
+ */
+
+static void
+ipv6cp_up (T_PPP_FSM *fsm)
+{
+	/* èªæ§ææ
+å ±ã®åæè¨­å® */
+	ipv6cp_local_ack_cfg = ipv6cp_local_neg_cfg;
+
+	sig_sem(SEM_IPV6CP_READY);
+
+	syslog(LOG_NOTICE, "[PPP/IPV6CP] up, Local IPv6 Addr: %s, Remote IPv6 Addr: %s.",
+	                   ipv62str(NULL, &ipv6cp_local_neg_cfg.in6_ifaddrs[0].addr),
+	                   ipv62str(NULL, &ipv6cp_remote_neg_cfg.in6_ifaddrs[0].addr));
+	}
+
+/*
+ *  ipv6cp_down -- ãªã³ã¯æ¥ç¶ãè§£æ¾ããã
+ */
+
+static void
+ipv6cp_down (T_PPP_FSM *fsm)
+{
+	sig_sem(SEM_IPV6CP_READY);
+	syslog(LOG_NOTICE, "[PPP/IPV6CP] down.");
+	}
+
+/*
+ *  ipv6cp_finished -- ä¸ä½å±¤ãçµäºããã
+ */
+
+static void
+ipv6cp_finished (T_PPP_FSM *fsm)
+{
+	}
+
+/*
+ *  ipv6cp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+ipv6cp_protrej (void)
+{
+	fsm_lowerdown(&ipv6cp_fsm);
+	}
+
+/*
+ *  ipv6cp_lowerup -- IPV6CP ä¸ä½å±¤ãèµ·åããã
+ */
+
+static void
+ipv6cp_lowerup (void)
+{
+	fsm_lowerup(&ipv6cp_fsm);
+	}
+
+/*
+ *  ipv6cp_lowerdown -- IPV6CP ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+static void
+ipv6cp_lowerdown (void)
+{
+	fsm_lowerdown(&ipv6cp_fsm);
+	}
+
+/*
+ *  ipv6cp_open -- IPV6CP ã®ãªã¼ãã³
+ */
+
+static void
+ipv6cp_open (void)
+{
+	fsm_open(&ipv6cp_fsm);
+	}
+
+/*
+ *  ipv6cp_close -- IPV6CP ã®ã¯ã­ã¼ãº
+ */
+
+static void
+ipv6cp_close (void)
+{
+	fsm_close(&ipv6cp_fsm);
+	}
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_ipv6cp.h	(revision 313)
@@ -0,0 +1,143 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * ipv6cp.h - IP Control Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/ipv6cp.h,v 1.9.2.1 1999/08/29 15:47:01 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/ipv6cp.h,v 1.30.2.2 2000/06/15 17:08:28 brian Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_IPV6CP_H_
+#define _PPP_IPV6CP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  IPV6CP ã®æ§ææ
+å ± (CI)
+ */
+
+/*
+ *  CI ã®å
+ */
+
+#define IPV6CP_CIT_ADDRS		UINT_C(1)	/* IP ã¢ãã¬ã¹ (å»æ£)	*/
+#define IPV6CP_CIT_COMP_TYPE	UINT_C(2)	/* å§ç¸®æ¹å¼		*/
+#define IPV6CP_CIT_ADDR		UINT_C(3)	/* IP ã¢ãã¬ã¹		*/
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef T_PPP_FSM_DEFINED
+extern T_PPP_FSM	ipv6cp_fsm;
+#endif	/* of #ifdef T_PPP_FSM_DEFINED */
+
+#ifdef T_PPP_PROTENT_DEFINED
+extern T_PPP_PROTENT	ipv6cp_protent;
+#endif	/* of #ifdef T_PPP_PROTENT_DEFINED */
+
+extern T_IFNET	ipv6cp_local_ack_cfg;
+extern T_IFNET	ipv6cp_remote_ack_cfg;
+
+/*
+ *  é¢æ°
+ */
+
+extern ER wait_ipv6cp (void);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_IPV6CP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.c	(revision 313)
@@ -0,0 +1,1375 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * lcp.c - PPP Link Control Protocol.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	      PPP Link Control Protocol (LCP) Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/lcp.c,v 1.81.2.3 2000/08/19 09:30:04 brian Exp $
+ *
+ */
+
+#include <string.h>
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_auth.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  é¢æ°
+ */
+
+static void lcp_init    (void);
+static void lcp_protrej (void);
+static void lcp_input   (T_NET_BUF *input);
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+static void send_echo_req  (T_PPP_FSM *fsm);
+static void recv_echo_rep  (T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input);
+static void echo_timeout   (void *arg);
+static void echo_lowerup   (void);
+static void echo_lowerdown (void);
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+/*
+ * FSM ããå¼åºãããã³ã¼ã«ããã¯é¢æ°
+ */
+
+static void  lcp_resetci(T_PPP_FSM *fsm);	/* èªæ§ææ
+å ±ããªã»ããããã	*/
+static int_t lcp_cilen	(T_PPP_FSM *fsm);	/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+static void  lcp_addci	(T_PPP_FSM *fsm, T_NET_BUF *output);
+						/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+static bool_t lcp_ackci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t lcp_nakci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+static bool_t lcp_rejci	(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+static int_t lcp_reqci	(T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output);
+						/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+static void lcp_up	(T_PPP_FSM *fsm);	/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+static void lcp_starting(T_PPP_FSM *fsm);	/* ä¸ä½å±¤ãéå§ããã		*/
+static bool_t lcp_extcode	(T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input);
+						/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+static void lcp_rprotrej(T_PPP_FSM *fsm, T_NET_BUF *input);
+						/* Proto-REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+/*
+ *  å¤æ°
+ */
+
+static T_LCP_CONFIGS lcp_def_cfg = {		/* æ§ææ
+å ±ã®åæè¨­å®å¤		*/
+	DEF_REMOTE_ACCM,			/* ACCM				*/
+
+#ifdef LCP_CFG_MAGIC
+
+	ULONG_C(0),				/* ãã¸ãã¯çªå·			*/
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+	DEF_PPP_MTU,				/* MRU				*/
+	UINT_C(0),				/* ãªãã·ã§ã³ãã©ã°		*/
+	};
+
+static T_LCP_CONFIGS lcp_local_def_cfg = {	/* èªæ§ææ
+å ±ã®è¦å®å¤		*/
+	DEF_LOCAL_ACCM,				/* ACCM				*/
+
+#ifdef LCP_CFG_MAGIC
+
+	ULONG_C(0),				/* ãã¸ãã¯çªå·			*/
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+	DEF_PPP_MTU,				/* MRU				*/
+	DEF_LCP_LOCAL_CFGS,			/* ãªãã·ã§ã³ãã©ã°		*/
+	};
+
+static T_LCP_CONFIGS lcp_local_neg_cfg;		/* ãã´ä¸­ã®èªæ§ææ
+å ±		*/
+
+static T_LCP_CONFIGS lcp_remote_neg_cfg;	/* ãã´ä¸­ã®ç¸æã®æ§ææ
+å ±		*/
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+static uint8_t echo_pending  = UINT_C(0);
+static uint8_t echo_number   = UINT_C(0);
+static uint8_t timer_running = false;
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+T_PPP_FSM_CALLBACKS lcp_callbacks = {
+	lcp_resetci,			/* èªæ§ææ
+å ±ããªã»ããããã	*/
+	lcp_cilen,			/* æ§ææ
+å ±ã®é·ããè¿ãã		*/
+	lcp_addci,			/* èªæ§ææ
+å ±ãè¿½å ããã		*/
+	lcp_ackci,			/* ACK ãåä¿¡ããã¨ãã®å¦ç	*/
+	lcp_nakci,			/* NAK ãåä¿¡ããã¨ãã®å¦ç	*/
+	lcp_rejci,			/* REJ ãåä¿¡ããã¨ãã®å¦ç	*/
+	lcp_reqci,			/* ç¸æã®æ§ææ
+å ±ãç¢ºèªããã	*/
+	lcp_up,				/* ãªã³ã¯æ¥ç¶ãç¢ºç«ããã		*/
+	lcp_down,			/* ãªã³ã¯æ¥ç¶ãè§£æ¾ããã		*/
+	lcp_starting,			/* ä¸ä½å±¤ãéå§ããã		*/
+	lcp_finished,			/* ä¸ä½å±¤ãçµäºããã		*/
+	NULL,				/* åéããã			*/
+	lcp_extcode,			/* ä¸æãª CP ãåä¿¡ããã¨ãã®å¦ç	*/
+	};
+
+T_PPP_FSM lcp_fsm = {
+	&lcp_callbacks,			/* ã³ã¼ã«ããã¯é¢æ°		*/
+	PPP_LCP,			/* ãã­ãã³ã«			*/
+	};
+
+T_PPP_PROTENT lcp_protent = {
+	PPP_LCP,
+	lcp_init,			/* åæå			*/
+	lcp_input,			/* å
+¥å				*/
+	lcp_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
+	NULL,				/* ä¸ä½å±¤ãèµ·åãã		*/
+	lcp_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
+	NULL,				/* ãªã¼ãã³ãã			*/
+	lcp_close,			/* ã¯ã­ã¼ãºãã			*/
+	NULL,				/* ãã¼ã¿å
+¥å			*/
+	};
+
+T_LCP_CONFIGS lcp_local_ack_cfg;	/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
+å ±	*/
+T_LCP_CONFIGS lcp_remote_ack_cfg;	/* ç¸æã«è¨±å¯ããæ§ææ
+å ±		*/
+
+/*
+ *  lcp_init -- LCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+static void
+lcp_init (void)
+{
+	fsm_init(&lcp_fsm);
+	}
+
+/*
+ *  lcp_input -- LCP å
+¥å
+ */
+
+static void
+lcp_input (T_NET_BUF *input)
+{
+	NET_COUNT_PPP_LCP(net_count_ppp_lcp_in_octets,  input->len);
+	NET_COUNT_PPP_LCP(net_count_ppp_lcp_in_packets, 1);
+	fsm_input(&lcp_fsm, input);
+	}
+
+/*
+ *  lcp_resetci -- LCPã®æ§ææ
+å ±ããªã»ããããã
+ */
+
+static void
+lcp_resetci (T_PPP_FSM *fsm)
+{
+#ifdef LCP_CFG_MAGIC
+
+	SYSTIM	time;
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+	/* èªæ§ææ
+å ±ã®åæè¨­å® */
+	lcp_local_neg_cfg	= lcp_local_def_cfg;
+	lcp_local_ack_cfg	= lcp_def_cfg;
+
+	/* ç¸æã®æ§ææ
+å ±ã®åæè¨­å® */
+	lcp_remote_neg_cfg	= lcp_def_cfg;
+	lcp_remote_ack_cfg	= lcp_def_cfg;
+
+#ifdef LCP_CFG_MAGIC
+
+	syscall(get_tim(&time));
+	net_srand((unsigned int)time);
+	lcp_local_neg_cfg.magic = net_rand();
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+	auth_reset();
+	}
+
+/*
+ *  lcp_cilen -- æ§ææ
+å ±ã®é·ããè¿ãã
+ */
+
+static int_t
+lcp_cilen (T_PPP_FSM *fsm)
+{
+	int_t cilen = 0;
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_MRU)
+		cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);	/* MRU   */
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCM)
+		cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* ACCM  */
+
+#ifdef LCP_CFG_MAGIC
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC)
+		cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);	/* Magic */
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+#ifdef LCP_CFG_PAP
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_PAP)
+		cilen += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);	/* PAP   */
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)
+		cilen += sizeof(T_PPP_CI_HDR);			/* ãã­ãã³ã«å§ç¸® */
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)
+		cilen += sizeof(T_PPP_CI_HDR);			/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸® */
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+	return cilen;
+	}
+
+/*
+ *  lcp_addci -- LCPã®æ§ææ
+å ±ãè¿½å ããã
+ */
+
+static void
+lcp_addci (T_PPP_FSM *fsm, T_NET_BUF *output)
+{
+	uint8_t *buf;
+
+	buf = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+
+	/* MRU ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
+		*buf ++ = LCP_CIT_MRU;
+		*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		*((uint16_t*)buf) = htons(lcp_local_neg_cfg.MRU);
+		buf += sizeof(uint16_t);
+		}
+
+	/* ACCM ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
+		*buf ++ = LCP_CIT_ACCM;
+		*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		ahtonl(buf, lcp_local_neg_cfg.ACCM);
+		buf += sizeof(uint32_t);
+		}
+
+#ifdef LCP_CFG_MAGIC
+
+	/* Magic Number ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
+		*buf ++ = LCP_CIT_MAGIC;
+		*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		ahtonl(buf, lcp_local_neg_cfg.magic);
+		buf += sizeof(uint32_t);
+		}
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+#ifdef LCP_CFG_PAP
+
+	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
+		*buf ++ = LCP_CIT_AUTH;
+		*buf ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		*((uint16_t*)buf) = htons(PPP_PAP);
+		buf += sizeof(uint16_t);
+		}
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
+		*buf ++ = LCP_CIT_PCOMP;
+		*buf ++ = sizeof(T_PPP_CI_HDR);
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè¿½å ããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
+		*buf ++ = LCP_CIT_ACCOMP;
+		*buf ++ = sizeof(T_PPP_CI_HDR);
+		}
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+	}
+
+/*
+ *  lcp_ackci -- ACK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	TURE  ACK ã¯æ­£å¸¸
+ *		false ACK ã¯ç°å¸¸
+ */
+
+static bool_t
+lcp_ackci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	uint8_t		*buf;
+	uint16_t	len;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	/*
+	 *  æ§ææ
+å ±ã¯éä¿¡ããé ã«å®å
+¨ã«ä¸è´ããªããã°ãªããªãã
+	 *  å¾ã£ã¦ãlcp_addci ã§ä½æããé ã«è§£æããã
+	 */
+
+	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_MRU) {
+		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	||
+		    *buf ++ != LCP_CIT_MRU			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)||
+		    *((uint16_t*)buf) != htons(lcp_local_neg_cfg.MRU)	)
+			return false;
+		buf += sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		}
+
+	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCM) {
+		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
+		    *buf ++ != LCP_CIT_ACCM			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)||
+		    nahcmpl(buf, lcp_local_neg_cfg.ACCM)        )
+			return false;
+		buf += sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		}
+
+#ifdef LCP_CFG_MAGIC
+
+	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_MAGIC) {
+		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	||
+		    *buf ++ != LCP_CIT_MAGIC			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)||
+		    nahcmpl(buf, lcp_local_neg_cfg.magic)       )
+			return false;
+		buf += sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		}
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+#ifdef LCP_CFG_PAP
+
+	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_PAP) {
+		if (len < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	||
+		    *buf ++ != LCP_CIT_AUTH			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)||
+		    *((uint16_t*)buf) != htons(PPP_PAP)		)
+			return false;
+		buf += sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		}
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_PCOMP) {
+		if (len < sizeof(T_PPP_CI_HDR)			||
+		    *buf ++ != LCP_CIT_PCOMP			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR))
+			return false;
+		len -= sizeof(T_PPP_CI_HDR);
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP) {
+		if (len < sizeof(T_PPP_CI_HDR)			||
+		    *buf ++ != LCP_CIT_ACCOMP			||
+		    *buf ++ != sizeof(T_PPP_CI_HDR))
+			return false;
+		len -= sizeof(T_PPP_CI_HDR);
+		}
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+	return true;
+	}
+
+/*
+ *  lcp_nakci -- NAK ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  NAK ã¯æ­£å¸¸
+ *		0  NAK ã¯ç°å¸¸
+ */
+
+static int_t
+lcp_nakci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_LCP_CONFIGS	new_cfg;
+	bool_t		loop = false;	/* ã«ã¼ãããã¯ããã§ãã¯ */
+	uint32_t	cilong;
+	uint16_t	cishort, len;
+	uint8_t		*buf, cilen;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = lcp_local_neg_cfg;
+
+	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
+	    * buf      == LCP_CIT_MRU				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_MRU)) {
+	    	cishort = ntohs(*((uint16_t*)(buf + 2)));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		if (cishort <= lcp_local_neg_cfg.MRU || cishort <= DEF_PPP_MTU)
+			new_cfg.MRU = cishort;
+		}
+
+	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == LCP_CIT_ACCM				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_ACCM)) {
+	    	ntoahl(cilong, buf + 2);
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		new_cfg.ACCM |= cilong;
+		}
+
+#ifdef LCP_CFG_MAGIC
+
+	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == LCP_CIT_MAGIC				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_MAGIC)) {
+	    	ntoahl(cilong, buf + 2);
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		new_cfg.magic = cilong;
+		loop = true;
+		}
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+#ifdef LCP_CFG_PAP
+
+	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
+	    * buf      == LCP_CIT_AUTH				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_PAP)) {
+	    	cishort = ntohs(*((uint16_t*)(buf + 2)));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		if (cishort == PPP_PAP)
+			new_cfg.options &= ~LCP_CFG_PAP;
+		else
+			return 0;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR)				&&
+	    * buf      == LCP_CIT_PCOMP				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR)			&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)) {
+		buf += sizeof(T_PPP_CI_HDR);
+		len -= sizeof(T_PPP_CI_HDR);
+		new_cfg.options &= ~LCP_CFG_PCOMP;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR)				&&
+	    * buf      == LCP_CIT_ACCOMP			&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR)			&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)) {
+		buf += sizeof(T_PPP_CI_HDR);
+		len -= sizeof(T_PPP_CI_HDR);
+		new_cfg.options &= ~LCP_CFG_ACCOMP;
+		}
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+	/* å¾ã¯ç¡è¦ããã*/
+	while (len > sizeof(T_PPP_CI_HDR)) {
+		cilen = *(buf + 1);
+		if (len < cilen)
+			return 0;
+		buf += cilen;
+		len -= cilen;
+		}
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED) {
+		if (loop) {
+			syslog(LOG_WARNING, "[PPP/LCP] line looped.");
+			lcp_close();
+			}
+		lcp_local_neg_cfg = new_cfg;
+		}
+	return 1;
+	}
+
+/*
+ *  lcp_rejci -- REJ ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *	æ»ãå¤:	1  REJ ã¯æ­£å¸¸
+ *		0  REJ ã¯ç°å¸¸
+ */
+
+static int_t
+lcp_rejci (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_LCP_CONFIGS	new_cfg;
+	uint32_t	cilong;
+	uint16_t	cishort, len;
+	uint8_t		*buf;
+
+	buf = input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	len = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+	new_cfg = lcp_local_neg_cfg;
+
+	/* MRU ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
+	    * buf      == LCP_CIT_MRU					&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_MRU)) {
+	    	cishort = ntohs(*((uint16_t*)(buf + 2)));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		if (cishort != lcp_local_neg_cfg.MRU)
+			return 0;
+		else
+			new_cfg.options &= ~LCP_CFG_MRU;
+		}
+		
+	/* ACCM ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == LCP_CIT_ACCM					&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_ACCM)) {
+	    	ntoahl(cilong, buf + 2);
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		if (cilong != lcp_local_neg_cfg.ACCM)
+			return 0;
+		else
+			new_cfg.options &= ~LCP_CFG_ACCM;
+		}
+
+#ifdef LCP_CFG_MAGIC
+
+	/* Magic Number ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)		&&
+	    * buf      == LCP_CIT_MAGIC					&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint32_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_MAGIC)) {
+	    	ntoahl(cilong, buf + 2);
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+		if (cilong != lcp_local_neg_cfg.magic)
+			return 0;
+		else
+			new_cfg.options &= ~LCP_CFG_MAGIC;
+		}
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+#ifdef LCP_CFG_PAP
+
+	/* èªè¨¼ãã­ãã³ã«ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)		&&
+	    * buf      == LCP_CIT_AUTH					&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t)	&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_PAP)) {
+	    	cishort = ntohs(*((uint16_t*)(buf + 2)));
+		buf += sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		len -= sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+		if (cishort != PPP_PAP)
+			return 0;
+		else
+			new_cfg.options &= ~LCP_CFG_PAP;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+	/* ãã­ãã³ã«å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR)				&&
+	    * buf      == LCP_CIT_PCOMP				&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR)			&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_PCOMP)) {
+		buf += sizeof(T_PPP_CI_HDR);
+		len -= sizeof(T_PPP_CI_HDR);
+		new_cfg.options &= ~LCP_CFG_PCOMP;
+		}
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+	/* ã¢ãã¬ã¹ã»å¶å¾¡å§ç¸®ãªãã·ã§ã³ãè§£æããã */
+	if (len >= sizeof(T_PPP_CI_HDR)				&&
+	    * buf      == LCP_CIT_ACCOMP			&&
+	    *(buf + 1) == sizeof(T_PPP_CI_HDR)			&&
+	    (lcp_local_neg_cfg.options & LCP_CFG_ACCOMP)) {
+		buf += sizeof(T_PPP_CI_HDR);
+		len -= sizeof(T_PPP_CI_HDR);
+		new_cfg.options &= ~LCP_CFG_ACCOMP;
+		}
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+	/* é·ãã 0 ã§ãªããã°ã¨ã©ã¼ */
+	if (len != 0)
+		return 0;
+
+	/* æ°ãããªãã·ã§ã³ãè¨­å®ããã*/
+	if (fsm->state != PPP_FSM_OPENED)
+		lcp_local_neg_cfg = new_cfg;
+
+	return 1;
+	}
+
+/*
+ *  lcp_reqci -- ç¸æã®æ§ææ
+å ±ãè§£æããã
+ */
+
+static int_t
+lcp_reqci (T_PPP_FSM *fsm, T_NET_BUF *input, T_NET_BUF *output)
+{
+#if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC
+
+	uint32_t	cilong;
+
+#endif	/* of #if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC */
+
+	uint16_t	code, final, len, cilen, cishort;
+	uint8_t		*np, *rp, *ap, *cp, type = 0;
+
+	rp = ap = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+				/* rp: REJãap: ACK ãã CI ã®ãã¤ã³ã¿		*/
+				/* æå¦ããå ´åã¯ãå¼æ° input ã«ä¸æ¸ãããã	*/
+	len   = input->len - (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+	np    = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+	final = PPP_CONFACK;	/* æçµçã«éä¿¡ããã³ã¼ã */
+	while (len > 0) {
+		code = PPP_CONFACK;
+		cp   = ap;	/* cp: ç¾å¨å¦çä¸­ã® CI	*/
+
+		if (len < sizeof(T_PPP_CI_HDR)) {
+
+			/* æ®ãã CI ãããããç­ã */
+			syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", len);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len   = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+
+		type  = *ap ++;	/* CI ã®å		*/
+		cilen = *ap ++;	/* CI ã®é·ã		*/
+		if (len < cilen) {
+
+			/* æ®ãã CI é·ããç­ã */
+			syslog(LOG_WARNING, "[PPP/LCP] bad CI len: %d.", cilen);
+			cilen = len;	/* ãã¼ã¿é·ãç°å¸¸ã®å ´åã®å¦ç½®	*/
+			len   = 0;	/* ã«ã¼ãããæããã		*/
+			code  = PPP_CONFREJ;
+			goto endswitch;
+			}
+		len -= sizeof(T_PPP_CI_HDR);
+
+		/* CI ã®åã«ããåå²ããã*/
+		switch (type) {
+
+		case LCP_CIT_MRU:	/* æå¤§åä¿¡é (Maximum Receive Unit) */
+
+#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0
+
+			code = PPP_CONFREJ;
+
+#else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */
+
+		 	/* CI é·ããããã + 2 ãªã¯ãããã§ãªããã° REJ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
+				code = PPP_CONFREJ;
+			{
+				cishort = ntohs(*(uint16_t*)ap);
+
+				/* æå°åä¿¡éããå°ãããã° NAK */
+				if (cishort < MIN_PPP_MTU) {
+					*np ++ = LCP_CIT_MRU;
+					*np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint16_t);
+					*((uint16_t*)np) = htons(MIN_PPP_MTU);
+					np  += sizeof(uint16_t);
+					code = PPP_CONFNAK;
+					}
+				else {
+					lcp_remote_neg_cfg.MRU = cishort;
+					lcp_remote_neg_cfg.options |= LCP_CFG_MRU;
+					}
+				}
+
+#endif	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MRU) == 0 */
+
+			break;
+
+		case LCP_CIT_ACCM:	/* Async Control Character Map */
+
+#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0
+
+			code = PPP_CONFREJ;
+
+#else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */
+
+		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã° REJ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
+				code = PPP_CONFREJ;
+			else {
+				ntoahl(lcp_remote_neg_cfg.ACCM, ap);
+				lcp_remote_neg_cfg.options |= LCP_CFG_ACCM;
+				}
+
+#endif	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCM) == 0 */
+
+			break;
+
+		case LCP_CIT_MAGIC:	/* ãã¸ãã¯çªå· */
+
+#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0
+
+			code = PPP_CONFREJ;
+
+#else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */
+
+		 	/* CI é·ããããã + 4 ãªã¯ãããã§ãªããã° REJ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR) + sizeof(uint32_t))
+				code = PPP_CONFREJ;
+			else {
+				ntoahl(cilong, ap);
+
+				/* çªå·ãèªåã¨åããªã NAK */
+				if (cilong == lcp_local_neg_cfg.magic) {
+					cilong = net_rand();
+					*np ++ = LCP_CIT_MAGIC;
+					*np ++ = sizeof(T_PPP_CI_HDR) + sizeof(uint32_t);
+					ahtonl(np, cilong);
+					np  += sizeof(uint32_t);
+					code = PPP_CONFNAK;
+					}
+				else {
+					lcp_remote_neg_cfg.magic = cilong;
+					lcp_remote_neg_cfg.options |= LCP_CFG_MAGIC;
+					}
+				}
+
+#endif	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC) == 0 */
+
+			break;
+
+#ifdef LCP_CFG_PAP
+		/* CHAP ã¯å®è£
+äºå®	*/
+
+		case LCP_CIT_AUTH:	/* èªè¨¼ãã­ãã³ã« */
+
+		 	/* CI é·ããããã + 2 ãªã¯ãããããç­ãã¨ãã¯ã¨ã©ã¼ */
+		 	if (cilen < sizeof(T_PPP_CI_HDR) + sizeof(uint16_t))
+				code = PPP_CONFREJ;
+			else {
+				cishort = ntohs(*(uint16_t*)ap);
+
+				/* èªè¨¼ãã­ãã³ã«ã«ããåå²ãã	*/
+				if (cishort == PPP_PAP &&
+				    cilen   == sizeof(T_PPP_CI_HDR) + sizeof(uint16_t) &&
+			 	    (DEF_LCP_REMOTE_CFGS & LCP_CFG_PAP) != 0)
+					lcp_remote_neg_cfg.options |= LCP_CFG_PAP;
+				else
+					code = PPP_CONFREJ;
+				}
+			break;
+
+#endif	/* of #ifdef LCP_CFG_PAP */
+
+#ifdef LCP_CFG_PCOMP
+
+		case LCP_CIT_PCOMP:	/* ãã­ãã³ã«é¨å§ç¸®ã¯å®è£
+äºå® */
+
+#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0
+
+			code = PPP_CONFREJ;
+
+#else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */
+
+		 	/* CI é·ãããããé·ã ãã§ãªããã° REJ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR))
+				code = PPP_CONFREJ;
+			else
+				lcp_remote_neg_cfg.options |= LCP_CFG_PCOMP;
+
+#endif	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_PCOMP) == 0 */
+
+			break;
+
+#endif	/* of #ifdef LCP_CFG_PCOMP */
+
+#ifdef LCP_CFG_ACCOMP
+
+		case LCP_CIT_ACCOMP:	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸® */
+
+#if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0
+
+			code = PPP_CONFREJ;
+
+#else	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */
+
+		 	/* CI é·ãããããé·ã ãã§ãªããã° REJ */
+		 	if (cilen != sizeof(T_PPP_CI_HDR))
+				code = PPP_CONFREJ;
+			else
+				lcp_remote_neg_cfg.options |= LCP_CFG_ACCOMP;
+
+#endif	/* of #if (DEF_LCP_REMOTE_CFGS & LCP_CFG_ACCOMP) == 0 */
+
+			break;
+
+#endif	/* of #ifdef LCP_CFG_ACCOMP */
+
+		default:
+			syslog(LOG_WARNING, "[PPP/LCP] unexp opt: %d.", type);
+			code  = PPP_CONFREJ;
+			break;
+			}
+endswitch:
+		if (code == PPP_CONFNAK) {
+			/* CI ã®åã Magic Number ã®å ´åãé¤ãã¦ãNAK ã®åæ°ã	*/
+			/* æå¤§å¤ MAX_PPP_FAILURES  ãè¶
+ãããæå¦ããã	*/
+			if (fsm->failures >= MAX_PPP_FAILURES && type != LCP_CIT_MAGIC)
+				code = PPP_CONFREJ;
+			else if (final != PPP_CONFREJ)
+				final = PPP_CONFNAK;
+			}
+
+		/* ãã® CI ãæå¦ãã */
+		if (code == PPP_CONFREJ) {
+			if (rp < cp)		/* åã«è©°ããã*/
+				memcpy(rp, cp, cilen);
+			rp += cilen;
+			final = PPP_CONFREJ;
+			}
+
+		ap   += cilen - sizeof(T_PPP_CI_HDR);
+		len  -= cilen - sizeof(T_PPP_CI_HDR);
+		}
+
+	/* æçµçãªé·ããèª¿æ´ããã*/
+	switch (final) {
+	case PPP_CONFNAK:
+		output->len = np - output->buf;
+		memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+		break;
+	case PPP_CONFREJ:
+		memcpy(output->buf, input->buf, output->len = rp - input->buf);
+		break;
+	case PPP_CONFACK:
+		memcpy(output->buf, input->buf, input->len);
+		break;
+		}
+	return final;
+	}
+
+/*
+ *  lcp_up -- ãªã³ã¯æ¥ç¶ãç¢ºç«ãã (Phase: Establish ã«ç§»è¡ãã)ã
+ */
+
+static void
+lcp_up (T_PPP_FSM *fsm)
+{
+	/* èªæ§ææ
+å ±ã®è¨­å® */
+	lcp_local_ack_cfg = lcp_local_neg_cfg;
+
+	/* ç¸æã®æ§ææ
+å ±ã®è¨­å® */
+	lcp_remote_ack_cfg = lcp_remote_neg_cfg;
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+	echo_lowerup();
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+	link_established();
+	}
+
+/*
+ *  lcp_starting -- ä¸ä½å±¤ãéå§ããã
+ */
+
+static void
+lcp_starting (T_PPP_FSM *fsm)
+{
+	link_required();
+	}
+
+/*
+ *  lcp_extcode -- LCP ç¹æã® CP ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static bool_t
+lcp_extcode (T_PPP_FSM *fsm, uint8_t code, uint8_t id, T_NET_BUF *input)
+{
+#if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC
+
+	T_NET_BUF *output;
+
+#endif	/* of #if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC */
+
+	switch (code) {
+	case PPP_PROTREJ:
+		lcp_rprotrej(fsm, input);
+		break;
+
+	case PPP_ECHOREQ:
+
+#if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC
+
+		if (fsm->state == PPP_FSM_OPENED) {
+			syscall(get_net_buf(&output, sizeof(T_PPP_HDR)
+			                           + sizeof(T_PPP_CP_HDR)
+			                           + sizeof(uint32_t)));
+			*(uint32_t*)(output->buf + sizeof(T_PPP_HDR)
+			                   + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic;
+			IF_SET_PROTO(output, PPP_LCP);
+			ppp_cp_output(PPP_ECHOREP, id, output);
+			}
+
+#endif	/* of #if DEF_LCP_REMOTE_CFGS & LCP_CFG_MAGIC */
+
+		break;
+
+	case PPP_ECHOREP:
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+		recv_echo_rep(fsm, id, input);
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+		break;
+
+	case PPP_DISCREQ:
+		break;
+
+	default:
+		return false;
+		break;
+
+		}
+	return true;
+	}
+
+/*
+ *  lcp_rprotrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+lcp_rprotrej (T_PPP_FSM *fsm, T_NET_BUF *input)
+{
+	T_PPP_PROTENT	*entry;
+	int_t		ix;
+	uint16_t	proto;
+
+	if (input->len < sizeof(uint16_t)) {
+		syslog(LOG_WARNING, "[PPP/LCP] bad len: %d in recv Proto-REJ.");
+		return;
+		}
+
+	proto = ntohs(*GET_PPP_HDR(input));
+
+	if (fsm->state != PPP_FSM_OPENED) {
+		return;
+		}
+
+	/* ä¸ä½ãã­ãã³ã«ãåæåãã */
+	for (ix = 0; (entry = protocols[ix]) != NULL; ix ++)
+		if (entry->proto == proto) {
+			(*entry->protrej)();
+			return;
+			}
+
+	syslog(LOG_WARNING, "[PPP/LCP] unexp proto: %d in recv Proto-REJ.", proto);
+	}
+
+/*
+ *  lcp_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+lcp_protrej (void)
+{
+	fsm_protreject(&lcp_fsm);
+	}
+
+/*
+ *  lcp_lowerup -- LCP ä¸ä½å±¤ãèµ·åããã
+ */
+
+void
+lcp_lowerup (void)
+{
+	fsm_lowerup(&lcp_fsm);
+	}
+
+/*
+ *  lcp_lowerdown -- LCP ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+void
+lcp_lowerdown (void)
+{
+	fsm_lowerdown(&lcp_fsm);
+	}
+
+/*
+ *  lcp_open -- LCP ã®ãªã¼ã
+ */
+
+void
+lcp_open (uint8_t open_mode)
+{
+	ppp_open_mode = open_mode;	/* ãªã¼ãã³æã®åä½ã¢ã¼ã	*/
+	fsm_open(&lcp_fsm);
+	}
+
+/*
+ *  lcp_close -- LCP ã®ã¯ã­ã¼ãº
+ */
+
+void
+lcp_close (void)
+{
+	if (ppp_phase != PPP_PHASE_DEAD)
+		ppp_phase = PPP_PHASE_TERMINATE;
+
+	if (ppp_open_mode == PPP_OPEN_PASSIVE && lcp_fsm.state == PPP_FSM_STOPPED) {
+		lcp_fsm.state = PPP_FSM_CLOSED;
+		lcp_finished(&lcp_fsm);
+		}
+	else
+		fsm_close(&lcp_fsm);
+	}
+
+/*
+ *  lcp_sprotrej -- èªè­ã§ããªããã­ãã³ã«ãéããã¦ããã¨ãã®å¦ç
+ */
+
+void
+lcp_sprotrej (T_NET_BUF *input)
+{
+	T_NET_BUF	*output;
+	/*
+	 *  Protocol-Reject ãéãè¿ãã
+	 */
+
+	syscall(get_net_buf(&output, input->len + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+
+	memcpy(output->buf, input->buf, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+	memcpy(output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR), input->buf, input->len);
+
+	IF_SET_PROTO(output, PPP_LCP);
+	ppp_cp_output(PPP_PROTREJ, ++ lcp_fsm.id, output);
+	}
+
+/*
+ *  lcp_down -- ãªã³ã¯æ¥ç¶ãè§£æ¾ãã (Phase: Dead ã«ç§»è¡ãã)ã
+ */
+
+void
+lcp_down (T_PPP_FSM *fsm)
+{
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+	echo_lowerdown();
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+	link_down();
+	}
+
+/*
+ *  lcp_finished -- ä¸ä½å±¤ãçµäºããã
+ */
+
+void
+lcp_finished (T_PPP_FSM *fsm)
+{
+	link_terminated();
+	}
+
+#if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC
+
+/*
+ *  recv_echo_rep -- ECHOREP ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+recv_echo_rep(T_PPP_FSM *fsm, uint8_t id, T_NET_BUF *input)
+{
+	T_PPP_CP_HDR	*hdr;
+	uint32_t	magic;
+
+ 	hdr = GET_PPP_CP_HDR(input);
+
+ 	/* Magic Number ã®é·ãä»¥ä¸ãªãã¨ã©ã¼ */
+ 	if (hdr->len < sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)) {
+		syslog(LOG_WARNING, "[PPP/LCP] bad ECHOREP len: %d.", hdr->len);
+		return;
+		}
+
+	ntoahl(magic, input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR));
+
+ 	/* åä¿¡ãã Magic Number ãèªåã¨åããªãã«ã¼ããã¦ããã*/
+	if ((lcp_local_ack_cfg.options & LCP_CFG_MAGIC) && magic == lcp_local_ack_cfg.magic) {
+		syslog(LOG_WARNING, "[PPP/LCP] ECHOREP looped.");
+		return;
+		}
+
+	echo_pending = 0;
+	}
+
+/*
+ *  echo_timeout -- ECHO REQ/REP ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+echo_timeout (void *arg)
+{
+	if (timer_running) {
+		timer_running = false;
+		send_echo_req((T_PPP_FSM *)arg);
+		}
+	}
+
+/*
+ *  send_echo_req -- ECHO REQ ãéä¿¡ããã
+ */
+
+static void
+send_echo_req (T_PPP_FSM *fsm)
+{
+	T_NET_BUF	*input;
+
+#if LCP_ECHO_FAILS > 0
+
+	if (echo_pending >= LCP_ECHO_FAILS) {
+		syslog(LOG_WARNING, "[PPP/LCP] no reply to ECHOREQ.");
+		lcp_close();
+		echo_pending = 0;
+		}
+
+#endif	/* of #if LCP_ECHO_FAILS > 0 */
+
+	if (fsm->state == PPP_FSM_OPENED) {
+
+		/* ECHOREQ ãéä¿¡ããã*/
+		syscall(get_net_buf(&input, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR) + sizeof(uint32_t)));
+		*(uint32_t*)(input->buf +  sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)) = lcp_local_ack_cfg.magic;
+		IF_SET_PROTO(input, PPP_LCP);
+		ppp_cp_output(PPP_ECHOREQ, echo_number ++, input);
+		echo_pending ++;
+
+		/* ã¿ã¤ãã¼ãã¹ã¿ã¼ãããã*/
+		timeout((FP)echo_timeout, fsm, LCP_ECHO_INTERVAL);
+		timer_running = true;
+		}
+	}
+
+/*
+ *  echo_lowerup -- ECHO REQ/REP ã®èµ·å
+ */
+
+static void
+echo_lowerup (void)
+{
+	echo_pending  = 0;
+	echo_number   = 0;
+	timer_running = false;
+
+	send_echo_req(&lcp_fsm);
+	}
+
+/*
+ *  echo_lowerdown -- ECHO REQ/REP ã®åæ­¢
+ */
+
+static void
+echo_lowerdown (void)
+{
+	if (timer_running) {
+		untimeout((FP)echo_timeout, &lcp_fsm);
+		timer_running = false;
+		}
+	}
+
+#endif	/* of #if DEF_LCP_LOCAL_CFGS & LCP_CFG_MAGIC */
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_lcp.h	(revision 313)
@@ -0,0 +1,174 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * lcp.h - Link Control Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/lcp.h,v 1.6.2.1 1999/08/29 15:47:03 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/lcp.h,v 1.23.2.1 2000/08/19 09:30:04 brian Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_LCP_H_
+#define _PPP_LCP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  LCP ç¹æã® PPP ãªã³ã¯å¶å¾¡ (CP) ã®å¶å¾¡ã³ã¼ã
+ */
+
+#define PPP_PROTREJ		UINT_C(8)	/* Protocol Reject	*/
+#define PPP_ECHOREQ		UINT_C(9)	/* Echo Request		*/
+#define PPP_ECHOREP		UINT_C(10)	/* Echo Reply		*/
+#define PPP_DISCREQ		UINT_C(11)	/* Discard Request	*/
+
+/*
+ *  LCP ã®æ§ææ
+å ± (CI)
+ */
+
+/*
+ *  CI ã®å
+ */
+
+#define LCP_CIT_MRU		UINT_C(1)	/* æå¤§åä¿¡é (Maximum Receive Unit)	*/
+#define LCP_CIT_ACCM		UINT_C(2)	/* Async Control Character Map		*/
+#define LCP_CIT_AUTH		UINT_C(3)	/* èªè¨¼ãã­ãã³ã«			*/
+#define LCP_CIT_QUALITY		UINT_C(4)	/* åè³ªãã­ãã³ã«ã¯æªå®è£
+			*/
+#define LCP_CIT_MAGIC		UINT_C(5)	/* ãã¸ãã¯çªå·				*/
+#define LCP_CIT_PCOMP		UINT_C(7)	/* ãã­ãã³ã«é¨å§ç¸®ã¯å®è£
+äºå®		*/
+#define LCP_CIT_ACCOMP		UINT_C(8)	/* ã¢ãã¬ã¹ã»å¶å¾¡é¨å§ç¸®ã¯å®è£
+äºå®		*/
+#define LCP_CIT_FCS_ALTER	UINT_C(9)	/* FCS-Alternatives ã¯æªå®è£
+		*/
+#define LCP_CIT_SELF_PAD	UINT_C(10)	/* Self-Describing-Padding ã¯æªå®è£
+	*/
+#define LCP_CIT_CALLBACK	UINT_C(13)	/* Callback ã¯æªå®è£
+			*/
+#define LCP_CIT_CFRAMES		UINT_C(15)	/* Compound-Frames ã¯æªå®è£
+		*/
+
+/*
+ *  LCP ã®æ§ææ
+å ±ãªãã·ã§ã³
+ */
+
+typedef struct t_lcp_configs {
+	uint32_t	ACCM;		/* ACCM			*/
+
+#ifdef LCP_CFG_MAGIC
+
+	uint32_t	magic;		/* ãã¸ãã¯çªå·		*/
+
+#endif	/* of #ifdef LCP_CFG_MAGIC */
+
+	uint16_t	MRU;		/* MRU			*/
+	uint16_t	options;	/* ãªãã·ã§ã³ãã©ã°	*/
+	} T_LCP_CONFIGS;
+
+/*
+ *  å¤æ°
+ */
+
+extern T_PPP_FSM	lcp_fsm;
+extern T_PPP_PROTENT	lcp_protent;
+extern T_LCP_CONFIGS	lcp_local_ack_cfg;	/* ç¸æã«è¨±å¯ãããã®èªæ§ææ
+å ±	*/
+extern T_LCP_CONFIGS	lcp_remote_ack_cfg;	/* ç¸æã«è¨±å¯ããæ§ææ
+å ±		*/
+
+/*
+ *  é¢æ°
+ */
+
+extern void lcp_lowerup (void);
+extern void lcp_lowerdown (void);
+extern void lcp_down (T_PPP_FSM *fsm);
+extern void lcp_finished (T_PPP_FSM *fsm);
+extern void lcp_open (uint8_t open_mode);
+extern void lcp_close (void);
+extern void lcp_sprotrej (T_NET_BUF *data);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_LCP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.c	(revision 313)
@@ -0,0 +1,325 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  PPP ã¢ãã å¶å¾¡
+ */
+
+#include <string.h>
+
+#include <t_services.h>
+#include "kernel_id.h"
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_modem.h>
+#include <net/ppp_lcp.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+uint8_t	modem_state = PPP_MODEM_DOWN;	/* ã¢ãã ã®ç¶æ
+		*/
+
+/*
+ *  ã¢ãã å
+¥åæå­å
+ */
+
+#define MODEM_RCODE_OK		0
+#define MODEM_RCODE_CONNECT	1
+#define MODEM_RCODE_RING	2
+#define MODEM_RCODE_NO_CARRIER	3
+#define MODEM_RCODE_ERROR	4
+#define MODEM_RCODE_NO_DIALTONE	5
+#define MODEM_RCODE_BUSY	6
+#define MODEM_RCODE_DELAYED	7
+
+/*
+ *  å¤æ°
+ */
+
+static uint8_t *modem_rcode[] = {
+	"OK",
+	"CONNECT",
+	"RING",
+	"NO CARRIER",
+	"ERROR",
+	"NO DIALTONE",
+	"BUSY",
+	"DELAYED"
+	};
+
+static int_t dial_retry;
+
+/*
+ *  é¢æ°
+ */
+
+static void do_dial (void);
+static void modem_putstr (uint8_t *str);
+static void modem_wait (uint8_t *line);
+static void modem_putline (uint8_t *line);
+
+/*
+ *  modem_getline -- ã¢ãã è¡å
+¥å
+ */
+
+T_NET_BUF *
+modem_getline (T_NET_BUF *nbuf, uint16_t size)
+{
+	uint8_t *buf;
+
+	buf = nbuf->buf;
+	size --;			/* '\0' ã®å */
+	while (size > 0 && (*buf = HDLC_raw_getoctet()) != '\r') {
+		buf  ++;
+		size --;
+		}
+	*buf = '\0';
+	HDLC_raw_getoctet();		/* \n ãèª­ã¿é£ã°ãã*/
+	nbuf->len = buf - nbuf->buf;
+	return nbuf;
+	}
+
+/*
+ *  ã¢ãã å¶å¾¡
+ *
+ *	æ»ãå¤: ã¢ãã ããã®ãªã¶ã«ãã³ã¼ã
+ */
+
+int_t
+modem_cntl (T_NET_BUF *input)
+{
+	int_t	code;
+
+	code = sizeof(modem_rcode) / sizeof(uint8_t*) - 1;
+	while (strcmp(modem_rcode[code], input->buf) != 0) {
+		if (code == 0)
+			return modem_state;
+		code --;
+		}
+
+	switch (modem_state) {
+
+	case PPP_MODEM_UP:
+		if (code == MODEM_RCODE_RING)
+			modem_state = PPP_MODEM_RING;
+		break;
+
+	case PPP_MODEM_DIAL:
+		if (code == MODEM_RCODE_CONNECT) {
+			syslog(LOG_NOTICE, "[MODEM] up.");
+			modem_state = PPP_MODEM_CONNECT;
+			lcp_open(PPP_OPEN_ACTIVE);
+			sig_sem(SEM_MODEM_READY);
+			}
+		else {
+			syslog(LOG_NOTICE, "[MODEM] dial failed '%s'.", modem_rcode[code]);
+			if (-- dial_retry == 0) {
+				syslog(LOG_WARNING, "[MODEM] dial failed %d times.", MODEM_CFG_RETRY_CNT);
+				modem_state = PPP_MODEM_UP;
+				}
+			else {
+				syscall(dly_tsk(MODEM_CFG_RETRY_WAIT));
+				do_dial();
+				}
+			}
+		break;
+
+	case PPP_MODEM_RING:
+		if (code == MODEM_RCODE_CONNECT) {
+			syslog(LOG_NOTICE, "[MODEM] up.");
+			modem_state = PPP_MODEM_CONNECT;
+			lcp_open(PPP_OPEN_PASSIVE);
+			}
+		else
+			modem_state = PPP_MODEM_UP;
+		break;
+
+	default:
+		if (code == MODEM_RCODE_NO_CARRIER) {
+			if (lcp_fsm.state == PPP_FSM_OPENED)
+				lcp_close();
+			syslog(LOG_NOTICE, "[MODEM] down.");
+			modem_state = PPP_MODEM_UP;
+			}
+		break;
+
+		}
+
+	return code;
+	}
+
+/*
+ *  init_modem -- ã¢ãã ãåæåããã
+ */
+
+void
+init_modem (void)
+{
+	modem_putline("AT");
+
+#ifdef MODEM_CFG_INIT
+
+	modem_putline(MODEM_CFG_INIT);
+
+#endif	/* of #ifdef MODEM_CFG_INIT */
+
+	modem_state = PPP_MODEM_UP;
+	}
+
+/*
+ *  wait_modem -- æ¥ç¶å®äºã¾ã§å¾
+ã¤ã
+ *
+ *	æ»ãå¤: æ¥ç¶ã«å¤±æããã E_OBJ ãè¿ãã
+ */
+
+ER
+wait_modem (void)
+{
+	ER error = E_OK;
+
+	if (modem_state == PPP_MODEM_UP) {
+		dial();
+		}
+
+	if (modem_state != PPP_MODEM_CONNECT) {
+		/* æ¥ç¶å®äºã¾ã§å¾
+ã¤ã*/
+		wai_sem(SEM_MODEM_READY);
+		if (modem_state != PPP_MODEM_CONNECT)
+			error = E_OBJ;
+		}
+
+	return error;
+	}
+
+/*
+ *  dial -- ãã¤ã¤ã«ããããªãã©ã¤åæ°ãã»ããããã
+ */
+
+void
+dial (void)
+{
+	do_dial();
+	dial_retry = MODEM_CFG_RETRY_CNT;
+	modem_state = PPP_MODEM_DIAL;
+	}
+
+/*
+ *  do_dial -- ãã¤ã¤ã«ãããdial() ã®ä¸è«ãé¢æ°
+ */
+
+static void
+do_dial (void)
+{
+	syslog(LOG_NOTICE, "[MODEM] dial: %s.", MODEM_CFG_PHONE_NUMBER);
+	modem_putstr(MODEM_CFG_DIAL);
+	modem_putstr(MODEM_CFG_PHONE_NUMBER);
+	modem_putstr("\r");
+	}
+
+/*
+ *  modem_putstr -- ã¢ãã æå­ååºå
+ */
+
+static void
+modem_putstr (uint8_t *str)
+{
+	while (*str)
+		HDLC_raw_putoctet(*str ++);
+	}
+
+/*
+ *  modem_wait -- ã¢ãã ããæå­åãå¾
+ã¤
+ */
+
+static void
+modem_wait (uint8_t *line)
+{
+	int_t ch, state, len = strlen(line);
+
+	state = len;
+	while (state != 0) {
+		ch = HDLC_raw_getoctet();
+		if (ch != line[len - state])
+			state = len;
+		if (ch == line[len - state])
+			state --;
+		}
+	}
+
+/*
+ *  modem_putline -- ã¢ãã è¡åºå
+ */
+
+static void
+modem_putline (uint8_t *line)
+{
+	modem_putstr(line);
+	modem_putstr("\r");
+	modem_wait("OK\r\n");
+	}
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_modem.h	(revision 313)
@@ -0,0 +1,95 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _PPP_MODEM_H_
+#define _PPP_MODEM_H_
+
+#ifdef SUPPORT_PPP
+
+#ifdef PPP_CFG_MODEM
+
+/*
+ *  ã¢ãã ã®ç¶æ
+
+ */
+
+#define PPP_MODEM_CONNECT	UINT_C(0)
+#define PPP_MODEM_DISCONN	UINT_C(1)
+#define PPP_MODEM_RING		UINT_C(2)
+#define PPP_MODEM_DIAL		UINT_C(3)
+#define PPP_MODEM_UP		UINT_C(4)
+#define PPP_MODEM_DOWN		UINT_C(5)
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+extern uint8_t modem_state;	/* ã¢ãã ã®ç¶æ
+		*/
+
+/*
+ *  é¢æ°
+ */
+
+extern T_NET_BUF *modem_getline (T_NET_BUF *nbuf, uint16_t size);
+extern int modem_cntl (T_NET_BUF *input);
+extern void init_modem (void);
+extern void dial (void);
+extern ER wait_modem (void);
+
+#else	/* of #ifdef PPP_CFG_MODEM */
+
+/*
+ *  é¢æ°
+ */
+
+#define init_modem
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_MODEM_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.c	(revision 313)
@@ -0,0 +1,625 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * upap.c - User/Password Authentication Protocol.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *			PPP PAP Module
+ *
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993-94, Internet Initiative Japan, Inc.
+ *		     All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan, Inc.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/pap.c,v 1.42.2.1 2000/08/19 09:30:05 brian Exp $
+ *
+ *	TODO:
+ */
+
+#include <string.h>
+
+#include <s_services.h>
+#include <t_services.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+#include <net/ppp.h>
+#include <net/ppp_var.h>
+#include <net/ppp_hdlc.h>
+#include <net/ppp_auth.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_upap.h>
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  é¢æ°
+ */
+
+static void upap_init (void);
+static void upap_input (T_NET_BUF *input);
+static void upap_protrej (void);
+static void upap_lowerup (void);
+static void upap_lowerdown (void);
+static bool_t compare (uint8_t *rstr, uint8_t *lstr, uint8_t rlen);
+
+#ifdef AUTH_CFG_CLIENT
+
+static void upap_sauthreq (void);
+static void upap_rauthack (void);
+static void upap_rauthnak (void);
+
+#if defined(DEF_PAP_TIMEOUT)
+
+static void upap_timeout(void *arg);
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+static void upap_rauthreq (T_NET_BUF *input);
+static void upap_sresp    (uint8_t code, uint8_t id);
+
+#if defined(DEF_PAP_REQTIME)
+
+static void upap_reqtimeout(void *arg);
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+T_PPP_PROTENT pap_protent = {
+	PPP_PAP,
+	upap_init,			/* åæå			*/
+	upap_input,			/* å
+¥å				*/
+	upap_protrej,			/* Proto-REJ åä¿¡å¦ç		*/
+	upap_lowerup,			/* ä¸ä½å±¤ãèµ·åãã		*/
+	upap_lowerdown,			/* ä¸ä½å±¤ãåæ­¢ãã		*/
+	NULL,				/* ãªã¼ãã³ãã			*/
+	NULL,				/* ã¯ã­ã¼ãºãã			*/
+	NULL,				/* ãã¼ã¿å
+¥å			*/
+	};
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef AUTH_CFG_CLIENT
+
+static uint8_t client_state;
+static uint8_t client_cp_id;
+
+#if defined(DEF_PAP_TIMEOUT)
+
+static uint8_t client_rexmt = 0;
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+static uint8_t server_state;
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+/*
+ *  upap_init -- UPAP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+static void
+upap_init (void)
+{
+#ifdef AUTH_CFG_CLIENT
+
+	client_cp_id = 0;
+	client_state = PAP_CS_INIT;
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+	server_state = PAP_SS_INIT;
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+	}
+
+/*
+ *  upap_input -- UPAP å
+¥å
+ */
+
+static void
+upap_input (T_NET_BUF *input)
+{
+	T_PPP_CP_HDR	*hdr;
+
+	NET_COUNT_PPP_PAP(net_count_ppp_upap_in_octets,  input->len);
+	NET_COUNT_PPP_PAP(net_count_ppp_upap_in_packets, 1);
+
+ 	/* PPP ãªã³ã¯å¶å¾¡ (CP) ãããããç­ããã°ã¨ã©ã¼ */
+ 	if (input->len < (sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR))) {
+ 		syslog(LOG_WARNING, "[PPP/PAP] short hdr: %d.", input->len);
+ 		return;
+ 		}
+
+ 	hdr = GET_PPP_CP_HDR(input);
+
+ 	/* ãããã®é·ãã¨å
+¥åãã¼ã¿ãµã¤ãºãä¸è´ããªããã°ã¨ã©ã¼ */
+ 	if (hdr->len != input->len - sizeof(T_PPP_HDR)) {
+ 		syslog(LOG_WARNING, "[PPP/PAP] bad len: %d.", hdr->len);
+ 		return;
+ 		}
+ 
+ 	/*
+ 	 *  å¶å¾¡ã³ã¼ãã«ããé©å½ãªé¢æ°ãå¼åºã
+ 	 */
+
+	switch (hdr->code) {
+
+#ifdef AUTH_CFG_CLIENT
+
+	case PAP_AUTHACK:
+		upap_rauthack();
+		break;
+
+	case PAP_AUTHNAK:
+		upap_rauthnak();
+		break;
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+	case PAP_AUTHREQ:
+		upap_rauthreq(input);
+		break;
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+		}
+	}
+
+/*
+ *  upap_protrej -- Proto-REJ ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+upap_protrej (void)
+{
+#ifdef AUTH_CFG_CLIENT
+
+	if (client_state == PAP_CS_AUTHREQ)
+	 	syslog(LOG_WARNING, "[PPP/PAP] proto-rej recved.");
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+	if (server_state == PAP_SS_LISTEN) {
+	 	syslog(LOG_WARNING, "[PPP/PAP] proto-rej recved.");
+		lcp_close();
+		}
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+	upap_lowerdown();
+	}
+
+/*
+ *  upap_lowerup -- UPAP ä¸ä½å±¤ãèµ·åããã
+ */
+
+static void
+upap_lowerup (void)
+{
+#ifdef AUTH_CFG_CLIENT
+
+	if (client_state == PAP_CS_INIT)
+		client_state = PAP_CS_CLOSED;
+	else if (client_state == PAP_CS_PENDING)
+		upap_sauthreq();
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+	if (server_state == PAP_SS_INIT)
+		server_state = PAP_SS_CLOSED;
+	else if (server_state == PAP_SS_PENDING) {
+		server_state = PAP_SS_LISTEN;
+
+#if defined(DEF_PAP_REQTIME)
+
+		timeout((FP)upap_reqtimeout, NULL, DEF_PAP_REQTIME);
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+
+		}
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+	}
+
+/*
+ *  upap_lowerdown -- UPAP ä¸ä½å±¤ãåæ­¢ããã
+ */
+
+static void
+upap_lowerdown (void)
+{
+#ifdef AUTH_CFG_CLIENT
+
+#if defined(DEF_PAP_TIMEOUT)
+
+	if (client_state == PAP_CS_AUTHREQ)
+		untimeout((FP)upap_timeout, NULL);
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+	client_state = PAP_CS_INIT;
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+#if defined(DEF_PAP_REQTIME)
+
+	if (server_state == PAP_SS_LISTEN)
+		untimeout((FP)upap_reqtimeout, NULL);
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+
+	server_state = PAP_SS_INIT;
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+	}
+#ifdef AUTH_CFG_CLIENT
+
+/*
+ *  ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã§ PAP èªè¨¼ãéå§ããã
+ */
+
+void
+upap_auth_client (void)
+{
+#if defined(DEF_PAP_TIMEOUT)
+
+	client_rexmt = 0;
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+	if (client_state == PAP_CS_INIT || client_state == PAP_CS_PENDING) {
+		client_state = PAP_CS_PENDING;
+		return;
+		}
+
+	upap_sauthreq();
+	}
+
+/*
+ *  upap_rauthack -- èªè¨¼ ACK å¦ç
+ */
+
+static void
+upap_rauthack (void)
+{
+	if (client_state == PAP_CS_AUTHREQ) {
+		client_state = PAP_CS_OPEN;
+		network_phase();
+		}
+	}
+
+/*
+ *  upap_rauthnak -- èªè¨¼ NAK å¦ç
+ */
+
+static void
+upap_rauthnak (void)
+{
+ 	syslog(LOG_WARNING, "[PPP/PAP] auth-req NAKed.");
+	client_state = PAP_CS_BADAUTH;
+	}
+
+/*
+ *  upap_sauthreq -- èªè¨¼è¦æ±å¦ç
+ */
+
+static void
+upap_sauthreq (void)
+{
+	T_NET_BUF	*output;
+	uint8_t		*data;
+
+	syscall(get_net_buf(&output, sizeof(T_PPP_HDR)        + sizeof(T_PPP_CP_HDR)
+	                           + sizeof(AUTH_REMOTE_USER) + sizeof(AUTH_REMOTE_PASSWD)));
+
+	data = output->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+
+	/* ã¦ã¼ã¶åãè¨­å®ããã*/
+	*data = sizeof(AUTH_REMOTE_USER) - 1;
+	strcpy(data + 1, AUTH_REMOTE_USER);
+
+	/* ãã¹ã¯ã¼ããè¨­å®ããã*/
+	*(data + sizeof(AUTH_REMOTE_USER)) = sizeof(AUTH_REMOTE_PASSWD) - 1;
+	strcpy(data + sizeof(AUTH_REMOTE_USER) + 1, AUTH_REMOTE_PASSWD);
+
+	/* éä¿¡ãã */
+	IF_SET_PROTO(output, PPP_PAP);
+	ppp_cp_output(PAP_AUTHREQ, ++ client_cp_id, output);
+
+#if defined(DEF_PAP_TIMEOUT)
+
+	timeout((FP)upap_timeout, NULL, DEF_PAP_TIMEOUT);
+	client_rexmt ++;
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+	client_state = PAP_CS_AUTHREQ;
+	}
+
+#if defined(DEF_PAP_TIMEOUT)
+
+/*
+ *  upap_timeout -- ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+upap_timeout (void *arg)
+{
+	if (client_state != PAP_CS_AUTHREQ)
+		return;
+
+	if (client_rexmt >= MAX_PAP_REXMT) {
+ 		syslog(LOG_WARNING, "[PPP/PAP] no reply auth-req.");
+		client_state = PAP_CS_BADAUTH;
+		return;
+		}
+
+	upap_sauthreq();
+	}
+
+#endif	/* of #if defined(DEF_PAP_TIMEOUT) */
+
+#endif	/* of #ifdef AUTH_CFG_CLIENT */
+
+#ifdef AUTH_CFG_SERVER
+
+/*
+ *  ãµã¼ãã¢ã¼ãã§ PAP èªè¨¼ãéå§ããã
+ */
+
+void
+upap_auth_server (void)
+{
+	if (server_state == PAP_SS_INIT || server_state == PAP_SS_PENDING) {
+		server_state = PAP_SS_PENDING;
+		return;
+		}
+
+	server_state = PAP_SS_LISTEN;
+
+#if defined(DEF_PAP_REQTIME)
+
+	timeout((FP)upap_reqtimeout, NULL, DEF_PAP_REQTIME);
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+	}
+
+/*
+ *  upap_rauthreq -- èªè¨¼è¦æ±å¿ç­å¦ç
+ */
+
+static void
+upap_rauthreq (T_NET_BUF *input)
+{
+	int16_t	cplen;
+	uint8_t	*data, *user, ulen, plen, code, id;
+
+	if (server_state < PAP_SS_LISTEN)
+		return;
+
+	/*
+	 *  åè¦æ±ããã£ãã¨ãã®å¦ç
+	 */
+	id = GET_PPP_CP_HDR(input)->id;
+	if (server_state == PAP_SS_OPEN) {
+		upap_sresp(PAP_AUTHACK, id);
+		return;
+		}
+
+	if (server_state == PAP_SS_BADAUTH) {
+		upap_sresp(PAP_AUTHNAK, id);
+		return;
+		}
+
+	cplen = GET_PPP_CP_HDR(input)->len;
+	data  = input->buf + sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR);
+
+	/*
+	 *  ã¦ã¼ã¶åãç¹å®ããã
+	 */
+	ulen  = *data;
+	if (cplen < sizeof(T_PPP_CP_HDR) + ulen + sizeof(uint8_t)) {
+ 		syslog(LOG_WARNING, "[PPP/PAP] bad req len: %d.", cplen);
+ 		return;
+		}
+	user = ++ data;
+	data += ulen;
+
+	/*
+	 *  ãã¹ã¯ã¼ããç¹å®ããã
+	 */
+	plen  = *data;
+	if (cplen < sizeof(T_PPP_CP_HDR) + ulen + plen + sizeof(uint8_t) * 2) {
+ 		syslog(LOG_WARNING, "[PPP/PAP] bad req len: %d.", cplen);
+ 		return;
+		}
+
+	/*
+	 *  ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãããã§ãã¯ããã
+	 */
+	if (compare(user,     AUTH_LOCAL_USER,   ulen) &&
+	    compare(data + 1, AUTH_LOCAL_PASSWD, plen))
+		code = PAP_AUTHACK;
+	else
+		code = PAP_AUTHNAK;
+
+	upap_sresp(code, id);
+
+	if (code == PAP_AUTHACK) {
+		network_phase();
+		server_state = PAP_SS_OPEN;
+		}
+	else {
+		lcp_close();
+		server_state = PAP_SS_BADAUTH;
+		}
+
+#if defined(DEF_PAP_REQTIME)
+
+	untimeout((FP)upap_reqtimeout, NULL);
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+	}
+
+/*
+ *  upap_sresp -- å¿ç­ãè¿ãã
+ */
+
+static void
+upap_sresp (uint8_t code, uint8_t id)
+{
+	T_NET_BUF *output;
+
+	/* éä¿¡ãã */
+	syscall(get_net_buf(&output, sizeof(T_PPP_HDR) + sizeof(T_PPP_CP_HDR)));
+	IF_SET_PROTO(output, PPP_PAP);
+	ppp_cp_output(code, id, output);
+	}
+
+/*
+ *  compare -- ã¦ã¼ã¶åã¨ãã¹ã¯ã¼ãã®æ¯è¼
+ */
+
+static bool_t
+compare (uint8_t *rstr, uint8_t *lstr, uint8_t rlen)
+{
+	while (rlen -- > 0) {
+		if (*rstr != *lstr)
+			return false;
+		rstr ++;
+		lstr ++;
+		}
+	return *lstr ? false : true;
+	}
+
+#if defined(DEF_PAP_REQTIME)
+
+/*
+ *  upap_reqtimeout -- è¦æ±ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+upap_reqtimeout (void *arg)
+{
+	if (server_state == PAP_SS_LISTEN) {
+		lcp_close();
+		server_state = PAP_SS_BADAUTH;
+		}
+	}
+
+#endif	/* of #if defined(DEF_PAP_REQTIME) */
+
+#endif	/* of #ifdef AUTH_CFG_SERVER */
+
+#endif	/* fo #ifdef SUPPORT_PPP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_upap.h	(revision 313)
@@ -0,0 +1,142 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * upap.h - User/Password Authentication Protocol definitions.
+ *
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/pppd/upap.h,v 1.6.2.1 1999/08/29 15:47:10 peter Exp $
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * $FreeBSD: src/usr.sbin/ppp/pap.h,v 1.11 1999/08/28 01:18:37 peter Exp $
+ *
+ *	TODO:
+ */
+
+#ifndef _PPP_UPAP_H_
+#define _PPP_UPAP_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  PAP ã®å¶å¾¡ã³ã¼ã
+ */
+
+#define PAP_AUTHREQ		UINT_C(1)	/* èªè¨¼è¦æ±	*/
+#define PAP_AUTHACK		UINT_C(2)	/* èªè¨¼ ACK	*/
+#define PAP_AUTHNAK		UINT_C(3)	/* èªè¨¼ NAK	*/
+
+/*
+ *  ã¯ã©ã¤ã¢ã³ãã®ç¶æ
+
+ */
+
+#define PAP_CS_INIT		UINT_C(0)	/* æªæ¥ç¶		*/
+#define PAP_CS_CLOSED		UINT_C(1)	/* æ¥ç¶ãæªèªè¨¼		*/
+#define PAP_CS_PENDING		UINT_C(2)	/* æªæ¥ç¶ãèªè¨¼		*/
+#define PAP_CS_AUTHREQ		UINT_C(3)	/* èªè¨¼è¦æ±éä¿¡æ¸ã¿	*/
+#define PAP_CS_OPEN		UINT_C(4)	/* ACK åä¿¡		*/
+#define PAP_CS_BADAUTH		UINT_C(5)	/* NAK åä¿¡		*/
+
+/*
+ *  ãµã¼ãã®ç¶æ
+
+ */
+
+#define PAP_SS_INIT		UINT_C(0)	/* æªæ¥ç¶		*/
+#define PAP_SS_CLOSED		UINT_C(1)	/* æ¥ç¶ãæªèªè¨¼		*/
+#define PAP_SS_PENDING		UINT_C(2)	/* æªæ¥ç¶ãèªè¨¼		*/
+#define PAP_SS_LISTEN		UINT_C(3)	/* èªè¨¼è¦æ±åä¿¡å¾
+ã¡	*/
+#define PAP_SS_OPEN		UINT_C(4)	/* ACK éä¿¡		*/
+#define PAP_SS_BADAUTH		UINT_C(5)	/* NAK éä¿¡		*/
+
+/*
+ *  å¤æ°
+ */
+
+extern T_PPP_PROTENT	pap_protent;
+
+/*
+ *  é¢æ°
+ */
+
+extern void upap_auth_client (void);
+extern void upap_auth_server (void);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef _PPP_UPAP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/ppp_var.h	(revision 313)
@@ -0,0 +1,131 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1989 Carnegie Mellon University.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by Carnegie Mellon University.  The name of the
+ * University may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+/*
+ *	    Written by Toshiharu OHNO (tony-o@iij.ad.jp)
+ *
+ *   Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.
+ *
+ * Redistribution and use in source and binary forms are permitted
+ * provided that the above copyright notice and this paragraph are
+ * duplicated in all such forms and that any documentation,
+ * advertising materials, and other materials related to such
+ * distribution and use acknowledge that the software was developed
+ * by the Internet Initiative Japan.  The name of the
+ * IIJ may not be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+ * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#ifndef PPP_VAR_H_
+#define PPP_VAR_H_
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  PPP ãã­ãã³ã«ã¨ã³ããªæ§é ä½
+ */
+
+typedef struct t_ppp_protent {
+	uint16_t	proto;			/* ãã­ãã³ã«çªå·	*/
+	void		(*init)		(void);	/* åæåé¢æ°		*/
+	void		(*input)	(T_NET_BUF *data);
+						/* å
+¥åé¢æ°		*/
+	void		(*protrej)	(void);	/* Ptoto-REJ åä¿¡å¦ç	*/
+	void		(*lowerup)	(void);	/* ä¸ä½å±¤ãèµ·åããã	*/
+	void		(*lowerdown)	(void);	/* ä¸ä½å±¤ãåæ­¢ããã	*/
+	void		(*open)		(void);	/* ãªã¼ãã³ããã	*/
+	void		(*close)	(void);	/* ã¯ã­ã¼ãºããã	*/
+	void		(*datainput)	(T_NET_BUF *data);
+					/* ãã¼ã¿å
+¥åé¢æ°	*/
+	} T_PPP_PROTENT;
+
+#define T_PPP_PROTENT_DEFINED
+
+/*
+ *  å¤æ°
+ */
+
+extern T_PPP_PROTENT	*protocols[];	/* ãã­ãã³ã«è¡¨			*/
+extern uint8_t		ppp_phase;	/* ãªã³ã¯ã®ç¶æ
+			*/
+
+/*
+ *  é¢æ°
+ */
+
+extern void ppp_cp_output(uint8_t code, uint8_t id, T_NET_BUF *data);
+
+/*
+ *  PPP å¦çã¿ã¹ã¯
+ */
+
+extern void	ppp_input_task(intptr_t exinf);
+extern void	ppp_output_task(intptr_t exinf);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#endif	/* of #ifndef PPP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/route.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/route.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/route.h	(revision 313)
@@ -0,0 +1,92 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1980, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)route.h	8.3 (Berkeley) 4/19/94
+ * $FreeBSD: src/sys/net/route.h,v 1.28.2.2 1999/09/15 08:38:05 ru Exp $
+ */
+
+#ifndef _ROUTE_H_
+#define _ROUTE_H_
+
+/*
+ * TINET 1.1 ã¨ã®äºææ§ç¢ºä¿
+ */
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+#endif	/* of #ifndef _ROUTE_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/net/tinet.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/net/tinet.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/net/tinet.h	(revision 313)
@@ -0,0 +1,59 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_H_
+#define _TINET_H_
+
+#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
+
+/*
+ *  TINET ç¬èªé¢æ°
+ */
+
+extern char *mac2str (char *buf, uint8_t *macaddr);
+
+#endif /* #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) */
+
+#endif	/* of #ifndef _TINET_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/Makefile.netapp
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/Makefile.netapp	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/Makefile.netapp	(revision 313)
@@ -0,0 +1,412 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+#   ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+#   è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+#   ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+#   å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+# 
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+#   å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+#   æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+#  
+#   @(#) $Id: Makefile.netapp 1.7 2017/6/1 8:50:28 abe $
+# 
+
+#
+#  ãµã³ãã«ã®ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ã«é¢ããå®ç¾©
+#
+
+#
+#  ã«ã¼ãã«ã®è­å¥
+#
+ifdef SRCLANG
+	TARGET_KERNEL = ASP
+	TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_ASP
+else
+	TARGET_KERNEL = JSP
+	TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_JSP
+endif
+
+#  å¿ç¨ãã­ã°ã©ã 
+
+TINET_ROOT = $(SRCDIR)/tinet
+NETAPP_DIR = $(TINET_ROOT)/netapp
+NETAPP_COBJS := $(NETAPP_COBJS) netapp_subr.o
+
+ifeq ($(USE_LCD),true)
+
+	NETAPP_COBJS := $(NETAPP_COBJS) lcd.o
+
+ifeq ($(TARGET_KERNEL),ASP)
+	NETAPP_COBJS := $(NETAPP_COBJS) target_lcd.o sc1602.o
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+	NETAPP_COBJS := $(NETAPP_COBJS) hw_lcd.o sc1602.o
+endif
+
+endif
+
+#  ãã©ã³ã¹ãã¼ãå±¤ã®é¸æ
+
+#SUPPORT_TCP = false
+#SUPPORT_UDP = false
+
+# 
+#  å
+±éã¯ã©ã¤ã¢ã³ãã»ãµã¼ããã­ã°ã©ã ã®è¨­å®
+# 
+
+ifeq ($(USE_WWW4_SRV),true)
+	USE_WWW_SRV = true
+	CDEFS := $(CDEFS) -DUSE_WWW4_SRV
+endif
+
+ifeq ($(USE_WWW_SRV),true)
+
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_WWW_SRV
+	NETAPP_COBJS := $(NETAPP_COBJS) wwws.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/wwws.cfg
+
+endif
+
+ifeq ($(USE_TCP4_ECHO_SRV),true)
+	TCP_ECHO_SRV = tcp_echo_srv1
+	CDEFS := $(CDEFS) -DUSE_TCP4_ECHO_SRV
+endif
+
+ifeq ($(TCP_ECHO_SRV),tcp_echo_srv1)		# éåä¿¡ã¿ã¹ã¯åä¸å
+
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_TCP_ECHO_SRV1
+	NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_srv1.cfg
+
+	ifeq ($(USE_TCP_NON_BLOCKING),true)
+		NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1_nblk.o
+	endif
+
+	ifeq ($(USE_TCP_EXTENTIONS),true)
+		NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv1_ext.o
+	endif
+
+endif
+
+ifeq ($(TCP_ECHO_SRV),tcp_echo_srv2)		# éåä¿¡ã¿ã¹ã¯åé¢å
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_TCP_ECHO_SRV2
+	NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_srv2.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_srv2.cfg
+endif
+
+ifeq ($(USE_UDP4_ECHO_SRV),true)
+	USE_UDP_ECHO_SRV = true
+endif
+
+ifeq ($(USE_UDP_ECHO_SRV),true)
+
+	CDEFS := $(CDEFS) -DUSE_UDP_ECHO_SRV
+
+	ifeq ($(SUPPORT_INET6),true)
+		SUPPORT_UDP = true
+		USE_NETAPP_SUBR = true
+		CDEFS := $(CDEFS) -DUSE_UDP6_ECHO_SRV_TSK
+		NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_srv.o
+		NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp6_echo_srv.cfg
+
+		ifeq ($(SUPPORT_INET4),true)
+			ifeq ($(USE_UDP4_ECHO_SRV),true)
+				CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_SRV_TSK
+				NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_srv.o
+				NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp4_echo_srv.cfg
+			endif
+		endif
+	else
+		ifeq ($(SUPPORT_INET4),true)
+			SUPPORT_UDP = true
+			USE_NETAPP_SUBR = true
+			CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_SRV_TSK
+			NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_srv.o
+			NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp4_echo_srv.cfg
+		endif
+	endif
+endif
+
+
+ifeq ($(USE_TCP4_ECHO_CLI),true)
+	USE_TCP_ECHO_CLI = true
+	CDEFS := $(CDEFS) -DUSE_TCP4_ECHO_CLI
+endif
+
+ifeq ($(USE_TCP_ECHO_CLI),true)
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_TCP_ECHO_CLI
+	NETAPP_COBJS := $(NETAPP_COBJS) tcp_echo_cli.o tcp_echo_cli_snd.o tcp_echo_cli_rcv.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_echo_cli.cfg
+endif
+
+ifeq ($(USE_UDP4_ECHO_CLI),true)
+	USE_UDP_ECHO_CLI = true
+endif
+
+ifeq ($(USE_UDP_ECHO_CLI),true)
+
+	CDEFS := $(CDEFS) -DUSE_UDP_ECHO_CLI
+
+	ifeq ($(SUPPORT_INET6),true)
+		SUPPORT_UDP = true
+		USE_NETAPP_SUBR = true
+		CDEFS := $(CDEFS) -DUSE_UDP6_ECHO_CLI_TSK
+		NETAPP_COBJS := $(NETAPP_COBJS) udp6_echo_cli.o
+		NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp6_echo_cli.cfg
+	
+		ifeq ($(SUPPORT_INET4),true)
+			ifeq ($(USE_UDP4_ECHO_CLI),true)
+				CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_CLI_TSK
+				NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_cli.o
+				NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp4_echo_cli.cfg
+			endif
+		endif
+        else
+		ifeq ($(SUPPORT_INET4),true)
+			SUPPORT_UDP = true
+			USE_NETAPP_SUBR = true
+			CDEFS := $(CDEFS) -DUSE_UDP4_ECHO_CLI_TSK
+			NETAPP_COBJS := $(NETAPP_COBJS) udp4_echo_cli.o
+			NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp4_echo_cli.cfg
+		endif
+
+	endif
+endif
+
+ifeq ($(USE_TCP_DISCARD_SRV),true)
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_TCP_DISCARD_SRV
+	NETAPP_COBJS := $(NETAPP_COBJS) tcp_discard_srv.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_discard_srv.cfg
+endif
+
+ifeq ($(USE_TCP_DISCARD_CLI),true)
+	SUPPORT_TCP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_TCP_DISCARD_CLI
+	NETAPP_COBJS := $(NETAPP_COBJS) tcp_discard_cli.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/tcp_discard_cli.cfg
+endif
+
+ifeq ($(USE_UDP_DISCARD_CLI),true)
+	SUPPORT_UDP = true
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_UDP_DISCARD_CLI
+	NETAPP_COBJS := $(NETAPP_COBJS) udp_discard_cli.o
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/udp_discard_cli.cfg
+endif
+
+ifeq ($(USE_NET_CONS),true)
+	ifeq ($(TCP_CFG_NON_BLOCKING),true)
+		SUPPORT_TCP = true
+		USE_DBG_CONS = true
+		USE_NETAPP_SUBR = true
+		CDEFS := $(CDEFS) -DUSE_NET_CONS
+		NETAPP_COBJS := $(NETAPP_COBJS) net_cons.o
+		NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/net_cons.cfg
+	endif
+endif
+
+ifeq ($(USE_DBG_CONS),true)
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_DBG_CONS
+	NETAPP_COBJS := $(NETAPP_COBJS) dbg_cons.o 
+	NETAPP_KERNEL_CFG := $(NETAPP_KERNEL_CFG) $(NETAPP_DIR)/dbg_cons.cfg
+	ifeq ($(USE_DBG_CONS_PARSER),true)
+		CDEFS := $(CDEFS) -DUSE_DBG_CONS_PARSER
+	endif
+	ifeq ($(USE_DBG_CONS_EXTRA_PARSE),true)
+		CDEFS := $(CDEFS) -DUSE_DBG_CONS_EXTRA_PARSE
+	endif
+endif
+
+ifeq ($(USE_PING),true)
+	USE_NETAPP_SUBR = true
+	CDEFS := $(CDEFS) -DUSE_PING
+	ifeq ($(SUPPORT_INET4),true)
+		NETAPP_COBJS := $(NETAPP_COBJS) ping.o
+	endif
+	ifeq ($(SUPPORT_INET6),true)
+		NETAPP_COBJS := $(NETAPP_COBJS) ping6.o
+	endif
+endif
+
+ifeq ($(USE_RESOLVER),true)
+	SUPPORT_UDP = true
+	CDEFS := $(CDEFS) -DUSE_RESOLVER
+	NETAPP_COBJS := $(NETAPP_COBJS) resolver.o 
+
+endif
+
+ifeq ($(USE_DHCP6_CLI),true)
+	ifeq ($(SUPPORT_INET6),true)
+		SUPPORT_UDP = true
+		UDP_CFG_NON_BLOCKING = true
+		USE_UDP_NON_BLOCKING = true
+		CDEFS := $(CDEFS) -DDHCP6_CLI_CFG
+		NETAPP_COBJS := $(NETAPP_COBJS) dhcp6_cli.o 
+	endif
+endif
+
+ifeq ($(USE_DHCP4_CLI),true)
+	ifeq ($(SUPPORT_INET4),true)
+		SUPPORT_UDP = true
+		UDP_CFG_NON_BLOCKING = true
+		USE_UDP_NON_BLOCKING = true
+		CDEFS := $(CDEFS) -DDHCP4_CLI_CFG
+		NETAPP_COBJS := $(NETAPP_COBJS) dhcp4_cli.o 
+	endif
+endif
+
+ifeq ($(USE_NETAPP_SUBR),true)
+	CDEFS := $(CDEFS) -DUSE_NETAPP_SUBR
+endif
+
+ifeq ($(API_CFG_IP4MAPPED_ADDR),true)
+	CDEFS := $(CDEFS) -DAPI_CFG_IP4MAPPED_ADDR
+endif
+
+ifeq ($(USE_COPYSAVE_API),true)
+	CDEFS := $(CDEFS) -DUSE_COPYSAVE_API
+endif
+
+ifeq ($(TCP_CFG_RWBUF_CSAVE_ONLY),true)
+	CDEFS := $(CDEFS) -DTCP_CFG_RWBUF_CSAVE_ONLY -DTCP_CFG_RWBUF_CSAVE
+endif
+
+ifeq ($(TCP_CFG_RWBUF_CSAVE),true)
+	CDEFS := $(CDEFS) -DTCP_CFG_RWBUF_CSAVE
+endif
+
+ifeq ($(TCP_CFG_SWBUF_CSAVE_ONLY),true)
+	CDEFS := $(CDEFS) -DTCP_CFG_SWBUF_CSAVE_ONLY -DTCP_CFG_SWBUF_CSAVE
+endif
+
+ifeq ($(TCP_CFG_SWBUF_CSAVE),true)
+	CDEFS := $(CDEFS) -DTCP_CFG_SWBUF_CSAVE
+endif
+
+ifeq ($(TCP_CFG_NON_BLOCKING),true)
+	ifeq ($(USE_TCP_NON_BLOCKING),true)
+		CDEFS := $(CDEFS) -DUSE_TCP_NON_BLOCKING
+	endif
+else
+	CDEFS := $(CDEFS) -DUNDEF_TCP_CFG_NON_BLOCKING
+endif
+
+ifeq ($(TCP_CFG_EXTENTIONS),true)
+	CDEFS := $(CDEFS) -DTCP_CFG_EXTENTIONS
+	ifeq ($(USE_TCP_EXTENTIONS),true)
+		CDEFS := $(CDEFS) -DUSE_TCP_EXTENTIONS
+	endif
+endif
+
+ifeq ($(UDP_CFG_NON_BLOCKING),true)
+	ifeq ($(USE_UDP_NON_BLOCKING),true)
+		CDEFS := $(CDEFS) -DUSE_UDP_NON_BLOCKING
+	else
+		ifeq ($(USE_UDP_CALL_BACK),true)
+			CDEFS := $(CDEFS) -DUSE_UDP_CALL_BACK
+		endif
+	endif
+else
+	CDEFS := $(CDEFS) -DUNDEF_UDP_CFG_NON_BLOCKING
+	ifeq ($(USE_UDP_CALL_BACK),true)
+		CDEFS := $(CDEFS) -DUSE_UDP_CALL_BACK
+	endif
+endif
+
+ifeq ($(UDP_CFG_EXTENTIONS),true)
+	CDEFS := $(CDEFS) -DUDP_CFG_EXTENTIONS
+	ifeq ($(USE_UDP_EXTENTIONS),true)
+		CDEFS := $(CDEFS) -DUSE_UDP_EXTENTIONS
+	endif
+endif
+
+ifeq ($(USE_LCD),true)
+	CDEFS := $(CDEFS) -DUSE_LCD
+endif
+
+#
+#  ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ã«é¢ããå®ç¾©ã¸ã®è¿½å 
+#
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+	APPLDIR := $(APPLDIR) $(NETAPP_DIR)
+	APPL_COBJS := $(APPL_COBJS) $(NETAPP_COBJS)
+	APPL_CFLAGS := $(APPL_CFLAGS) -fno-strict-aliasing
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+	UTASK_DIR := $(UTASK_DIR):$(NETAPP_DIR)
+	UTASK_COBJS := $(UTASK_COBJS) $(NETAPP_COBJS)
+	UTASK_CFLAGS := $(UTASK_CFLAGS) -fno-strict-aliasing
+
+endif
+
+ifeq ($(USE_LCD),true)
+
+ifeq ($(TARGET_KERNEL),ASP)
+
+	APPLDIR := $(APPLDIR) $(SRCDIR)/pdic/sc1602
+
+endif
+
+ifeq ($(TARGET_KERNEL),JSP)
+
+	UTASK_DIR := $(UTASK_DIR):$(SRCDIR)/pdic/sc1602
+
+endif
+
+endif
+
+#
+#  TINET ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®å®ç¾©ã¸ã®è¿½å 
+#
+TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(NETAPP_KERNEL_CFG)
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.c	(revision 313)
@@ -0,0 +1,3347 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã°ã³ã³ã½ã¼ã«
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <syssvc/serial.h>
+#include <syssvc/logtask.h>
+#include "kernel/kernel_impl.h"
+#include "kernel/task.h"
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#include "../kernel/jsp_kernel.h"
+#include "../kernel/task.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/ppp_var.h>
+#include <net/ppp_fsm.h>
+#include <net/ppp_lcp.h>
+#include <net/ppp_ipcp.h>
+#include <net/ppp_modem.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/if_ether.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_timer.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#include <netinet6/nd6.h>
+
+#include <net/if_var.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/wwws.h>
+#include <netapp/tcp_echo_srv1.h>
+#include <netapp/tcp_echo_srv2.h>
+#include <netapp/tcp_echo_cli.h>
+#include <netapp/tcp_discard_cli.h>
+#include <netapp/udp6_echo_srv.h>
+#include <netapp/udp4_echo_srv.h>
+#include <netapp/udp6_echo_cli.h>
+#include <netapp/udp4_echo_cli.h>
+#include <netapp/udp_discard_cli.h>
+#include <netapp/resolver.h>
+#include <netapp/dbg_cons.h>
+#include <netapp/dhcp6_cli.h>
+#include <netapp/dhcp4_cli.h>
+#include "lcd.h"
+
+#ifdef USE_DBG_CONS
+
+/*
+ *  dbg_cons_task_status -- ã¿ã¹ã¯ã®ç¶æ
+ã®åºå
+ */
+
+static const char task_stat_str[][sizeof("SUSPENDED")] = {
+	"DORMANT",		/* ä¼æ­¢ç¶æ
+		*/
+	"RUNNABLE",		/* å®è¡ã§ããç¶æ
+	*/
+	"WAINTING",		/* å¾
+ã¡ç¶æ
+		*/
+	"SUSPENDED",		/* å¼·å¶å¾
+ã¡ç¶æ
+		*/
+	"SLEEP",		/* èµ·åºå¾
+ã¡ç¶æ
+		*/
+	"WOBJ",			/* åæã»éä¿¡ãªãã¸ã§ã¯ãã«å¯¾ããå¾
+ã¡ç¶æ
+	*/
+	"WOBJCB",		/* å
+±éé¨åã®å¾
+ã¡ã­ã¥ã¼ã«ã¤ãªãã£ã¦ããã	*/
+	};
+
+void
+dbg_cons_task_status (ID portid, char *line)
+{
+	TCB	*tcb;
+	int_t	ix, st, sx;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "TASK Status\n"
+	            "ID PI State\n");
+	for (ix = TMIN_TSKID; ix <= tmax_tskid; ix ++) {
+		tcb = get_tcb(ix);
+		cons_printf(portid, "%2d %2d ", ix, tcb->priority);
+		st = tcb->tstat;
+		for (sx = 0; st; sx ++) {
+			if (st & 0x01) {
+				cons_printf(portid, "%s", task_stat_str[sx]);
+				if (st & 0xfe)
+					cons_printf(portid, "|");
+				}
+			st >>= 1;
+			}
+		cons_putchar(portid, '\n');
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  tcp_status -- TCP ã®ç¶æ
+ã®åºå
+ */
+
+static const char tcp_fsm_str[][sizeof("ESTABLISHED")] = {
+	"CLOSED",		/* ã¯ã­ã¼ãº			*/
+	"LISTEN",		/* ååãªã¼ãã³			*/
+	"SYN_SENT",		/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+	"SYN_RECVD",		/* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿	*/
+	"ESTABLISHED",		/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+	"CLOSE_WAIT",		/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
+ã¡	*/
+	"FIN_WAIT_1",		/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
+ã¡	*/
+	"CLOSING",		/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡	*/
+	"LAST_ACK",		/* APP ãçµäºãACK å¾
+ã¡			*/
+	"FIN_WAIT_2",		/* ç¸æããã® FIN å¾
+ã¡			*/
+	"TIME_WAIT",		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
+ã¡	*/
+	};
+
+#if defined(SUPPORT_INET6)
+
+static void
+tcp_cep_status (ID portid, char *line)
+{
+	T_TCP_CEP*	cep;
+	int		len;
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	T_TCP_TWCEP*	twcep;
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	cons_printf(portid,
+	            "TCP CEP Status\n"
+	            "ID  Snd-Q Rcv-Q Foreign Address                               State\n");
+
+	for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++)
+		if (!VALID_TCP_CEP(cep)) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0"
+			            " -                                            "
+			            " INVALID\n",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			}
+		else if (cep->fsm_state == TCP_FSM_CLOSED) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0"
+			            " -                                            "
+			            " CLOSED\n",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			}
+		else if (cep->fsm_state == TCP_FSM_LISTEN) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0"
+			            " -                                            "
+			            " LISTEN\n",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			}
+		else {
+			cons_printf(portid,
+			            "%2d%c%c %5d %5d ",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4',
+			            cep->swbuf_count, cep->rwbuf_count);
+
+#if defined(SUPPORT_INET4)
+
+			if (TCP_IS_CEP_IPV4(cep)) {
+				T_IN4_ADDR	addr;
+
+				addr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]);
+				len  = put_ipv4addr(portid, &addr, 0);
+				}
+			else
+				len  = put_ipv6addr(portid, &cep->dstaddr.ipaddr, 0);
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+			len  = put_ipv6addr(portid, &cep->dstaddr.ipaddr, 0);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+			cons_putchar(portid, '.');
+			len += cons_putnumber(portid, cep->dstaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 44 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			if (cep->fsm_state == TCP_FSM_TIME_WAIT)
+				cons_printf(portid, " %s(%d)\n", tcp_fsm_str[cep->fsm_state],
+				                    cep->timer[TCP_TIM_2MSL] / TCP_SLOW_HZ);
+			else
+				cons_printf(portid, " %s\n", tcp_fsm_str[cep->fsm_state]);
+			}
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	for (twcep = tcp_twcep; twcep < &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep ++) {
+		if (twcep->fsm_state == TCP_FSM_CLOSED) {
+			cons_printf(portid,
+			            "%2dTW     0     0"
+			            " -                                            "
+			            " CLOSED\n",
+			            GET_TCP_TWCEPID(twcep));
+			}
+		else {
+			cons_printf(portid, "%2dTW     0     0 ", GET_TCP_TWCEPID(twcep));
+
+#if defined(SUPPORT_INET4)
+
+			if (TCP_IS_CEP_IPV4(twcep)) {
+				T_IN4_ADDR	addr;
+
+				addr = ntohl(twcep->dstaddr.ipaddr.s6_addr32[3]);
+				len  = put_ipv4addr(portid, &addr, 0);
+				}
+			else
+				len  = put_ipv6addr(portid, &twcep->dstaddr.ipaddr, 0);
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+			len  = put_ipv6addr(portid, &twcep->dstaddr.ipaddr, 0);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+			cons_putchar(portid, '.');
+			len += cons_putnumber(portid, twcep->dstaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 44 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			if (twcep->fsm_state == TCP_FSM_TIME_WAIT)
+				cons_printf(portid, " %s(%d)\n", tcp_fsm_str[twcep->fsm_state],
+				                    twcep->timer_2msl / TCP_SLOW_HZ);
+			else
+				cons_printf(portid, " %s\n", tcp_fsm_str[twcep->fsm_state]);
+			}
+		}
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+static void
+tcp_cep_status (ID portid, char *line)
+{
+	T_TCP_CEP*	cep;
+	uint_t		len;
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	T_TCP_TWCEP*	twcep;
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	cons_printf(portid,
+	            "TCP CEP Status\n"
+	            "ID  Snd-Q Rcv-Q Local Address         Foreign Address       State\n");
+
+	for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++)
+		if (!VALID_TCP_CEP(cep)) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0"
+			            " -                    "
+			            " -                    "
+			            " INVALID\n",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			}
+		else if (cep->fsm_state == TCP_FSM_CLOSED) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0"
+			            " -                    "
+			            " -                    "
+			            " CLOSED\n",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			}
+		else if (cep->fsm_state == TCP_FSM_LISTEN) {
+			cons_printf(portid,
+			            "%2d%c%c     0     0 ",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : '.',
+			            TCP_IS_CEP_IPV6(cep) ? '6' : '4');
+			len  = PUT_IPADDR(portid, &cep->myaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, cep->myaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 20 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			cons_printf(portid,
+			            " -                    "
+			            " LISTEN\n");
+			}
+		else {
+			cons_printf(portid,
+			            "%2d%c %5d %5d ",
+			            GET_TCP_CEPID(cep),
+			            DYNAMIC_TCP_CEP(cep) ? 'D' : ' ',
+			            cep->swbuf_count, cep->rwbuf_count);
+			len  = PUT_IPADDR(portid, &cep->myaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, cep->myaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 21 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			len  = PUT_IPADDR(portid, &cep->dstaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, cep->dstaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 20 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			if (cep->fsm_state == TCP_FSM_TIME_WAIT)
+				cons_printf(portid, " %s(%d)\n", tcp_fsm_str[cep->fsm_state],
+				                    cep->timer[TCP_TIM_2MSL] / TCP_SLOW_HZ);
+			else
+				cons_printf(portid, " %s\n", tcp_fsm_str[cep->fsm_state]);
+			}
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	for (twcep = tcp_twcep; twcep < &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep ++) {
+		if (twcep->fsm_state == TCP_FSM_CLOSED) {
+			cons_printf(portid,
+			            "%2dTW     0     0"
+			            " -                    "
+			            " -                    "
+			            " CLOSED\n",
+			            GET_TCP_TWCEPID(twcep));
+			}
+		else {
+			cons_printf(portid, "%2dTW     0     0 ", GET_TCP_TWCEPID(twcep));
+			len  = PUT_IPADDR(portid, &twcep->myaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, twcep->myaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 21 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			len  = PUT_IPADDR(portid, &twcep->dstaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, twcep->dstaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 20 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			if (twcep->fsm_state == TCP_FSM_TIME_WAIT)
+				cons_printf(portid, " %s(%d)\n", tcp_fsm_str[twcep->fsm_state],
+				                    twcep->timer_2msl / TCP_SLOW_HZ);
+			else
+				cons_printf(portid, " %s\n", tcp_fsm_str[twcep->fsm_state]);
+			}
+		}
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if TNUM_TCP6_REPID > 0
+
+static void
+tcp6_rep_status (ID portid, char *line)
+{
+	T_TCP_CEP*	cep;
+	T_TCP6_REP*	rep;
+	ID		repid;
+	int_t		cnt;
+	uint_t		len;
+
+	cons_printf(portid,
+	            "TCP6 REP Status\n"
+	            "ID  Local Address         CEP\n");
+	for (repid = TMIN_TCP6_REPID; repid <= tmax_tcp6_repid; repid ++) {
+		rep = GET_TCP6_REP(repid);
+		cons_printf(portid, "%2d%c ", GET_TCP6_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
+		if (VALID_TCP_REP(rep)) {
+			len  = PUT_IPADDR(portid, &rep->myaddr.ipaddr, 0);
+			cons_putchar(portid, '.');
+			len += cons_putnumber(portid, rep->myaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 21 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			cnt = 0;
+			for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
+				if (TCP_IS_CEP_IPV6(cep) && cep->rep == rep) {
+					if (cnt > 0)
+						cons_printf(portid, ",%d", GET_TCP_CEPID(cep));
+					else
+						cons_printf(portid, "%d", GET_TCP_CEPID(cep));
+					cnt ++;
+					}
+				}
+			}
+		else
+			cons_printf(portid, "INVALID");
+		cons_putchar(portid, '\n');
+		}
+	}
+
+#endif	/* of #if TNUM_TCP6_REPID > 0 */
+
+#if TNUM_TCP4_REPID > 0
+
+static void
+tcp4_rep_status (ID portid, char *line)
+{
+	T_TCP_CEP*	cep;
+	T_TCP4_REP*	rep;
+	ID		repid;
+	int_t		cnt;
+	uint_t		len;
+
+	cons_printf(portid,
+	            "TCP4 REP Status\n"
+	            "ID  Local Address         CEP\n");
+	for (repid = TMIN_TCP4_REPID; repid <= tmax_tcp4_repid; repid ++) {
+		rep = GET_TCP4_REP(repid);
+		cons_printf(portid, "%2d%c ", GET_TCP4_REPID(rep), DYNAMIC_TCP_REP(rep) ? 'D' : ' ');
+		if (VALID_TCP_REP(rep)) {
+			len  = put_ipv4addr(portid, &rep->myaddr.ipaddr, 0);
+			cons_putchar(portid, ':');
+			len += cons_putnumber(portid, rep->myaddr.portno, 10, radhex, 0, false, ' ');
+			for (len = 21 - len; len -- > 0; )
+				cons_putchar(portid, ' ');
+			cnt = 0;
+			for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+				if (TCP_IS_CEP_IPV4(cep) && cep->rep4 == rep) {
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+				if (TCP_IS_CEP_IPV4(cep) && cep->rep == rep) {
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+					if (cnt > 0)
+						cons_printf(portid, ",%d", GET_TCP_CEPID(cep));
+					else
+						cons_printf(portid, "%d", GET_TCP_CEPID(cep));
+					cnt ++;
+					}
+				}
+			}
+		else
+			cons_printf(portid, "INVALID");
+		cons_putchar(portid, '\n');
+		}
+	}
+
+#endif	/* of #if TNUM_TCP4_REPID > 0 */
+
+static void
+tcp_status (ID portid, char *line)
+{
+	WAI_NET_CONS_PRINTF();
+
+	tcp_cep_status(portid, line);
+
+#if TNUM_TCP6_REPID > 0
+	tcp6_rep_status(portid, line);
+#endif
+
+#if TNUM_TCP4_REPID > 0
+	tcp4_rep_status(portid, line);
+#endif
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+/*
+ *  udp6_status -- UDP ã®ç¶æ
+ã®åºå
+ */
+
+#if TNUM_UDP6_CEPID > 0
+
+extern const ID tmax_tcp_cepid;
+
+static void
+udp6_status (ID portid, char *line)
+{
+	T_UDP6_CEP*	cep;
+	ID		cepid;
+	uint_t		len;
+
+	cons_printf(portid,
+	            "UDP6 CEP Status\n"
+	            "ID  Local Address\n");
+
+	for (cepid = TMIN_UDP6_CEPID; cepid <= tmax_udp6_cepid; cepid ++) {
+		cep = GET_UDP6_CEP(cepid);
+		cons_printf(portid, "%2d%c ", GET_UDP6_CEPID(cep), DYNAMIC_UDP_CEP(cep) ? 'D' : ' ');
+		if (VALID_UDP_CEP(cep)) {
+			len  = put_ipv6addr(portid, &cep->myaddr.ipaddr, 0);
+			cons_putchar(portid, '.');
+			len += cons_putnumber(portid, cep->myaddr.portno, 10, radhex, 0, false, ' ');
+			}
+		else
+			cons_printf(portid, "INVALID");
+		cons_putchar(portid, '\n');
+		}
+
+	SIG_NET_CONS_PRINTF();
+	}
+
+#endif	/* of #if TNUM_UDP6_CEPID > 0 */
+
+/*
+ *  udp4_status -- UDP ã®ç¶æ
+ã®åºå
+ */
+
+#if TNUM_UDP4_CEPID > 0
+
+static void
+udp4_status (ID portid, char *line)
+{
+	T_UDP4_CEP*	cep;
+	ID		cepid;
+	uint_t		len;
+
+	cons_printf(portid,
+	            "UDP4 CEP Status\n"
+	            "ID  Local Address\n");
+
+	for (cepid = TMIN_UDP4_CEPID; cepid <= tmax_udp4_cepid; cepid ++) {
+		cep = GET_UDP4_CEP(cepid);
+		cons_printf(portid, "%2d%c ", GET_UDP4_CEPID(cep), DYNAMIC_UDP_CEP(cep) ? 'D' : ' ');
+		if (VALID_UDP_CEP(cep)) {
+			len  = put_ipv4addr(portid, &cep->myaddr.ipaddr, 0);
+			cons_putchar(portid, '.');
+			len += cons_putnumber(portid, cep->myaddr.portno, 10, radhex, 0, false, ' ');
+			}
+		else
+			cons_printf(portid, "INVALID");
+		cons_putchar(portid, '\n');
+		}
+
+	SIG_NET_CONS_PRINTF();
+	}
+
+#endif	/* of #if TNUM_UDP4_CEPID > 0 */
+
+static void
+udp_status (ID portid, char *line)
+{
+	WAI_NET_CONS_PRINTF();
+
+#if TNUM_UDP6_CEPID > 0
+	udp6_status(portid, line);
+#endif
+
+#if TNUM_UDP4_CEPID > 0
+	udp4_status(portid, line);
+#endif
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #ifdef SUPPORT_UDP */
+
+#ifdef SUPPORT_ETHER
+
+#if defined(SUPPORT_INET6)
+
+/*
+ * ifa6_status -- è¿é£ã­ã£ãã·ã¥ç¶æ
+ã®åºå
+ */
+
+static const char nd_state_str[][sizeof("INCOMPLETE")] = {
+	"FREE",			/* æªä½¿ç¨		*/
+	"NO STATE",		/* ç¶æ
+æªå®ç¾©		*/
+	"INCOMPLETE",		/* æªè§£æ±º		*/
+	"REACHABLE",		/* å°éå¯è½		*/
+	"STALE",		/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
+	"DELAY",		/* å°éå¯è½æ§ã®ç¢ºèªå¾
+æ©	*/
+	"PROBE",		/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+	};
+
+static void
+ifa6_status (ID portid, char *line)
+{
+	const T_LLINFO_ND6	*cache;
+	SYSTIM			now;
+	int_t			ix;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "ND Cache Status\n"
+	            "IX Expire State      MAC Address       IP Address\n");
+
+	/* expire ã®åä½ã¯ [ms]ã*/
+	get_tim(&now);
+	cache = nd6_get_cache();
+	for (ix = 0; ix < NUM_ND6_CACHE_ENTRY; ix ++) {
+		if (cache[ix].state != ND6_LLINFO_FREE) {
+			cons_printf(portid, "%2d %6ld %10s %M %lI\n",
+			            ix, 
+			            cache[ix].state == ND6_LLINFO_STALE ||
+			            (uint32_t)((int32_t)(cache[ix].expire - now) <= 0
+			                 ? 0 : (int32_t)(cache[ix].expire - now) / SYSTIM_HZ),
+			            nd_state_str[cache[ix].state],
+			            &cache[ix].ifaddr,
+			            &cache[ix].addr);
+			}
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  ifa4_status -- ARP ã­ã£ãã·ã¥åºå
+ */
+
+static void
+ifa4_status (ID portid, char *line)
+{
+	const T_ARP_ENTRY	*cache;
+	int_t			ix;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "ARP Cache\n"
+	            "IX Expire MAC Address       IP Address\n");
+
+	/* expire ã®åä½ã¯ [ms]ã*/
+	cache = arp_get_cache();
+	for (ix = 0; ix < NUM_ARP_ENTRY; ix ++) {
+		if (cache[ix].expire != 0)
+			cons_printf(portid, "%2d %6d %M %hI\n",
+			                    ix, cache[ix].expire / NET_TIMER_HZ,
+			                    cache[ix].mac_addr, &cache[ix].ip_addr);
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if NET_COUNT_ENABLE
+
+/*
+ *  net_count_struct -- ãããã¯ã¼ã¯çµ±è¨æ
+å ±
+ */
+
+static void
+net_count_struct (ID portid, char *name, T_NET_COUNT *item)
+{
+	cons_printf(portid, "\n%s\n", name);
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	item->in_octets);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",	item->out_octets);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		item->in_packets);
+	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",		item->out_packets);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	item->in_err_packets);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	item->out_err_packets);
+	}
+
+/*
+ *  net_count -- ãããã¯ã¼ã¯çµ±è¨æ
+å ±
+ */
+
+static void
+net_count (ID portid, char *line)
+{
+	const T_NET_BUF_ENTRY	*tbl;
+	SYSTIM			now;
+	int_t			ix;
+
+	WAI_NET_CONS_PRINTF();
+	get_tim(&now);
+	cons_printf(portid, "ãããã¯ã¼ã¯çµ±è¨æ
+å ±\tçµéæé[ms]\t%lu\t", now);
+	if (now > (1000 * 3600 * 24))
+		cons_printf(portid, "%3luæ¥ %2luæé %2luå %2luç§\n",
+		             now / (1000 * 3600 * 24),
+		            (now / (1000 * 3600)) % 24,
+		            (now / (1000 * 60  )) % 60,
+		            (now /  1000        ) % 60);
+	else
+		cons_printf(portid, "%2luæé %2luå %2luç§\n",
+		            (now / (1000 * 3600)) % 24,
+		            (now / (1000 * 60  )) % 60,
+		            (now /  1000        ) % 60);
+
+#ifdef SUPPORT_PPP
+
+	net_count_struct(portid, "HDLC", &net_count_hdlc);
+	cons_printf(portid, "\nPPP\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp.in_octets);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp.out_octets);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp.in_packets);
+	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp.out_packets);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	net_count_ppp.in_err_packets);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",	net_count_ppp.out_err_packets);
+	cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ppp_no_bufs);
+
+	cons_printf(portid, "\nLCP\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_lcp_in_octets);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_lcp_in_packets);
+
+	cons_printf(portid, "\nIPCP\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_ipcp_in_octets);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_ipcp_in_packets);
+
+	cons_printf(portid, "\nPAP\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",	net_count_ppp_upap_in_octets);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",		net_count_ppp_upap_in_packets);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+	net_count_struct(portid, "ã¤ã¼ãµããã", &net_count_ether);
+
+	cons_printf(portid, "\nã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_IN_PACKETS]);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS]);
+	cons_printf(portid, "\tnet_buf å²ãå½ã¦å¤±ææ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_NO_BUFS]);
+	cons_printf(portid, "\tåä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_RXB_QOVRS]);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_OCTETS]);
+	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_OUT_PACKETS]);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",			net_count_ether_nic[NC_ETHER_NIC_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\tã³ãªã¸ã§ã³æ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_COLS]);
+	cons_printf(portid, "\téä¿¡ã»ããã©è³æºè¿å´ä¸éãªã¼ãã¼æ°\t%lu\n",	net_count_ether_nic[NC_ETHER_NIC_TXB_QOVRS]);
+	cons_printf(portid, "\téä¿¡ã¿ã¤ã ã¢ã¦ãæ°	\t%lu\n",		net_count_ether_nic[NC_ETHER_NIC_TIMEOUTS]);
+	cons_printf(portid, "\tãªã»ããæ°\t%lu\n",				net_count_ether_nic[NC_ETHER_NIC_RESETS]);
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if defined(SUPPORT_INET6)
+
+	cons_printf(portid, "\nIPv6\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip6[NC_IP6_IN_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_PACKETS]);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip6[NC_IP6_IN_ERR_PACKETS]);
+	cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n",			net_count_ip6[NC_IP6_IN_ERR_SHORT]);
+	cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_VER]);
+	cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_ADDR]);
+	cons_printf(portid, "\tãã­ãã³ã«ã¨ã©ã¼æ°\t%lu\n",		net_count_ip6[NC_IP6_IN_ERR_PROTO]);
+	cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN]);
+	cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_FRAGS]);
+	cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_OK]);
+	cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_IN_DROP]);
+	cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ip6[NC_IP6_FRAG_IN_NO_BUF]);
+	cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_IN_TMOUT]);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip6[NC_IP6_OUT_OCTETS]);
+	cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip6[NC_IP6_OUT_PACKETS]);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip6[NC_IP6_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n",			net_count_ip6[NC_IP6_FRAG_OUT]);
+	cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip6[NC_IP6_FRAG_OUT_FRAGS]);
+
+	cons_printf(portid, "\nICMPv6\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ãã±ããæ°\t%lu\n",			net_count_icmp6[NC_ICMP6_IN_PACKETS]);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS]);
+	cons_printf(portid, "\tåä¿¡ããã¯ãµã ã¨ã©ã¼æ°\t%lu\n",		net_count_icmp6[NC_ICMP6_IN_ERR_CKSUM]);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_OCTETS]);
+	cons_printf(portid, "\téä¿¡ãã±ããæ°\t%lu\n",			net_count_icmp6[NC_ICMP6_OUT_PACKETS]);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã±ããæ°\t%lu\n",		net_count_icmp6[NC_ICMP6_OUT_ERR_PACKETS]);
+
+	cons_printf(portid, "\nè¿é£æ¢ç´¢\n");
+	cons_printf(portid, "\tã«ã¼ã¿éç¥åä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_RA_IN_PACKETS]);
+	cons_printf(portid, "\tã«ã¼ã¿è¦è«éä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_RS_OUT_PACKETS]);
+	cons_printf(portid, "\tè¿é£éç¥åä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NA_IN_PACKETS]);
+	cons_printf(portid, "\tè¿é£éç¥éä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NA_OUT_PACKETS]);
+	cons_printf(portid, "\tè¿é£è¦è«åä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NS_IN_PACKETS]);
+	cons_printf(portid, "\tè¿é£è¦è«éä¿¡æ°\t%lu\n",			net_count_nd6[NC_ND6_NS_OUT_PACKETS]);
+	cons_printf(portid, "\téè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°\t%lu\n",		net_count_nd6[NC_ND6_DAD_OUT_PACKETS]);
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#ifdef SUPPORT_ETHER
+
+	net_count_struct(portid, "ARP", &net_count_arp);
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+	cons_printf(portid, "\nIPv4\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip4[NC_IP4_IN_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_PACKETS]);
+	cons_printf(portid, "\tåä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip4[NC_IP4_IN_ERR_PACKETS]);
+	cons_printf(portid, "\tãã§ãã¯ãµã ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_CKSUM]);
+	cons_printf(portid, "\té·ãã¨ã©ã¼æ°\t%lu\n",			net_count_ip4[NC_IP4_IN_ERR_SHORT]);
+	cons_printf(portid, "\tãã¼ã¸ã§ã³ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_VER]);
+	cons_printf(portid, "\tã¢ãã¬ã¹ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_ADDR]);
+	cons_printf(portid, "\tãã­ãã³ã«ã¨ã©ã¼æ°\t%lu\n",		net_count_ip4[NC_IP4_IN_ERR_PROTO]);
+	cons_printf(portid, "\tãªãã·ã§ã³å
+¥åæ°\t%lu\n",		net_count_ip4[NC_IP4_OPTS]);
+	cons_printf(portid, "\tåå²åä¿¡æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN]);
+	cons_printf(portid, "\tåå²åä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_FRAGS]);
+	cons_printf(portid, "\tåå²åä¿¡åæ§ææåæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_OK]);
+	cons_printf(portid, "\tåå²åä¿¡ç ´æ£æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_IN_DROP]);
+	cons_printf(portid, "\tåå²åä¿¡ãããã¡ãå½ã¦å¤±ææ°\t%lu\n",	net_count_ip4[NC_IP4_FRAG_IN_NO_BUF]);
+	cons_printf(portid, "\tåå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_IN_TMOUT]);
+	cons_printf(portid, "\téä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_ip4[NC_IP4_OUT_OCTETS]);
+	cons_printf(portid, "\téä¿¡ãã¼ã¿ã°ã©ã æ°\t%lu\n",		net_count_ip4[NC_IP4_OUT_PACKETS]);
+	cons_printf(portid, "\téä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°\t%lu\n",	net_count_ip4[NC_IP4_OUT_ERR_PACKETS]);
+	cons_printf(portid, "\tåå²éä¿¡æ°\t%lu\n",			net_count_ip4[NC_IP4_FRAG_OUT]);
+	cons_printf(portid, "\tåå²éä¿¡ãã©ã°ã¡ã³ãæ°\t%lu\n",		net_count_ip4[NC_IP4_FRAG_OUT_FRAGS]);
+
+	net_count_struct(portid, "ICMP", &net_count_icmp4);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#ifdef SUPPORT_TCP
+
+	cons_printf(portid, "\nTCP\n");
+	cons_printf(portid, "\tåä¿¡ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_OCTETS]);
+	cons_printf(portid, "\tåä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_SEGS]);
+	cons_printf(portid, "\tåä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DATA_SEGS]);
+	cons_printf(portid, "\tåä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_URG_SEGS]);
+	cons_printf(portid, "\tåä¿¡ããããä¸æ­£æ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_BAD_HEADERS]);
+	cons_printf(portid, "\tåä¿¡ããã§ãã¯ãµã ä¸æ­£æ°\t%lu\n",	net_count_tcp[NC_TCP_RECV_BAD_CKSUMS]);
+	cons_printf(portid, "\tåä¿¡ãACK æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_ACKS]);
+	cons_printf(portid, "\tåä¿¡ãå¤é ACK æ°\t%lu\n",		net_count_tcp[NC_TCP_RECV_DUP_ACKS]);
+	cons_printf(portid, "\tåä¿¡ãRST æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_RSTS]);
+	cons_printf(portid, "\tåä¿¡ãå¤éæ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_DUP_SEGS]);
+	cons_printf(portid, "\tåä¿¡ãç ´æ£æ°\t%lu\n",			net_count_tcp[NC_TCP_RECV_DROP_SEGS]);
+	cons_printf(portid, "\tåä¿¡ã­ã¥ã¼è§£æ¾æ°\t%lu\n",		net_count_tcp[NC_TCP_FREE_RCV_QUEUE]);
+	cons_printf(portid, "\téä¿¡ãã¼ã¿ãªã¯ãããæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_OCTETS]);
+	cons_printf(portid, "\téä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_CNTL_SEGS]);
+	cons_printf(portid, "\téä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_SEGS]);
+	cons_printf(portid, "\tåéä¿¡ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_REXMIT_SEGS]);
+	cons_printf(portid, "\téä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_DATA_SEGS]);
+	cons_printf(portid, "\téä¿¡ãç·æ¥ã»ã°ã¡ã³ãæ°\t%lu\n",		net_count_tcp[NC_TCP_SEND_URG_SEGS]);
+	cons_printf(portid, "\téä¿¡ãACK æ°\t%lu\n",			net_count_tcp[NC_TCP_SEND_ACKS]);
+	cons_printf(portid, "\téä¿¡ãRST æ°\t%lu\n",			net_count_tcp[NC_TCP_SEND_RSTS]);
+	cons_printf(portid, "\tRTT æ´æ°æ°\t%lu\n",			net_count_tcp[NC_TCP_RTT_UPDATES]);
+	cons_printf(portid, "\tååãªã¼ãã³æ°\t%lu\n",			net_count_tcp[NC_TCP_ACCEPTS]);
+	cons_printf(portid, "\tè½åãªã¼ãã³æ°\t%lu\n",			net_count_tcp[NC_TCP_CONNECTS]);
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+	net_count_struct(portid, "UDP",  &net_count_udp);
+
+#endif	/* of #ifdef SUPPORT_UDP */
+
+	tbl = nbuf_get_tbl();
+	cons_printf(portid, "\nãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tä½¿ç¨ä¸­æ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");
+	for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
+		cons_printf(portid, "\t%lu\t%lu\t%lu\t%lu\t%lu\t%lu\n",
+		                    tbl[ix].size,
+		                    tbl[ix].prepares,
+		                    tbl[ix].busies,
+		                    tbl[ix].requests,
+		                    tbl[ix].allocs,
+		                    tbl[ix].errors);
+		}
+
+	cons_printf(portid, "\nãããã¯ã¼ã¯çµ±è¨æ
+å ±\tçµéæé[ms]\t%lu\t", now);
+	if (now > (1000 * 3600 * 24))
+		cons_printf(portid, "%3luæ¥ %2luæé %2luå %2luç§\n",
+		             now / (1000 * 3600 * 24),
+		            (now / (1000 * 3600)) % 24,
+		            (now / (1000 * 60  )) % 60,
+		            (now /  1000        ) % 60);
+	else
+		cons_printf(portid, "%2luæé %2luå %2luç§\n",
+		            (now / (1000 * 3600)) % 24,
+		            (now / (1000 * 60  )) % 60,
+		            (now /  1000        ) % 60);
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#if defined(SUPPORT_INET4)
+
+#ifdef IP4_CFG_FRAGMENT
+
+/*
+ *  nbuf_stat_ip4_frag_queue -- IPv4 åæ§æã­ã¥ã¼å
+ãããã¯ã¼ã¯ãããã¡æ
+å ±
+ */
+
+static void
+nbuf_stat_ip4_frag_queue (ID portid)
+{
+	const T_NET_BUF_ENTRY	*tbl;
+	const T_NET_BUF		*nbuf, **queue;
+	int_t			ix, fix, count;
+
+	cons_printf(portid, "\nIPv4åæ§æã­ã¥ã¼å
+\nIndex\tTime");
+	tbl = nbuf_get_tbl();
+	for (ix = nbuf_get_tbl_size(); ix -- > 0; )
+		cons_printf(portid, "\t%d", tbl[ix].size);
+	cons_putchar(portid, '\n');
+
+	queue = ip_get_frag_queue();
+	for (fix = 0; fix < NUM_IP4_FRAG_QUEUE; fix ++) {
+		if (queue[fix] != NULL) {
+			cons_printf(portid, "%d\t%d", fix, GET_QIP4_HDR(queue[fix])->ttl);
+			for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
+				count = 0;
+				for (nbuf = queue[fix]; nbuf != NULL; nbuf = GET_QIP4_HDR(nbuf)->next)
+					if (nbuf->idix == ix)
+						count ++;
+				cons_printf(portid, "\t%d", count);
+				}
+			cons_putchar(portid, '\n');
+			}
+		}
+	}
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+#ifdef IP6_CFG_FRAGMENT
+
+/*
+ *  nbuf_stat_ip6_frag_queue -- IPv6 åæ§æã­ã¥ã¼å
+ãããã¯ã¼ã¯ãããã¡æ
+å ±
+ */
+
+static void
+nbuf_stat_ip6_frag_queue (ID portid)
+{
+	const T_NET_BUF_ENTRY	*tbl;
+	const T_NET_BUF		*nbuf, **queue;
+	int_t			ix, fix, count;
+
+	cons_printf(portid, "\nIPv6åæ§æã­ã¥ã¼å
+\nIndex\tTime");
+	tbl = nbuf_get_tbl();
+	for (ix = nbuf_get_tbl_size(); ix -- > 0; )
+		cons_printf(portid, "\t%d", tbl[ix].size);
+	cons_putchar(portid, '\n');
+
+	queue = ip6_get_frag_queue();
+	for (fix = 0; fix < NUM_IP6_FRAG_QUEUE; fix ++) {
+		if (queue[fix] != NULL) {
+			cons_printf(portid, "%d\t%d", fix, GET_QIP6_HDR(queue[fix])->ftim);
+			for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
+				count = 0;
+				for (nbuf = queue[fix]; nbuf != NULL; nbuf = GET_QIP6_HDR(nbuf)->next_frag)
+					if (nbuf->idix == ix)
+						count ++;
+				cons_printf(portid, "\t%d", count);
+				}
+			cons_putchar(portid, '\n');
+			}
+		}
+	}
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+/*
+ *  nbuf_status -- ãããã¯ã¼ã¯ãããã¡æ
+å ±
+ */
+
+static void
+nbuf_status (ID portid, char *line)
+{
+	SYSTIM		now;
+
+#if NET_COUNT_ENABLE
+	const T_NET_BUF_ENTRY	*tbl;
+	int_t			ix;
+#endif	/* of #if NET_COUNT_ENABLE */
+
+#ifdef SUPPORT_TCP
+	T_NET_BUF		*nbuf;
+	T_TCP_CEP*		cep;
+	T_TCP_Q_HDR*		tqhdr;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+	T_TCP_HDR*		tcph;
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+#endif	/* of #ifdef SUPPORT_TCP */
+
+	WAI_NET_CONS_PRINTF();
+	get_tim(&now);
+	cons_printf(portid, "ãããã¯ã¼ã¯ãããã¡æ
+å ±\tçµéæé[ms]\t%u\n", now);
+
+#if NET_COUNT_ENABLE
+
+	cons_printf(portid, "\nãããã¯ã¼ã¯ãããã¡\n\tãµã¤ãº\tç¨ææ°\tä½¿ç¨ä¸­æ°\tå²å½è¦æ±æ°\tå²å½æ°\tå²å½ã¦ã¨ã©ã¼æ°\n");
+	tbl = nbuf_get_tbl();
+	for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
+		cons_printf(portid, "\t%u\t%u\t%u\t%u\t%u\t%u\n",
+		                    tbl[ix].size,
+		                    tbl[ix].prepares,
+		                    tbl[ix].busies,
+		                    tbl[ix].requests,
+		                    tbl[ix].allocs,
+		                    tbl[ix].errors);
+		}
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+#ifdef SUPPORT_TCP
+
+	cons_printf(portid, "\nCEPå
+\nCEPID\n");
+
+	for (cep = tcp_cep; cep < &tcp_cep[tmax_tcp_cepid]; cep ++) {
+		cons_printf(portid, "%2d", GET_TCP_CEPID(cep));
+		for (nbuf = cep->reassq; nbuf != NULL; nbuf = tqhdr->next) {
+			tqhdr = GET_TCP_Q_HDR(nbuf, GET_TCP_HDR_OFFSET(nbuf));
+			cons_printf(portid, "[a:%6lu-%6lu] ",
+			            ntohl(tqhdr->seq) - cep->irs + tqhdr->soff,
+			            ntohl(tqhdr->seq) - cep->irs + tqhdr->soff + tqhdr->slen);
+			}
+
+#ifdef TCP_CFG_RWBUF_CSAVE
+		for (nbuf = cep->rwbufq; nbuf != NULL; nbuf = tqhdr->next) {
+			tqhdr = GET_TCP_Q_HDR(nbuf, GET_TCP_HDR_OFFSET(nbuf));
+			cons_printf(portid, "[r:%6lu-%6lu] ",
+			            ntohl(tqhdr->seq) - cep->irs + tqhdr->soff,
+			            ntohl(tqhdr->seq) - cep->irs + tqhdr->soff + tqhdr->slen);
+			}
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+		if (cep->swbufq != NULL) {
+			tcph = GET_TCP_HDR(cep->swbufq, GET_TCP_HDR_OFFSET(cep->swbufq));
+#if 0
+			cons_printf(portid, "[s:%6lu-%6lu] ",
+			            ntohl(tcph->seq) - cep->iss,
+			            ntohl(tcph->seq) - cep->iss + (GET_IP_SDU_SIZE(cep->swbufq) - 
+			                                           GET_TCP_HDR_SIZE(cep->swbufq, GET_TCP_HDR_OFFSET(cep->swbufq))));
+#else
+			cons_printf(portid, "[s:%6lu-%6lu,%08x,%08x] ",
+			            ntohl(tcph->seq) - cep->iss,
+			            ntohl(tcph->seq) - cep->iss + (GET_IP_SDU_SIZE(cep->swbufq) - 
+			                                           GET_TCP_HDR_SIZE(cep->swbufq, GET_TCP_HDR_OFFSET(cep->swbufq))),
+			            ntohl(tcph->seq), cep->iss);
+#endif
+			}
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		cons_putchar(portid, '\n');
+		}
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#if NET_COUNT_ENABLE
+
+#if defined(SUPPORT_INET4)
+
+#ifdef IP4_CFG_FRAGMENT
+
+	nbuf_stat_ip4_frag_queue(portid);
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+#ifdef IP6_CFG_FRAGMENT
+
+	nbuf_stat_ip6_frag_queue(portid);
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#ifdef USE_RESOLVER
+
+/*
+ *  show_dns_soa -- DNS ã® SOA RDATA ãè¡¨ç¤ºããã
+ */
+
+static ER_UINT
+show_dns_soa (ID portid, uint8_t *msg, ER_UINT length, uint_t offset)
+{
+	T_RSLV_SOA	soa;
+	ER_UINT		error;
+	uint_t		rn_offset;
+
+	if ((error = dns_analyze_soa(&soa, offset, msg, length)) < 0)
+		return error;
+
+	cons_printf(portid, "    mname:   ");
+	rn_offset = show_dns_domain_name(portid, msg, offset);
+	cons_putchar(portid, '\n');
+	cons_printf(portid, "    rname:   ");
+	show_dns_domain_name(portid, msg, rn_offset);
+	cons_putchar(portid, '\n');
+
+	cons_printf(portid, "    serial:  %d\n", soa.serial);
+	cons_printf(portid, "    refresh: %d\n", soa.refresh);
+	cons_printf(portid, "    retry:   %d\n", soa.retry);
+	cons_printf(portid, "    expirel: %d\n", soa.expire);
+	cons_printf(portid, "    minimum: %d\n", soa.minimum);
+
+	return E_OK;
+	}
+
+/*
+ *  show_dns_qdsection -- DNS ã® Question ã»ã¯ã·ã§ã³ãè¡¨ç¤ºããã
+ */
+
+static ER_UINT
+show_dns_qdsection (ID portid, uint8_t *msg, ER_UINT length, T_RSLV_DNS_MSG *rslv)
+{
+	T_RSLV_QD	qd;
+	ER_UINT		offset, error;
+	int		scount;
+
+	cons_printf(portid, "question   section: %d\n", rslv->dns_hdr.qdcount);
+	offset = rslv->qd_offset;
+	for (scount = 1; scount <= rslv->dns_hdr.qdcount; scount ++) {
+		if ((error = dns_analyze_qd(&qd, offset, msg, length)) < 0)
+			return error;
+
+		cons_printf(portid, "%2d: ", scount);
+		show_dns_domain_name(portid, msg, offset);
+		cons_printf(portid, "\n    type: %-4s, class: %2s\n", dns_strtype(qd.type), dns_strclass(qd.class));
+		offset = error;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  show_dns_section -- DNS ã®åã»ã¯ã·ã§ã³ãè¡¨ç¤ºããã
+ */
+
+static ER_UINT
+show_dns_section (ID portid, uint8_t *msg, ER_UINT length, uint_t scount, uint_t offset, char *title)
+{
+	T_RSLV_RR	rr;
+	T_IN4_ADDR	in4_addr;
+	ER_UINT		error;
+	int		count, dcount, col;
+	T_IN6_ADDR	in6_addr;
+
+	cons_printf(portid, "%10s section: %d\n", title, scount);
+	for (count = 1; count <= scount; count ++) {
+		if ((error = dns_analyze_rr(&rr, offset, msg, length)) < 0)
+			return error;
+
+		cons_printf(portid, "%2d: ", count);
+		show_dns_domain_name(portid, msg, offset);
+		cons_printf(portid, "\n    type: %-4s, class: %2s, TTL: %2d, len: %3d, offset: 0x%02x\n",
+		            dns_strtype(rr.type), dns_strclass(rr.class), rr.ttl, rr.rdlength, rr.rdata_offset);
+
+		switch (rr.type) {
+		case DNS_TYPE_A:
+			memcpy((void*)&in4_addr, (void*)(msg + rr.rdata_offset), sizeof(in4_addr));
+			in4_addr = ntohl(in4_addr);
+			cons_printf(portid, "    IPv4 addr: %hI\n", &in4_addr);
+			break;
+		case DNS_TYPE_NS:
+			cons_printf(portid, "    host: ");
+			show_dns_domain_name(portid, msg, rr.rdata_offset);
+			cons_putchar(portid, '\n');
+			break;
+		case DNS_TYPE_CNAME:
+			cons_printf(portid, "    host: ");
+			show_dns_domain_name(portid, msg, rr.rdata_offset);
+			cons_putchar(portid, '\n');
+			break;
+		case DNS_TYPE_SOA:
+			show_dns_soa(portid, msg, length, rr.rdata_offset);
+			break;
+		case DNS_TYPE_PTR:
+			cons_printf(portid, "     PTR: ");
+			show_dns_domain_name(portid, msg, rr.rdata_offset);
+			cons_putchar(portid, '\n');
+			break;
+		case DNS_TYPE_AAAA:
+			memcpy((void*)&in6_addr, (void*)(msg + rr.rdata_offset), sizeof(in6_addr));
+			cons_printf(portid, "    IPv6 addr: %lI\n", &in6_addr);
+			break;
+		default:
+			cons_printf(portid, "    data: ");
+			col = 32;
+			for (dcount = 0; dcount < rr.rdlength; dcount ++) {
+				cons_printf(portid, "%02x", *(msg + rr.rdata_offset + dcount));
+				if (-- col == 0) {
+					cons_printf(portid, "\n          ");
+					col = 32;
+					}
+				}
+			cons_putchar(portid, '\n');
+			break;
+			}
+		}
+
+	return E_OK;
+	}
+/*
+ *  dns_info -- DNS æ
+å ±ã®è¡¨ç¤º
+ */
+
+static void
+dns_info (ID portid)
+{
+#if defined(SUPPORT_INET6)
+	T_IN6_ADDR	in6_addr;
+#endif
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	in4_addr;
+#endif
+
+#if defined(SUPPORT_INET6)
+
+	cons_printf(portid, "domain name:     %s\n", dns_in6_get_dname());
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+	cons_printf(portid, "domain name:     %s\n", dns_in4_get_dname());
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET6)
+	dns_in6_get_addr(&in6_addr);
+	cons_printf(portid, "IPv6 DNS server: ");
+	if (IN6_IS_ADDR_UNSPECIFIED(&in6_addr))
+		cons_printf(portid, "not available.\n");
+	else
+		cons_printf(portid, "%lI.\n", &in6_addr);
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+	dns_in4_get_addr(&in4_addr);
+	cons_printf(portid, "IPv4 DNS server: ");
+	if (in4_addr == IPV4_ADDRANY)
+		cons_printf(portid, "not available.\n");
+	else
+		cons_printf(portid, "%hI.\n", &in4_addr);
+#endif	/* of #if defined(SUPPORT_INET4) */
+	}
+
+/*
+ *  name_lookup -- ãã¹ãåï¼IP ã¢ãã¬ã¹å¤æ
+ */
+
+const char *rcode_str[] = {
+	"no error",
+	"format error",
+	"server error",
+	"name error",
+	"not implement",
+	"refused",
+	};
+
+static void
+name_lookup (ID portid, char *line)
+{
+	static char hostname[DBG_LINE_SIZE + 1];
+
+	T_RSLV_DNS_MSG	rslv;
+	ER_UINT		length, offset;
+	ER		error;
+	uint_t		flags = 0;
+	uint8_t 	*msg;
+
+	/* ã³ãã³ãã®ãªãã·ã§ã³ãè¨­å®ããã*/
+	line = skip_blanks(resolv_options(&flags, line, DEFAULT_API_PROTO));
+	if ((flags & (DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_PROTO_IPV4)) == 0) {
+		cons_printf(portid, "DNS server not available.\n");
+		return;
+		}
+
+	/* ç
+§ä¼ãããã¹ãåã»IP ã¢ãã¬ã¹ãè§£æããã*/
+	resolv_hoststr(&flags, hostname, sizeof(hostname), line);
+
+	/* æ­£å¼ãã§ãéå¼ãã§ããã­ãã³ã«ä¸ã¯æ­£å¼ããæå®ããã*/
+	flags |= DNS_LUP_OPCODE_FORWARD;
+
+	/* IPv6 ã¢ãã¬ã¹ãã¾ãã¯ IPv4 ã¢ãã¬ã¹ãæå®ãããæã¯ãç
+§ä¼ã¿ã¤ãã¯ PTR ã«è¨­å®ããã*/
+	if (((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_IPV6) ||
+	    ((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_IPV4))
+		flags = (flags & ~DNS_LUP_FLAGS_QTYPE_MASK) | DNS_LUP_FLAGS_QTYPE_PTR;
+
+	if ((error = tget_mpf(MPF_RSLV_SRBUF, (void*)&msg, TMO_FEVR)) != E_OK) {
+		cons_printf(portid, "get buffer error: %s.\n", itron_strerror(error));
+		return;
+		}
+
+	if ((length = dns_lookup_host(flags | DNS_LUP_FLAGS_MSG, line, msg, DNS_UDP_MSG_LENGTH, &rslv)) < 0) {
+		//cons_printf(portid, "error: %s.\n", itron_strerror(length));
+		goto err_ret;
+		}
+
+	dly_tsk(1 * 1000);
+	cons_printf(portid, "DNS header: flags: ");
+	if (rslv.dns_hdr.code & (DNS_QR_RESPONSE | DNS_AUTHORITATIVE     |
+	                         DNS_TRUN_CATION | DNS_RECURSION_DESIRED | DNS_RECURSION_AVAILABLE)) {
+		cons_printf(portid, (rslv.dns_hdr.code & DNS_QR_RESPONSE)         ? "QR," : "");
+		cons_printf(portid, (rslv.dns_hdr.code & DNS_AUTHORITATIVE)       ? "AA," : "");
+		cons_printf(portid, (rslv.dns_hdr.code & DNS_TRUN_CATION)         ? "TC," : "");
+		cons_printf(portid, (rslv.dns_hdr.code & DNS_RECURSION_DESIRED)   ? "RD," : "");
+		cons_printf(portid, (rslv.dns_hdr.code & DNS_RECURSION_AVAILABLE) ? "RA," : "");
+		cons_printf(portid, " ");
+		}
+	cons_printf(portid, "opcode: ");
+	cons_printf(portid, (rslv.dns_hdr.code & DNS_OPCODE_REVERSE)      ? "RV"  : "FW");
+	cons_printf(portid, (rslv.dns_hdr.code & DNS_OPCODE_STATUS)       ? ",ST" : "");
+	cons_printf(portid, ", rcode: %s.\n",
+	            (rslv.dns_hdr.code & DNS_RCODE_MASK) > DNS_RCODE_REFUSED
+	            	? "6" : rcode_str[rslv.dns_hdr.code & DNS_RCODE_MASK]);
+
+	if ((offset = show_dns_qdsection(portid, msg, length, &rslv)) < 0) {
+		cons_printf(portid, "msg error: %s.\n", itron_strerror(offset));
+		}
+	if ((offset = show_dns_section(portid, msg, length, rslv.dns_hdr.ancount, rslv.an_offset, "answer")) < 0) {
+		cons_printf(portid, "msg error: %s.\n", itron_strerror(offset));
+		}
+	if ((offset = show_dns_section(portid, msg, length, rslv.dns_hdr.nscount, rslv.ns_offset, "authority")) < 0) {
+		cons_printf(portid, "msg error: %s.\n", itron_strerror(offset));
+		}
+	if ((offset = show_dns_section(portid, msg, length, rslv.dns_hdr.arcount, rslv.ar_offset, "additional")) < 0) {
+		cons_printf(portid, "msg error: %s.\n", itron_strerror(offset));
+		}
+
+err_ret:
+	if ((error = rel_mpf(MPF_RSLV_SRBUF, msg)) != E_OK)
+		cons_printf(portid, "release buffer error: %s.\n", itron_strerror(error));
+	return;
+	}
+
+#endif	 /* of #ifdef USE_RESOLVER */
+
+#if defined(DHCP6_CLI_CFG)
+
+/*
+ *  dhcp6c_info -- DHCPv6 ã¯ã©ã¤ã¢ã³ãæ
+å ±ã®è¡¨ç¤º
+ */
+
+static void
+dhcp6c_info (ID portid)
+{
+	T_IN6_ADDR	svaddr;
+	SYSTIM		bind_start;
+	ER		error;
+	uint32_t	expire, renew, rebind, deprefer;
+
+	if ((error = dhcp6c_get_info(&svaddr, &expire, &renew, &rebind, &deprefer, &bind_start)) == E_OK) {
+		cons_printf(portid, "      DHCPv6 server: %lI.\n", &svaddr);
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+	
+		cons_printf(portid, "      DHCPv6 mode:   stateless.\n");
+
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+		cons_printf(portid, "      DHCPv6 mode:   statefull,\n");
+		cons_printf(portid, "        Renew:       %u:%02u:%02u, Deprefer: %u:%02u:%02u,\n",
+		                       renew / 3600, (   renew / 60) % 60,    renew % 60,
+		                    deprefer / 3600, (deprefer / 60) % 60, deprefer % 60);
+		cons_printf(portid, "        Rebind:      %u:%02u:%02u, Expire:   %u:%02u:%02u.\n",
+		                      rebind / 3600, (  rebind / 60) % 60,   rebind % 60,
+		                      expire / 3600, (  expire / 60) % 60,   expire % 60);
+
+#else	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+		}
+	else if (error == E_OBJ)
+		cons_printf(portid, "      DHCPv6 server: not available.\n");
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG) */
+
+#if defined(DHCP4_CLI_CFG)
+
+/*
+ *  dhcp4c_info -- DHCPv4 ã¯ã©ã¤ã¢ã³ãæ
+å ±ã®è¡¨ç¤º
+ */
+
+static void
+dhcp4c_info (ID portid)
+{
+	T_IN4_ADDR	svaddr;
+	SYSTIM		bind_start;
+	ER		error;
+	uint32_t	expire, renew, rebind;
+
+	if ((error = dhcp4c_get_info(&svaddr, &expire, &renew, &rebind, &bind_start)) == E_OK) {
+		cons_printf(portid, "      DHCPv4 server: %hI,\n", &svaddr);
+		cons_printf(portid, "        Renew:       %u:%02u:%02u,\n", 
+		                      renew  / 3600, (renew  / 60) % 60, renew % 60);
+		cons_printf(portid, "        Rebind:      %u:%02u:%02u, Expire:   %u:%02u:%02u.\n",
+		                      rebind / 3600, (rebind / 60) % 60, rebind % 60,
+		                      expire / 3600, (expire / 60) % 60, expire % 60);
+		}
+	else if (error == E_OBJ)
+		cons_printf(portid, "      DHCPv4 server: not available.\n");
+	}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG) */
+
+#if defined(DHCP6_CLI_CFG) || defined(DHCP4_CLI_CFG)
+
+/*
+ *  dhcpc -- DHCP ã¯ã©ã¤ã¢ã³ãæ
+å ±ã®è¡¨ç¤ºã¨å¶å¾¡
+ */
+
+static void
+dhcpc (ID portid, char *line)
+{
+	WAI_NET_CONS_PRINTF();
+
+	switch (*line) {
+
+#if defined(DHCP6_CLI_CFG)
+	case '6':			/* DHCPv6 ã®å¶å¾¡ */
+		switch (*(line + 1)) {
+		case 'r':		/* ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã*/
+			dhcp6c_rel_info();
+			break;
+
+		case 'n':		/* ã¢ãã¬ã¹æ
+å ±ãååå¾ããã*/
+			dhcp6c_renew_info();
+			break;
+
+		default:
+			dhcp6c_info(portid);
+			break;
+			}
+		break;
+#endif	/* of #if defined(DHCP6_CLI_CFG) */
+
+#if defined(DHCP4_CLI_CFG)
+	case '4':		/* DHCPv4 ã®å¶å¾¡ */
+		switch (*(line + 1)) {
+		case 'r':		/* ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã*/
+			dhcp4c_rel_info();
+			break;
+
+		case 'n':		/* ã¢ãã¬ã¹æ
+å ±ãååå¾ããã*/
+			dhcp4c_renew_info();
+			break;
+
+		default:
+			dhcp4c_info(portid);
+			break;
+			}
+		break;
+#endif	/* of #if defined(DHCP4_CLI_CFG) */
+
+	default:
+
+#if defined(DHCP6_CLI_CFG)
+		dhcp6c_info(portid);
+#endif
+
+#if defined(DHCP4_CLI_CFG)
+		dhcp4c_info(portid);
+#endif
+		break;
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG) || defined(DHCP4_CLI_CFG) */
+
+#if defined(SUPPORT_INET6)
+
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+/*
+ *  defrtrlist_status -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãç¶æ
+ã®åºå
+ */
+
+static void
+defrtrlist_status (ID portid, char *line)
+{
+	const T_DEF_ROUTER	*dr;
+	SYSTIM			now;
+	int_t			rix, pix, pcnt, ptitle;
+	uint_t			count, mask;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "Default Router List Status\n"
+	            "IX Expire Lifetime flags prefix");
+	for (ptitle = NUM_ND6_PREFIX_ENTRY * 2 - sizeof("prefix"); ptitle -- > 0; )
+		cons_printf(portid, " ");
+	cons_printf(portid, " IP Address\n");
+
+	/* expire ã®åä½ã¯ [ms]ã*/
+	get_tim(&now);
+	dr = nd6_get_drl(&count);
+	for (rix = 0; rix < count; rix ++) {
+		if (dr[rix].state == ND6_DEF_RTR_BUSY) {
+			cons_printf(portid, "%2d", rix);
+			if (dr[rix].lifetime == ND6_INFINITE_LIFETIME)
+				cons_printf(portid, "  INFIN    INFIN");
+			else
+				cons_printf(portid, " %6d %8d",
+				            (uint32_t)(dr[rix].expire - now) <= 0
+				                ? 0 : (dr[rix].expire - now) / SYSTIM_HZ,
+				            dr[rix].lifetime / SYSTIM_HZ);
+			cons_printf(portid, "    %02x", dr[rix].flags);
+			pcnt = NUM_ND6_PREFIX_ENTRY;
+			ptitle = NUM_ND6_PREFIX_ENTRY * 2 - sizeof(" prefix");
+			mask = 1;
+			for (pix = 0; pix < NUM_ND6_PREFIX_ENTRY; pix ++) {
+				if ((dr[rix].plistmap & mask) != 0) {
+					if (pcnt == NUM_ND6_PREFIX_ENTRY)
+						cons_printf(portid, " ");
+					else
+						cons_printf(portid, ",");
+					cons_printf(portid, "%d", pix);
+					pcnt --;
+					ptitle -= 2;
+					}
+				mask <<= 1;
+				}
+			while (pcnt --) {
+				cons_printf(portid, "  ");
+				ptitle -= 2;
+				}
+			while (ptitle -- > 0)
+				cons_printf(portid, " ");
+			cons_printf(portid, " %lI\n",  &dr[rix].addr);
+			}
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+/*
+ *  prefixlist_status -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãç¶æ
+ã®åºå
+ */
+
+static void
+prefixlist_status (ID portid, char *line)
+{
+	const T_ND6_PREFIX	*pr;
+	SYSTIM			now;
+	int_t			rix, pix, rcnt, rtitle;
+	uint_t			mask;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "Prefix List Status\n"
+	            "IX  Expire Lifetime flags router");
+	for (rtitle = NUM_ND6_DEF_RTR_ENTRY * 2 - sizeof("router"); rtitle -- > 0; )
+		cons_printf(portid, " ");
+	cons_printf(portid, " Len Prefix\n");
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	get_tim(&now);
+	now /= SYSTIM_HZ;
+	pr = nd6_get_prl();
+	for (pix = 0; pix < NUM_ND6_PREFIX_ENTRY; pix ++) {
+		if ((pr[pix].flags & ND6_PREFIX_STATE_BUSY) != 0) {
+			cons_printf(portid, "%2d", pix);
+			if (pr[pix].vltime == ND6_INFINITE_LIFETIME)
+				cons_printf(portid, "  INFIN    INFIN");
+			else
+				cons_printf(portid, " %7d %8d",
+				            (uint32_t)(pr[pix].expire - now) <= 0
+				                ? 0 : (pr[pix].expire - now),
+				             pr[pix].vltime);
+			cons_printf(portid, "    %02x", pr[pix].flags);
+			rcnt = NUM_ND6_DEF_RTR_ENTRY;
+			rtitle = NUM_ND6_DEF_RTR_ENTRY * 2 - sizeof(" router");
+			mask = 1;
+			for (rix = 0; rix < NUM_ND6_DEF_RTR_ENTRY; rix ++) {
+				if ((pr[pix].routermap & mask) != 0) {
+					if (rcnt == NUM_ND6_DEF_RTR_ENTRY)
+						cons_printf(portid, " ");
+					else
+						cons_printf(portid, ",");
+					cons_printf(portid, "%d", rix);
+					rcnt --;
+					rtitle -= 2;
+					}
+				mask <<= 1;
+				}
+			while (rcnt --) {
+				cons_printf(portid, "  ");
+				rtitle -= 2;
+				}
+			while (rtitle -- > 0)
+				cons_printf(portid, " ");
+			cons_printf(portid, "%4d %lI\n",  pr[pix].prefix_len, &pr[pix].prefix);
+			}
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+#if NUM_IN6_ROUTE_ENTRY > 0
+
+/*
+ *  routing6_table_status -- çµè·¯è¡¨ï¼IPv6ï¼ã®åºå
+ */
+
+static void
+routing6_table_status (ID portid, char *line)
+{
+	SYSTIM	now;
+	int_t	ix;
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "\nRouting Table Status (IPv6)\n"
+	            "IX Expire flags Prefix Target                         Gateway\n");
+
+	for (ix = 0; ix < NUM_IN6_STATIC_ROUTE_ENTRY; ix ++) {
+		cons_printf(portid, "%2d STATIC     - %6d %30lI %lI\n",
+		            ix,
+		             routing6_tbl[ix].prefix_len,
+		            &routing6_tbl[ix].target,
+		            &routing6_tbl[ix].gateway);
+		            
+		}
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	get_tim(&now);
+	now /= SYSTIM_HZ;
+
+	for ( ; ix < NUM_IN6_ROUTE_ENTRY; ix ++)
+		if (routing6_tbl[ix].flags & IN_RTF_DEFINED)
+			cons_printf(portid, "%2d %6d    %02x %6d %30lI %lI\n",
+			            ix,
+			            (uint32_t)(routing6_tbl[ix].expire - now) <= 0
+			                ? 0 : routing6_tbl[ix].expire - now,
+			             routing6_tbl[ix].flags,
+			             routing6_tbl[ix].prefix_len,
+			            &routing6_tbl[ix].target,
+			            &routing6_tbl[ix].gateway);
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if NUM_IN6_ROUTE_ENTRY > 0 */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#if NUM_IN4_ROUTE_ENTRY > 0
+
+/*
+ *  routing4_table_status -- çµè·¯è¡¨ï¼IPv4ï¼ã®åºå
+ */
+
+static void
+routing4_table_status (ID portid, char *line)
+{
+	int_t	ix;
+
+	if ('0' <= *(line = skip_blanks(line)) && *line <= '9') {
+		T_IN4_ADDR	target, mask, gateway;
+
+		ix = atoi(line);
+		while ('0' <= *line && *line <= '9')
+			line ++;
+		line = get_ipv4addr(&target,  skip_blanks(line));
+		line = get_ipv4addr(&mask,    skip_blanks(line));
+		       get_ipv4addr(&gateway, skip_blanks(line));
+		in4_add_route(ix, target, mask, gateway);
+		}
+
+	WAI_NET_CONS_PRINTF();
+	cons_printf(portid,
+	            "\nRouting Table Status (IPv4)\n"
+	            "IX Target          Mask            Gateway         Expire\n");
+
+	for (ix = 0; ix < NUM_IN4_ROUTE_ENTRY; ix ++) {
+		if ((routing4_tbl[ix].flags & IN_RTF_DEFINED) == 0)
+			;
+		else if ((routing4_tbl[ix].flags & IN_RTF_REDIRECT) != 0)
+			cons_printf(portid, "%2d %15hI %15hI %15hI %4d\n",
+			            ix,
+			            &routing4_tbl[ix].target,
+			            &routing4_tbl[ix].mask,
+			            &routing4_tbl[ix].gateway,
+			            &routing4_tbl[ix].expire);
+		else
+			cons_printf(portid, "%2d %15hI %15hI %hI\n",
+			            ix,
+			            &routing4_tbl[ix].target,
+			            &routing4_tbl[ix].mask,
+			            &routing4_tbl[ix].gateway);
+		            
+		}
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if NUM_IN4_ROUTE_ENTRY > 0 */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+/*
+ *  routing_status -- çµè·¯æ
+å ±
+ */
+
+static void
+routing_status (ID portid, char *line)
+{
+	switch (*line) {
+
+#if defined(SUPPORT_INET6) && NUM_ND6_DEF_RTR_ENTRY > 0
+
+	case 'l':		/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãæ
+å ± */
+		defrtrlist_status(portid, line + 1);
+		break;
+
+	case 'p':		/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãæ
+å ± */
+		prefixlist_status(portid, line + 1);
+		break;
+
+#endif	/* #if defined(SUPPORT_INET6) && NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+	default:
+
+		/* çµè·¯è¡¨æ
+å ± */
+
+#if defined(SUPPORT_INET6) && NUM_IN6_ROUTE_ENTRY > 0
+		routing6_table_status(portid, line);
+#endif
+
+#if defined(SUPPORT_INET4) && NUM_IN4_ROUTE_ENTRY > 0
+		routing4_table_status(portid, line);
+#endif
+
+		break;
+		}
+	}
+
+/*
+ *  dbg_cons_network_status -- ãããã¯ã¼ã¯ã®ç¶æ
+ã®åºå
+ */
+
+void
+dbg_cons_network_status (ID portid, char *line)
+{
+	switch (*line) {
+
+#ifdef SUPPORT_ETHER
+
+	case 'a':		/* IF ã¢ãã¬ã¹æ
+å ± */
+
+#if defined(SUPPORT_INET6)
+		ifa6_status(portid, line + 1);
+#endif
+#if defined(SUPPORT_INET4)
+		ifa4_status(portid, line + 1);
+#endif
+
+		break;
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+	case 'b':		/* ãããã¯ã¼ã¯ãããã¡æ
+å ± */
+		nbuf_status(portid, line + 1);
+		break;
+
+#if NET_COUNT_ENABLE
+
+	case 'c':		/* ãããã¯ã¼ã¯çµ±è¨æ
+å ± */
+		net_count(portid, line + 1);
+		break;
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+	case 'r':		/* çµè·¯æ
+å ± */
+		routing_status(portid, line + 1);
+		break;
+
+#ifdef USE_RESOLVER
+
+	case 's':		/* name lookup */
+		if (*(line = skip_blanks(line + 1)) == '\0')
+			dns_info(portid);
+		else
+			name_lookup(portid, line);
+		break;
+
+#endif	 /* of #ifdef USE_RESOLVER */
+
+#ifdef SUPPORT_TCP
+
+	case 't':		/* TCP status */
+		tcp_status(portid, line + 1);
+		break;
+
+#endif	 /* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+	case 'u':		/* UDP status */
+		udp_status(portid, line + 1);
+		break;
+
+#endif	 /* of #ifdef SUPPORT_UDP */
+
+	default:
+		cons_printf(portid, "no such command: '%c%c'.\n", *(line - 1), *line);
+		SIG_NET_CONS_PRINTF();
+		FLUSH_SND_BUFF();
+		break;
+		}
+	}
+
+/*
+ *  dbg_cons_ifconfig -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ§ææ
+å ±
+ */
+
+void
+dbg_cons_ifconfig (ID portid, char *line)
+{
+#ifdef SUPPORT_ETHER
+
+	T_IF_SOFTC	*ic;
+
+	WAI_NET_CONS_PRINTF();
+	ic = IF_ETHER_NIC_GET_SOFTC();
+	cons_printf(portid, "ether: %M\n", ic->ifaddr.lladdr);
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+	}
+
+#if defined(NETAPP_IP6_CFG)
+
+/*
+ *  dbg_cons_ifconfig6 -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼IPv6ï¼ã®æ§ææ
+å ±
+ */
+
+void
+dbg_cons_ifconfig6 (ID portid, char *line)
+{
+#ifdef SUPPORT_ETHER
+
+	T_IFNET		*ifp = IF_GET_IFNET();
+	int_t		ix;
+	SYSTIM		now;
+
+	WAI_NET_CONS_PRINTF();
+
+	/* expire ã¨ vltime ã®åä½ã¯ [s]ã*/
+	get_tim(&now);
+	now /= SYSTIM_HZ;
+
+	cons_printf(portid, "IPv6:\nIX   Expire Preffered RTR PFX Flags IP Address\n");
+	for (ix = 0; ix < NUM_IN6_IFADDR_ENTRY; ix ++) {
+		if (ifp->in6_ifaddrs[ix].flags & IN6_IFF_DEFINED) {
+			cons_printf(portid, " %d", ix);
+			if (ifp->in6_ifaddrs[ix].lifetime.vltime == ND6_INFINITE_LIFETIME)
+				cons_printf(portid, "    INFIN     INFIN");
+			else
+				cons_printf(portid, " %8d %9d",
+				                    (uint32_t)(ifp->in6_ifaddrs[ix].lifetime.expire - now) <= 0 
+				                         ? 0 : ifp->in6_ifaddrs[ix].lifetime.expire - now,
+				                    (uint32_t)(ifp->in6_ifaddrs[ix].lifetime.preferred - now) <= 0
+				                         ? 0 : ifp->in6_ifaddrs[ix].lifetime.preferred - now);
+			if (ifp->in6_ifaddrs[ix].router_index == IN6_RTR_IX_UNREACH)
+				cons_printf(portid, "   -");
+			else
+				cons_printf(portid, " %3d", ifp->in6_ifaddrs[ix].router_index);
+			if (ifp->in6_ifaddrs[ix].prefix_index == ND6_PREFIX_IX_INVALID)
+				cons_printf(portid, "   -");
+			else
+				cons_printf(portid, " %3d", ifp->in6_ifaddrs[ix].prefix_index);
+			cons_printf(portid, "    %02x %lI\n",
+			                     ifp->in6_ifaddrs[ix].flags,
+			                    &ifp->in6_ifaddrs[ix].addr);
+			}
+		}
+
+#ifdef DHCP6_CLI_CFG
+	dhcp6c_info(portid);
+#endif
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+	}
+
+#endif	/* of #if defined(NETAPP_IP6_CFG) */
+
+#if defined(NETAPP_IP4_CFG)
+
+/*
+ *  dbg_cons_ifconfig4 -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ï¼IPv4ï¼ã®æ§ææ
+å ±
+ */
+
+void
+dbg_cons_ifconfig4 (ID portid, char *line)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN4_ADDR	bc;
+
+#ifdef SUPPORT_ETHER
+
+	if (*(line = skip_blanks(line))) {
+		T_IN4_ADDR	addr, mask;
+
+		get_ipv4addr(&mask, skip_blanks(get_ipv4addr(&addr, line)));
+		in4_add_ifaddr(addr, mask);
+		}
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+	WAI_NET_CONS_PRINTF();
+
+	bc = (ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask;
+	cons_printf(portid,
+	            "IPv4: %hI, mask: %hI, broadcast: %hI\n",
+	            &ifp->in4_ifaddr.addr,
+	            &ifp->in4_ifaddr.mask,
+	            &bc);
+
+#ifdef DHCP4_CLI_CFG
+	dhcp4c_info(portid);
+#endif
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#endif	/* of #if defined(NETAPP_IP4_CFG) */
+
+/*
+ *  dbg_cons_show_config -- ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³è¨­å®ã®è¡¨ç¤º
+ */
+
+void
+dbg_cons_show_config (ID portid, char *line)
+{
+#if defined(SUPPORT_ETHER)
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	addr;
+#endif
+#endif	/* of #if defined(SUPPORT_ETHER) */
+
+	cons_printf(portid, "DHCP:\n");
+	cons_printf(portid, "  DHCP6_CLI_CFG: ");
+
+#if defined(DHCP6_CLI_CFG)
+
+	cons_printf(portid, "On\n           Mode: ");
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+	cons_printf(portid, "STATELESS\n");
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+	cons_printf(portid, "STATEFULL\n");
+#endif
+
+#else	/* of #if define(DHCP6_CLI_CFG) */
+
+	cons_printf(portid, "Off\n");
+
+#endif	/* of #if define(DHCP6_CLI_CFG) */
+
+	cons_printf(portid, "  DHCP4_CLI_CFG: ");
+
+#if defined(DHCP4_CLI_CFG)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "Resolver:\n");
+	cons_printf(portid, "  USE_RESOLVER: ");
+
+#if defined(USE_RESOLVER)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#if defined(SUPPORT_TCP)
+
+	cons_printf(portid, "TCP:\n");
+
+	cons_printf(portid, "  TCP_CFG_OPT_MSS:      ");
+#if defined(TCP_CFG_OPT_MSS)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_DELAY_ACK:    ");
+#if defined(TCP_CFG_DELAY_ACK)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_ALWAYS_KEEP:  ");
+#if defined(TCP_CFG_ALWAYS_KEEP)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_RWBUF_CSAVE:  ");
+#if defined(TCP_CFG_RWBUF_CSAVE_ONLY)
+	cons_printf(portid, "Only, ");
+#if defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
+	cons_printf(portid, "TCP_CFG_RWBUF_CSAVE_MAX_QUEUES: %2d\n",
+	                     TCP_CFG_RWBUF_CSAVE_MAX_QUEUES);
+#else
+	cons_printf(portid, "TCP_CFG_RWBUF_CSAVE_MAX_QUEUES: Undefined\n");
+#endif
+#elif defined(TCP_CFG_RWBUF_CSAVE)
+	cons_printf(portid, "On,   ");
+#if defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
+	cons_printf(portid, "TCP_CFG_RWBUF_CSAVE_MAX_QUEUES: %2d\n",
+	                     TCP_CFG_RWBUF_CSAVE_MAX_QUEUES);
+#else
+	cons_printf(portid, "TCP_CFG_RWBUF_CSAVE_MAX_QUEUES: Undefined\n");
+#endif
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_SWBUF_CSAVE:  ");
+#if defined(TCP_CFG_SWBUF_CSAVE_ONLY)
+	cons_printf(portid, "Only, TCP_CFG_SWBUF_CSAVE_MAX_SIZE: %4d\n"
+	                    "                        "
+	                    "      TCP_CFG_SWBUF_CSAVE_MIN_SIZE: %4d\n",
+	                    TCP_CFG_SWBUF_CSAVE_MAX_SIZE, 
+                            TCP_CFG_SWBUF_CSAVE_MIN_SIZE);
+#elif defined(TCP_CFG_SWBUF_CSAVE)
+	cons_printf(portid, "On,   TCP_CFG_SWBUF_CSAVE_MAX_SIZE: %4d\n"
+	                    "                        "
+	                    "      TCP_CFG_SWBUF_CSAVE_MIN_SIZE: %4d\n",
+	                    TCP_CFG_SWBUF_CSAVE_MAX_SIZE, 
+                            TCP_CFG_SWBUF_CSAVE_MIN_SIZE);
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_NON_BLOCKING: ");
+#if defined(TCP_CFG_NON_BLOCKING)
+#if defined(USE_TCP_NON_BLOCKING)
+	cons_printf(portid, "Use\n");
+#else
+	cons_printf(portid, "On\n");
+#endif
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_NON_BLOCKING_COMPAT14: ");
+#if defined(TCP_CFG_NON_BLOCKING_COMPAT14)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  TCP_CFG_EXTENTIONS:   ");
+#if defined(TCP_CFG_EXTENTIONS)
+#if defined(USE_TCP_EXTENTIONS)
+	cons_printf(portid, "Use\n");
+#if defined(SUPPORT_INET6)
+	cons_printf(portid, "  NUM_VRID_TCP6_REPS:   %3d\n", NUM_VRID_TCP6_REPS);
+	cons_printf(portid, "  NUM_VRID_TCP6_CEPS:   %3d\n", NUM_VRID_TCP6_CEPS);
+#endif
+#if defined(SUPPORT_INET4)
+	cons_printf(portid, "  NUM_VRID_TCP4_REPS:   %3d\n", NUM_VRID_TCP4_REPS);
+	cons_printf(portid, "  NUM_VRID_TCP4_CEPS:   %3d\n", NUM_VRID_TCP4_CEPS);
+#endif
+#else
+	cons_printf(portid, "On\n");
+#endif
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  USE_COPYSAVE_API:     ");
+#if defined(USE_COPYSAVE_API)
+	cons_printf(portid, "Use\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#if NUM_TCP_TW_CEP_ENTRY > 0
+	cons_printf(portid, "  TCP_TW_CEP:           On, NUM_TCP_TW_CEP_ENTRY:     %d\n", NUM_TCP_TW_CEP_ENTRY);
+#else
+	cons_printf(portid, "  TCP_TW_CEP:           Off\n");
+#endif
+
+#if defined(TCP_CFG_TRACE)
+	cons_printf(portid, "  TCP_CFG_TRACE:        On, TCP_CFG_TRACE_LPORTNO:    %d\n", TCP_CFG_TRACE_LPORTNO);
+#if defined(SUPPORT_INET4)
+	addr = TCP_CFG_TRACE_IPV4_RADDR;
+	cons_printf(portid, "                            TCP_CFG_TRACE_IPV4_RADDR: %hI\n", &addr);
+#endif
+	cons_printf(portid, "                            TCP_CFG_TRACE_RPORTNO:    %d\n", TCP_CFG_TRACE_RPORTNO);
+#else
+	cons_printf(portid, "  TCP_CFG_TRACE:        Off\n");
+#endif
+
+	cons_printf(portid, "  MAX_TCP_SND_SEG:      %4d\n", MAX_TCP_SND_SEG);
+	cons_printf(portid, "  DEF_TCP_SND_SEG:      %4d\n", DEF_TCP_SND_SEG);
+	cons_printf(portid, "  MAX_TCP_RCV_SEG:      %4d\n", MAX_TCP_RCV_SEG);
+	cons_printf(portid, "  DEF_TCP_RCV_SEG:      %4d\n", DEF_TCP_RCV_SEG);
+	cons_printf(portid, "  MAX_TCP_REALLOC_SIZE: %4d\n", MAX_TCP_REALLOC_SIZE);
+
+#endif	/* of #if defined(SUPPORT_TCP) */
+
+#if defined(SUPPORT_UDP)
+
+	cons_printf(portid, "UDP:\n");
+
+	cons_printf(portid, "  UDP_CFG_IN_CHECKSUM:  ");
+#if defined(UDP_CFG_IN_CHECKSUM)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  UDP_CFG_OUT_CHECKSUM: ");
+#if defined(UDP_CFG_OUT_CHECKSUM)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  UDP_CFG_NON_BLOCKING: ");
+#if defined(UDP_CFG_NON_BLOCKING)
+#if defined(USE_UDP_NON_BLOCKING)
+	cons_printf(portid, "Use\n");
+#else
+	cons_printf(portid, "On\n");
+#endif
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  UDP_CFG_NON_BLOCKING_COMPAT14: ");
+#if defined(UDP_CFG_NON_BLOCKING_COMPAT14)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  UDP_CFG_EXTENTIONS:   ");
+#if defined(UDP_CFG_EXTENTIONS)
+#if defined(USE_UDP_EXTENTIONS)
+	cons_printf(portid, "Use\n");
+#else
+	cons_printf(portid, "On\n");
+#endif
+	cons_printf(portid, "  NUM_VRID_UDP4_CEPS:   %3d\n", NUM_VRID_UDP4_CEPS);
+	cons_printf(portid, "  NUM_VRID_UDP6_CEPS:   %3d\n", NUM_VRID_UDP6_CEPS);
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  NUM_DTQ_UDP_RCVQ:     %3d\n", NUM_DTQ_UDP_RCVQ);
+	cons_printf(portid, "  NUM_DTQ_UDP_OUTPUT:   %3d\n", NUM_DTQ_UDP_OUTPUT);
+
+#endif	/* of #if defined(SUPPORT_UDP) */
+
+	cons_printf(portid, "ICMP:\n");
+
+	cons_printf(portid, "  ICMP_CFG_CALLBACK_ECHO_REPLY: ");
+#if defined(ICMP_CFG_CALLBACK_ECHO_REPLY)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  ICMP_REPLY_ERROR:             ");
+#if defined(ICMP_REPLY_ERROR)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#if defined(NUM_REDIRECT_ROUTE_ENTRY)
+#if NUM_REDIRECT_ROUTE_ENTRY > 0
+	cons_printf(portid, "  TMO_IN_REDIRECT: %4d[s]\n", TMO_IN_REDIRECT / NET_TIMER_HZ);
+#endif
+#endif	/* of #if defined(NUM_REDIRECT_ROUTE_ENTRY) */
+
+#if defined(SUPPORT_INET6)
+
+	cons_printf(portid, "IPv6:\n");
+
+	cons_printf(portid, "  IP6_IPV4_MAPPED_ADDR:   ");
+#if defined(IP6_CFG_IPV4_MAPPED_ADDR)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  Routing Table:\n");
+	cons_printf(portid, "    NUM_IN6_STATIC_ROUTE_ENTRY:   %d\n", NUM_IN6_STATIC_ROUTE_ENTRY);
+	cons_printf(portid, "    NUM_IN6_REDIRECT_ROUTE_ENTRY: %d\n", NUM_IN6_REDIRECT_ROUTE_ENTRY);
+
+	cons_printf(portid, "ND:\n");
+	cons_printf(portid, "  TMO_ND6_RTR_SOL_DELAY:    %5d[ms]\n", TMO_ND6_RTR_SOL_DELAY);
+	cons_printf(portid, "  TMO_ND6_RTR_SOL_INTERVAL: %5d[ms]\n", TMO_ND6_RTR_SOL_INTERVAL);
+	cons_printf(portid, "  NUM_IP6_DAD_COUNT:        %5d\n",     NUM_IP6_DAD_COUNT);
+	cons_printf(portid, "  NUM_ND6_CACHE_ENTRY:      %5d\n",     NUM_ND6_CACHE_ENTRY);
+
+#if defined(SUPPORT_ETHER)
+
+	cons_printf(portid, "  NUM_ND6_DEF_RTR_ENTRY     %5d\n",     NUM_ND6_DEF_RTR_ENTRY);
+	cons_printf(portid, "  NUM_ND6_RTR_SOL_RETRY     %5d\n",     NUM_ND6_RTR_SOL_RETRY);
+
+	cons_printf(portid, "  IP6_CFG_AUTO_LINKLOCAL: ");
+#if defined(IP6_CFG_AUTO_LINKLOCAL)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#endif	/* of #if defined(SUPPORT_ETHER) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+	cons_printf(portid, "IPv4:\n");
+
+	cons_printf(portid, "  IP4_CFG_FRAGMENT: ");
+
+#if defined(IP4_CFG_FRAGMENT)
+	cons_printf(portid, "On\n");
+	cons_printf(portid, "    NUM_IP4_FRAG_QUEUE:       %4d\n", NUM_IP4_FRAG_QUEUE);
+	cons_printf(portid, "    IP4_CFG_FRAG_REASSM_SIZE: %4d\n", IP4_CFG_FRAG_REASSM_SIZE);
+#else
+	cons_printf(portid, "Off\n");
+#endif	/* of #if defined(IP4_CFG_FRAGMENT) */
+
+#if defined(SUPPORT_ETHER)
+	addr = IPV4_ADDR_LOCAL;
+	cons_printf(portid, "  IPV4_ADDR_LOCAL:      %hI\n", &addr);
+	addr = IPV4_ADDR_LOCAL_MASK;
+	cons_printf(portid, "  IPV4_ADDR_LOCAL_MASK: %hI\n", &addr);
+	addr = IPV4_ADDR_DEFAULT_GW;
+	cons_printf(portid, "  IPV4_ADDR_DEFAULT_GW: %hI\n", &addr);
+#endif	/* of #if defined(SUPPORT_ETHER) */
+
+	cons_printf(portid, "  Routing Table:\n");
+	cons_printf(portid, "    NUM_IN4_STATIC_ROUTE_ENTRY:   %d\n", NUM_IN4_STATIC_ROUTE_ENTRY);
+	cons_printf(portid, "    NUM_IN4_REDIRECT_ROUTE_ENTRY: %d\n", NUM_IN4_REDIRECT_ROUTE_ENTRY);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET4) && defined(SUPPORT_ETHER)
+
+	cons_printf(portid, "ARP:\n");
+	cons_printf(portid, "  ARP_CACHE_KEEP: %4d[s]\n", ARP_CACHE_KEEP / NET_TIMER_HZ);
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(SUPPORT_ETHER) */
+
+#if defined(SUPPORT_ETHER)
+
+	cons_printf(portid, "Ethernet:\n");
+
+	cons_printf(portid, "  NUM_DTQ_ETHER_OUTPUT:    %3d\n", NUM_DTQ_ETHER_OUTPUT);
+
+	cons_printf(portid, "  ETHER_CFG_ACCEPT_ALL:    ");
+#if defined(ETHER_CFG_ACCEPT_ALL)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  ETHER_CFG_UNEXP_WARNING: ");
+#if defined(ETHER_CFG_UNEXP_WARNING)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  ETHER_CFG_802_WARNING:   ");
+#if defined(ETHER_CFG_802_WARNING)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  ETHER_CFG_MCAST_WARNING: ");
+#if defined(ETHER_CFG_MCAST_WARNING)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	cons_printf(portid, "  ETHER_COLLECT_ADDR:      ");
+#if defined(ETHER_COLLECT_ADDR)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#endif	/* of #if defined(SUPPORT_ETHER) */
+
+#if defined(SUPPORT_PPP)
+
+	cons_printf(portid, "PPP:\n");
+
+	cons_printf(portid, "  HDLC_PORTNO: %d", HDLC_PORTID);
+
+	cons_printf(portid, "  PPP_IDLE_TIMEOUT: ");
+#if defined(PPP_IDLE_TIMEOUT)
+	cons_printf(portid, "  %4d[s]\n", PPP_IDLE_TIMEOUT / NET_TIMER_HZ);
+#else
+	cons_printf(portid, "  Off\n");
+#endif
+
+	cons_printf(portid, "  PPP_CFG_MODEM: ");
+#if defined(PPP_CFG_MODEM)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+#endif	/* of #if defined(SUPPORT_PPP) */
+
+	cons_printf(portid, "Network Buffer:\n");
+
+#if defined(NUM_MPF_NET_BUF_64)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_64:        %2d\n", NUM_MPF_NET_BUF_64);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_CSEG)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_CSEG:      %2d\n", NUM_MPF_NET_BUF_CSEG);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_128)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_128:       %2d\n", NUM_MPF_NET_BUF_128);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_256)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_256:       %2d\n", NUM_MPF_NET_BUF_256);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_512)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_512:       %2d\n", NUM_MPF_NET_BUF_512);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_IP_MSS)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_IP_MSS:    %2d\n", NUM_MPF_NET_BUF_IP_MSS);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_1024)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_1024:      %2d\n", NUM_MPF_NET_BUF_1024);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_IPV6_MMTU)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_IPV6_MMTU: %2d\n", NUM_MPF_NET_BUF_IPV6_MMTU);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_IF_PDU)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_IF_PDU:    %2d\n", NUM_MPF_NET_BUF_IF_PDU);
+#endif
+
+#if defined(NUM_MPF_NET_BUF_REASSM)
+	cons_printf(portid, "  NUM_MPF_NET_BUF_REASSM:    %2d\n", NUM_MPF_NET_BUF_REASSM);
+#endif
+
+#if defined(NUM_MPF_NET_BUF6_65536)
+	cons_printf(portid, "  NUM_MPF_NET_BUF6_65536:    %2d\n", NUM_MPF_NET_BUF6_65536);
+#endif
+
+	cons_printf(portid, "Network Counter Mask: %08x\n", NET_COUNT_ENABLE);
+
+	cons_printf(portid, "SUPPORT_MIB: ");
+#if defined(SUPPORT_MIB)
+	cons_printf(portid, "On\n");
+#else
+	cons_printf(portid, "Off\n");
+#endif
+
+	SIG_NET_CONS_PRINTF();
+	FLUSH_SND_BUFF();
+	}
+
+#ifdef USE_PING
+
+/*
+ *  ping ã³ãã³ã
+ */
+
+void
+dbg_cons_ping_comd (ID portid, char *line)
+{
+	int_t	tmo, size;
+	char	apip = DEFAULT_API_PROTO;
+
+#if defined(SUPPORT_INET6)
+	T_IN6_ADDR	addr;
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	addr4;
+#endif
+#else
+	T_IN4_ADDR	addr;
+#endif
+
+#if defined(PING_CFG_I6RLP)
+
+	static const char i6rlp_pmtu_str1[] = " FF1E::1:2 1 1452";
+	static const char i6rlp_pmtu_str2[] = " FF1E::1:2 1 1352";
+	static const char i6rlp_pmtu_str3[] = " fe80::0200:00ff:fe00:0100 1 2";
+
+	if      (apip == '1')
+		strcpy(line, i6rlp_pmtu_str1);
+	else if (apip == '2')
+		strcpy(line, i6rlp_pmtu_str2);
+	else if (apip == '3')
+		strcpy(line, i6rlp_pmtu_str3);
+
+#endif	/* of #ifdef PING_CFG_I6RLP */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if ('0' <= *line && *line <= '9') {
+		if (*line == '6')
+			apip = API_PROTO_IPV6;
+		if (*line == '4')
+			apip = API_PROTO_IPV4;
+		line ++;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	if ((line = lookup_ipaddr(&addr, line, apip)) == NULL) {
+		syslog(LOG_NOTICE, "[PING] unknown host.");
+		return;
+		}
+
+	line = skip_blanks(line);
+	if ('0' <= *line && *line <= '9')
+		line = get_int(&tmo, line);
+	else
+		tmo = 3;
+
+	line = skip_blanks(line);
+	if ('0' <= *line && *line <= '9')
+		line = get_int(&size, line);
+	else
+		size = 64;
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+	if (apip == API_PROTO_IPV6) {
+		syslog(LOG_NOTICE, "[PING6] size: %d, tmo: %d, host: %s", size, tmo, ipv62str(NULL, &addr));
+		ping6(&addr, (uint_t)tmo, (uint_t)size);
+		}
+	else {
+		addr4 = ntohl(addr.s6_addr32[3]);
+		syslog(LOG_NOTICE, "[PING4] size: %d, tmo: %d, host: %s", size, tmo, ip2str(NULL, &addr4));
+		ping4(&addr4, (uint_t)tmo, (uint_t)size);
+		}
+
+#else /* of #if defined(SUPPORT_INET4) */
+
+	syslog(LOG_NOTICE, "[PING6] size: %d, tmo: %d, host: %s", size, tmo, ipv62str(NULL, &addr));
+	ping6(&addr, (uint_t)tmo, (uint_t)size);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+
+	syslog(LOG_NOTICE, "[PING4] size: %d, tmo: %d, host: %s", size, tmo, ip2str(NULL, &addr));
+	ping4(&addr, (uint_t)tmo, (uint_t)size);
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+	}
+
+#endif	/* of #ifdef USE_PING */
+
+#ifdef USE_DBG_CONS_PARSER
+
+/*
+ *  ãããã°ã³ãã³ãè§£æ
+ */
+
+void
+dbg_parse (ID portid, char *line)
+{
+	int_t	cepid;
+	ER	error = E_OK;
+
+#if defined(SUPPORT_UDP) && defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+	int_t	udp_cep_ipproto;
+#endif
+
+	switch (*line) {
+
+	case 'c':		/* cancel CEP */
+		switch (*(line + 1)) {
+
+		case 'f':	/* show configurations */
+			dbg_cons_show_config(portid, line + 1);
+			break;
+
+#ifdef SUPPORT_TCP
+
+		case 't':	/* cancel TCP */
+			cepid = atoi(line = skip_blanks(line + 2));
+			while ('0' <= *line && *line <= '9')
+				line ++;
+			if ((error = tcp_can_cep((ID)cepid, atoi(skip_blanks(line)))) != E_OK && error != E_RLWAI) {
+				cons_printf(portid, "[TCP CAN CEP] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+			break;
+
+#endif	/* of #ifdef SUPPORT_TCP */
+
+#ifdef SUPPORT_UDP
+
+		case 'u':	/* cancel UDP */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+			udp_cep_ipproto = (*(line + 2) == '4' ? API_PROTO_IPV4 : API_PROTO_IPV6);
+			cepid = atoi(line = skip_blanks(line + 3));
+			while ('0' <= *line && *line <= '9')
+				line ++;
+
+#if TNUM_UDP6_CEPID > 0
+
+			if (udp_cep_ipproto == API_PROTO_IPV6) {
+				if ((error = udp_can_cep((ID)cepid, atoi(skip_blanks(line)))) != E_OK && error != E_RLWAI) {
+					cons_printf(portid, "[UDP CAN CEP] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				}
+
+#endif	/* of #if TNUM_UDP6_CEPID > 0 */
+
+#if TNUM_UDP4_CEPID > 0
+
+			if (udp_cep_ipproto == API_PROTO_IPV4) {
+				if ((error = udp_can_cep((ID)cepid, atoi(skip_blanks(line)))) != E_OK && error != E_RLWAI) {
+					cons_printf(portid, "[UDP CAN CEP] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				}
+
+#endif	/* of #if TNUM_UDP4_CEPID > 0 */
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+#if TNUM_UDP6_CEPID > 0
+
+			cepid = atoi(line = skip_blanks(line + 2));
+			while ('0' <= *line && *line <= '9')
+				line ++;
+
+			if ((error = udp_can_cep((ID)cepid, atoi(skip_blanks(line)))) != E_OK && error != E_RLWAI) {
+				cons_printf(portid, "[UDP CAN CEP] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+
+#endif	/* of #if TNUM_UDP6_CEPID > 0 */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#if TNUM_UDP4_CEPID > 0
+
+			cepid = atoi(line = skip_blanks(line + 2));
+			while ('0' <= *line && *line <= '9')
+				line ++;
+
+			if ((error = udp_can_cep((ID)cepid, atoi(skip_blanks(line)))) != E_OK && error != E_RLWAI) {
+				cons_printf(portid, "[UDP CAN CEP] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+
+#endif	/* of #if TNUM_UDP4_CEPID > 0 */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+			break;
+
+#endif	/* of #ifdef SUPPORT_UDP */
+
+			}
+
+		break;
+
+	case 'd':	/* discard client */
+		switch (*(line + 1)) {
+
+#if defined(SUPPORT_PPP)
+
+		case 'c':		/* disconnect */
+			if (lcp_fsm.state != PPP_FSM_STOPPED)
+				lcp_close();
+			break;
+
+#endif	/* of #if defined(SUPPORT_PPP) */
+
+#if defined(SUPPORT_ETHER) && defined(USE_NET_CONS)
+
+		case 'c':		/* disconnect */
+			discon_net_cons();
+			break;
+
+#endif	/* of #if defined(SUPPORT_ETHER) && defined(USE_NET_CONS) */
+
+#if defined(DHCP6_CLI_CFG) || defined(DHCP4_CLI_CFG)
+
+		case 'h':		/* DHCP client */
+			dhcpc(portid, line + 2);
+			break;
+
+#endif	/* of #if defined(DHCP6_CLI_CFG) || defined(DHCP4_CLI_CFG) */
+
+#ifdef USE_TCP_DISCARD_CLI
+
+		case 't':	/* TCP discard client */
+			line += 2;
+			switch (*line) {
+
+			case 's':	/* cancel TCP discard client */
+				tcp_discard_cli_valid = false;
+				break;
+
+			default:
+				if ((error = psnd_dtq(DTQ_TCP_DISCARD_CLI, (intptr_t)line)) != E_OK) {
+					cons_printf(portid, "[TCP DISCARD CLI] error: %s.\n",
+					       itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+
+				}
+			break;
+
+#endif	/* of #ifdef USE_TCP_DISCARD_CLI */
+
+#ifdef USE_UDP_DISCARD_CLI
+
+		case 'u':	/* UDP discard client */
+			line += 2;
+			switch (*line) {
+
+			case 's':	/* cancel UDP discard client */
+				udp_discard_cli_valid = false;
+				break;
+
+			default:
+				if ((error = psnd_dtq(DTQ_UDP_DISCARD_CLI, (intptr_t)line)) != E_OK) {
+					cons_printf(portid, "[UDP DISCARD CLI] error: %s.\n",
+					       itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+
+				}
+			break;
+
+#endif	/* of #ifdef USE_UDP_DISCARD_CLI */
+
+			}
+
+		break;
+
+#if defined(USE_TCP_ECHO_CLI) || defined(USE_UDP_ECHO_CLI)
+
+	case 'e':	/* echo client */
+		switch (*(line + 1)) {
+
+#ifdef USE_TCP_ECHO_CLI
+
+		case 't':	/* TCP echo client */
+			line += 2;
+			switch (*line) {
+
+			case 's':	/* cancel TCP echo */
+				tcp_echo_cli_valid = false;
+				break;
+
+			default:
+				if ((error = psnd_dtq(DTQ_TCP_ECHO_CLI_SND, (intptr_t)line)) != E_OK) {
+					cons_printf(portid, "[TCP ECHO CLI] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+
+				}
+			break;
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
+
+#if defined(USE_UDP_ECHO_CLI)
+
+		case 'u':	/* UDP echo client */
+			switch (*(line + 2)) {
+
+			case 's':	/* cancel UDP echo */
+
+#if defined(USE_UDP6_ECHO_CLI_TSK)
+
+#if defined(USE_UDP4_ECHO_CLI_TSK)
+
+				if (*(line + 3) == '4')
+					udp4_echo_cli_valid = false;
+				else
+					udp6_echo_cli_valid = false;
+
+#else	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
+
+				udp6_echo_cli_valid = false;
+
+#endif	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
+
+#else	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
+
+#if defined(USE_UDP4_CLI_TSK)
+
+				udp4_echo_cli_valid = false;
+
+#endif	/* of #if defined(USE_UDP4_CLI_TSK) */
+
+#endif	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
+
+
+				break;
+
+			default:
+
+				line += 2;
+
+#if defined(USE_UDP6_ECHO_CLI_TSK)
+
+#if defined(USE_UDP4_ECHO_CLI_TSK)
+
+				if (*line == '4') {
+					line ++;
+					error = psnd_dtq(DTQ_UDP4_ECHO_CLI, (intptr_t)line);
+					}
+				else {
+					if (*line && *line != ' ')
+						line ++;
+					error = psnd_dtq(DTQ_UDP6_ECHO_CLI, (intptr_t)line);
+					}
+
+#else	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
+
+				if (*line && *line != ' ')
+					line ++;
+				error = psnd_dtq(DTQ_UDP6_ECHO_CLI, (intptr_t)line);
+
+#endif	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
+
+#else	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
+
+				if (*line && *line != ' ')
+					line ++;
+				error = psnd_dtq(DTQ_UDP4_ECHO_CLI, (intptr_t)line);
+
+#endif	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
+
+				if (error != E_OK) {
+					cons_printf(portid, "[UDP ECHO CLI] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+
+				break;
+
+				}
+			break;
+
+#endif	/* of #if defined(USE_UDP_ECHO_CLI) */
+
+			}
+
+		break;
+
+#endif	/* of #if defined(USE_TCP_ECHO_CLI) || defined(USE_UDP_ECHO_CLI) */
+
+	case 'i':
+
+		if (*(line + 1) == 'f') {
+
+			dbg_cons_ifconfig (portid, line + 2);
+
+#if defined(NETAPP_IP6_CFG)
+			dbg_cons_ifconfig6(portid, line + 2);
+#endif
+
+#if defined(NETAPP_IP4_CFG)
+			dbg_cons_ifconfig4(portid, line + 2);
+#endif
+
+			}
+
+#ifdef SUPPORT_PPP
+
+#ifdef PPP_CFG_MODEM
+
+		else if (lcp_fsm.state == PPP_FSM_STOPPED)
+			dial();		/* initiate */
+
+#else	/* of #ifdef PPP_CFG_MODEM */
+
+		else if (lcp_fsm.state == PPP_FSM_STOPPED)
+			lcp_open(PPP_OPEN_ACTIVE);
+
+#endif	/* of #ifdef PPP_CFG_MODEM */
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+		break;
+
+	case 'n':		/* network status */
+		dbg_cons_network_status(portid, line + 1);
+		break;
+
+	case 'p':		/* ping or task status */
+
+		if (*(line + 1) == 's')
+			dbg_cons_task_status(portid, skip_blanks(line + 2));
+
+#ifdef USE_PING
+
+		else
+			dbg_cons_ping_comd(portid, line + 1);
+
+#endif	/* of #ifdef USE_PING */
+
+		break;
+
+	case 'r':		/* release wait task */
+		if ((error = rel_wai(atoi(skip_blanks(line + 1)))) != E_OK) {
+			cons_printf(portid, "[REL WAI TSK] error: %s.\n", itron_strerror(error));
+			SIG_NET_CONS_PRINTF();
+			FLUSH_SND_BUFF();
+			}
+		break;
+
+	case 't':		/* terminate (delete) REP/CEP */
+		switch (*(line + 1)) {
+
+#ifdef USE_TCP_EXTENTIONS
+
+		case 't':		/* TCP REP */
+	
+			error = tcp_del_rep(atoi(skip_blanks(line + 2)));
+			if (error != E_OK) {
+				cons_printf(portid, "[TCP DEL REP] ID: %d, error: %s.\n", 
+				                    atoi(skip_blanks(line + 2)),
+				                    itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+			break;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+		case 'u':		/* UDP CEP */
+
+#if defined(USE_UDP6_ECHO_SRV_TSK)
+
+#if defined(USE_UDP4_ECHO_SRV_TSK)
+
+			if (*(line + 2) == '4') {
+				if ((error = udp_del_cep(atoi(skip_blanks(line + 3)))) != E_OK) {
+					cons_printf(portid, "[UDP DEL CEP] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				}
+			else {
+				if ((error = udp6_del_cep(atoi(skip_blanks(line + 2)))) != E_OK) {
+					cons_printf(portid, "[UDP DEL CEP] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				}
+
+#else	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+			if ((error = udp6_del_cep(atoi(skip_blanks(line + 2)))) != E_OK) {
+				cons_printf(portid, "[UDP DEL CEP] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+
+#endif	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+#else	/* of #if defined(USE_UDP6_ECHO_SRV_TSK) */
+
+#if defined(USE_UDP4_ECHO_SRV_TSK)
+
+			if ((error = udp_del_cep(atoi(skip_blanks(line + 2)))) != E_OK) {
+				cons_printf(portid, "[UDP DEL CEP] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+
+#endif	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+#endif	/* of #if defined(USE_UDP6_ECHO_SRV_TSK) */
+
+			break;
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+			}
+		break;
+
+#if defined(USE_TCP_EXTENTIONS) || defined(USE_UDP_EXTENTIONS)
+
+	case 'w':		/* wakeup server */
+				/* wake up task */
+		switch (*(line + 1)) {
+
+#ifdef USE_TCP_EXTENTIONS
+
+		case 't':		/* tcp server */
+			switch (*(line + 2)) {
+
+#ifdef USE_TCP_DISCARD_SRV
+			case 'd':		/* tcp discard server */
+				if ((error = wup_tsk(TCP_DISCARD_SRV_TASK)) != E_OK) {
+					//cons_printf(portid, "[WUP TCP DISCARD SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+#endif	/* of #ifdef USE_TCP_DISCARD_SRV */
+
+#if defined(USE_TCP_ECHO_SRV1)
+			case 'e':		/* tcp echo server */
+				if ((error = wakeup_tcp_echo_srv((*(line + 3) == '4' ? API_PROTO_IPV4 : API_PROTO_IPV6))) != E_OK) {
+					//cons_printf(portid, "[WUP TCP ECHO SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
+
+#if defined(USE_TCP_ECHO_SRV2)
+			case 'e':		/* tcp echo server */
+				if ((error = wup_tsk(TCP_ECHO_SRV_TASK2)) != E_OK) {
+					//cons_printf(portid, "[WUP TCP ECHO SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+#endif	/* of #if defined(USE_TCP_ECHO_SRV2) */
+
+#ifdef USE_WWW_SRV
+			case 'w':		/* WWW server */
+				if ((error = wakeup_www_srv((*(line + 3) == '4' ? API_PROTO_IPV4 : API_PROTO_IPV6))) != E_OK) {
+					//cons_printf(portid, "[WUP WWW SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+				break;
+#endif	/* of #ifdef USE_TCP_DISCARD_SRV */
+
+				}
+			break;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+		case 'u':		/* udp server */
+			switch (*(line + 2)) {
+
+#if !defined(USE_UDP_CALL_BACK)
+
+			case 'e':		/* udp echo server */
+
+#if defined(USE_UDP6_ECHO_SRV_TSK)
+
+#if defined(USE_UDP4_ECHO_SRV_TSK)
+
+				if (*(line + 3) == '4') {
+					if ((error = wup_tsk(UDP4_ECHO_SRV_TASK)) != E_OK) {
+						cons_printf(portid, "[WUP UDP4 ECHO SRV] error: %s.\n", itron_strerror(error));
+						SIG_NET_CONS_PRINTF();
+						FLUSH_SND_BUFF();
+						}
+					}
+				else {
+					if ((error = wup_tsk(UDP6_ECHO_SRV_TASK)) != E_OK) {
+						cons_printf(portid, "[WUP UDP6 ECHO SRV] error: %s.\n", itron_strerror(error));
+						SIG_NET_CONS_PRINTF();
+						FLUSH_SND_BUFF();
+						}
+					}
+
+#else	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+				if ((error = wup_tsk(UDP6_ECHO_SRV_TASK)) != E_OK) {
+					cons_printf(portid, "[WUP UDP6 ECHO SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+
+#endif	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+#else	/* of #if defined(USE_UDP6_ECHO_SRV_TSK) */
+
+#if defined(USE_UDP4_ECHO_SRV_TSK)
+
+				if ((error = wup_tsk(UDP4_ECHO_SRV_TASK)) != E_OK) {
+					cons_printf(portid, "[WUP UDP4 ECHO SRV] error: %s.\n", itron_strerror(error));
+					SIG_NET_CONS_PRINTF();
+					FLUSH_SND_BUFF();
+					}
+
+#endif	/* of #if defined(USE_UDP4_ECHO_SRV_TSK) */
+
+#endif	/* of #if defined(USE_UDP6_ECHO_SRV_TSK) */
+
+				break;
+
+#endif	/* of #if !defined(USE_UDP_CALL_BACK) */
+
+				}
+			break;
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+		default:
+			if ((error = wup_tsk(atoi(skip_blanks(line + 1)))) != E_OK) {
+				cons_printf(portid, "[WUP TSK] error: %s.\n", itron_strerror(error));
+				SIG_NET_CONS_PRINTF();
+				FLUSH_SND_BUFF();
+				}
+			break;
+
+			}
+		break;
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) || defined(USE_UDP_EXTENTIONS) */
+
+	case 'w':		/* wake up task */
+		if ((error = wup_tsk(atoi(skip_blanks(line + 1)))) != E_OK) {
+			cons_printf(portid, "[WUP TSK] error: %s.\n", itron_strerror(error));
+			SIG_NET_CONS_PRINTF();
+			FLUSH_SND_BUFF();
+			}
+		break;
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) || defined(USE_UDP_EXTENTIONS) */
+
+	default:
+
+		if (*line) {
+
+#ifdef USE_DBG_CONS_EXTRA_PARSE
+
+			//cons_printf(portid, "extra command: '%c'.\n", *line);
+			dbg_cons_extra_parse(portid, line);
+
+#else	/* of #ifdef USE_DBG_CONS_EXTRA_PARSE */
+
+			//cons_printf(portid, "command: '%c'.\n", *line);
+			cons_printf(portid, "no such command: '%c'.\n", *line);
+			SIG_NET_CONS_PRINTF();
+			FLUSH_SND_BUFF();
+
+#endif	/* of #ifdef USE_DBG_CONS_EXTRA_PARSE */
+
+			}
+		break;
+		}
+	}
+
+#endif	/* of #ifdef USE_DBG_CONS_PARSER */
+
+/*
+ *  ãããã°ã³ã³ã½ã¼ã«ã¿ã¹ã¯
+ */
+
+void
+dbg_con_task (intptr_t exinf)
+{
+	static char line[DBG_LINE_SIZE + 1];
+
+	ID	tskid;
+
+#ifdef USE_LCD
+#ifdef SUPPORT_ETHER
+
+#if 0
+#if defined(SUPPORT_INET6)
+
+	uint32_t	lllen;
+	const uint8_t	*lladdr;
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+#endif
+
+	lcd_initialize(0);
+
+#if 0
+#if defined(SUPPORT_INET6)
+
+	dly_tsk(1 * 1000);
+	lladdr = IF_ETHER_NIC_GET_SOFTC()->ifaddr.lladdr;
+	for (lllen = ETHER_ADDR_LEN; lllen --; )
+		lcd_printf(LCD_PORTID, "%02x", *lladdr ++);
+	lcd_putc(LCD_PORTID, '\n');
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+	if ((TINET_PRVER & UINT_C(0x0f)) > 0)
+		lcd_printf(LCD_PORTID, "TINET-%d.%d.%d\n",
+		       (TINET_PRVER   >> 12) & UINT_C(0x0f),
+		       (TINET_PRVER   >>  4) & UINT_C(0x0f),
+		        TINET_PRVER          & UINT_C(0x0f));
+	else
+		lcd_printf(LCD_PORTID, "TINET-%d.%d\n",
+		       (TINET_PRVER   >> 12) & UINT_C(0x0f),
+		       (TINET_PRVER   >>  4) & UINT_C(0x0f));
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+#endif
+
+#if 0
+#if defined(SUPPORT_INET4)
+
+	dly_tsk(1 * 1000);
+	lcd_puts(LCD_PORTID, ip2str(NULL, in4_get_ifaddr(0)));
+	lcd_putc(LCD_PORTID, '\n');
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+#endif
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+#endif	/* of #ifdef USE_LCD */
+
+	get_tid(&tskid);
+	cons_printf(CONSOLE_PORTID, "[CONSOLE:%d] started.\n", tskid);
+	serial_ctl_por(CONSOLE_PORTID,
+	               IOCTL_ECHO  | IOCTL_CRLF  |
+	               IOCTL_FCSND | IOCTL_FCANY | IOCTL_FCRCV);
+	netapp_srand (tskid);
+	while (true) {
+		cons_getline(CONSOLE_PORTID, line, DBG_LINE_SIZE);
+		dbg_parse(CONSOLE_PORTID, line);
+		}
+	}
+
+#endif	/* of #ifdef USE_DBG_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.cfg	(revision 313)
@@ -0,0 +1,63 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã°ã³ã³ã½ã¼ã«ã®ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_DBG_CONS
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(DBG_CON_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	dbg_con_task,
+	DBG_CON_PRIORITY,
+	DBG_CON_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_DBG_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dbg_cons.h	(revision 313)
@@ -0,0 +1,78 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _DBG_CONS_
+#define _DBG_CONS_
+
+/* 
+ *  ã³ã³ã½ã¼ã«
+ */
+
+#define	DBG_CON_STACK_SIZE	1024		/* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#define DBG_CON_PRIORITY	5		/* ã³ã³ã½ã¼ã«ã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	dbg_con_task (intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern void act_tasks (void);
+extern void dbg_parse (ID portid, char *line);
+extern void dbg_cons_extra_parse (ID portid, char *line);
+extern void dbg_cons_task_status (ID portid, char *line);
+extern void dbg_cons_network_status (ID portid, char *line);
+extern void dbg_cons_ifconfig (ID portid, char *line);
+extern void dbg_cons_ifconfig6 (ID portid, char *line);
+extern void dbg_cons_ifconfig4 (ID portid, char *line);
+extern void dbg_cons_show_config (ID portid, char *line);
+extern void dbg_cons_ping_comd (ID portid, char *line);
+
+#endif	/* of #ifndef _DBG_CONS_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4.h	(revision 313)
@@ -0,0 +1,387 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP4_H
+#define DHCP4_H
+
+/*
+ *  DHCP ã«é¢ããå®ç¾©
+ *
+ *    RFC2131
+ */
+
+/*
+ *  DHCP ã¡ãã»ã¼ã¸ã®å®æ°ã®å®ç¾©
+ */
+
+#define DHCP4_CHADDR_LEN	16
+#define DHCP4_SNAME_LEN		64
+#define DHCP4_FILE_LEN		128
+#define DHCP4_DFLT_OPT_LEN	312
+#define DHCP4_UDP_MSG_LENGTH	(sizeof(uint32_t)*7+DHCP4_CHADDR_LEN	\
+				 +DHCP4_SNAME_LEN+DHCP4_FILE_LEN+DHCP4_DFLT_OPT_LEN)
+#define DHCP4_SNAME_OFFSET	(sizeof(uint32_t)*7+DHCP4_CHADDR_LEN)
+#define DHCP4_FILE_OFFSET	(DHCP4_SNAME_OFFSET+DHCP4_SNAME_LEN)
+#define DHCP4_OPTION_OFFSET	(DHCP4_FILE_OFFSET+DHCP4_FILE_LEN)
+#define DHCP4_TIME_INFINITY	UINT_C(0xffffffff)
+
+/*
+ *  DHCP ã¡ãã»ã¼ã¸
+ */
+
+typedef struct dhcp4_msg {
+	uint8_t		op;			/* packet type			*/
+	uint8_t		htype;			/* hardware address type	*/
+	uint8_t		hlen;			/* hardware address length	*/
+	uint8_t		hops;			/* gateway hops			*/
+	uint32_t	xid;			/* transaction ID		*/
+	uint16_t	secs;			/* seconds since boot began	*/
+	uint16_t	flags;
+	uint32_t	ciaddr;			/* client IP address		*/
+	uint32_t	yiaddr;			/* your   IP address		*/
+	uint32_t	siaddr;			/* server IP address		*/
+	uint32_t	giaddr;			/* relay agent IP address	*/
+	uint8_t		chaddr [DHCP4_CHADDR_LEN];	/* client hardware address	*/
+	uint8_t		sname  [DHCP4_SNAME_LEN];	/* server host name		*/
+	uint8_t		file   [DHCP4_FILE_LEN];		/* boot file name		*/
+	uint8_t		options[DHCP4_DFLT_OPT_LEN];	/* optional parameters field	*/
+	} T_DHCP4_MSG;
+
+/* packet type ã®å®ç¾© */
+
+#define DHCP4_REQUEST		UINT_C(1)
+#define DHCP4_REPLY		UINT_C(2)
+
+/* hardware address type ã®å®ç¾© */
+
+#define DHCP4_HWA_TYPE_ETHER	UINT_C(1)
+#define DHCP4_HWA_TYPE_IEEE802	UINT_C(6)
+
+/*
+ *  DHCP ãªãã·ã§ã³
+ *
+ *    RFC1533
+ */
+
+/*
+ *  ãªãã·ã§ã³ã®ç©´åã
+ */
+#define DHCP4_OPT_PAD		UINT_C(0)
+
+/*
+ *  ãµãããããã¹ã¯
+ *
+ *     code   len   subnet mask
+ *   +------+-----+-----+-----+-----+-----+
+ *   |   1  |  4  |  m1 |  m2 |  m3 |  m4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_SUBNET_MASK	UINT_C(1)
+
+/*
+ *  ã«ã¼ã¿
+ *
+ *     code   len   addres #1               address #2
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ *   |   3  |  n  |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 | ...
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_ROUTER		UINT_C(3)
+
+/*
+ *  DNS ãµã¼ã
+ *
+ *     code   len   addres #1               address #2
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ *   |   6  |  n  |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 | ...
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_DNS_SERVER	UINT_C(6)
+
+/*
+ *  ãã¹ãå
+ *
+ *     code   len   host name
+ *   +------+-----+-----+-----+-----+-----+---
+ *   |  12  |  n  |  h1 |  h2 |  h3 |  h4 | ...
+ *   +------+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_HOST_NAME	UINT_C(12)
+
+/*
+ *  ãã¡ã¤ã³å
+ *
+ *     code   len   domain name
+ *   +------+-----+-----+-----+-----+-----+---
+ *   |  15  |  n  |  d1 |  d2 |  d3 |  d4 | ...
+ *   +------+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_DOMAIN_NAME	UINT_C(15)
+
+/*
+ *  ã«ã¼ã¿æ¢ç´¢
+ *
+ *     code   len  value
+ *   +------+-----+-----+
+ *   |  31  |  1  | 0/1 |
+ *   +------+-----+-----+
+ */
+#define DHCP4_OPT_RTR_DISOVERY	UINT_C(31)
+
+/*
+ *  éççµè·¯
+ *
+ *     code   len   destination #1          router #1
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ *   |  33  |  n  |  d1 |  d2 |  d3 |  d4 |  r1 |  r2 | ...
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_STATIC_ROUTE	UINT_C(33)
+
+/*
+ *  ãã³ãã¼åºææ
+å ±
+ *
+ *     code   len   vendor-specific informations
+ *   +------+-----+-----+-----+-----+---
+ *   |  43  |  n  |  i1 |  i2 |  i3 | ...  
+ *   +------+-----+-----+-----+-----+---
+ *
+ */
+#define DHCP4_OPT_VENDOR_INFO	UINT_C(43)
+
+/*
+ *  NetBIOS over TCP/IP ãã¼ã ãµã¼ã
+ *
+ *     code   len   addres #1               address #2
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ *   |  44  |  n  |  a1 |  a2 |  a3 |  a4 |  a1 |  a2 | ...
+ *   +------+-----+-----+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_NETBIOS_NS	UINT_C(44)
+
+/*
+ *  NetBIOS over TCP/IP ãã¼ãã¿ã¤ã
+ *
+ *     code   len   type
+ *   +------+-----+-----+
+ *   |  46  |  1  | type|
+ *   +------+-----+-----+
+ */
+#define DHCP4_OPT_NETBIOS_NODE	UINT_C(46)
+
+/*
+ *  NetBIOS over TCP/IP ã¹ã³ã¼ã
+ *
+ *     code   len   NetBIOS scope
+ *   +------+-----+-----+-----+-----+-----+---
+ *   |  44  |  n  |  s1 |  s2 |  s3 |  s4 |  ...
+ *   +------+-----+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_NETBIOS_SCOPE	UINT_C(47)
+
+/*
+ *  ç¹å®ã® IPv4 ã¢ãã¬ã¹è¦æ±
+ *
+ *     code   len   IPv4 address
+ *   +------+-----+-----+-----+-----+-----+
+ *   |  50  |  4  |  a1 |  a2 |  a3 |  a4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_REQ_IPV4	UINT_C(50)
+
+/*
+ *  ãªã¼ã¹æé
+ *
+ *     code   len   lease time
+ *   +------+-----+-----+-----+-----+-----+
+ *   |  51  |  4  |  t1 |  t2 |  t3 |  t4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_LEASE_TIME	UINT_C(51)
+
+/*
+ *  ãªãã·ã§ã³ãªã¼ãã¼ã­ã¼ã
+ *
+ *     code   len  value
+ *   +------+-----+-----+
+ *   |  52  |  1  | 1-3 |
+ *   +------+-----+-----+
+ */
+#define DHCP4_OPT_OPT_OVERLOAD	UINT_C(52)
+
+/* value ã®å®ç¾© */
+
+#define DHCP4_OPTOL_FILE	UINT_C(0x01)
+#define DHCP4_OPTOL_SNAME	UINT_C(0x02)
+#define DHCP4_OPTOL_BOTH	UINT_C(0x03)
+
+/*
+ *  DHCP ã¡ãã»ã¼ã¸ã¿ã¤ã
+ *
+ *     code   len   type
+ *   +------+-----+-----+
+ *   |  53  |  1  | 1-7 |
+ *   +------+-----+-----+
+ */
+#define DHCP4_OPT_MSG_TYPE	UINT_C(53)
+
+/* type ã®å®ç¾© */
+
+#define DHCP4_MTYPE_BOOTP	UINT_C(0)
+#define DHCP4_MTYPE_DISCOVER	UINT_C(1)
+#define DHCP4_MTYPE_OFFER	UINT_C(2)
+#define DHCP4_MTYPE_REQUEST	UINT_C(3)
+#define DHCP4_MTYPE_DECLINE	UINT_C(4)
+#define DHCP4_MTYPE_ACK		UINT_C(5)
+#define DHCP4_MTYPE_NAK		UINT_C(6)
+#define DHCP4_MTYPE_RELEASE	UINT_C(7)
+#define DHCP4_MTYPE_INFOMATION	UINT_C(8)
+
+/*
+ *  ãµã¼ã ID
+ *
+ *     code   len   IPv4 address
+ *   +------+-----+-----+-----+-----+-----+
+ *   |  54  |  4  |  a1 |  a2 |  a3 |  a4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_SERVER_ID	UINT_C(54)
+
+/*
+ *  è¦æ±ãã©ã¡ã¼ã¿ãªã¹ã
+ *
+ *     code   len   option code
+ *   +------+-----+-----+-----+-----+---
+ *   |  55  |  n  |  c1 |  c2 |  c3 | ...  
+ *   +------+-----+-----+-----+-----+---
+ *
+ */
+#define DHCP4_OPT_REQ_PARAM	UINT_C(55)
+
+/*
+ *  Renewal (T1) æé
+ *
+ *     code   len   T1 interval
+ *   +------+-----+-----+-----+-----+-----+
+ *   |  58  |  4  |  t1 |  t2 |  t3 |  t4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_RENEWAL_T1	UINT_C(58)
+
+/*
+ *  Rebinding (T2) æé
+ *
+ *     code   len   T2 interval
+ *   +------+-----+-----+-----+-----+-----+
+ *   |  59  |  4  |  t1 |  t2 |  t3 |  t4 |
+ *   +------+-----+-----+-----+-----+-----+
+ */
+#define DHCP4_OPT_REBINDING_T2	UINT_C(59)
+
+/*
+ *  ãã³ãã¼ã¯ã©ã¹ IDï¼RFC2132ï¼
+ *
+ *     code   len   vendor class ID
+ *   +------+-----+-----+-----+-----+---
+ *   |  60  |  n  |  i1 |  i2 |  i3 | ...  
+ *   +------+-----+-----+-----+-----+---
+ *
+ */
+#define DHCP4_OPT_VCLASS_ID	UINT_C(60)
+
+/*
+ *  ã¯ã©ã¤ã¢ã³ã ID
+ *
+ *     code   len   type  client ID
+ *   +------+-----+-----+-----+-----+---
+ *   |  61  |  n  | type|  i1 |  i2 | ...  
+ *   +------+-----+-----+-----+-----+---
+ *
+ *   type       : ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ã¿ã¤ã
+ *   i1, i2, ...: éå¸¸ MAC ã¢ãã¬ã¹
+ */
+#define DHCP4_OPT_CLIENT_ID	UINT_C(61)
+
+/*
+ *  ã¯ã©ã¹ãªãéççµè·¯ï¼RFC3442ï¼
+ *
+ *     code   len   destination #1     router #1
+ *   +------+-----+-----+------+-----+-----+-----+-----+---
+ *   |  121 |  n  |  d1 |  ... |  dN |  r1 |  r2 |  r3 | ...
+ *   +------+-----+-----+------+-----+-----+-----+-----+---
+ */
+#define DHCP4_OPT_CLASSLESS_RTE	UINT_C(121)
+
+/*
+ *  ãªãã·ã§ã³ã®çµäº
+ */
+#define DHCP4_OPT_END		UINT_C(255)
+
+/*
+ *  magic çªå·ï¼RFC1048ï¼
+ */
+
+#define DHCP4_RFC1048_MAGIC	{ UINT_C(99), UINT_C(130), UINT_C(83), UINT_C(99), }
+#define DHCP4_MAGIC_LEN		4
+
+/*
+ *  UDP ãã¼ãçªå·
+ */
+
+#ifndef DHCP4_SRV_CFG_PORTNO
+#define DHCP4_SRV_CFG_PORTNO	67	/* server	*/
+#endif
+
+#ifndef DHCP4_CLI_CFG_PORTNO
+#define DHCP4_CLI_CFG_PORTNO	68	/* client	*/
+#endif
+
+#endif	/* of #ifndef DHCP4_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.c	(revision 313)
@@ -0,0 +1,2128 @@
+/*
+ * Copyright 2004 Henning Brauer <henning@openbsd.org>
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999
+ * The Internet Software Consortium.    All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of The Internet Software Consortium nor the names
+ *    of its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
+ * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * This software has been written for the Internet Software Consortium
+ * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie
+ * Enterprises.  To learn more about the Internet Software Consortium,
+ * see ``http://www.vix.com/isc''.  To learn more about Vixie
+ * Enterprises, see ``http://www.vix.com''.
+ *
+ * This client was substantially modified and enhanced by Elliot Poger
+ * for use on Linux while he was working on the MosquitoNet project at
+ * Stanford.
+ *
+ * The current version owes much to Elliot's Linux enhancements, but
+ * was substantially reorganized and partially rewritten by Ted Lemon
+ * so as to use the same networking framework that the Internet Software
+ * Consortium DHCP server uses.   Much system-specific configuration code
+ * was moved into a shell script so that as support for more operating
+ * systems is added, it will not be necessary to port and maintain
+ * system-specific configuration code to these operating systems - instead,
+ * the shell script can invoke the native tools to accomplish the same
+ * purpose.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/if_ether.h>
+
+#include <net/if_var.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/dhcp4_cli.h>
+#include <netapp/dhcp4_cli_var.h>
+#include <netapp/resolver.h>
+#include "lcd.h"
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯
+ */
+
+#ifdef DHCP4_CLI_CFG
+
+/*
+ *  å¤æ°
+ */
+
+static T_DHCP4_CLI_CONTEXT	context;			/* ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ã	*/
+static uint8_t	magicno[DHCP4_MAGIC_LEN] = DHCP4_RFC1048_MAGIC;	/* magic çªå·ï¼RFC1048ï¼*/
+
+/* å¿
+é ãªãã·ã§ã³ãªã¹ã */
+#ifdef DHCP4_CLI_CFG_REQUIRED_OLIST
+static uint8_t	required_plist[] = DHCP4_CLI_CFG_REQUIRED_OLIST;
+#endif
+
+/* è¦æ±ãªãã·ã§ã³ãªã¹ã */
+#ifdef DHCP4_CLI_CFG_REQUEST_OLIST
+static uint8_t	request_plist[] = DHCP4_CLI_CFG_REQUEST_OLIST;
+#endif
+
+/*
+ *  dhcp4_cksum -- ãã§ãã¯ãµã ã®è¨ç®é¢æ°
+ */
+
+static uint32_t
+dhcp4_cksum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+{
+	uint32_t carry, sum = 0;
+
+	for ( ; len > 0; len -= 2) {
+		sum += (*(uint8_t*)data << 8) + *((uint8_t*)data + 1);
+		data = (uint8_t*)data + 2;
+		}
+
+	while (sum >= 0x00010000) {
+		carry = sum >> 16;
+		sum   = (sum & 0xffff) + carry;
+		}
+
+	return sum;
+	}
+
+/*
+ *  create_xid -- ãã©ã³ã¶ã¯ã·ã§ã³ ID ãçæããã
+ */
+
+static uint32_t
+create_xid (void)
+{
+	T_IF_SOFTC	*ic;
+	SYSTIM		time;
+
+	ic = IF_ETHER_NIC_GET_SOFTC();
+	get_tim(&time);
+	return (dhcp4_cksum((void*)&ic->ifaddr.lladdr, ETHER_ADDR_LEN) << 16)
+	      + dhcp4_cksum((void*)&time, sizeof(time));
+	}
+
+/*
+ *  find_option_sub -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã
+ *
+ *    æ³¨æ: å¼æ° size ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã
+ */
+
+static uint8_t *
+find_option_sub (T_DHCP4_CLI_MSG *msg, uint_t off, uint_t len, 
+                                      uint_t tag, uint_t size, bool_t overload)
+{
+	uint8_t	*opt, *tmp;
+
+	opt = (uint8_t*)&msg->msg + off;
+	while (opt < (uint8_t*)&msg->msg + off + len && *opt != DHCP4_OPT_END) {
+		if (*opt == DHCP4_OPT_PAD)
+			opt ++;
+		else if ((*opt == DHCP4_OPT_OPT_OVERLOAD) && overload) {
+			if (*(opt + 2) & DHCP4_OPTOL_FILE) {
+				tmp = find_option_sub(msg, DHCP4_FILE_OFFSET, DHCP4_FILE_LEN, tag, len, false);
+				if (tmp != NULL)
+					return tmp;
+				}
+			if (*(opt + 2) & DHCP4_OPTOL_SNAME) {
+				tmp = find_option_sub(msg, DHCP4_SNAME_OFFSET, DHCP4_SNAME_LEN, tag, len, false);
+				if (tmp != NULL)
+					return tmp;
+				}
+			opt += *(opt + 1) + 2;
+			}
+		else if (*opt == tag && (size == 0 || *(opt + 1) == size))
+			return opt;
+		else
+			opt += *(opt + 1) + 2;
+		}
+	return NULL;
+	}
+
+/*
+ *  find_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã
+ *
+ *    æ³¨æ: å¼æ° size ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã
+ */
+
+static uint8_t *
+find_option (T_DHCP4_CLI_MSG *msg, uint_t tag, uint_t size)
+{
+	return find_option_sub(msg, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
+	                       msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN),
+	                       tag, size, true);
+	}
+
+/*
+ *  is_equal_sid -- ã¡ãã»ã¼ã¸å
+ã® SERVER ID ãæ¯è¼ããã
+ */
+
+static bool_t
+is_equal_sid (T_DHCP4_CLI_MSG *msg1, T_DHCP4_CLI_MSG *msg2)
+{
+	uint8_t	*opt1, *opt2;
+
+	if ((opt1 = find_option(msg1, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
+		return false;
+	if ((opt2 = find_option(msg2, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
+		return false;
+
+	return msg2host32(opt1) == msg2host32(opt2);
+	}
+
+/*
+ *  timer_value -- ã¡ãã»ã¼ã¸ããæéæ
+å ±ãåãåºãã
+ */
+
+static uint32_t
+timer_value (T_DHCP4_CLI_MSG *msg, uint_t tag, uint32_t def_value)
+{
+	uint8_t 	*opt;
+	uint32_t	seconds;
+
+	if ((opt = find_option(msg, tag, sizeof(uint32_t))) == NULL)
+		return def_value;
+	else {
+
+		/* ãµã¼ãããã®ãªã¼ã¹æéã¯[s]ã*/
+		seconds = msg2host32(opt + 2);
+
+		/* ã³ã³ãã­ã¹ãå
+ã®ãªã¼ã¹æéã¯ SYSTIM_HZã*/
+		if (seconds == DHCP4_TIME_INFINITY)
+			return DHCP4_TIME_INFINITY;
+		else if (seconds > SYSTIM2SEC(DHCP4_TIME_INFINITY))
+			return DHCP4_TIME_INFINITY;
+		else
+			return SEC2SYSTIM(seconds);
+		}
+	}
+
+/*
+ *  rel_addr -- IPv4 ã¢ãã¬ã¹ããµãããããã¹ã¯ãéççµè·¯è¡¨ãè§£æ¾ããã
+ */
+
+static void
+rel_addr (void)
+{
+	ER	error;
+	uint_t	count = 0;
+
+	if ((error = in4_add_ifaddr(IPV4_ADDRANY, IPV4_ADDRANY)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, IPv4 addr: %s", itron_strerror(error));
+		count ++;
+		}
+
+	if ((error = in4_add_route(0, IPV4_ADDRANY, IPV4_ADDRANY, IPV4_ADDRANY)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, release routing table: %s", itron_strerror(error));
+		count ++;
+		}
+
+	if ((error = in4_add_route(1, IPV4_ADDRANY, IPV4_ADDRANY, IPV4_ADDRANY)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, release routing table: %s", itron_strerror(error));
+		count ++;
+		}
+
+	if ((error = in4_add_route(2, 0xffffffff, 0xffffffff, IPV4_ADDRANY)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, release routing table: %s", itron_strerror(error));
+		count ++;
+		}
+
+	if (count == 0) {
+		syslog(LOG_NOTICE, "[DHCP4C] release IPv4 addr.");
+
+#if 0
+#ifdef USE_LCD
+		dly_tsk(1 * 1000);
+		lcd_puts(LCD_PORTID, "0.0.0.0\n");
+#endif	/* of #ifdef USE_LCD */
+#endif
+
+		}
+	}
+
+/*
+ *  rel_options -- ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè§£æ¾ããã
+ */
+
+static void
+rel_options (T_DHCP4_CLI_CONTEXT *ct, uint_t off, uint_t len, bool_t overload)
+{
+#if defined(USE_RESOLVER)
+	T_IN4_ADDR	addr;
+#endif
+
+	uint8_t	*opt;
+
+	opt = (uint8_t*)&ct->act_msg->msg + off;
+	while (opt < (uint8_t*)&ct->act_msg->msg + off + len && *opt != DHCP4_OPT_END) {
+		if (*opt == DHCP4_OPT_PAD)
+			opt ++;
+		else if ((*opt == DHCP4_OPT_OPT_OVERLOAD) && overload) {
+			if (*(opt + 2) & DHCP4_OPTOL_FILE)
+				rel_options(ct, DHCP4_FILE_OFFSET, DHCP4_FILE_LEN, false);
+			if (*(opt + 2) & DHCP4_OPTOL_SNAME)
+				rel_options(ct, DHCP4_SNAME_OFFSET, DHCP4_SNAME_LEN, false);
+			opt += *(opt + 1) + 2;
+			}
+		else {
+
+			switch (*opt) {
+
+#if defined(USE_RESOLVER)
+
+			case DHCP4_OPT_DNS_SERVER:
+				addr = IPV4_ADDRANY;
+				dns_in4_set_addr(&addr);
+				break;
+
+			case DHCP4_OPT_HOST_NAME:
+				break;
+
+			case DHCP4_OPT_DOMAIN_NAME:
+				dns_in4_set_dname("", 0);
+				break;
+
+#else	/* of #if defined(USE_RESOLVER) */
+
+			case DHCP4_OPT_DNS_SERVER:
+			case DHCP4_OPT_HOST_NAME:
+			case DHCP4_OPT_DOMAIN_NAME:
+
+#endif	/* of #if defined(USE_RESOLVER) */
+
+			case DHCP4_OPT_SUBNET_MASK:
+			case DHCP4_OPT_ROUTER:
+			case DHCP4_OPT_LEASE_TIME:
+			case DHCP4_OPT_RENEWAL_T1:
+			case DHCP4_OPT_REBINDING_T2:
+				break;
+
+			default:
+				break;
+				}
+
+			opt += *(opt + 1) + 2;
+			}
+		}
+	}
+
+/*
+ *  rel_lease -- ãªã¼ã¹ãããæ
+å ±ãè§£æ¾ããã
+ */
+
+static void
+rel_lease (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãç¡ããã°ä½ãããªãã*/
+	if (ct->act_msg == NULL)
+		return;
+
+	/* ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè§£æ¾ããã*/
+	rel_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
+	              ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
+	rel_addr();
+
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+	syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)ct->act_msg));
+	ct->act_msg = NULL;
+	}
+
+/*
+ *  set_addr -- IPv4 ã¢ãã¬ã¹ããµãããããã¹ã¯ãéççµè·¯è¡¨ãè¨­å®ããã
+ */
+
+static void
+set_addr (T_DHCP4_CLI_CONTEXT *ct, uint8_t *mopt, uint8_t *ropt)
+{
+	ER		error;
+	T_IN4_ADDR	addr, mask, router, net_addr;
+
+	addr     = ntohl(ct->act_msg->msg.yiaddr);
+	mask     = msg2host32(mopt + 2);
+	net_addr = addr & mask;
+	router   = msg2host32(ropt + 2);
+	
+	if ((error = in4_add_ifaddr(addr, mask)) != E_OK)
+		syslog(LOG_NOTICE, "[DHCP4C] error, set IPv4 addr: %s", itron_strerror(error));
+
+	if ((error = in4_add_route(0, IPV4_ADDRANY, IPV4_ADDRANY, router)) != E_OK)
+		syslog(LOG_NOTICE, "[DHCP4C] error, set routing table: %s", itron_strerror(error));
+
+	if ((error = in4_add_route(1, net_addr, mask, IPV4_ADDRANY)) != E_OK)
+		syslog(LOG_NOTICE, "[DHCP4C] error, set routing table: %s", itron_strerror(error));
+
+	if ((error = in4_add_route(2, 0xffffffff, 0xffffffff, IPV4_ADDRANY)) != E_OK)
+		syslog(LOG_NOTICE, "[DHCP4C] error, set routing table: %s", itron_strerror(error));
+
+	if (error == E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] set IPv4 addr: %s.", ip2str(NULL, &addr));
+
+#ifdef USE_LCD
+		dly_tsk(1 * 1000);
+		lcd_puts(LCD_PORTID, ip2str(NULL, &addr));
+		lcd_putc(LCD_PORTID, '\n');
+#endif	/* of #ifdef USE_LCD */
+
+		}
+	}
+
+/*
+ *  set_options -- ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè¨­å®ããã
+ */
+
+static void
+set_options (T_DHCP4_CLI_CONTEXT *ct, uint_t off, uint_t len, bool_t overload)
+{
+#if defined(USE_RESOLVER)
+	T_IN4_ADDR	addr;
+#endif
+
+	uint8_t	*opt, *mopt = NULL, *ropt = NULL;
+
+	opt = (uint8_t*)&ct->act_msg->msg + off;
+	while (opt < (uint8_t*)&ct->act_msg->msg + off + len && *opt != DHCP4_OPT_END) {
+		if (*opt == DHCP4_OPT_PAD)
+			opt ++;
+		else if ((*opt == DHCP4_OPT_OPT_OVERLOAD) && overload) {
+			if (*(opt + 2) & DHCP4_OPTOL_FILE)
+				set_options(ct, DHCP4_FILE_OFFSET, DHCP4_FILE_LEN, false);
+			if (*(opt + 2) & DHCP4_OPTOL_SNAME)
+				set_options(ct, DHCP4_SNAME_OFFSET, DHCP4_SNAME_LEN, false);
+			opt += *(opt + 1) + 2;
+			}
+		else {
+
+			switch (*opt) {
+			case DHCP4_OPT_SUBNET_MASK:
+				mopt = opt;
+				break;
+
+			case DHCP4_OPT_ROUTER:
+				ropt = opt;
+				break;
+
+#if defined(USE_RESOLVER)
+
+			case DHCP4_OPT_DNS_SERVER:
+				addr = msg2host32(opt + 2);
+				dns_in4_set_addr(&addr);
+				break;
+
+			case DHCP4_OPT_HOST_NAME:
+				break;
+
+			case DHCP4_OPT_DOMAIN_NAME:
+				dns_in4_set_dname(opt + 2, *(opt + 1));
+				break;
+
+#else	/* of #if defined(USE_RESOLVER) */
+
+			case DHCP4_OPT_DNS_SERVER:
+			case DHCP4_OPT_HOST_NAME:
+			case DHCP4_OPT_DOMAIN_NAME:
+
+#endif	/* of #if defined(USE_RESOLVER) */
+
+			case DHCP4_OPT_LEASE_TIME:
+			case DHCP4_OPT_RENEWAL_T1:
+			case DHCP4_OPT_REBINDING_T2:
+				break;
+
+			default:
+				break;
+				}
+
+			opt += *(opt + 1) + 2;
+			}
+		}
+	if (!(mopt == NULL || ropt == NULL))
+		set_addr(ct, mopt, ropt);
+	}
+
+/*
+ *  set_lease -- ãªã¼ã¹ãããæ
+å ±ãè¨­å®ããã
+ */
+
+static void
+set_lease (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè¨­å®ããã*/
+	set_options(ct, DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN,
+	              ct->act_msg->len - (DHCP4_OPTION_OFFSET + DHCP4_MAGIC_LEN), true);
+	}
+
+/*
+ *  validate_duplicate -- æå®ããã IPv4 ã¢ãã¬ã¹ãä½¿ããã¦ããªããæ¤è¨¼ããã
+ *
+ *    ä½¿ããã¦ããªãæã¯ true ãè¿ãã
+ */
+
+static bool_t
+validate_duplicate (T_DHCP4_CLI_MSG *msg)
+{
+	T_IN4_ADDR	yiaddr;
+
+	/* æå®ããã IPv4 ã¢ãã¬ã¹ã ADDR ANY ãªãä½¿ããã¦ããªãã¨å¤æ­ããã*/
+	yiaddr = ntohl(msg->msg.yiaddr);
+	if (yiaddr == IPV4_ADDRANY)
+		return true;
+
+	/* ARP ã­ã£ãã·ã¥ã«ããã°ä½¿ããã¦ããã¨å¤æ­ããã*/
+	if (arp_lookup(yiaddr, false) != NULL)
+		return false;
+
+	/*
+	 *  ARP è¦æ±ãåºåãã¦ TMO_DHCP4C_ARP_WAIT å¾
+ã¡ã
+	 *  ARP ã­ã£ãã·ã¥ã«ãªããã°ä½¿ããã¦ããªãã¨å¤æ­ããã
+	 */
+	arp_request(&IF_ETHER_NIC_GET_SOFTC()->ifaddr, yiaddr);
+	dly_tsk(TMO_DHCP4C_ARP_WAIT);
+	return arp_lookup(yiaddr, false) == NULL;
+	}
+
+/*
+ *  validate_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_rcv_msg (T_DHCP4_CLI_CONTEXT *ct, T_DHCP4_CLI_MSG *msg)
+{
+	uint8_t 	*opt;
+
+	/* packet type ã DHCP4_REPLY ã§ãããã¨ãç¢ºèªããã*/
+	if (!(msg->msg.op == DHCP4_REPLY))
+		return false;
+
+	/* ã¡ãã»ã¼ã¸ã¿ã¤ããªãã·ã§ã³ããããã¨ãç¢ºèªããã*/
+	if ((opt = find_option(msg, DHCP4_OPT_MSG_TYPE, 1)) == NULL)
+		return E_PAR;
+
+	/* ã¡ãã»ã¼ã¸ã®ã¿ã¤ããä¸è´ãã¦ãããã¨ãæ¤è¨¼ããã*/
+	msg->type = *(opt + 2);
+	switch (ct->fsm) {
+
+	case DHCP4_FSM_SELECT:
+		if (!(msg->type == DHCP4_MTYPE_OFFER))
+			return E_PAR;
+		break;
+
+	case DHCP4_FSM_REQUEST:
+	case DHCP4_FSM_REBOOT:
+	case DHCP4_FSM_RENEW:
+	case DHCP4_FSM_REBIND:
+	case DHCP4_FSM_REL_INFO:
+		if (!((msg->type == DHCP4_MTYPE_ACK) || (msg->type == DHCP4_MTYPE_NAK)))
+			return E_PAR;
+		break;
+
+	case DHCP4_FSM_INIT:
+	case DHCP4_FSM_BOUND:
+	case DHCP4_FSM_INIT_REBOOT:
+		return E_PAR;
+		break;
+
+	default:
+		syslog(LOG_NOTICE, "[DHCP4C] error, unknown state: %d.", ct->fsm);
+		return E_PAR;
+		break;
+		}
+
+	/* ãã¸ãã¯çªå·ãæ¤è¨¼ããã*/
+	if (memcmp((uint8_t*)&msg->msg.options, magicno, DHCP4_MAGIC_LEN))
+		return E_PAR;
+
+	/* ãã©ã³ã¶ã¯ã·ã§ã³ ID ãç°ãªã£ã¦ããã°ã¨ã©ã¼ */
+	if (ntohl(msg->msg.xid) != ct->xid)
+		return E_PAR;
+
+	/* ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹é·ã 6ï¼MAC ã¢ãã¬ã¹é·ï¼ã§ãªããã°ã¨ã©ã¼ */
+	if (msg->msg.hlen != ETHER_ADDR_LEN)
+		return E_PAR;
+
+	/* ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ã¨ã©ã¼ */
+	if (memcmp(&msg->msg.chaddr, &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr)))
+		return E_PAR;
+
+	/*
+	 *  ã¡ãã»ã¼ã¸ã¿ã¤ãã OFFER ã®å ´åã¯ã
+	 *  ARP ãä½¿ç¨ãã¦ãæå®ããã IPv4 ã¢ãã¬ã¹ãä½¿ããã¦ããªããæ¤è¨¼ããã
+	 *  ä½¿ããã¦ããæã¯ãä»ã® IPv4 ã¢ãã¬ã¹ã®æä¾ãå¾
+ã¤ã
+	 */
+	if (msg->type == DHCP4_MTYPE_OFFER) {
+		if (!validate_duplicate(msg))
+			return E_PAR;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  eval_prefer -- åä¿¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã
+ */
+
+static void
+eval_prefer (T_DHCP4_CLI_MSG *msg)
+{
+	int	ix;
+
+	/* ç¡å¹ã®å ´åã¯çµäºããã*/
+	if (msg == NULL)
+		return;
+
+	/* æå®ããã IPv4 ã¢ãã¬ã¹ã ADDR ANY ãªãæ¨å¥¨åº¦ã 0ã«è¨­å®ããã*/
+	if (ntohl(msg->msg.yiaddr) == IPV4_ADDRANY)
+		msg->prefer = 0;
+	else
+		msg->prefer = DHCP4_CLI_CFG_PREFER_ADDR;
+
+#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	for (ix = sizeof(request_plist); ix -- > 0; ) {
+		if (find_option(msg, request_plist[ix], 0) != NULL)
+			msg->prefer ++;
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
+
+	/* å¿
+é ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	for (ix = sizeof(required_plist); ix -- > 0; ) {
+		if (find_option(msg, required_plist[ix], 0) == NULL)
+			msg->prefer = 0;
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) */
+	}
+
+/*
+ *  eval_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãè©ä¾¡ããã
+ */
+
+static ER
+eval_rcv_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG	*evl, *msg;
+
+	/* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸­æ­¢ããã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+	if (ct->val_lst == NULL) {
+		syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+		return E_OK;
+		}
+
+	/* æ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãããè©ä¾¡ã¡ãã»ã¼ã¸ãåãåºãã*/
+	evl         = ct->val_lst;
+	ct->val_lst = ct->val_lst->next;
+	evl->next   = NULL;
+	syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/
+	if (validate_rcv_msg(ct, evl) != E_OK) {
+
+		/* ã¨ã©ã¼ãçºçããè©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+		goto rcv_ret;
+		}
+
+	/* åä¿¡ããã¡ãã»ã¼ã¸ã NAK ã®æã®å¦ç */
+	if (evl->type == DHCP4_MTYPE_NAK) {
+
+		/* ãªã¼ã¹ãããæ
+å ±ãè§£æ¾ããã*/
+		rel_lease(ct);
+
+		/* å
+é¨ã¨ã©ã¼ãè¨­å®ãã¦çµäºããã*/
+		return E_PAR;
+		}
+
+	/* REL_INFO ç¶æ
+ã®æã®å¦ç */
+	//cons_printf(CONSOLE_PORTID, "evl_rcv_msg3[s=%d]\n", ct->fsm);
+	if (ct->fsm == DHCP4_FSM_REL_INFO) {
+		syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+		evl->next   = ct->prf_lst;
+		ct->prf_lst = evl;
+		syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+		return E_OK;
+		}
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã*/
+	eval_prefer(evl);
+
+	/* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããç©ºãªãè©ä¾¡ã¡ãã»ã¼ã¸ãç§»ãã¦çµäºããã*/
+	if (ct->prf_lst == NULL) {
+		ct->max_prefer = evl->prefer;
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã¨æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ãæ¯è¼ããã*/
+	if (evl->prefer > ct->max_prefer) {
+
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ããé«ããã°ã
+		 *  æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã
+		 */
+		ct->max_prefer = evl->prefer;
+		syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+		if (ct->rcv_lst == NULL)
+			ct->rcv_lst = ct->prf_lst;
+		else {
+			for (msg = ct->rcv_lst; msg->next != NULL; msg = msg->next)
+				;
+			msg->next = ct->prf_lst;
+			}
+		syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+
+	else if (evl->prefer == ct->max_prefer) {
+		for (msg = ct->prf_lst; msg != NULL; msg = msg->next) {
+			if (is_equal_sid(evl, msg)) {
+
+				/*
+				 *  æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«åã DHCP4_OPT_SERVER_ID ã®ã¡ãã»ã¼ã¸ãããã°ã
+				 *  è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+				 */
+				goto rcv_ret;
+				}
+			}
+
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã
+		 */
+		evl->next   = ct->prf_lst;
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+	
+	/*else */
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ããä½ããã°ã
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 */
+
+rcv_ret:
+	syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+	evl->next   = ct->rcv_lst;
+	ct->rcv_lst = evl;
+	syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+	return E_OK;
+	}
+
+/*
+ *  select_msg -- æ¨å¥¨ã¡ãã»ã¼ã¸ãé¸æããã
+ */
+
+static T_DHCP4_CLI_MSG*
+select_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG		*msg, *select;
+
+	syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+	if (ct->prf_lst == NULL) {
+		/* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸­æ­¢ããã*/
+		syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+		return NULL;
+		}
+
+	/* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å
+é ­ã®ã¡ãã»ã¼ã¸ãé¸æããã*/
+	select = ct->prf_lst;
+	ct->prf_lst  = ct->prf_lst->next;
+	select->next = NULL;
+
+	/* é¸æãããªãã£ãæ¤è¨¼ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+	if (ct->rcv_lst == NULL)
+		ct->rcv_lst = ct->prf_lst;
+	else {
+		for (msg = ct->rcv_lst; msg->next != NULL; msg = msg->next)
+			;
+		msg->next = ct->prf_lst;
+		}
+	syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+	return select;
+	}
+
+/*
+ *  select_ack -- ACK ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã
+ *
+ *    åãå
+¥ãããã¨ãå¯è½ã®æã¯ true ãè¿ãã
+ */
+
+static bool_t
+select_ack (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG	*msg;
+
+	if ((msg = select_msg(ct)) == NULL)
+		return false;
+
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ããã°ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+	if (ct->act_msg != NULL) {
+		syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+		ct->act_msg->next = ct->rcv_lst;
+		ct->rcv_lst = ct->act_msg;
+		syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+		}
+
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ã«è¨­å®ããã*/
+	ct->act_msg = msg;
+	return true;
+	}
+
+/*
+ *  select_offer -- OFFER ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã
+ *
+ *    åãå
+¥ãããã¨ãå¯è½ã®æã¯ true ãè¿ãã
+ */
+
+static bool_t
+select_offer (T_DHCP4_CLI_CONTEXT *ct)
+{
+	return (ct->off_msg = select_msg(ct)) != NULL;
+	}
+
+/*
+ *  cancel_all_timers -- å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã
+ */
+
+static void
+cancel_all_timers (T_DHCP4_CLI_CONTEXT *ct)
+{
+	int ix;
+
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	for (ix = NUM_DHCP4C_TIMERS; ix -- > 0; )
+		ct->timers[ix] = 0;
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	}
+
+
+/*
+ *  start_select -- DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ SELECT ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_select (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* éä¿¡ãéå§ããæéãè¨é²ããã*/
+	get_tim(&ct->snd_start);
+
+	/* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	ct->timers[DHCP4C_TIMER_RCV_OFFER] = SYSTIM2TIMER(TMO_DHCP4C_OFFER);
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ã«ã­ã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ãã­ã¼ãã­ã£ã¹ããè¨­å®ããã*/
+	ct->dst.ipaddr = IPV4_ADDRBROADCAST;
+
+	/* éä¿¡ééããªã»ããããã*/
+	ct->interval = 0;
+
+	/* SELECT ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP4_FSM_SELECT;
+
+	/* DISCOVER ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP4C_FLAG_TMOUT_SND_DISC;
+	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	}
+
+/*
+ *  start_bound -- BOUND ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_bound (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* ãªã¼ã¹ãããæ
+å ±ãè¨­å®ããã*/
+	set_lease(ct);
+
+	/* ãªã¼ã¹ã®æå¹æéãè¨­å®ããã*/
+	ct->expire = timer_value(ct->act_msg, DHCP4_OPT_LEASE_TIME, TMO_DHCP4C_DEF_LEASE);
+
+	/* ãªã¼ã¹æéã TMO_DHCP4C_MIN_LEASE ä»¥ä¸ã®æã¯ãTMO_DHCP4C_MIN_LEASE ã«è¨­å®ããã*/
+	if (ct->expire < TMO_DHCP4C_MIN_LEASE)
+		ct->expire = TMO_DHCP4C_MIN_LEASE;
+
+	/* RENEW ç¶æ
+ã¾ã§ã®æéãè¨­å®ããã*/
+	ct->renew = timer_value(ct->act_msg, DHCP4_OPT_RENEWAL_T1, ct->expire / 2);
+
+	/* REBIND ç¶æ
+ã¾ã§ã®æéãè¨­å®ããã*/
+	ct->rebind = timer_value(ct->act_msg, DHCP4_OPT_REBINDING_T2, ct->renew + ct->renew / 2 + ct->renew / 4);
+
+	/* EXPIREãRENEWãREBIND ã¿ã¤ãã¼ãè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	ct->timers[DHCP4C_TIMER_EXPIRE] = SYSTIM2TIMER(ct->expire);		/* EXPIRE      ã¾ã§ã®æé */
+	ct->timers[DHCP4C_TIMER_REBIND] = SYSTIM2TIMER(ct->rebind);		/* REBINDï¼T2ï¼ã¾ã§ã®æé */
+	ct->timers[DHCP4C_TIMER_RENEW]  = SYSTIM2TIMER(ct->renew);		/* RENEW ï¼T1ï¼ã¾ã§ã®æé */
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+	/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP4_FSM_BOUND;
+
+	/* BIND ãéå§ããæéãè¨é²ããã*/
+	get_tim(&ct->bind_start);
+	}
+
+/*
+ *  start_send_request -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ãæå®ãããç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_send_request (T_DHCP4_CLI_CONTEXT *ct, uint_t fsm)
+{
+	T_IFNET	*ifp = IF_GET_IFNET();
+
+	/* éä¿¡ãéå§ããæéãè¨é²ããã*/
+	get_tim(&ct->snd_start);
+
+	/* é·ç§»ããç¶æ
+ã RENEW ä»¥å¤ã§ã¯ ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	if (fsm != DHCP4_FSM_RENEW) { 
+		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		ct->timers[DHCP4C_TIMER_RCV_ACK] = SYSTIM2TIMER(TMO_DHCP4C_ACK);
+		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+		}
+
+	/*
+	 *  é·ç§»ããç¶æ
+ã RENEW ã§ã
+	 *  SERVER ID ãªãã·ã§ã³ãããã°ã­ã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ãã­ã¼ãã­ã£ã¹ããéä¿¡ããã
+	 */
+	if ((fsm == DHCP4_FSM_RENEW) &&
+	    (find_option(ct->act_msg, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR)) !=  NULL))
+		ct->dst.ipaddr = (ifp->in4_ifaddr.addr &  ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask;
+	else
+		ct->dst.ipaddr = IPV4_ADDRBROADCAST;
+
+	/* éä¿¡ééããªã»ããããã*/
+	ct->interval = 0;
+
+	/* æå®ãããç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = fsm;
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP4C_FLAG_TMOUT_SND_REQ;
+	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	}
+
+/*
+ *  start_rel_info -- ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã
+ *
+ *    æ³¨æ: DHCPv4 ã® RFC2131 ã«ã¯ç¡ã
+ */
+
+static void
+start_rel_info (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+	cancel_all_timers(ct);
+
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL) {
+		ct->fsm = DHCP4_FSM_SLEEP;
+		return;
+		}
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ã«ã­ã¼ã«ã«ãããã¯ã¼ã¯ã¸ã®ãã­ã¼ãã­ã£ã¹ããè¨­å®ããã*/
+	ct->dst.ipaddr = IPV4_ADDRBROADCAST;
+
+	/* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP4C_FLAG_TMOUT_SND_REL;
+	syscall(sig_sem(SEM_DHCP4_CLI_READY));
+	}
+
+/*
+ *  setup_dhcp_com_msg -- DHCP ã¡ãã»ã¼ã¸ã®å
+±éé¨åãä½æããã
+ */
+
+static uint8_t *
+setup_dhcp_com_msg (T_DHCP4_CLI_CONTEXT *ct, uint_t op, uint_t type)
+{
+	uint8_t	*option;
+
+	memset((void*)&ct->snd_msg->msg, sizeof(ct->snd_msg->msg), 0);
+	ct->snd_msg->len = sizeof(ct->snd_msg->msg);
+
+	/* ãããé¨ãè¨­å®ããã*/
+	ct->snd_msg->msg.op = op;
+	ct->snd_msg->msg.htype = DHCP4_HWA_TYPE_ETHER;
+	ct->snd_msg->msg.hlen = ETHER_ADDR_LEN;
+	HOST2MSG32(ct->snd_msg->msg.xid, ct->xid);
+
+	/* MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+	memcpy(&ct->snd_msg->msg.chaddr, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
+
+	/*
+	 *  ãªãã·ã§ã³é¨ãè¨­å®ããã
+	 */
+
+	/* RFC1048 ã«å®ç¾©ããã¦ãããã¸ãã¯çªå·ãè¨­å®ããã*/
+	memcpy(&ct->snd_msg->msg.options, magicno, DHCP4_MAGIC_LEN);
+	option = ct->snd_msg->msg.options + DHCP4_MAGIC_LEN;
+
+	/* DHCP ã¡ãã»ã¼ã¸ã¿ã¤ããè¨­å®ããã*/
+	*(option ++) = DHCP4_OPT_MSG_TYPE;
+	*(option ++) = 1;
+	*(option ++) = type;
+
+	return option;
+	}
+
+/*
+ *  setup_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_release_msg (T_DHCP4_CLI_CONTEXT *ct, T_DHCP4_CLI_MSG *ref)
+{
+	uint8_t *opt, *ref_opt;
+
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ããªããã°ã¨ã©ã¼ */
+	if (ref == NULL)
+		return E_PAR;
+
+	ct->xid = create_xid();
+	if ((opt = setup_dhcp_com_msg(ct, DHCP4_REQUEST, DHCP4_MTYPE_RELEASE)) == NULL)
+		return E_PAR;
+
+	/*
+	 *  ãµã¼ã IDï¼server-ipï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	if ((ref_opt = find_option(ref, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
+		return E_PAR;
+	*(opt ++) = *(ref_opt ++);
+	*(opt ++) = *(ref_opt ++);
+	memcpy(opt, ref_opt, *(ref_opt - 1));
+	opt += *(ref_opt - 1);
+
+	/* 
+	 *  ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	*(opt ++) = DHCP4_OPT_CLIENT_ID;
+	*(opt ++) = ETHER_ADDR_LEN + 1;
+	*(opt ++) = DHCP4_HWA_TYPE_ETHER;
+	memcpy(opt, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
+	opt += ETHER_ADDR_LEN;
+
+	/* ãªãã·ã§ã³ã®çµäºãè¨­å®ããã*/
+	*(opt ++) = DHCP4_OPT_END;
+
+	/*
+	 *  ã¯ã©ã¤ã¢ã³ã IP ã¢ãã¬ã¹ï¼ciaddrï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	HOST2MSG32(ct->snd_msg->msg.ciaddr, IF_GET_IFNET()->in4_ifaddr.addr);
+
+	/* ã¡ãã»ã¼ã¸é·ãè¨­å®ããã*/
+	ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
+	             + (opt - (uint8_t*)&ct->snd_msg->msg.options);
+	return E_OK;
+	}
+
+
+/*
+ *  setup_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_request_msg (T_DHCP4_CLI_CONTEXT *ct, T_DHCP4_CLI_MSG *ref)
+{
+	uint8_t *opt, *ref_opt;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+	uint_t	len = 0;
+#endif
+
+	/* åç
+§ããã¡ãã»ã¼ã¸ããªããã°ã¨ã©ã¼ */
+	if (ref == NULL)
+		return E_PAR;
+
+	ct->xid = create_xid();
+	if ((opt = setup_dhcp_com_msg(ct, DHCP4_REQUEST, DHCP4_MTYPE_REQUEST)) == NULL)
+		return E_PAR;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+
+	/* è¿½å ã®ãªãã·ã§ã³ãè¨­å®ããã*/
+
+	*opt  = DHCP4_OPT_REQ_PARAM;
+	 opt += 2;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨­å®ããã*/
+	if (sizeof(required_plist) > 0) {
+		memcpy(opt, required_plist, sizeof(required_plist));
+		opt += sizeof(required_plist);
+		len += sizeof(required_plist);
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) */
+
+#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨­å®ããã*/
+	if (sizeof(request_plist) > 0) {
+		memcpy(opt, request_plist, sizeof(request_plist));
+		opt += sizeof(request_plist);
+		len += sizeof(request_plist);
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
+
+	*(opt - len - 1) = len;
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
+
+	/*
+	 *  ãµã¼ã IDï¼server-ipï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	if (ct->fsm == DHCP4_FSM_REQUEST) {
+		if ((ref_opt = find_option(ref, DHCP4_OPT_SERVER_ID, sizeof(T_IN4_ADDR))) == NULL)
+			return E_PAR;
+		*(opt ++) = *(ref_opt ++);
+		*(opt ++) = *(ref_opt ++);
+		memcpy(opt, ref_opt, *(ref_opt - 1));
+		opt += *(ref_opt - 1);
+		}
+
+	/*
+	 *  è¦æ± IP ã¢ãã¬ã¹ï¼requested-ipï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 *  RFC2131 ã§ã¯ãDHCP4_FSM_RENEW ã®æ MUST NOT ã«ãªã£ã¦ãããã
+	 *  MUST ã®ããã§ããã
+	 */
+	*(opt ++) = DHCP4_OPT_REQ_IPV4;
+	*(opt ++) = sizeof(ref->msg.yiaddr);
+	if (ct->fsm == DHCP4_FSM_REQUEST || ct->fsm == DHCP4_FSM_INIT_REBOOT ||
+	    ct->fsm == DHCP4_FSM_RENEW   || ct->fsm == DHCP4_FSM_REBIND)
+	 	/* åç
+§ã¡ãã»ã¼ã¸ã¨åã IP ã¢ãã¬ã¹ï¼requested-ipï¼ãè¦æ±ããã*/
+		memcpy(opt, (uint8_t*)&ref->msg.yiaddr, sizeof(ref->msg.yiaddr));
+	else
+		host2msg32(opt, IPV4_ADDRANY);
+	opt += sizeof(ref->msg.yiaddr);
+
+	/* 
+	 *  ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	*(opt ++) = DHCP4_OPT_CLIENT_ID;
+	*(opt ++) = ETHER_ADDR_LEN + 1;
+	*(opt ++) = DHCP4_HWA_TYPE_ETHER;
+	memcpy(opt, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
+	opt += ETHER_ADDR_LEN;
+
+	/* ãªãã·ã§ã³ã®çµäºãè¨­å®ããã*/
+	*(opt ++) = DHCP4_OPT_END;
+
+	/*
+	 *  ã¯ã©ã¤ã¢ã³ã IP ã¢ãã¬ã¹ï¼ciaddrï¼ãè¨­å®ããã
+	 *  RFC2131 4.4.1 Initialization and allocation of network address åç
+§
+	 */
+	if (ct->fsm == DHCP4_FSM_RENEW || ct->fsm == DHCP4_FSM_REBIND)
+		HOST2MSG32(ct->snd_msg->msg.ciaddr, IF_GET_IFNET()->in4_ifaddr.addr);
+	else
+		HOST2MSG32(ct->snd_msg->msg.ciaddr, IPV4_ADDRANY);
+
+	/* ã¡ãã»ã¼ã¸é·ãè¨­å®ããã*/
+	ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
+	             + (opt - (uint8_t*)&ct->snd_msg->msg.options);
+	return E_OK;
+	}
+
+/*
+ *  setup_discover_msg -- DISCOVER ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_discover_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	uint8_t *opt;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+	uint_t	len = 0;
+#endif
+
+	ct->xid = create_xid();
+	if ((opt = setup_dhcp_com_msg(ct, DHCP4_REQUEST, DHCP4_MTYPE_DISCOVER)) == NULL)
+		return E_PAR;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+
+	/* è¿½å ã®ãªãã·ã§ã³ãè¨­å®ããã*/
+
+	*opt  = DHCP4_OPT_REQ_PARAM;
+	 opt += 2;
+
+#if defined(DHCP4_CLI_CFG_REQUIRED_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨­å®ããã*/
+	if (sizeof(required_plist) > 0) {
+		memcpy(opt, required_plist, sizeof(required_plist));
+		opt += sizeof(required_plist);
+		len += sizeof(required_plist);
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) */
+
+#if defined(DHCP4_CLI_CFG_REQUEST_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãªã¹ããè¨­å®ããã*/
+	if (sizeof(request_plist) > 0) {
+		memcpy(opt, request_plist, sizeof(request_plist));
+		opt += sizeof(request_plist);
+		len += sizeof(request_plist);
+		}
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
+
+	*(opt - len - 1) = len;
+
+#endif	/* of #if defined(DHCP4_CLI_CFG_REQUIRED_OLIST) || defined(DHCP4_CLI_CFG_REQUEST_OLIST) */
+
+	/* æ¢ã«ã¢ãã¬ã¹æ
+å ±ããªã¼ã¹ããã¦ããã°ãåã IP ã¢ãã¬ã¹ãè¦æ±ããã*/
+	if (ct->act_msg != NULL) {
+		*(opt ++) = DHCP4_OPT_REQ_IPV4;
+		*(opt ++) = sizeof(ct->act_msg->msg.yiaddr);
+		memcpy(opt, (uint8_t*)&ct->act_msg->msg.yiaddr, sizeof(ct->act_msg->msg.yiaddr));
+		opt += sizeof(ct->act_msg->msg.yiaddr);
+		}
+
+	/* ã¯ã©ã¤ã¢ã³ã IDï¼MAC ã¢ãã¬ã¹ï¼ãè¨­å®ããã*/
+	*(opt ++) = DHCP4_OPT_CLIENT_ID;
+	*(opt ++) = ETHER_ADDR_LEN + 1;
+	*(opt ++) = DHCP4_HWA_TYPE_ETHER;
+	memcpy(opt, &ct->sc->ifaddr.lladdr, ETHER_ADDR_LEN);
+	opt += ETHER_ADDR_LEN;
+
+	/* ãªãã·ã§ã³ã®çµäºãè¨­å®ããã*/
+	*(opt ++) = DHCP4_OPT_END;
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ct->dst.ipaddr = IPV4_ADDRBROADCAST;
+
+	/* ã¡ãã»ã¼ã¸é·ãè¨­å®ããã*/
+	ct->snd_msg->len = sizeof(ct->snd_msg->msg) - DHCP4_DFLT_OPT_LEN
+	             + (opt - (uint8_t*)&ct->snd_msg->msg.options);
+	return E_OK;
+	}
+
+/*
+ *  ack_msg_timeout -- ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+ack_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* ACK ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+	if (select_ack(ct)) {
+
+		/* REQUEST ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		ct->timers[DHCP4C_TIMER_SND_REQ] = 0;
+		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+		/*
+		 *  ç¶æ
+ã REQUEST ã®æã¯ã
+		 *  OFFER ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 */
+		if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
+			syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+			ct->off_msg->next = ct->rcv_lst;
+			ct->rcv_lst = ct->off_msg;
+			syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+			ct->off_msg = NULL;
+			}
+
+		/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+		start_bound(ct);
+		return;
+		}
+	else {
+
+		/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+		rel_lease(ct);
+
+		ct->error = E_TMOUT;
+		}
+	}
+
+/*
+ *  send_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_request_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG	*ref;
+	ER		error;
+	SYSTIM		time;
+	RELTIM		interval;
+	uint16_t	secs;
+
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* ACK ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+	if (select_ack(ct)) {
+
+		/* ACK/NAK ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		ct->timers[DHCP4C_TIMER_RCV_ACK] = 0;
+		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+		/*
+		 *  ç¶æ
+ã REQUEST ã®æã¯ã
+		 *  OFFER ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 */
+		if (ct->fsm == DHCP4_FSM_REQUEST && ct->off_msg != NULL) {
+			syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+			ct->off_msg->next = ct->rcv_lst;
+			ct->rcv_lst = ct->off_msg;
+			syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+			ct->off_msg = NULL;
+			}
+
+		/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+		start_bound(ct);
+		return;
+		}
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/
+	if (ct->fsm == DHCP4_FSM_REQUEST)
+		ref = ct->off_msg;
+	else
+		ref = ct->act_msg;
+	if ((error = setup_request_msg(ct, ref)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, setup request message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* éä¿¡ãéå§ãã¦ããã®æéãå¾ãã*/
+	get_tim(&time);
+	interval = time - ct->snd_start;
+
+	/*
+	 * éä¿¡ãéå§ãã¦ããã®æéï¼ç§ï¼ãã¡ãã»ã¼ã¸ã«è¨­å®ããã
+	 * æå¤§å¤ã¯ 65535ã
+	 */
+	if (ct->fsm == DHCP4_FSM_REQUEST)
+		secs = ct->secs;
+	else {
+		if (SYSTIM2SEC(interval) < 65536)
+			secs = SYSTIM2SEC(interval);
+		else
+			secs = 65535;
+		}
+	HOST2MSG16(ct->snd_msg->msg.secs, secs);
+
+	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, send request message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* éä¿¡ééãè¨­å®ããã*/
+	if (ct->interval == 0)
+		/* æªè¨­å® */
+		ct->interval = TMO_DHCP4C_INIT_INTVL;
+	else
+		/* ããã¯ãªãã¢ã«ã´ãªãºã ã§ 2åã«ããï¼ä¹±æ°ä½¿ç¨ï¼éä¿¡ééãå ç®ããã*/
+		ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
+	
+	/* éä¿¡å¨æã®å¶éå¤ãè¶
+ããªãããã«ããã*/
+	if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
+		ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
+
+	/* ãªã¼ã¹æéã®ã¿ã¤ã ã¢ã¦ããå
+éãã */
+	if (ct->fsm != DHCP4_FSM_REQUEST &&
+	    TIMEC_GT(ct->interval + time, ct->expire + ct->bind_start))
+		ct->interval = ct->expire + ct->bind_start - time + SYSTIM_HZ;
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	ct->timers[DHCP4C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->interval);
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	}
+
+/*
+ *  send_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_release_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	ER		error;
+
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* RELEASE ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_release_msg(ct, ct->act_msg)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, setup release message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+	rel_lease(ct);
+
+	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, send release message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* ã¡ãã»ã¼ã¸éä¿¡å¾
+ã¡ãè¡ãã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_READY));
+
+	/* SLEEP ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP4_FSM_SLEEP;
+	}
+
+/*
+ *  offer_msg_timeout -- OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+offer_msg_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* OFFER ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãREQUEST ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+	if (select_offer(ct)) {
+
+		/* DISCOVER ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		ct->timers[DHCP4C_TIMER_SND_DISC] = 0;
+		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+		/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ REQUEST ç¶æ
+ã«é·ç§»ããã*/
+		start_send_request(ct, DHCP4_FSM_REQUEST);
+		}
+	else
+		ct->error = E_TMOUT;
+	}
+
+/*
+ *  send_discover_msg -- DISCOVERã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_discover_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	ER	error;
+	SYSTIM	time;
+	RELTIM	interval;
+
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* OFFER ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãREQUEST ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+	if (select_offer(ct)) {
+
+		/* OFFER ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+		ct->timers[DHCP4C_TIMER_RCV_OFFER] = 0;
+		syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+		/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ REQUEST ç¶æ
+ã«é·ç§»ããã*/
+		start_send_request(ct, DHCP4_FSM_REQUEST);
+		return;
+		}
+
+	/* DISCOVER ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_discover_msg(ct)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, setup discover message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* éä¿¡ãéå§ãã¦ããã®æéãå¾ãã*/
+	get_tim(&time);
+	interval = time - ct->snd_start;
+
+	/*
+	 * éä¿¡ãéå§ãã¦ããã®æéï¼ç§ï¼ãã¡ãã»ã¼ã¸ã«è¨­å®ããã
+	 * æå¤§å¤ã¯ 65535ã
+	 */
+	if (SYSTIM2SEC(interval) < 65536)
+		ct->secs = SYSTIM2SEC(interval);
+	else
+		ct->secs = 65535;
+	HOST2MSG16(ct->snd_msg->msg.secs, ct->secs);
+
+	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = udp_snd_dat(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, send discover message: %s", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* éä¿¡ééãè¨­å®ããã*/
+	if (ct->interval == 0)
+		/* æªè¨­å® */
+		ct->interval = TMO_DHCP4C_INIT_INTVL;
+	else
+		/* ããã¯ãªãã¢ã«ã´ãªãºã ã§ 2åã«ããï¼ä¹±æ°ä½¿ç¨ï¼éä¿¡ééãå ç®ããã*/
+		ct->interval += (netapp_rand() >> 2) % (ct->interval << 1);
+	
+	/* éä¿¡å¨æã®å¶éå¤ãè¶
+ããªãããã«ããã*/
+	if (ct->interval > TMO_DHCP4C_MAX_BACKOFF)
+		ct->interval = (TMO_DHCP4C_MAX_BACKOFF >> 1) + ((netapp_rand() >> 2) % TMO_DHCP4C_MAX_BACKOFF);
+
+	/* OFFER ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¶
+ããªãããã«èª¿æ´ããã*/
+	if (TIMEC_GT(time + ct->interval, ct->snd_start + TMO_DHCP4C_OFFER))
+		ct->interval = (TMO_DHCP4C_INIT_INTVL + TMO_DHCP4C_OFFER) - time + 1;
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	ct->timers[DHCP4C_TIMER_SND_DISC] = SYSTIM2TIMER(ct->interval);
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+	}
+
+/*
+ *  dhcpc_timer -- TIMER ç®¡ç
+ */
+
+static void
+dhcpc_timer (T_DHCP4_CLI_CONTEXT *ct)
+{
+	int ix;
+
+	syscall(wai_sem(SEM_DHCP4_CLI_TIMER));
+	for (ix = NUM_DHCP4C_TIMERS; ix -- > 0; ) {
+		if (ct->timers[ix] != 0) {
+			ct->timers[ix] --;
+			if (ct->timers[ix] == 0) {
+				ct->flags = (ct->flags & ~DHCP4C_FLAG_TMOUT_MASK) | DHCP4C_FLAG_TMOUT_TIMER | ix;
+				syscall(sig_sem(SEM_DHCP4_CLI_READY));
+				}
+			}
+		}
+	syscall(sig_sem(SEM_DHCP4_CLI_TIMER));
+
+	/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããã*/
+	timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ);
+	}
+
+/*
+ *  expire_timeout -- EXPIRE ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+expire_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	//ER	error;
+
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* ç¶æ
+ã REQUEST ã®æã¯ä½ãããªãã*/
+	if (ct->fsm == DHCP4_FSM_REQUEST)
+		return;
+
+	/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+	cancel_all_timers(ct);
+
+	/* ãªã¼ã¹ãããæ
+å ±ãè§£æ¾ããã*/
+	rel_lease(ct);
+
+	ct->error = E_TMOUT;
+	}
+
+/*
+ *  rebind_timeout -- REBIND ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+rebind_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+	cancel_all_timers(ct);
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ REBIND ç¶æ
+ã«é·ç§»ããã*/
+	start_send_request(ct, DHCP4_FSM_REBIND);
+	}
+
+/*
+ *  renew_timeout -- RENEW ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+renew_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	/* ã¿ã¤ã ã¢ã¦ããã©ã°ãã¯ãªã¢ã¼ããã*/
+	ct->flags &= ~DHCP4C_FLAG_TMOUT_MASK;
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ RENEW ç¶æ
+ã«é·ç§»ããã*/
+	start_send_request(ct, DHCP4_FSM_RENEW);
+	}
+
+/*
+ *  dispatch_timeout -- ã¿ã¤ã ã¢ã¦ãããæã®å¦ç
+ */
+
+static ER
+dispatch_timeout (T_DHCP4_CLI_CONTEXT *ct)
+{
+	switch (ct->flags & DHCP4C_FLAG_TMOUT_TIMER_MASK) {
+
+	case DHCP4C_TIMER_SND_DISC:
+		send_discover_msg(ct);
+		break;
+
+	case DHCP4C_TIMER_SND_REQ:
+		send_request_msg(ct);
+		break;
+
+	case DHCP4C_TIMER_RCV_OFFER:
+		offer_msg_timeout(ct);
+		break;
+
+	case DHCP4C_TIMER_RCV_ACK:
+		ack_msg_timeout(ct);
+		break;
+
+	case DHCP4C_TIMER_RENEW:
+		renew_timeout(ct);
+		break;
+
+	case DHCP4C_TIMER_REBIND:
+		rebind_timeout(ct);
+		break;
+
+	case DHCP4C_TIMER_EXPIRE:
+		expire_timeout(ct);
+		break;
+
+	case DHCP4C_TIMER_SND_REL:
+		send_release_msg(ct);
+		break;
+
+	default:
+		break;
+		}
+
+	return ct->error;
+	}
+
+/*
+ *  dispatch_event -- ã¤ãã³ãæ¯ã®å¦ç
+ */
+
+static ER
+dispatch_event (T_DHCP4_CLI_CONTEXT *ct)
+{
+	ER	error = E_OK;
+
+	while (ct->fsm != DHCP4_FSM_SLEEP && error == E_OK) {
+
+		/* ã¡ãã»ã¼ã¸ã®åä¿¡ã¨ã¿ã¤ã ã¢ã¦ããå¾
+ã¤ã*/
+		syscall(wai_sem(SEM_DHCP4_CLI_READY));
+
+		if (ct->flags & DHCP4C_FLAG_RCV_MSG) {
+			while (ct->val_lst != NULL) {
+				error = eval_rcv_msg(ct);
+				}
+			ct->flags &= ~DHCP4C_FLAG_RCV_MSG;
+			}
+		if (ct->flags & DHCP4C_FLAG_TMOUT_MASK)
+			error = dispatch_timeout(ct);
+
+		if (ct->error != E_OK)
+			error = ct->error;
+		}
+
+	return error;
+	}
+
+/*
+ *  init_context -- DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã
+ */
+
+static void
+init_context (T_DHCP4_CLI_CONTEXT *ct, ID cepid)
+{
+  	memset(ct, 0, sizeof(*ct));
+	ct->cepid	= cepid;
+	ct->sc		= IF_ETHER_NIC_GET_SOFTC();
+	ct->dst.portno	= DHCP4_SRV_CFG_PORTNO;
+	ct->dst.ipaddr	= IPV4_ADDRANY;
+	}
+
+/*
+ *  rel_cli_msg -- ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã
+ */
+
+static void
+rel_cli_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG	*ptr, *cell;
+
+	for (ptr = ct->rcv_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)cell));
+		}
+
+	for (ptr = ct->val_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)cell));
+		}
+
+	for (ptr = ct->prf_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)cell));
+		}
+
+	if (ct->snd_msg != NULL)
+		syscall(rel_mpf(MPF_DHCP4_CLI_MSG, (void*)ct->snd_msg));
+	ct->rcv_lst = ct->prf_lst = ct->val_lst = ct->snd_msg = NULL;
+	}
+
+/*
+ *  init_cli_msg -- åã¡ãã»ã¼ã¸æ§é ä½ãåæåããã
+ */
+
+static ER
+init_cli_msg (T_DHCP4_CLI_CONTEXT *ct)
+{
+	T_DHCP4_CLI_MSG	*cell;
+	ER		error;
+	int		count;
+
+	/* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/
+	if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP4C_MPF_GET)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP4C] error, tget_mpf() for send: %s.", itron_strerror(error));
+		return error;
+		}
+
+	/*
+	 *  æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãããå ´åã¯ã
+	 *  ç²å¾ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã®æ§é ä½ã 1æ¸ããã
+	 */
+	if (ct->act_msg == NULL)
+		count = NUM_DHCP4_MSG_LIST;
+	else
+		count = NUM_DHCP4_MSG_LIST - 1;
+
+	/* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/
+	while (count --> 0) {
+		if ((error = tget_mpf(MPF_DHCP4_CLI_MSG, (void*)&cell, TMO_DHCP4C_MPF_GET)) != E_OK) {
+			syslog(LOG_NOTICE, "[DHCP4C] error, tget_mpf() for receive: %s.", itron_strerror(error));
+			break;
+			}
+		cell->next  = ct->rcv_lst;
+		ct->rcv_lst = cell;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  dhcp4c_renew_info -- ãããã¯ã¼ã¯æ
+å ±ãååå¾ããã
+ */
+
+ER
+dhcp4c_renew_info (void)
+{
+	if (context.fsm == DHCP4_FSM_BOUND) {
+
+		/* REL_INFO ç¶æ
+ã«é·ç§»ããå¾ã« SLEEP ãè§£é¤ããããã«è¨­å®ããã*/
+		context.flags |= DHCP4C_FLAG_RENEW;
+		start_rel_info(&context);
+		return E_OK;
+		}
+	else if (context.fsm == DHCP4_FSM_SLEEP) {
+
+		/* SLEEP ãè§£é¤ããã*/
+		wup_tsk(DHCP4_CLI_TASK);
+		return E_OK;
+		}
+	else
+		return E_OBJ;
+	}
+
+/*
+ *  dhcp4c_rel_info -- DHCP ã§è¨­å®ããããããã¯ã¼ã¯æ
+å ±ãè§£æ¾ããã
+ */
+
+ER
+dhcp4c_rel_info (void)
+{
+	/* REL_INFO ç¶æ
+ã«é·ç§»ããã*/
+	start_rel_info(&context);
+	return E_OK;
+	}
+
+/*
+ *  dhcp4c_get_info -- DHCP ã§è¨­å®ããããããã¯ã¼ã¯æ
+å ±ãè¿ãã
+ */
+
+ER
+dhcp4c_get_info (T_IN4_ADDR *addr, uint32_t *expire, uint32_t *renew,
+                                   uint32_t *rebind, SYSTIM *bind_start)
+{
+	if (addr  == NULL || expire == NULL || 
+	    renew == NULL || rebind == NULL || bind_start == NULL)
+		return E_PAR;
+	else if (context.act_msg == NULL)
+		return E_OBJ;
+	else {
+		*addr		= context.act_msg->srv.ipaddr;
+		*expire		= context.timers[DHCP4C_TIMER_EXPIRE];
+		*renew		= context.timers[DHCP4C_TIMER_RENEW];
+		*rebind		= context.timers[DHCP4C_TIMER_REBIND];
+		*bind_start	= context.bind_start;
+		return E_OK;
+		}
+	}
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_dhcp4_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	T_DHCP4_CLI_MSG	*msg;
+	ER_UINT		len;
+
+	len = *(ER_UINT*)p_parblk;
+	if (len < 0 && len != E_RLWAI) {
+		/* E_RLWAI ä»¥å¤ã§ã0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ãæå³ãã¦ããã*/
+		syslog(LOG_NOTICE, "[DHCPC(CBR)] error: %s, fncd: %s", itron_strerror(len), in_strtfn(fncd));
+		}
+	else {
+		if (fncd == TEV_UDP_RCV_DAT) {
+
+			/* åä¿¡ã¡ãã»ã¼ã¸ãªã¹ããç©ºã®æã¯ãåä¿¡ããªãã§ãã¼ã¿ã°ã©ã ãæ¨ã¦ãã*/
+			if (context.rcv_lst == NULL) 
+				syslog(LOG_NOTICE, "[DHCP4C(CBR)] receive buffer all busy.");
+			else {
+				/* ã¡ãã»ã¼ã¸ãåä¿¡ããã¡ãã»ã¼ã¸æ§é ä½ãæºåããã*/
+				syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+				msg = context.rcv_lst;
+				context.rcv_lst = context.rcv_lst->next;
+				syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+
+				/* ã¡ãã»ã¼ã¸ãåä¿¡ããã*/
+				len = udp_rcv_dat(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL);
+
+				syscall(wai_sem(SEM_DHCP4_CLI_LOCK));
+				msg->len = len;
+				if (len >= 0) {
+					/* åä¿¡ããã¡ãã»ã¼ã¸ãæ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã*/
+					msg->next = context.val_lst;
+					context.val_lst = msg;
+					context.flags |= DHCP4C_FLAG_RCV_MSG;
+					}
+				else {
+					/* ã¡ãã»ã¼ã¸æ§é ä½ãåä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã«æ»ãã*/
+					context.error = len;
+					msg->next = context.rcv_lst;
+					context.rcv_lst = msg;
+					}
+				syscall(sig_sem(SEM_DHCP4_CLI_LOCK));
+				}
+			}
+		syscall(sig_sem(SEM_DHCP4_CLI_READY));
+		}
+	return E_OK;
+	}
+
+/*
+ *  dhcp4_cli_task -- DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯
+ */
+
+void
+dhcp4_cli_task (intptr_t exinf)
+{
+	T_DHCP4_CLI_CONTEXT	*ct;
+	ID			tskid;
+	ER			error;
+
+	dly_tsk(1000);
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[DHCP4C:%d,%d] started.", tskid, (ID)exinf);
+	dly_tsk(500);
+	ct = &context;
+
+	/* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã*/
+	init_context(ct, (ID)exinf);
+
+	while (true) {
+
+		/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨­å®ããã*/
+		timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP4C_TIMER_HZ);
+
+		/* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/
+		if ((error = init_cli_msg(ct)) == E_OK) {
+
+			/* SELECT ç¶æ
+ã«é·ç§»ããã*/
+			start_select(ct);
+
+			/* ã¡ã¤ã³ã«ã¼ã */
+			error = dispatch_event(ct);
+			}
+
+		/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+		cancel_all_timers(ct);
+
+		/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+		untimeout((callout_func)dhcpc_timer, ct);
+
+		/* ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+		rel_cli_msg (ct);
+
+		/* ãªã¼ã¹ãè§£æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ­¢ããã*/
+		if (!(ct->flags & DHCP4C_FLAG_RENEW)) {
+
+			/* ä¼æ­¢ããã*/
+			if (error == E_OK)
+				syslog(LOG_NOTICE, "[DHCP4C] lease released, go to sleep.");
+			else {
+				syslog(LOG_NOTICE, "[DHCP4C] server not available, go to sleep, error: %s.", itron_strerror(error));
+				ct->fsm = DHCP4_FSM_SLEEP;
+				}
+			slp_tsk();
+			}
+		ct->flags = 0;
+		ct->error = E_OK;
+		}
+	}
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.cfg	(revision 313)
@@ -0,0 +1,74 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifdef DHCP4_CLI_CFG
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ã
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(DHCP4_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	UDP4_DHCP_CLI_CEPID,
+	dhcp4_cli_task,
+	DHCP4_CLI_MAIN_PRIORITY,
+	DHCP4_CLI_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
+
+/* ã»ããã© */
+
+#ifdef DHCP4_CLI_CFG
+
+CRE_SEM(SEM_DHCP4_CLI_READY,	{ TA_TPRI, 0, 1 });
+CRE_SEM(SEM_DHCP4_CLI_TIMER,	{ TA_TPRI, 1, 1 });
+CRE_SEM(SEM_DHCP4_CLI_LOCK,	{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli.h	(revision 313)
@@ -0,0 +1,280 @@
+/*
+ * Copyright 2004 Henning Brauer <henning@openbsd.org>
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999
+ * The Internet Software Consortium.    All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of The Internet Software Consortium nor the names
+ *    of its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
+ * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * This software has been written for the Internet Software Consortium
+ * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie
+ * Enterprises.  To learn more about the Internet Software Consortium,
+ * see ``http://www.vix.com/isc''.  To learn more about Vixie
+ * Enterprises, see ``http://www.vix.com''.
+ *
+ * This client was substantially modified and enhanced by Elliot Poger
+ * for use on Linux while he was working on the MosquitoNet project at
+ * Stanford.
+ *
+ * The current version owes much to Elliot's Linux enhancements, but
+ * was substantially reorganized and partially rewritten by Ted Lemon
+ * so as to use the same networking framework that the Internet Software
+ * Consortium DHCP server uses.   Much system-specific configuration code
+ * was moved into a shell script so that as support for more operating
+ * systems is added, it will not be necessary to port and maintain
+ * system-specific configuration code to these operating systems - instead,
+ * the shell script can invoke the native tools to accomplish the same
+ * purpose.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP4_CLI_H
+#define DHCP4_CLI_H
+
+#include <netapp/dhcp4.h>
+
+/* 
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº
+ */
+
+#define DHCP4_CLI_STACK_SIZE		1024		/* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* 
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã®åªå
+åº¦
+ */
+
+#define DHCP4_CLI_MAIN_PRIORITY		5		/* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
+åº¦		*/
+
+/* æ¨å¥¨åº¦ã®å®ç¾© */
+#define DHCP4_CLI_CFG_PREFER_ADDR	100		/* ã¢ãã¬ã¹ã®æ¨å¥¨åº¦	*/
+
+/* DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸ã®åä¿¡ãªã¹ããµã¤ãºï¼2ä»¥ä¸æå®ãããã¨ï¼ */
+#define NUM_DHCP4_MSG_LIST		3
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½æ°ãå¤æ´ç¦æ­¢ã
+ *  +1 ã¯éä¿¡ç¨
+ */
+#define NUM_MPF_DHCP4_CLI_MSG		(NUM_DHCP4_MSG_LIST+1)
+
+/* 
+ *  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+ */
+
+/* DHCP å¿
+é ãªãã·ã§ã³ãªã¹ã */
+
+#ifndef DHCP4_CLI_CFG_REQUIRED_OLIST
+
+#define DHCP4_CLI_CFG_REQUIRED_OLIST {	\
+	DHCP4_OPT_SUBNET_MASK,		\
+	DHCP4_OPT_ROUTER,		\
+}
+
+#endif	/* of #ifndef DHCP4_CLI_CFG_REQUIRED_OLIST */
+
+/* DHCP è¦æ±ãªãã·ã§ã³ãªã¹ã */
+
+#ifndef DHCP4_CLI_CFG_REQUEST_OLIST
+
+#if defined(USE_RESOLVER)
+
+#define DHCP4_CLI_CFG_REQUEST_OLIST {	\
+	DHCP4_OPT_DNS_SERVER,		\
+	DHCP4_OPT_DOMAIN_NAME,		\
+}
+
+#endif	/* of #if defined(USE_RESOLVER) */
+
+#endif	/* of #ifndef DHCP4_CLI_CFG_REQUEST_OLIST */
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãå¤
+ */
+
+/* åä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP4C_OFFER	ULONG_C(120*1000)	/* OFFER ã¡ãã»ã¼ã¸	*/
+#define TMO_DHCP4C_ACK		ULONG_C(60*1000)	/* ACK/NAK ã¡ãã»ã¼ã¸	*/
+
+/* ãªã¼ã¹æéã®æ¢å®å¤	*/
+#define TMO_DHCP4C_DEF_LEASE	ULONG_C(12*60*60*1000)	/* æ¨æºæé	*/
+#define TMO_DHCP4C_MIN_LEASE	ULONG_C(60*1000)	/* æå°æé	*/
+
+/* ã¡ãã»ã¼ã¸ã®éä¿¡å¨æ	*/
+#define TMO_DHCP4C_INIT_INTVL	ULONG_C(3*1000)		/* åæå¤	*/
+#define TMO_DHCP4C_MAX_BACKOFF	ULONG_C(15*1000)	/* å¶éå¤	*/
+
+/* DHCP ãµã¼ãã¸ã® UDP éä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP4C_UDP_SND	ULONG_C(1000)
+
+/* ã¡ãã»ã¼ã¸æ§é ä½ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP4C_MPF_GET	ULONG_C(1000)
+
+/* ARP è¦æ±ãéä¿¡ãã¦ããã®å¾
+ã¡æé	*/
+#define TMO_DHCP4C_ARP_WAIT	ULONG_C(1000)
+
+/* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ããã®å¾
+ã¡æé	*/
+#define TMO_DHCP4C_SND_REL_WAIT	ULONG_C(1000)
+
+#ifndef _MACRO_ONLY
+
+#ifdef T_IPV4EP_DEFINED
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½
+ */
+
+typedef struct dhcp4_cli_msg {
+	/* 4ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã*/
+	T_DHCP4_MSG		msg;		/* DHCP ã¡ãã»ã¼ã¸æ§é ä½	*/
+	struct dhcp4_cli_msg	*next;		/* ãªã¹ãã®æ¬¡ã®ã¡ãã»ã¼ã¸æ§é ä½	*/
+	T_IPV4EP		srv;		/* ãµã¼ãã®IPv4ã¢ãã¬ã¹/ãã¼ãçªå· */
+	uint16_t		len;		/* msg ã®æå¹é·			*/
+	uint16_t		prefer;		/* msg ã®æ¨å¥¨åº¦			*/
+	uint8_t			type;		/* ã¡ãã»ã¼ã¸ã¿ã¤ã		*/
+	} T_DHCP4_CLI_MSG;
+
+#endif	/*of #ifdef T_IPV4EP_DEFINED */
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+extern ER callback_nblk_dhcp4_cli (ID cepid, FN fncd, void *p_parblk);
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	dhcp4_cli_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+#ifdef T_IN4_ADDR_DEFINED
+
+extern ER dhcp4c_rel_info (void);
+extern ER dhcp4c_renew_info (void);
+extern ER dhcp4c_get_info (T_IN4_ADDR *addr, uint32_t *expire, uint32_t *renew,
+                                             uint32_t *rebind, SYSTIM *bind_start);
+
+#endif	/* of #ifdef T_IN4_ADDR_DEFINED */
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef DHCP4_CLI_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_asp.cfg	(revision 313)
@@ -0,0 +1,73 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ASP ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#ifdef DHCP4_CLI_CFG
+
+INCLUDE("netapp/dhcp4_cli.cfg");
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_DHCP4_CLI_MSG, {
+	TA_TFIFO,
+	NUM_MPF_DHCP4_CLI_MSG,
+	sizeof(T_DHCP4_CLI_MSG),
+	NULL,
+	NULL
+	});
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_jsp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_jsp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_jsp.cfg	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  JSP ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#ifdef DHCP4_CLI_CFG
+
+#include "netapp/dhcp4_cli.cfg"
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_DHCP4_CLI_MSG, {
+	TA_TFIFO,
+	NUM_MPF_DHCP4_CLI_MSG,
+	sizeof(T_DHCP4_CLI_MSG),
+	NULL
+	});
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp4_cli_var.h	(revision 313)
@@ -0,0 +1,243 @@
+/*
+ * Copyright 2004 Henning Brauer <henning@openbsd.org>
+ * Copyright (c) 1995, 1996, 1997, 1998, 1999
+ * The Internet Software Consortium.    All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of The Internet Software Consortium nor the names
+ *    of its contributors may be used to endorse or promote products derived
+ *    from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
+ * CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED.  IN NO EVENT SHALL THE INTERNET SOFTWARE CONSORTIUM OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
+ * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+ * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
+ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * This software has been written for the Internet Software Consortium
+ * by Ted Lemon <mellon@fugue.com> in cooperation with Vixie
+ * Enterprises.  To learn more about the Internet Software Consortium,
+ * see ``http://www.vix.com/isc''.  To learn more about Vixie
+ * Enterprises, see ``http://www.vix.com''.
+ *
+ * This client was substantially modified and enhanced by Elliot Poger
+ * for use on Linux while he was working on the MosquitoNet project at
+ * Stanford.
+ *
+ * The current version owes much to Elliot's Linux enhancements, but
+ * was substantially reorganized and partially rewritten by Ted Lemon
+ * so as to use the same networking framework that the Internet Software
+ * Consortium DHCP server uses.   Much system-specific configuration code
+ * was moved into a shell script so that as support for more operating
+ * systems is added, it will not be necessary to port and maintain
+ * system-specific configuration code to these operating systems - instead,
+ * the shell script can invoke the native tools to accomplish the same
+ * purpose.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP4_CLI_VAR_H
+#define DHCP4_CLI_VAR_H
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½
+ */
+
+/* TIMER ã®å®ç¾© */
+
+#define DHCP4C_TIMER_SND_DISC	0
+#define DHCP4C_TIMER_SND_REQ	1
+#define DHCP4C_TIMER_SND_REL	2
+#define DHCP4C_TIMER_RCV_OFFER	3
+#define DHCP4C_TIMER_RCV_ACK	4
+#define DHCP4C_TIMER_RENEW	5
+#define DHCP4C_TIMER_REBIND	6
+#define DHCP4C_TIMER_EXPIRE	7
+#define NUM_DHCP4C_TIMERS	8
+
+#define DHCP4C_TIMER_HZ		1
+
+typedef struct dhcp4_cli_context {
+	T_DHCP4_CLI_MSG	*rcv_lst;	/* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP4_CLI_MSG	*val_lst;	/* æ¤è¨¼ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP4_CLI_MSG	*prf_lst;	/* æ¨å¥¨ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP4_CLI_MSG	*snd_msg;	/* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½			*/
+	T_DHCP4_CLI_MSG	*off_msg;	/* éç¥ããããªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½	*/
+	T_DHCP4_CLI_MSG	*act_msg;	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½	*/
+	T_IF_SOFTC	*sc;		/* IF ã®ã½ããã¦ã§ã¢æ
+å ±		*/
+	T_IPV4EP	dst;		/* éä¿¡å
+ã®IPã¢ãã¬ã¹/ãã¼ãçªå·	*/
+	SYSTIM		snd_start;	/* éä¿¡ãéå§ããæé			*/
+	SYSTIM		bind_start;	/* BINDãéå§ããæé			*/
+	SYSTIM		expire;		/* ãªã¼ã¹ã®æå¹æéï¼msï¼		*/
+	SYSTIM		renew;		/* RENEWï¼T1ï¼ã¾ã§ã®æéï¼msï¼	*/
+	SYSTIM		rebind;		/* REBINDï¼T2ï¼ã¾ã§ã®æéï¼msï¼	*/
+	SYSTIM		timers[NUM_DHCP4C_TIMERS];	
+					/* ã¿ã¤ãã¼é
+å			*/
+	RELTIM		interval;	/* éä¿¡éé			*/
+	ER_UINT		error;		/* ã¨ã©ã¼ã»ãã¼ã¿é·		*/
+	ID		cepid;		/* CEP ID			*/
+	uint32_t	xid;		/* ãã©ã³ã¶ã¯ã·ã§ã³ ID		*/
+	uint16_t	flags;		/* åç¨®ãã©ã°			*/
+	uint16_t	max_prefer;	/* åä¿¡ã¡ãã»ã¼ã¸ã®æå¤§æ¨å¥¨åº¦	*/
+	uint16_t	secs;		/* seconds since boot began	*/
+	uint8_t		fsm;		/* ç¾å¨ã®ç¶æ
+			*/
+	} T_DHCP4_CLI_CONTEXT;
+
+/* fsmï¼ç¶æ
+é·ç§»ï¼ã®å®ç¾© */
+
+#define DHCP4_FSM_INIT		1
+#define DHCP4_FSM_SELECT	2
+#define DHCP4_FSM_REQUEST	3
+#define DHCP4_FSM_BOUND		4
+#define DHCP4_FSM_RENEW		5
+#define DHCP4_FSM_REBIND	6
+#define DHCP4_FSM_INIT_REBOOT	7
+#define DHCP4_FSM_REBOOT	8
+#define DHCP4_FSM_REL_INFO	11	/* DHCPv4 ã® RFC2131 ã«ã¯ç¡ãã*/
+#define DHCP4_FSM_SLEEP		12	/* DHCPv4 ã® RFC2131 ã«ã¯ç¡ãã*/
+
+/* flag ã®å®ç¾© */
+
+#define DHCP4C_FLAG_TMOUT_SND_DISC	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_SND_DISC)
+#define DHCP4C_FLAG_TMOUT_SND_REQ	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_SND_REQ)
+#define DHCP4C_FLAG_TMOUT_SND_REL	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_SND_REL)
+#define DHCP4C_FLAG_TMOUT_RCV_OFFER	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_RCV_OFFER)
+#define DHCP4C_FLAG_TMOUT_RCV_ACK	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_RCV_ACK)
+#define DHCP4C_FLAG_TMOUT_EXPIRE	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_EXPIRE)
+#define DHCP4C_FLAG_TMOUT_RENEW		(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_RENEW)
+#define DHCP4C_FLAG_TMOUT_REBIND	(DHCP4C_FLAG_TMOUT_TIMER|DHCP4C_TIMER_REBIND)
+#define DHCP4C_FLAG_TMOUT_TIMER		UINT_C(0x0010)
+#define DHCP4C_FLAG_TMOUT_TIMER_MASK	UINT_C(0x000f)
+#define DHCP4C_FLAG_TMOUT_MASK		UINT_C(0x001f)
+
+#define DHCP4C_FLAG_RCV_MSG		UINT_C(0x0200)
+#define DHCP4C_FLAG_RENEW		UINT_C(0x0400)
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+/* ã¿ã¤ã ã¢ã¦ãã®è¨ç® */
+
+#define DHCP4C_TMOC(t)		(((t)-1000)+dhcp_rand()%2000)
+
+/* æéæ¯è¼ */
+
+#define TIMEC_GT(a,b)		((int32_t)((a)-(b))>0)
+#define TIMEC_GE(a,b)		((int32_t)((a)-(b))>=0)
+
+/* æéå®æ°ã®å¤æ */
+
+#define SYSTIM2TIMER(t)		(((t)<SYSTIM_HZ/DHCP4C_TIMER_HZ)?(DHCP4C_TIMER_HZ):((t)*DHCP4C_TIMER_HZ)/SYSTIM_HZ)
+#define SYSTIM2SEC(t)		(((t)<SYSTIM_HZ)?1:((t)/SYSTIM_HZ))
+#define SEC2TIMER(t)		((t)*DHCP4C_TIMER_HZ)
+#define SEC2SYSTIM(t)		((t)*SYSTIM_HZ)
+
+#endif	/* of #ifndef DHCP4_CLI_VAR_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6.h	(revision 313)
@@ -0,0 +1,345 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP6_H
+#define DHCP6_H
+
+/*
+ *  DHCPv6 ã«é¢ããå®ç¾©
+ *
+ *    RFC3315
+ */
+
+/*
+ *  DHCPv6 ã¡ãã»ã¼ã¸ã®å®æ°ã®å®ç¾©
+ */
+
+#define DHCP6_XID_LEN		3
+#define DHCP6_OPTION_LEN	(512-(1+DHCP6_XID_LEN))
+
+/*
+ *  DHCPv6 ã¡ãã»ã¼ã¸
+ */
+
+typedef struct dhcp6_msg_hdr {
+	uint8_t	type;				/* message type		*/
+	uint8_t	xid[DHCP6_XID_LEN];		/* transaction ID	*/
+	} T_DHCP6_MSG_HDR;
+
+typedef struct dhcp6_msg {
+	T_DHCP6_MSG_HDR	hdr;
+	uint8_t		options[DHCP6_OPTION_LEN];	/* options	*/
+	} T_DHCP6_MSG;
+
+/* message type ã®å®ç¾© */
+
+#define DHCP6_SOLICIT		UINT_C(1)
+#define DHCP6_ADVERTISE		UINT_C(2)
+#define DHCP6_REQUEST		UINT_C(3)
+#define DHCP6_CONFIRM		UINT_C(4)
+#define DHCP6_RENEW		UINT_C(5)
+#define DHCP6_REBIND		UINT_C(6)
+#define DHCP6_REPLY		UINT_C(7)
+#define DHCP6_RELEASE		UINT_C(8)
+#define DHCP6_DECLINE		UINT_C(9)
+#define DHCP6_RECONFIGURE	UINT_C(10)
+#define DHCP6_INFO_REQ		UINT_C(11)
+#define DHCP6_RELAY_FORW	UINT_C(12)
+#define DHCP6_RELAY_REPL	UINT_C(13)
+
+/*
+ *  DHCPv6 ãªãã·ã§ã³
+ */
+
+#define DHCP6_OPT_CLIENTID	UINT_C(1)
+#define DHCP6_OPT_SERVERID	UINT_C(2)
+#define DHCP6_OPT_IA_NA		UINT_C(3)
+#define DHCP6_OPT_IA_TA		UINT_C(4)
+#define DHCP6_OPT_IAADDR	UINT_C(5)
+#define DHCP6_OPT_ORO		UINT_C(6)
+#define DHCP6_OPT_PREFERENCE	UINT_C(7)
+#define DHCP6_OPT_UNICAST	UINT_C(12)
+#define DHCP6_OPT_STATUS_CODE	UINT_C(13)
+#define DHCP6_OPT_RAPID_COMMIT	UINT_C(14)
+#define DHCP6_OPT_NAME_SERVERS	UINT_C(23)
+#define DHCP6_OPT_DOMAIN_SEARCH	UINT_C(24)
+#define DHCP6_OPT_IA_PD		UINT_C(25)
+
+/* hardware address type ã®å®ç¾© */
+
+#define DHCP6_HWA_TYPE_ETHER	UINT_C(1)
+#define DHCP6_HWA_TYPE_IEEE802	UINT_C(6)
+
+/* STATUS CODE ã®å®ç¾© */
+
+#define DHCP6_STAT_SUCCESS	UINT_C(0)
+#define DHCP6_STAT_UNSPECIFID	UINT_C(1)
+#define DHCP6_STAT_NO_AVAIL	UINT_C(2)
+#define DHCP6_STAT_NO_BINDING	UINT_C(3)
+#define DHCP6_STAT_NO_ONLINK	UINT_C(4)
+#define DHCP6_STAT_USE_MCAST	UINT_C(5)
+
+/* æéå®æ°[s]ã®å®ç¾© */
+
+#define DHCP6_MAX_TIME		UINT_C(0xffffffff)
+
+/*
+ *  ãªãã·ã§ã³ã®ãããé¨ã®å®ç¾©
+ */
+
+/* ãªãã·ã§ã³ã®å
+±éé¨ */
+
+typedef struct dhcp6_option {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	} T_DHCP6_OPTION;
+
+/* ãªãã·ã§ã³ã®å
+±éé¨ */
+
+/* CLIENTID ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_clientid {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	} T_DHCP6_OPT_CLIENTID;
+
+/* SERVERID ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_serverid {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	} T_DHCP6_OPT_SERVERID;
+
+/* IA_NA/IA_PD ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_ia_na_pd {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	uint32_t	iaid;		/* IA ID		*/
+	uint32_t	renew;		/* renew  timeout (T1)	*/
+	uint32_t	rebind;		/* rebind timeout (T2)	*/
+	} T_DHCP6_OPT_IA_NA_PD;
+
+/* IA_TA ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_ia_ta {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	uint32_t	iaid;		/* IA ID		*/
+	} T_DHCP6_OPT_IA_TA;
+
+/* IAADDR ãªãã·ã§ã³ */
+
+#ifdef T_IN6_ADDR_DEFINED
+
+typedef struct dhcp6_opt_iaaddr {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	T_IN6_ADDR	addr;		/* IPv6 address		*/
+	uint32_t	prefer;		/* preferred lifetime	*/
+	uint32_t	valid;		/* valid     lifetime	*/
+	} T_DHCP6_OPT_IAADDR;
+
+#endif	/* of #ifdef T_IN6_ADDR_DEFINED */
+
+/* ORO ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_oro {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	} T_DHCP6_OPT_ORO;
+
+/* PREFERENCE ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_preference {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	uint8_t		prefer;		/* preference value	*/
+	} T_DHCP6_OPT_PREFERENCE;
+
+/* UNICAST ãªãã·ã§ã³ */
+
+#ifdef T_IN6_ADDR_DEFINED
+
+typedef struct dhcp6_opt_unicast {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	T_IN6_ADDR	addr;		/* IPv6 address for server*/
+	} T_DHCP6_OPT_UNICAST;
+
+#endif	/* of #ifdef T_IN6_ADDR_DEFINED */
+
+/* STATUS CODE ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_status_code {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	uint16_t	status;		/* status code		*/
+	} T_DHCP6_OPT_STATUS_CODE;
+
+/* NAME SERVERS ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_name_servers {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	T_IN6_ADDR	addrs[1];	/* IPv6 address		*/
+	} T_DHCP6_OPT_NAME_SERVERS;
+
+/* DOMAIN SEARCH ãªãã·ã§ã³ */
+
+typedef struct dhcp6_opt_domain_search {
+	uint16_t	code;		/* option code		*/
+	uint16_t	len;		/* option length	*/
+	uint8_t		name[1];	/* domain search	*/
+	} T_DHCP6_OPT_DOMAIN_SEARCH;
+
+/*
+ *  DHCPv6 ã¿ã¤ãã³ã°å®æ°ãRFC3315 5.5 åç
+§ã
+ *  ãã®ä»ã®ã¿ã¤ãã³ã°å®æ°ã¯ dhcp6_cli.h åç
+§
+ */
+
+#ifdef SYSTIM_HZ
+
+#define TMO_SOL_MAX_DELAY	(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_SOL_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_SOL_MAX_RT		(120*SYSTIM_HZ)	/* 120[s] 	*/
+#define TMO_REQ_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_REQ_MAX_RT		(30*SYSTIM_HZ)	/*  30[s] 	*/
+#define TMO_REQ_MAX_RC		10		/* åéä¿¡åæ°	*/
+#define TMO_CNF_MAX_DELAY	(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_CNF_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_CNF_MAX_RT		(4*SYSTIM_HZ)	/*   4[s] 	*/
+#define TMO_CNF_MAX_RD		(10*SYSTIM_HZ)	/*  10[s] 	*/
+#define TMO_REN_TIMEOUT		(10*SYSTIM_HZ)	/*  10[s] 	*/
+#define TMO_REN_MAX_RT		(600*SYSTIM_HZ)	/* 600[s] 	*/
+#define TMO_REB_TIMEOUT		(10*SYSTIM_HZ)	/*  10[s] 	*/
+#define TMO_REB_MAX_RT		(600*SYSTIM_HZ)	/* 600[s] 	*/
+#define TMO_INF_MAX_DELAY	(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_INF_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_INF_MAX_RT		(120*SYSTIM_HZ)	/* 120[s] 	*/
+#define TMO_REL_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_REL_MAX_RC		5		/* åéä¿¡åæ°	*/
+#define TMO_DEC_TIMEOUT		(1*SYSTIM_HZ)	/*   1[s] 	*/
+#define TMO_DEC_MAX_RC		5		/* åéä¿¡åæ°	*/
+#define TMO_REC_TIMEOUT		(2*SYSTIM_HZ)	/*   2[s] 	*/
+#define TMO_REC_MAX_RC		8		/* åéä¿¡åæ°	*/
+
+#endif	/* of #ifdef SYSTIM_HZ */
+
+/*
+ *  DUID -- DHCP Unique ID
+ */
+
+/* DUID_LLT æ§é ä½ */
+
+typedef struct dhcp6_duid_llt_hdr {
+	uint16_t	code;		/* DUID code		*/
+	uint16_t	type;		/* hardware type	*/
+	uint32_t	time;		/* time			*/
+	} T_DHCP6_DUID_LLT_HDR;
+
+/* DUID_LL æ§é ä½ */
+
+typedef struct dhcp6_duid_ll_hdr {
+	uint16_t	code;		/* DUID code		*/
+	uint16_t	type;		/* hardware type	*/
+	} T_DHCP6_DUID_LL_HDR;
+
+/* DUID ã¿ã¤ããRFC3315 9åç
+§ã*/
+
+#define DUID_LLT		1
+#define DUID_EN			2
+#define DUID_LL			3
+
+/*
+ *  DUID æéã®èª¿æ´
+ *  DUID æéã®éå§ã¯ 2001/1/1
+ */
+
+#define DUID_TIME_EPOCH		0
+
+/* ãªã¬ã¼è»¢éã®æå¤§ãããæ° */
+
+#define HOP_COUNT_LIMIT		32
+
+/*
+ *  IPv6 ã¢ãã¬ã¹
+ */
+
+#define IPV6_ADDR_ALL_DHCP_RELAY_SERVERS_INIT	\
+	{{{ UINT_C(0xff), UINT_C(0x02), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x01), UINT_C(0x00), UINT_C(0x02) }}}
+
+#define IPV6_ADDR_ALL_DHCP_SERVERS_INIT	\
+	{{{ UINT_C(0xff), UINT_C(0x05), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x01), UINT_C(0x00), UINT_C(0x03) }}}
+
+/*
+ *  UDP ãã¼ãçªå·
+ */
+
+#ifndef DHCP6_SRV_CFG_PORTNO
+#define DHCP6_SRV_CFG_PORTNO	547	/* server	*/
+#endif
+
+#ifndef DHCP6_CLI_CFG_PORTNO
+#define DHCP6_CLI_CFG_PORTNO	546	/* client	*/
+#endif
+
+#endif	/* of #ifndef DHCP6_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.c	(revision 313)
@@ -0,0 +1,3338 @@
+/*
+ * Copyright (c) 2004-2011 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1995-2003 by Internet Software Consortium
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *   Internet Systems Consortium, Inc.
+ *   950 Charter Street
+ *   Redwood City, CA 94063
+ *   <info@isc.org>
+ *   https://www.isc.org/
+ *
+ * This code is based on the original client state machine that was
+ * written by Elliot Poger.  The code has been extensively hacked on
+ * by Ted Lemon since then, so any mistakes you find are probably his
+ * fault and not Elliot's.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+
+#include <net/if_var.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/dhcp6_cli.h>
+#include <netapp/dhcp6_cli_var.h>
+#include <netapp/resolver.h>
+
+/*
+ *  DHCPv6 ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯
+ */
+
+#ifdef DHCP6_CLI_CFG
+
+/*
+ *  DHCP åä½ã¢ã¼ã
+ *
+ *    #define DHCP6_CLI_CFG_MODE ã§æå®ããã
+ *
+ */
+
+#if !defined(DHCP6_CLI_CFG_MODE)
+#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_MODE_DEFAULT
+#endif
+
+/*
+ *  å¤æ°
+ */
+
+static const T_IN6_ADDR in6_addr_all_DHCP_relay_servers =
+	IPV6_ADDR_ALL_DHCP_RELAY_SERVERS_INIT;			/* ãªã¬ã¼ã»ãµã¼ãã® IPv6 ã¢ãã¬ã¹	*/
+static T_DHCP6_CLI_CONTEXT	context;			/* ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ã	*/
+
+#ifdef DHCP6_CLI_CFG_REQUIRED_OLIST
+static uint8_t	required_plist[] = DHCP6_CLI_CFG_REQUIRED_OLIST;	/* å¿
+é ãªãã·ã§ã³ãªã¹ã		*/
+#endif
+
+#ifdef DHCP6_CLI_CFG_REQUEST_OLIST
+static uint8_t	request_plist[] = DHCP6_CLI_CFG_REQUEST_OLIST;		/* è¦æ±ãªãã·ã§ã³ãªã¹ã		*/
+#endif
+
+/*
+ *  dhcp6_rand -- RFC3315 ã«è¦å®ãããä¹±æ°ãçºçããã
+ */
+
+static int32_t
+dhcp6_rand (SYSTIM base)
+{
+	SYSTIM 		range, split;
+	uint32_t	rval;
+
+	split = (base - 1) / 10;
+	if (split == 0)
+		return 0;
+	range = (split * 2) + 10;
+	rval = netapp_rand() % range - split;
+
+	return rval;
+	}
+
+/*
+ *  init_duid -- ã¯ã©ã¤ã¢ã³ãã® DUID ãè¨­å®ããã
+ */
+
+static void
+init_duid (T_DHCP6_CLI_CONTEXT *ct)
+{
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+
+	/* åä½ã¢ã¼ãã« STATELESS ãæå®ãããæã¯ LL å½¢å¼ã«ããã*/
+
+	T_DHCP6_DUID_LL_HDR	*ll;
+
+	ll = (T_DHCP6_DUID_LL_HDR*)&ct->duid[0];
+	HOST2MSG16(ll->code, DUID_LL);
+	HOST2MSG16(ll->type, DHCP6_HWA_TYPE_ETHER);
+	memcpy(&ct->duid[sizeof(*ll)], &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr));
+	ct->duid_len = sizeof(*ll) + sizeof(ct->sc->ifaddr.lladdr);	/* DIUD é·ãè¨é²ããã*/
+
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+	/*
+	 *    åä½ã¢ã¼ãã« DHCP6_CLI_CFG_STATEFULL ãæå®ãããæã¯ LLT å½¢å¼ã«ããã
+	 *    time ã¡ã³ãã¼ã«ã¯ç¾å¨ã®æé[s]ãè¨­å®ããã
+	 *    æ³¨æ: æ«å®çã« get_tim() ã®å¤ãä½¿ãããè¦æ¤è¨
+	 */
+
+	T_DHCP6_DUID_LLT_HDR	*llt;
+	SYSTIM			time;
+
+	get_tim(&time);
+	time = SYSTIM2SEC(time) - DUID_TIME_EPOCH;
+	llt = (T_DHCP6_DUID_LLT_HDR*)&ct->duid[0];
+	HOST2MSG16(llt->code, DUID_LLT);
+	HOST2MSG16(llt->type, DHCP6_HWA_TYPE_ETHER);
+	HOST2MSG32(llt->time, time);
+	memcpy(&ct->duid[sizeof(*llt)], &ct->sc->ifaddr.lladdr, sizeof(ct->sc->ifaddr.lladdr));
+	ct->duid_len = sizeof(*llt) + sizeof(ct->sc->ifaddr.lladdr);	/* DIUD é·ãè¨é²ããã*/
+
+#else	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+	}
+
+/*
+ *  cancel_all_timers -- å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã
+ */
+
+static void
+cancel_all_timers (T_DHCP6_CLI_CONTEXT *ct)
+{
+	int ix;
+
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	for (ix = NUM_DHCP6C_TIMERS; ix -- > 0; )
+		ct->timers[ix] = 0;
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+	}
+
+/*
+ *  dhcpc_timer -- TIMER ç®¡ç
+ */
+
+static void
+dhcpc_timer (T_DHCP6_CLI_CONTEXT *ct)
+{
+	int ix;
+
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	for (ix = NUM_DHCP6C_TIMERS; ix -- > 0; ) {
+		if (ct->timers[ix] != 0) {
+			ct->timers[ix] --;
+			if (ct->timers[ix] == 0) {
+				ct->flags = (ct->flags & ~DHCP6C_FLAG_TMOUT_MASK) | DHCP6C_FLAG_TMOUT_TIMER | ix;
+				syscall(sig_sem(SEM_DHCP6_CLI_READY));
+				}
+			}
+		}
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããã*/
+	timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP6C_TIMER_HZ);
+	}
+
+/*
+ *  find_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã
+ *
+ *    æ³¨æ: å¼æ° len ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã
+ *          å¼æ° len ã«ã¯ãªãã·ã§ã³å
+¨ä½ã®ãµã¤ãºãæå®ãããã¨ã
+ */
+
+static uint8_t *
+find_option (uint8_t *msg, uint_t msg_len, uint_t code, uint_t len)
+{
+	T_DHCP6_OPTION	*hdr;
+	uint8_t		*last;
+
+	last = msg + msg_len;
+	while (msg < last) {
+		hdr = (T_DHCP6_OPTION*)msg;
+		if (MSG2HOST16(hdr->code) == code && (len == 0 || (MSG2HOST16(hdr->len) + sizeof(*hdr)) == len))
+			return msg;
+		else
+			msg += MSG2HOST16(hdr->len) + sizeof(*hdr);
+		}
+	return NULL;
+	}
+
+/*
+ *  find_msg_option -- æå®ãããªãã·ã§ã³ãæ¢ç´¢ããã
+ *
+ *    æ³¨æ: å¼æ° len ã 0 ã®æã¯ãªãã·ã§ã³ãµã¤ãºãæ¤è¨¼ããªãã
+ *          å¼æ° len ã«ã¯ãªãã·ã§ã³å
+¨ä½ã®ãµã¤ãºãæå®ãããã¨ã
+ */
+
+static uint8_t *
+find_msg_option (T_DHCP6_CLI_MSG *cli_msg, uint_t code, uint_t len)
+{
+	return find_option(cli_msg->msg.options, cli_msg->len, code, len);
+	}
+
+/*
+ *  is_equal_sid -- ã¡ãã»ã¼ã¸å
+ã® SERVER ID ãæ¯è¼ããã
+ */
+
+static bool_t
+is_equal_sid (T_DHCP6_CLI_MSG *msg1, T_DHCP6_CLI_MSG *msg2)
+{
+	T_DHCP6_OPT_SERVERID	*sid1;
+	T_DHCP6_OPT_SERVERID	*sid2;
+
+	if ((sid1 = (T_DHCP6_OPT_SERVERID*)find_msg_option(msg1, DHCP6_OPT_SERVERID, 0)) == NULL)
+		return false;
+	if ((sid2 = (T_DHCP6_OPT_SERVERID*)find_msg_option(msg2, DHCP6_OPT_SERVERID, 0)) == NULL)
+		return false;
+	if (MSG2HOST16(sid1->len) != MSG2HOST16(sid2->len))
+		return false;
+
+	return memcmp((uint8_t*)sid1 + sizeof(*sid1),
+	              (uint8_t*)sid2 + sizeof(*sid2), MSG2HOST16(sid1->len)) == 0;
+	}
+
+/*
+ *  validate_iaaddrs -- ã¢ãã¬ã¹æ
+å ±ï¼IAADDRï¼ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_iaaddrs (uint8_t *opt, uint_t len)
+{
+	T_DHCP6_OPT_IAADDR	*iaa;
+
+	/* ãªãã·ã§ã³ã IAADDR ã§ãããã¨ãæ¤è¨¼ããã*/
+	iaa = (T_DHCP6_OPT_IAADDR*)opt;
+	if (MSG2HOST16(iaa->code) != DHCP6_OPT_IAADDR)
+		return E_PAR;
+
+	while (len > 0) {
+		/* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/
+		if (len < sizeof(*iaa))
+			return E_PAR;
+
+		/* ãªãã·ã§ã³é·ã T_DHCP6_OPT_IAADDR ã®ãµã¤ãºã¨ä¸è´ãã¦ããªããã°ã¨ã©ã¼ */
+		iaa = (T_DHCP6_OPT_IAADDR*)opt;
+		if ((MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) < (sizeof(*iaa) - sizeof(T_DHCP6_OPTION)))
+			return E_PAR;
+
+		/*
+		 *  perferred-lifetime ã¨ valid-lifetime ã®å¤ãçç¾ãã¦ããã¨ãã¯ã¨ã©ã¼
+		 *  ãRFC3315 (22.6) åç
+§ã
+		 */
+		if (MSG2HOST32(iaa->prefer) > MSG2HOST32(iaa->valid))
+			return E_PAR;
+
+		len -= (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(T_DHCP6_OPTION);
+		opt += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(T_DHCP6_OPTION);
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  validate_ia_na_pd -- IA_NA/IA_PD ãªãã·ã§ã³ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_ia_na_pd (T_DHCP6_CLI_MSG *msg, uint16_t code)
+{
+	T_DHCP6_OPT_IA_NA_PD	*na;
+	uint8_t			*opt;
+
+	/* IA_NA/IA_PD ãç¡ããã°æ¤è¨¼ããªãã*/
+	if ((opt = find_msg_option(msg, code, 0)) == NULL)
+		return E_OK;
+
+	/* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/
+	na = (T_DHCP6_OPT_IA_NA_PD*)opt;
+	if (!(msg->len >= (opt - (uint8_t*)&msg->msg) + sizeof(*na) &&
+	                         (MSG2HOST16(na->len) & ~DHCP6C_IAA_FLAG_MASK) >= sizeof(*na)))
+		return E_PAR;
+
+	/*
+	 *  T1 ã¨ T2 ã®å¤ãçç¾ãã¦ããæãã¾ãã¯ã¢ãã¬ã¹æ
+å ±ãèª¤ã£ã¦ããæã¯ã¨ã©ã¼
+	 *  ãRFC3315 (22.4) åç
+§ã
+	 */
+	if (MSG2HOST32(na->renew) > 0 && MSG2HOST32(na->rebind) > 0 &&
+	    MSG2HOST32(na->renew) >      MSG2HOST32(na->rebind))
+		return E_PAR;
+
+	if (validate_iaaddrs(opt + sizeof(*na), (MSG2HOST16(na->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*na) - sizeof(T_DHCP6_OPTION))) != E_OK)
+		return E_PAR;
+
+	return E_OK;
+	}
+
+/*
+ *  validate_ia_ta -- IA_TA ãªãã·ã§ã³ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_ia_ta (T_DHCP6_CLI_MSG *msg)
+{
+	T_DHCP6_OPT_IA_TA	*ta;
+	uint8_t			*opt;
+
+	/* IA_TA ãç¡ããã°æ¤è¨¼ããªãã*/
+	if ((opt = find_msg_option(msg, DHCP6_OPT_IA_TA, 0)) == NULL)
+		return E_OK;
+
+	/* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/
+	ta = (T_DHCP6_OPT_IA_TA	*)opt;
+	if (!(msg->len >= (opt - (uint8_t*)&msg->msg) + sizeof(*ta) &&
+	                         (MSG2HOST16(ta->len) & ~DHCP6C_IAA_FLAG_MASK) >= sizeof(*ta)))
+		return E_PAR;
+
+	/*
+	 *  ã¢ãã¬ã¹æ
+å ±ãèª¤ã£ã¦ããæã¯ã¨ã©ã¼ãRFC3315 (22.4) åç
+§ã
+	 */
+	if (validate_iaaddrs(opt + sizeof(*ta), (MSG2HOST16(ta->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*ta) - sizeof(T_DHCP6_OPTION))) != E_OK)
+		return E_PAR;
+
+	return E_OK;
+	}
+/*
+ *  classify_reply -- å¿ç­ã¡ãã»ã¼ã¸ãåé¡ããã
+ */
+
+static ER
+classify_reply (T_DHCP6_CLI_MSG *msg)
+{
+	ER	error;
+
+	/* IA_NA ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	if ((error = validate_ia_na_pd(msg, DHCP6_OPT_IA_NA)) != E_OK)
+		return error;
+
+	/* IA_TA ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	if ((error = validate_ia_ta(msg)) != E_OK)
+		return error;
+
+	/* IA_PD ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	if ((error = validate_ia_na_pd(msg, DHCP6_OPT_IA_PD)) != E_OK)
+		return error;
+
+	/* ãµã¼ã DUID ããããã¨ãæ¤è¨¼ããã*/
+	if (find_msg_option(msg, DHCP6_OPT_SERVERID, 0) == NULL)
+		return E_PAR;
+
+	return E_OK;
+	}
+
+/*
+ *  validate_reply -- å¿ç­ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_reply (T_DHCP6_CLI_CONTEXT *ct, T_DHCP6_CLI_MSG *msg)
+{
+	T_DHCP6_OPT_CLIENTID	*cid;
+	uint8_t			*opt;
+
+	/* ãµã¼ã DUID ããããã¨ãæ¤è¨¼ããã*/
+	if (find_msg_option(msg, DHCP6_OPT_SERVERID, 0) == NULL)
+		return E_PAR;
+
+	/* ã¯ã©ã¤ã¢ã³ã DUID ããããèªåã®ã¯ã©ã¤ã¢ã³ã DUID ã¨åããã¨ãæ¤è¨¼ããã*/
+	if ((opt = find_msg_option(msg, DHCP6_OPT_CLIENTID, 0)) == NULL)
+		return E_PAR;
+
+	cid = (T_DHCP6_OPT_CLIENTID*)opt;
+	if (MSG2HOST16(cid->len) != ct->duid_len)
+		return E_PAR;
+	if (memcmp(opt + sizeof(*cid), ct->duid, ct->duid_len) != 0)
+		return E_PAR;
+
+	return E_OK;
+	}
+
+/*
+ *  get_status_code -- STATUS ãªãã·ã§ã³ã®çµæã³ã¼ããç²å¾ããã
+ */
+
+static ER_UINT
+get_status_code (uint8_t *msg, uint_t msg_len)
+{
+	T_DHCP6_OPT_STATUS_CODE	*status;
+	uint8_t			*opt;
+
+	/* STATUS ãªãã·ã§ã³ãç¡ããã°æ¤è¨¼ããªãã*/
+	if ((opt = find_option(msg, msg_len, DHCP6_OPT_STATUS_CODE, 0)) == NULL)
+		return DHCP6_STAT_SUCCESS;
+
+	/* ãªãã·ã§ã³é·ãæ¤è¨¼ããã*/
+	status = (T_DHCP6_OPT_STATUS_CODE*)opt;
+	if (msg_len < sizeof(*status))
+		return E_PAR;
+	if (MSG2HOST16(status->len) < sizeof(*status) - sizeof(T_DHCP6_OPTION))
+		return E_PAR;
+
+	return MSG2HOST16(status->status);
+	}
+
+/*
+ *  get_msg_status_code -- STATUS ãªãã·ã§ã³ã®çµæã³ã¼ããç²å¾ããã
+ */
+
+static ER_UINT
+get_msg_status_code (T_DHCP6_CLI_MSG *cli_msg, uint_t *code)
+{
+	T_DHCP6_OPTION		*opt;
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	T_DHCP6_OPT_IA_TA	*ta;
+	ER_UINT			status;
+	uint8_t			*msg, *last;
+
+	*code = 0;
+	cli_msg->status = DHCP6_CLI_STAT_UNDEFINED;
+	if ((status = get_status_code(cli_msg->msg.options, cli_msg->len)) == DHCP6_STAT_SUCCESS) {
+
+		msg = cli_msg->msg.options;
+		last = msg + (cli_msg->len - sizeof(T_DHCP6_MSG_HDR));
+		while (msg < last) {
+
+			opt = (T_DHCP6_OPTION*)msg;
+			status = get_status_code(msg + sizeof(*opt), MSG2HOST16(opt->len));
+			if (status != DHCP6_STAT_SUCCESS) {
+				*code = MSG2HOST16(opt->code);
+				break;
+				}
+
+			if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) {
+
+				ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+				status = get_status_code(msg + sizeof(*opt), MSG2HOST16(ia->len));
+				if (status != DHCP6_STAT_SUCCESS) {
+					*code = MSG2HOST16(((T_DHCP6_OPTION*)((uint8_t*)opt + sizeof(*opt)))->code);
+					break;
+					}
+				}
+
+			else if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_TA) {
+
+				ta = (T_DHCP6_OPT_IA_TA*)opt;
+				status = get_status_code(msg + sizeof(*opt), MSG2HOST16(ta->len));
+				if (status != DHCP6_STAT_SUCCESS) {
+					*code = MSG2HOST16(((T_DHCP6_OPTION*)((uint8_t*)opt + sizeof(*opt)))->code);
+					break;
+					}
+				}
+
+			msg += MSG2HOST16(opt->len) + sizeof(*opt);
+			}
+		cli_msg->status = status;
+		}
+	
+	return status;
+	}
+
+/*
+ *  validate_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã
+ */
+
+static ER
+validate_rcv_msg (T_DHCP6_CLI_CONTEXT *ct, T_DHCP6_CLI_MSG *msg)
+{
+	ER	error;
+	uint_t	code;
+
+	/* ã¡ãã»ã¼ã¸ã®ã¿ã¤ããä¸è´ãã¦ãããã¨ãæ¤è¨¼ããã*/
+	switch (ct->fsm) {
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	case DHCP6_FSM_SELECT:
+		if (msg->msg.hdr.type != DHCP6_REPLY)
+			return E_PAR;
+		break;
+	case DHCP6_FSM_INFORMED:
+		return E_PAR;
+		break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	case DHCP6_FSM_INIT:
+		if (msg->msg.hdr.type != DHCP6_ADVERTISE)
+			return E_PAR;
+		break;
+
+	case DHCP6_FSM_SELECT:
+	case DHCP6_FSM_RENEW:
+	case DHCP6_FSM_REBIND:
+	case DHCP6_FSM_REL_INFO:
+		if (msg->msg.hdr.type != DHCP6_REPLY)
+			return E_PAR;
+		break;
+
+	case DHCP6_FSM_BOUND:
+		return E_PAR;
+		break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+	default:
+		syslog(LOG_NOTICE, "[DHCP6C] error, unknown state: %d.", ct->fsm);
+		return E_PAR;
+		break;
+		}
+
+	/* åä¿¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/
+	if ((error = validate_reply(ct, msg)) != E_OK)
+		return error;
+
+	/* åä¿¡ã¡ãã»ã¼ã¸ãåé¡ããã*/
+	if ((error = classify_reply(msg)) != E_OK)
+		return error;
+
+	/* åä¿¡ããã¡ãã»ã¼ã¸å
+ã® STATUS CODE ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	error = get_msg_status_code(msg, &code);
+	if (error != E_OK)
+		return error > 0 ? E_PAR : error;
+
+	return E_OK;
+	}
+
+/*
+ *  eval_ia_prefer -- IA_NA/IA_TA/IA_PD ã®æ¨å¥¨åº¦ãè©ä¾¡ããã
+ */
+
+static void
+eval_ia_prefer (T_DHCP6_CLI_MSG *cli_msg)
+{
+	T_DHCP6_OPTION		*opt;
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	T_DHCP6_OPT_IA_TA	*ta;
+	T_DHCP6_OPT_IAADDR	*iaa;
+	uint8_t		*msg, *last;
+	uint_t		aoff, asize;
+
+	/* ç¡å¹ã®å ´åã¯çµäºããã*/
+	if (cli_msg == NULL)
+		return;
+
+	msg = cli_msg->msg.options;
+	last = msg + (cli_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	while (msg < last) {
+		opt = (T_DHCP6_OPTION*)msg;
+
+		if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) {
+
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			aoff  = sizeof(*ia);
+			asize = MSG2HOST16(ia->len) + sizeof(*opt);
+			while (aoff < asize) {
+				cli_msg->prefer += DHCP6_CLI_CFG_PREFER_IAADDR;
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa);
+				}
+			cli_msg->prefer = (cli_msg->prefer + DHCP6_CLI_CFG_PREFER_IA) | DHCP6_ClI_MSG_PREFER_ADDR;
+			}
+
+		else if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_TA) {
+
+			ta = (T_DHCP6_OPT_IA_TA*)opt;
+			aoff  = sizeof(*ta);
+			asize = MSG2HOST16(ta->len) + sizeof(*opt);
+			while (aoff < asize) {
+				cli_msg->prefer += DHCP6_CLI_CFG_PREFER_IAADDR;
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa);
+				}
+			cli_msg->prefer = (cli_msg->prefer + DHCP6_CLI_CFG_PREFER_IA) | DHCP6_ClI_MSG_PREFER_ADDR;
+			}
+
+		msg += MSG2HOST16(opt->len) + sizeof(*opt);
+		}
+
+	}
+
+/*
+ *  eval_prefer -- åä¿¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã
+ */
+
+static void
+eval_prefer (T_DHCP6_CLI_MSG *msg)
+{
+	uint8_t			*opt;
+	int			ix;
+
+	/* ç¡å¹ã®å ´åã¯çµäºããã*/
+	if (msg == NULL)
+		return;
+
+	/* PREFERENCE ãªãã·ã§ã³ãè©ä¾¡ããã*/
+	if ((opt = find_msg_option(msg, DHCP6_OPT_PREFERENCE, sizeof(T_DHCP6_OPT_PREFERENCE))) != NULL)
+		msg->prefer = MSG2HOST16(((T_DHCP6_OPT_PREFERENCE*)opt)->prefer) | DHCP6_ClI_MSG_PREFER_OPTION;
+	else
+		msg->prefer = 1;
+
+#if defined(DHCP6_CLI_CFG_REQUIRED_OLIST)
+
+	/* å¿
+é ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	for (ix = sizeof(required_plist); ix -- > 0; ) {
+		if (find_msg_option(msg, required_plist[ix], 0) == NULL)
+			msg->prefer = 0;
+		}
+	msg->prefer |= DHCP6_ClI_MSG_PREFER_REQUIRED;
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) */
+
+#if defined(DHCP6_CLI_CFG_REQUEST_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãæ¤è¨¼ããã*/
+	for (ix = sizeof(request_plist); ix -- > 0; ) {
+		if (find_msg_option(msg, request_plist[ix], 0) != NULL)
+			msg->prefer = (msg->prefer + 1) | DHCP6_ClI_MSG_PREFER_REQUEST;
+		}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_REQUEST_OLIST) */
+	}
+
+/*
+ *  eval_rcv_msg -- åä¿¡ã¡ãã»ã¼ã¸ãè©ä¾¡ããã
+ */
+
+static ER
+eval_rcv_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG	*evl, *msg;
+	SYSTIM		time;
+
+	/* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸­æ­¢ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	if (ct->val_lst == NULL) {
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return E_OK;
+		}
+
+	/* æ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãããè©ä¾¡ã¡ãã»ã¼ã¸ãåãåºãã*/
+	evl         = ct->val_lst;
+	ct->val_lst = ct->val_lst->next;
+	evl->next   = NULL;
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+	/* åä¿¡æéãè¨­å®ããã*/
+	get_tim(&time);
+	evl->rcv_time = time;
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ãæ¤è¨¼ããã*/
+	if (validate_rcv_msg(ct, evl) != E_OK) {
+
+		/* ã¨ã©ã¼ãçºçããè©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+		goto rcv_ret;
+		}
+
+	/* REL_INFO ç¶æ
+ã®æã®å¦ç */
+	if (ct->fsm == DHCP6_FSM_REL_INFO) {
+		syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+		if (evl->status == DHCP6_STAT_SUCCESS) {
+			/*
+			 *  STATUS CODE ã DHCP6_STAT_SUCCESS ãªãã
+			 *  è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«è¨­å®ãã¦çµäºããã
+			 */
+			evl->next   = ct->prf_lst;
+			ct->prf_lst = evl;
+			}
+		else {
+			/* è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã¦çµäºããã*/
+			evl->next   = ct->rcv_lst;
+			ct->rcv_lst = evl;
+			}
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return E_OK;
+		}
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãè©ä¾¡ããã*/
+	eval_prefer(evl);
+	eval_ia_prefer(evl);
+
+	/* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããç©ºãªãè©ä¾¡ã¡ãã»ã¼ã¸ãç§»ãã¦çµäºããã*/
+	if (ct->prf_lst == NULL) {
+		ct->max_prefer = evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK;
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+
+	/* è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã¨æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ãæ¯è¼ããã*/
+	if ((evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK) > ct->max_prefer) {
+
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ããé«ããã°ã
+		 *  æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã
+		 */
+		ct->max_prefer = evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK;
+		syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+		if (ct->rcv_lst == NULL)
+			ct->rcv_lst = ct->prf_lst;
+		else {
+			for (msg = ct->rcv_lst; msg->next != NULL; msg = msg->next)
+				;
+			msg->next = ct->prf_lst;
+			}
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+
+	else if ((evl->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK) == ct->max_prefer) {
+		for (msg = ct->prf_lst; msg != NULL; msg = msg->next) {
+			if (is_equal_sid(evl, msg)) {
+
+				/*
+				 *  æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«åã DHCP6_OPT_SERVERID ã®ã¡ãã»ã¼ã¸ãããã°ã
+				 *  è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+				 */
+				goto rcv_ret;
+				}
+			}
+
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã
+		 */
+		evl->next   = ct->prf_lst;
+		ct->prf_lst = evl;
+		return E_OK;
+		}
+	
+	/*else */
+		/* 
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ãæ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®æå¤§æ¨å¥¨åº¦ããä½ããã°ã
+		 *  è©ä¾¡ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+		 */
+
+rcv_ret:
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	evl->next   = ct->rcv_lst;
+	ct->rcv_lst = evl;
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+	return E_OK;
+	}
+
+/*
+ *  select_msg -- æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å
+é ­ã®ã¡ãã»ã¼ã¸ãé¸æããã
+ */
+
+static T_DHCP6_CLI_MSG*
+select_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG		*msg, *select;
+
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	if (ct->prf_lst == NULL) {
+		/* ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ä¸­æ­¢ããã*/
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return NULL;
+		}
+
+	select = ct->prf_lst;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+
+	if ((select->prefer & DHCP6_ClI_MSG_PREFER_REQUIRED) == 0) {
+		/* å¿
+é ãªãã·ã§ã³ãç¡ããã°é¸æããªãã*/
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return NULL;
+		}
+
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+	if (((select->prefer & DHCP6_ClI_MSG_PREFER_REQUIRED) == 0) ||
+	    ((select->prefer & DHCP6_ClI_MSG_PREFER_ADDR)     == 0)) {
+		/* å¿
+é ãªãã·ã§ã³ã¨ã¢ãã¬ã¹ãç¡ããã°é¸æããªãã*/
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return NULL;
+		}
+
+#else	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+	/* æ¨å¥¨ã¡ãã»ã¼ã¸ãªã¹ãã®å
+é ­ã®ã¡ãã»ã¼ã¸ãé¸æããã*/
+	ct->prf_lst  = ct->prf_lst->next;
+	select->next = NULL;
+
+	/* é¸æãããªãã£ãæ¤è¨¼ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+	if (ct->rcv_lst == NULL)
+		ct->rcv_lst = ct->prf_lst;
+	else {
+		for (msg = ct->rcv_lst; msg->next != NULL; msg = msg->next)
+			;
+		msg->next = ct->prf_lst;
+		}
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+	return select;
+	}
+
+/*
+ *  advance_retrans -- åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã
+ */
+
+static void
+advance_retrans (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/*
+	 *  åéä¿¡ééï¼RTï¼ãæ´æ°ããã
+	 *  åéä¿¡æ¯ã«ç´ 2åãããã
+	 *  æå¤§éä¿¡ééï¼MRTï¼ãè¶
+ããªãããã«ããã
+	 */
+	ct->RT += ct->RT + dhcp6_rand(ct->RT);
+	if ((ct->MRT != 0) && (ct->RT > ct->MRT))
+		ct->RT = ct->MRT + dhcp6_rand(ct->MRT);
+
+	/* åéä¿¡åæ°ãæ´æ°ããã*/
+	ct->txcount ++;
+	}
+
+/*
+ *  init_retrans -- åéä¿¡åæ°ããã©ã³ã¶ã¯ã·ã§ã³ IDããã®ä»ãè¨­å®ããã
+ */
+
+static void
+init_retrans (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* éä¿¡åæ°ããªã»ããããã*/
+	ct->txcount = 0;
+
+	/* åéä¿¡ééãè¨­å®ããã*/
+	ct->RT = ct->IRT + dhcp6_rand(ct->IRT);
+
+	/* ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	ct->xid = netapp_rand() % 0x00ffffff;
+
+	/* åä¿¡ã¡ãã»ã¼ã¸ã®æå¤§æ¨å¥¨åº¦ããªã»ããããã*/
+	ct->max_prefer = 0;
+	}
+
+/*
+ *  setup_msg_header -- ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã
+ */
+
+static uint8_t *
+setup_msg_header (T_DHCP6_CLI_CONTEXT *ct, uint_t type)
+{
+	memset((void*)&ct->snd_msg->msg, sizeof(ct->snd_msg->msg), 0);
+	ct->snd_msg->len = sizeof(ct->snd_msg->msg);
+
+	/* ãããé¨ãè¨­å®ããã*/
+	ct->snd_msg->msg.hdr.type   = type;
+	ct->snd_msg->msg.hdr.xid[0] = (ct->xid >> 16) & 0xff;
+	ct->snd_msg->msg.hdr.xid[1] = (ct->xid >>  8) & 0xff;
+	ct->snd_msg->msg.hdr.xid[2] =  ct->xid        & 0xff;
+
+	return (uint8_t*)&ct->snd_msg->msg + sizeof(ct->snd_msg->msg.hdr);
+	}
+
+/*
+ *  common_options -- æ¨æºãªãã·ã§ã³ãè¿½å ããã
+ */
+
+static uint8_t *
+common_options (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t type, T_DHCP6_CLI_MSG *lease)
+{
+	T_DHCP6_OPT_CLIENTID	*cid;
+	T_DHCP6_OPT_SERVERID	*sid;
+
+#if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) || defined(DHCP6_CLI_CFG_REQUEST_OLIST)
+	T_DHCP6_OPT_ORO		*oro;
+#endif
+
+	uint8_t			*opt;
+	uint_t			opt_len;
+	int_t			ix;
+
+#if defined(DHCP6_CLI_CFG_RAPID_COMMIT)
+
+	/* Rapid-commit ã®æå® */
+	if (type == DHCP6_SOLICIT)
+		;
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_RAPID_COMMIT) */
+
+	/* ã¯ã©ã¤ã¢ã³ã DUID ãè¿½å ããã*/
+	cid = (T_DHCP6_OPT_CLIENTID*)msg;
+	HOST2MSG16(cid->code, DHCP6_OPT_CLIENTID);
+	HOST2MSG16(cid->len,  ct->duid_len);
+	memcpy(msg + sizeof(T_DHCP6_OPT_CLIENTID), ct->duid, ct->duid_len);
+	msg += ct->duid_len + sizeof(T_DHCP6_OPT_CLIENTID);
+
+	/* ãµã¼ã DUID ãè¿½å ããã*/
+	if (lease == NULL) {
+		if (!(type == DHCP6_SOLICIT || type == DHCP6_INFO_REQ))
+			return NULL;
+		}
+	else if (!(type == DHCP6_CONFIRM || type == DHCP6_REBIND)) {
+		if ((opt = find_msg_option(lease, DHCP6_OPT_SERVERID, 0)) != NULL) {
+			sid = (T_DHCP6_OPT_SERVERID*)opt;
+			opt_len = MSG2HOST16(sid->len);
+			memcpy(msg, opt, opt_len + sizeof(*sid));
+			msg += opt_len + sizeof(*sid);
+			}
+		}
+
+#if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) || defined(DHCP6_CLI_CFG_REQUEST_OLIST)
+
+	/* å¿
+é ã»è¦æ±ãªãã·ã§ã³ãè¿½å ããã*/
+	oro = (T_DHCP6_OPT_ORO*)msg;
+	HOST2MSG16(oro->code, DHCP6_OPT_ORO);
+	HOST2MSG16(oro->len, 0);
+	msg += sizeof(oro->code) + sizeof(oro->len);
+
+#if defined(DHCP6_CLI_CFG_REQUIRED_OLIST)
+
+	/* å¿
+é ãªãã·ã§ã³ãè¿½å ããã*/
+	HOST2MSG16(oro->len, MSG2HOST16(oro->len) + sizeof(required_plist) * 2);
+	for (ix = sizeof(required_plist); ix -- > 0; ) {
+		host2msg16(msg, required_plist[ix]);
+		msg += sizeof(uint16_t);
+		}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) */
+
+#if defined(DHCP6_CLI_CFG_REQUEST_OLIST)
+
+	/* è¦æ±ãªãã·ã§ã³ãè¿½å ããã*/
+	HOST2MSG16(oro->len, MSG2HOST16(oro->len) + sizeof(request_plist) * 2);
+	for (ix = sizeof(request_plist); ix -- > 0; ) {
+		host2msg16(msg, request_plist[ix]);
+		msg += sizeof(uint16_t);
+		}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_REQUEST_OLIST) */
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_REQUIRED_OLIST) || defined(DHCP6_CLI_CFG_REQUEST_OLIST) */
+
+	return msg;
+	}
+
+/*
+ *  rel_lease -- ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè§£æ¾ããã
+ */
+
+static void
+rel_lease (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPTION			*hdr;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+	T_DHCP6_OPT_IA_NA_PD		*ia;
+	T_DHCP6_OPT_IAADDR		*iaa;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL */
+
+	uint8_t		*opt, *last;
+
+	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãç¡ããã°ä½ãããªãã*/
+	if (ct->act_msg == NULL)
+		return;
+
+	opt  = ct->act_msg->msg.options;
+	last = opt + (ct->act_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	while (opt < last) {
+		hdr = (T_DHCP6_OPTION*)opt;
+		switch (MSG2HOST16(hdr->code)) {
+
+		case DHCP6_OPT_NAME_SERVERS:
+			dns_in6_set_addr(NULL);
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+			syslog(LOG_NOTICE, "[DHCP6C] release DNS server addr.");
+#endif
+			break;
+
+		case DHCP6_OPT_DOMAIN_SEARCH:
+			dns_in6_set_dname(NULL, 0);
+			break;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+		case DHCP6_OPT_IA_NA:
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			if (MSG2HOST16(ia->len) > sizeof(*iaa)) {
+				iaa = (T_DHCP6_OPT_IAADDR*)(opt + sizeof(*ia));
+				in6_del_ifaddr(&iaa->addr);
+				}
+			break;
+
+		case DHCP6_OPT_IA_TA:
+			break;
+
+		case DHCP6_OPT_IA_PD:
+			break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL */
+
+		default:
+			break;
+			}
+		opt += MSG2HOST16(hdr->len) + sizeof(*hdr);
+		}
+	}
+
+/*
+ *  set_lease -- ãªã¼ã¹ããããªãã·ã§ã³ãè§£æãã¦å¤ãè¨­å®ããã
+ */
+
+static void
+set_lease (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPTION			*hdr;
+	T_DHCP6_OPT_NAME_SERVERS	*ns;
+	T_DHCP6_OPT_DOMAIN_SEARCH	*ds;
+	const uint8_t			*dname;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+	T_DHCP6_OPT_IA_NA_PD		*ia;
+	T_DHCP6_OPT_IAADDR		*iaa;
+	SYSTIM				time, delay;
+	ER				error;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL */
+
+	uint8_t		*opt, *last;
+
+	opt  = ct->act_msg->msg.options;
+	last = opt + (ct->act_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	while (opt < last) {
+		hdr = (T_DHCP6_OPTION*)opt;
+		switch (MSG2HOST16(hdr->code)) {
+
+		case DHCP6_OPT_NAME_SERVERS:
+			ns = (T_DHCP6_OPT_NAME_SERVERS*)opt;
+			dns_in6_set_addr(&ns->addrs[0]);
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+			syslog(LOG_NOTICE, "[DHCP6C] set DNS server addr: %s.", ipv62str(NULL, &ns->addrs[0]));
+#endif
+			break;
+
+		case DHCP6_OPT_DOMAIN_SEARCH:
+			ds = (T_DHCP6_OPT_DOMAIN_SEARCH*)opt;
+			dname = dns_in6_set_dname(ds->name, MSG2HOST16(ds->len));
+			break;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+		case DHCP6_OPT_IA_NA:
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			if (MSG2HOST16(ia->len) > sizeof(*iaa)) {
+				get_tim(&time);
+				delay = time - ct->act_msg->rcv_time;
+				iaa = (T_DHCP6_OPT_IAADDR*)(opt + sizeof(*ia));
+				error = in6_upd_ifaddr(&iaa->addr, 64, MSG2HOST32(iaa->valid)  - SYSTIM2SEC(delay),
+				                                       MSG2HOST32(iaa->prefer) - SYSTIM2SEC(delay));
+				if (error == E_OK)
+					syslog(LOG_NOTICE, "[DHCP6C] set IPv6 addr: %s.", ipv62str(NULL, &iaa->addr));
+				else
+					syslog(LOG_NOTICE, "[DHCP6C] set IPv6 addr, error: %s.", itron_strerror(error));
+				}
+			break;
+
+		case DHCP6_OPT_IA_TA:
+			break;
+
+		case DHCP6_OPT_IA_PD:
+			break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL */
+
+		default:
+			break;
+			}
+		opt += MSG2HOST16(hdr->len) + sizeof(*hdr);
+		}
+	}
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+/*
+ *  start_req_info -- INFO-REQUEST ãéå§ããã
+ *
+ *    æ³¨æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã
+ */
+
+static void
+start_req_info (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (18.1.5) åç
+§ã*/
+	ct->IRT = TMO_INF_TIMEOUT;
+	ct->MRT = TMO_INF_MAX_RT;
+	ct->MRC = 0;
+
+	/* DHCP6_CLI_CFG_ONE_TRYãæå®ããã¦ããªããã°æ¨æºã¿ã¤ã ã¢ã¦ãã¾ã§åéããã*/
+#if defined(DHCP6_CLI_CFG_ONE_TRY)
+	ct->MRD = 0;
+#else
+	ct->MRD = TMO_DHCP6C_NORMAL;
+#endif
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/*
+	 *  INFO-REQUEST ã¡ãã»ã¼ã¸éä¿¡é
+å»¶æéãè¨­å®ããã
+	 *  ãã ããTMO_INF_MAX_DELAY ã 1[s]ãªã®ã§ãdly_tsk()ãä½¿ç¨ããã
+	 */
+	dly_tsk(netapp_rand() % TMO_INF_MAX_DELAY);
+
+	/* SELECT ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_SELECT;
+
+	/* INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_IREQ;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  start_informed -- INFORMED ç¶æ
+ã«é·ç§»ããã
+ *
+ *    æ³¨æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã
+ */
+
+static void
+start_informed (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL) {
+		ct->fsm = DHCP6_FSM_SLEEP;
+		return;
+		}
+
+	/* ãªã¼ã¹æ
+å ±ãè¨­å®ããã*/
+	set_lease(ct);
+
+	/* INFORMED ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_INFORMED;
+
+	//ct->flags |= DHCP6C_FLAG_STAY_STATE;
+	}
+
+/*
+ *  start_rel_info -- ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã
+ *
+ *    æ³¨æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã
+ */
+
+static void
+start_rel_info (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+	rel_lease(ct);
+
+	/* SLEEP ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_SLEEP;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  select_info_reply -- æé©ãª REPLY (INFO-REQUEST ã¸ã®å¿ç­) ã¡ãã»ã¼ã¸ãé¸æããã
+ */
+
+static bool_t
+select_info_reply (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG		*msg;
+
+	/* æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã*/
+	if ((msg = select_msg(ct)) == NULL)
+		return false;
+	
+	ct->act_msg = msg;
+	return true;
+	}
+
+/*
+ *  setup_info_req_msg -- INFO-REQUEST ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_info_req_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	uint8_t	*msg;
+
+	/* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/
+	if ((msg = setup_msg_header(ct, DHCP6_INFO_REQ)) == NULL)
+		return E_PAR;
+
+	if ((msg = common_options(ct, msg, DHCP6_INFO_REQ, NULL)) == NULL)
+		return E_PAR;
+
+	/* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨­å®ããã*/
+	ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg;
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ct->dst.ipaddr	= in6_addr_all_DHCP_relay_servers;
+	return E_OK;
+	}
+
+/*
+ *  send_info_req_msg -- INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_info_req_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	ER	error;
+
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	if (select_info_reply(ct)) {
+
+		/* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0;
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+		/* INFORMED ç¶æ
+ã«é·ç§»ããã*/
+		start_informed(ct);
+		return;
+		}
+
+	/* åéä¿¡åæ°ãç¢ºèªããã*/
+	if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) {
+		ct->error  = E_TMOUT;
+		return;
+		}
+
+	/* INFO-REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_info_req_msg(ct)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, setup request message: %s.", itron_strerror(error));
+		ct->error = error;
+		return;
+		}
+
+	/* INFO-REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, send info-request message: %s.", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_IREQ] = SYSTIM2TIMER(ct->RT);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/
+	advance_retrans(ct);
+	}
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+/*
+ *  select_reply -- æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã
+ */
+
+static bool_t
+select_reply (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG		*msg;
+
+	/* æé©ãª REPLY ã¡ãã»ã¼ã¸ãé¸æããã*/
+	if ((msg = select_msg(ct)) == NULL)
+		return false;
+
+	if (ct->adv_msg != NULL) {
+		eval_prefer(ct->adv_msg);
+		eval_ia_prefer(ct->adv_msg);
+		}
+
+	/*
+	 *  æé©ãª REPLY ã¡ãã»ã¼ã¸ã®æ¨å¥¨åº¦ã ADVERTISE ã¡ãã»ã¼ã¸æ¨å¥¨åº¦ã®
+	 *  1/2 ä»¥ä¸ã®æã¯åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã
+	 */
+	if ((ct->adv_msg != NULL) && (ct->max_prefer < (ct->adv_msg->prefer & DHCP6_ClI_MSG_PREFER_VALUE_MASK) / 2)) {
+		syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+		msg->next = ct->rcv_lst;
+		ct->rcv_lst = msg;
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		}
+	else {
+
+		/*
+		 *  ct->act_msg ã«ããæå¹ãªå
+ REPLY ã¡ãã»ã¼ã¸ã
+		 *  åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã¦ã
+		 *  æé©ãª REPLY ã¡ãã»ã¼ã¸ã act ã«ç§»ãã
+		 */
+		if (ct->act_msg != NULL) {
+			syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+			ct->act_msg->next = ct->rcv_lst;
+			ct->rcv_lst = ct->act_msg;
+			syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+			}
+		ct->act_msg = msg;
+		}
+
+	return ct->act_msg != NULL;
+	}
+
+/*
+ *  select_adv -- æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ãé¸æããã
+ */
+
+static bool_t
+select_adv (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ã adv ã«ç§»ãã*/
+	if ((ct->adv_msg = select_msg(ct)) != NULL) {
+
+		/*
+		 *  æé©ãª ADVERTISE ã¡ãã»ã¼ã¸ã®ãµã¼ãã® IPv6 ã¢ãã¬ã¹ã
+		 *  æ¬¡ããéä¿¡ããã¢ãã¬ã¹ã«è¨­å®ããã
+		 */
+		ct->dst = ct->adv_msg->srv;
+		return true;
+		}
+	else
+		return false;
+	}
+
+/*
+ *  eval_expire -- æ¨å¥¨æå¹æéã¨æå¹æéãæ±ºå®ããã
+ */
+
+static void
+eval_expire (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPTION		*opt;
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	T_DHCP6_OPT_IAADDR	*iaa;
+	SYSTIM		time;
+	uint32_t	depref, expire,
+			high, low, renew, rebind,
+			tval, iaa_high, iaa_low;
+	uint8_t		*msg, *last;
+	uint_t		aoff, asize, addrs;
+
+	/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RENEW]  = 0;
+	ct->timers[DHCP6C_TIMER_REBIND] = 0;
+	ct->timers[DHCP6C_TIMER_DEPREF] = 0;
+	ct->timers[DHCP6C_TIMER_EXPIRE] = 0;
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+	
+	addrs = high = expire = 0;
+	low = renew = rebind = depref = DHCP6_MAX_TIME;
+
+	msg = ct->act_msg->msg.options;
+	last = msg + (ct->act_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	get_tim(&time);
+	while (msg < last) {
+		opt = (T_DHCP6_OPTION*)msg;
+
+		/* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæå¹æéãæ´æ°ããã*/
+		if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) {
+
+			//dump_msg_option("evl_expire1", msg);
+			iaa_high = 0;
+			iaa_low  = DHCP6_MAX_TIME;
+
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			aoff  = sizeof(*ia);
+			asize = MSG2HOST16(ia->len) + sizeof(*opt);
+			while (aoff < asize) {
+
+				/* æç­ã®æ¨å¥¨æå¹æéãæ´æ°ããã*/
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				//dump_msg_option("evl_depref1", (uint8_t*)iaa);
+				if (!(MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_DEPREFERD)) {
+					if (MSG2HOST32(iaa->prefer) == DHCP6_MAX_TIME)
+						tval = DHCP6_MAX_TIME;
+					else
+						tval = MSG2HOST32(iaa->prefer) + SYSTIM2SEC(ct->act_msg->rcv_time);
+					if (tval < depref)
+						depref = tval;
+					}
+
+				/* IAADDR ã®æå¹æéãæ´æ°ããã*/
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				if (!(MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_EXPIRED)) {
+					if (MSG2HOST32(iaa->valid) == DHCP6_MAX_TIME)
+						tval = DHCP6_MAX_TIME;
+					else
+						tval = MSG2HOST32(iaa->valid) + SYSTIM2SEC(ct->act_msg->rcv_time);
+					tval -= SYSTIM2SEC(ct->act_msg->rcv_time);
+					if (tval > iaa_high)
+						iaa_high = tval;
+					if (tval < iaa_low)
+						iaa_low  = tval;
+					addrs ++;
+					}
+
+				aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa);
+				}
+
+			/* iaa_low ã¨ iaa_high/2 ã®æé·ã®æ¹ãæå¹æéã¨ãã¦é¸æããã*/
+			if (iaa_low <= (iaa_high / 2))
+				expire = iaa_high;
+			else
+				expire = iaa_low;
+
+			/* expire ã æå¤§å¤ï¼ç¡å¶éï¼ã 1 ä»¥ä¸ãªãæ¢å®å¤ã«è¨­å®ããã*/
+			if ((expire == DHCP6_MAX_TIME) || (expire <= 1))
+				expire  = SYSTIM2SEC(TMO_DHCP6C_REQ_LEASE) / 2;
+			else
+				expire /= 2;
+
+			/* renew ãæ±ºå®ããã*/
+			if (MSG2HOST32(ia->renew) == 0)
+				tval = expire + SYSTIM2SEC(ct->act_msg->rcv_time);
+			else if (MSG2HOST32(ia->renew) == DHCP6_MAX_TIME)
+				tval = DHCP6_MAX_TIME;
+			else
+				tval = MSG2HOST32(ia->renew) + SYSTIM2SEC(ct->act_msg->rcv_time);
+			if (tval < renew)
+				renew = tval;
+
+			/* rebind ãæ±ºå®ããã*/
+			if (MSG2HOST32(ia->rebind) == 0)
+				tval = (expire + expire / 2) + SYSTIM2SEC(ct->act_msg->rcv_time);
+			else if (MSG2HOST32(ia->rebind) == DHCP6_MAX_TIME)
+				tval = DHCP6_MAX_TIME;
+			else
+				tval = MSG2HOST32(ia->rebind) + SYSTIM2SEC(ct->act_msg->rcv_time);
+			if (tval < rebind)
+				rebind = tval;
+
+			/* æç­æå¹æéã¨æé·æå¹æéãæ´æ°ããã*/
+			iaa_low  += SYSTIM2SEC(ct->act_msg->rcv_time);
+			iaa_high += SYSTIM2SEC(ct->act_msg->rcv_time);
+			if (iaa_low < low)
+				low = iaa_low;
+			if (iaa_high > high)
+				high = iaa_high;
+			}
+
+		msg += MSG2HOST16(opt->len) + sizeof(*opt);
+		}
+
+	/* ã¢ãã¬ã¹ãéããã¦ããªããã°ãSLEEP ç¶æ
+ã«é·ç§»ããã*/
+	if (addrs == 0) {
+		ct->fsm    = DHCP6_FSM_SLEEP;
+		}
+
+	/* ç¶æ
+ã«ä¾å­ããå¦ç */
+	switch (ct->fsm) {
+
+	case DHCP6_FSM_BOUND:
+
+		/* RENEW ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+		if ((rebind > SYSTIM2SEC(time)) && (renew < rebind)) {
+			ct->next_MRD = SEC2SYSTIM(rebind) - time;
+			syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+			ct->timers[DHCP6C_TIMER_RENEW] = SEC2TIMER(renew) - SYSTIM2TIMER(time);
+			syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+			break;
+			}
+		/* break; */	/* ä¸ã«æããã*/
+
+	case DHCP6_FSM_RENEW:
+
+		/* REBIND ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+		ct->MRD = SEC2SYSTIM(rebind);
+		if (rebind != DHCP6_MAX_TIME) {
+			ct->next_MRD = SEC2SYSTIM(high) - time;
+			syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+			ct->timers[DHCP6C_TIMER_REBIND] = SEC2TIMER(rebind) - SYSTIM2TIMER(time);
+			syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+			}
+		break;
+
+	case DHCP6_FSM_REBIND:
+
+		ct->next_MRD = (SEC2TIMER(high) - time) - time;
+		break;
+
+	default:
+		break;
+		}
+
+	/* DEPREF ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+	if (depref != DHCP6_MAX_TIME) {
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_DEPREF] = SEC2TIMER(depref) - SYSTIM2TIMER(time);
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+		}
+
+	/* EXPIRE ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+	if (low != DHCP6_MAX_TIME) {
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_EXPIRE] = SEC2TIMER(low) - SYSTIM2TIMER(time);
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+		}
+	}
+
+/*
+ *  start_init -- INIT ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_init (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (17.1.2) åç
+§ã*/
+	ct->IRT = TMO_SOL_TIMEOUT;
+	ct->MRT = TMO_SOL_MAX_RT;
+	ct->MRC = 0;
+
+	/* DHCP6_CLI_CFG_ONE_TRYãæå®ããã¦ããªããã°æ¨æºã¿ã¤ã ã¢ã¦ãã¾ã§åéããã*/
+#if defined(DHCP6_CLI_CFG_ONE_TRY)
+	ct->MRD = 0;
+#else
+	ct->MRD = TMO_DHCP6C_NORMAL;
+#endif
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* RFC3315 (17.1.2) ã®è¦å®ã«å¾ã£ã¦ã¿ã¤ã ã¢ã¦ããèª¿æ´ããã*/
+	if (ct->RT <= ct->IRT)
+		ct->RT = ct->IRT + (ct->IRT - ct->RT);
+	if (ct->RT <= ct->IRT)
+		ct->RT = ct->IRT + SEC2SYSTIM(1);
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RCV_ADV] = SYSTIM2TIMER(ct->MRD);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/*
+	 *  SOLICIT ã¡ãã»ã¼ã¸éä¿¡é
+å»¶æéãè¨­å®ããã
+	 *  ãã ããTMO_SOL_MAX_DELAY ã 1[s]ãªã®ã§ãdly_tsk()ãä½¿ç¨ããã
+	 */
+	dly_tsk(netapp_rand() % TMO_SOL_MAX_DELAY);
+
+	/* INIT ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_INIT;
+
+	/* SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_SOL;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  start_select -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ SELECT ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_select (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æå¹ãª ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã° SLEEP ç¶æ
+ã«é·ç§»ããã*/
+	if (ct->adv_msg == NULL) {
+		ct->fsm = DHCP6_FSM_SLEEP;
+		return;
+		}
+
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (18.1.1) åç
+§ã*/
+	ct->IRT = TMO_REQ_TIMEOUT;
+	ct->MRT = TMO_REQ_MAX_RT;
+	ct->MRC = TMO_REQ_MAX_RC;
+	ct->MRD = 0;
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* SELECT ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_SELECT;
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_REQ;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  start_bound -- BOUND ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_bound (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL)
+		ct->fsm = DHCP6_FSM_SLEEP;
+
+	/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm    = DHCP6_FSM_BOUND;
+
+	/* ãªã¼ã¹æ
+å ±ãè¨­å®ããã*/
+	set_lease(ct);
+
+	/* æå¹æéãæ±ºå®ããã*/
+	eval_expire(ct);
+
+	}
+/*
+ *  start_renew -- RENEW ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_renew (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL) {
+		ct->fsm = DHCP6_FSM_SLEEP;
+		return;
+		}
+
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (18.1.3) åç
+§ã*/
+	ct->IRT = TMO_REN_TIMEOUT;
+	ct->MRT = TMO_REN_MAX_RT;
+	ct->MRC = 0;
+	ct->MRD = ct->next_MRD;
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* REFRESH ã¡ãã»ã¼ã¸ã¿ã¤ããè¨­å®ããã*/
+	ct->refresh_type = DHCP6_RENEW;
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* RENEW ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_RENEW;
+
+	/* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_REF;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  start_rebind -- REBIND ç¶æ
+ã«é·ç§»ããã
+ */
+
+static void
+start_rebind (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL) {
+		ct->fsm = DHCP6_FSM_SLEEP;
+		return;
+		}
+
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (18.1.4) åç
+§ã*/
+	ct->IRT = TMO_REB_TIMEOUT;
+	ct->MRT = TMO_REB_MAX_RT;
+	ct->MRC = 0;
+	ct->MRD = ct->next_MRD;
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* REFRESH ã¡ãã»ã¼ã¸ã¿ã¤ããè¨­å®ããã*/
+	ct->refresh_type = DHCP6_REBIND;
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®åä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_RCV_REPLY] = SYSTIM2TIMER(ct->MRD);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ct->dst.ipaddr	= in6_addr_all_DHCP_relay_servers;
+
+	/* REBIND ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_REBIND;
+
+	/* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_REF;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+/*
+ *  start_rel_info -- ã¢ãã¬ã¹æ
+å ±ãè§£æ¾ããã
+ *
+ *    æ³¨æ: DHCPv6 ã® RFC3315 ã«ã¯ç¡ã
+ */
+
+static void
+start_rel_info (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+	cancel_all_timers(ct);
+
+	/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+	rel_lease(ct);
+
+	/* æå¹ãªãªã¼ã¹æ
+å ±ãç¡ããã° SLEEP ã«é·ç§»ããã*/
+	if (ct->act_msg == NULL) {
+		ct->fsm = DHCP6_FSM_SLEEP;
+		return;
+		}
+
+	/* ã¿ã¤ã ã¢ã¦ããè¨­å®ããããRFC3315 (18.1.1) åç
+§ã*/
+	ct->IRT = TMO_REL_TIMEOUT;
+	ct->MRT = 0;
+	ct->MRC = TMO_REL_MAX_RC;
+	ct->MRD = 0;
+
+	/* åéåæ°ã¨ãã©ã³ã¶ã¯ã·ã§ã³ ID ãè¨­å®ããã*/
+	init_retrans(ct);
+
+	/* REL_INFO ç¶æ
+ã«é·ç§»ããã*/
+	ct->fsm = DHCP6_FSM_REL_INFO;
+
+	/* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	ct->flags |= DHCP6C_FLAG_TMOUT_SND_REL;
+	syscall(sig_sem(SEM_DHCP6_CLI_READY));
+	}
+
+#if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_TA) || defined(DHCP6_CLI_CFG_IA_PD)
+
+/*
+ *  solicit_ia_option -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã
+ */
+
+static void
+solicit_ia_option (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t code)
+{
+	T_DHCP6_OPT_IA_TA	*ia;
+	uint_t			off, len;
+
+	/* ãªãã·ã§ã³ã³ã¼ããè¨­å®ããã*/
+	ia = (T_DHCP6_OPT_IA_TA*)msg;
+	HOST2MSG16(ia->code, code);
+
+	/* IAID ãè¨­å®ããã*/
+	if (sizeof(ct->sc->ifaddr.lladdr) > sizeof(uint32_t)) {
+		off = sizeof(ct->sc->ifaddr.lladdr) - 4;
+		len = 4;
+		}
+	else {
+		off = 0;
+		len = sizeof(ct->sc->ifaddr.lladdr);
+		}
+	memcpy((uint8_t*)&ia->iaid, ((uint8_t*)ct->sc->ifaddr.lladdr) + off, len);
+	}
+
+/*
+ *  solicit_iaaddr_option -- SOLICIT ã¡ãã»ã¼ã¸ã® IAADDR ãªãã·ã§ã³ãè¿½å ããã
+ */
+
+static uint_t
+solicit_iaaddr_option (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t code)
+{
+	T_DHCP6_OPT_IAADDR	*iaa;
+	uint32_t		t1, t2;
+	uint8_t			*opt;
+	uint_t			len;
+
+	/*
+	 *  æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã
+	 *  æå®ããããªãã·ã§ã³ï¼IA_NA/IA_TA/IA_PDï¼ãããå ´åã¯
+	 *  åãã¢ãã¬ã¹ãè¦æ±ããã
+	 */
+	if ((ct->act_msg == NULL) || (opt = find_msg_option(ct->act_msg, code, 0)) == NULL)
+		return 0;
+
+	/* ãªãã·ã§ã³ã³ã¼ããè¨­å®ããã*/
+	iaa = (T_DHCP6_OPT_IAADDR*)msg;
+	HOST2MSG16(iaa->code, DHCP6_OPT_IAADDR);
+
+	/* IAADDR ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨­å®ããã*/
+	HOST2MSG16(iaa->len, sizeof(*iaa) - sizeof(T_DHCP6_OPTION));
+
+	/* ã¢ãã¬ã¹ãè¨­å®ããã*/
+	len = code == DHCP6_OPT_IA_TA ? sizeof(T_DHCP6_OPT_IA_TA)
+	                              : sizeof(T_DHCP6_OPT_IA_NA_PD);
+	memcpy(&iaa->addr, opt + sizeof(T_DHCP6_OPTION) + len, sizeof(iaa->addr));
+
+	/* T1ãT2 ãè¨­å®ããã*/
+	t1 = TMO_DHCP6C_REQ_LEASE / 2;
+	t2 = t1 + (t1 / 2);
+	HOST2MSG32(iaa->prefer, t1);
+	HOST2MSG32(iaa->valid,  t2);
+
+	return sizeof(*iaa);
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_TA) || defined(DHCP6_CLI_CFG_IA_PD) */
+
+/*
+ *  solicit_ia_na_pd -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_NA/IA_PD ãªãã·ã§ã³ãè¿½å ããã
+ */
+
+#if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_PD)
+
+static uint8_t *
+solicit_ia_na_pd (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t code)
+{
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	uint32_t		t1, t2;
+	uint_t			len;
+
+	/* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã*/
+	solicit_ia_option(ct, msg, code);
+	ia = (T_DHCP6_OPT_IA_NA_PD*)msg;
+
+	/* T1ãT2 ãè¨­å®ããã*/
+	t1 = TMO_DHCP6C_REQ_LEASE / 2;
+	t2 = t1 + (t1 / 2);
+	HOST2MSG32(ia->renew,  SYSTIM2SEC(t1));
+	HOST2MSG32(ia->rebind, SYSTIM2SEC(t2));
+
+	/*
+	 *  æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã
+	 *  æå®ããããªãã·ã§ã³ï¼IA_NA/IA_PDï¼ãããå ´åã¯
+	 *  åãã¢ãã¬ã¹ãè¦æ±ããã
+	 */
+	msg += sizeof(*ia);
+	len  = solicit_iaaddr_option(ct, msg, code);
+
+	/* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨­å®ããã*/
+	HOST2MSG16(ia->len, (sizeof(*ia) + len) - sizeof(T_DHCP6_OPTION));
+
+	return msg + len;
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_PD) */
+
+/*
+ *  solicit_ia_ta -- SOLICIT ã¡ãã»ã¼ã¸ã® IA_TA ãªãã·ã§ã³ãè¿½å ããã
+ */
+
+#if defined(DHCP6_CLI_CFG_IA_TA)
+
+static uint8_t *
+solicit_ia_ta (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg)
+{
+	T_DHCP6_OPT_IA_TA	*ia;
+
+	/* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã*/
+	solicit_ia_option(ct, msg, DHCP6_OPT_IA_TA);
+
+	/* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨­å®ããã*/
+	ia = (T_DHCP6_OPT_IA_TA*)msg;
+	HOST2MSG16(ia->len, sizeof(*ia) - sizeof(T_DHCP6_OPTION));
+
+	/*
+	 *  æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸ãæ®ã£ã¦ãã¦ã
+	 *  æå®ããããªãã·ã§ã³ï¼IA_TAï¼ãããå ´åã¯
+	 *  åãã¢ãã¬ã¹ãè¦æ±ããã
+	 */
+	msg += sizeof(*ia);
+	return msg + solicit_iaaddr_option(ct, msg, code);
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_TA) */
+
+/*
+ *  setup_solicit_msg -- SOLICIT ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_solicit_msg (T_DHCP6_CLI_CONTEXT *ct, T_DHCP6_CLI_MSG *lease)
+{
+	uint8_t	*head, *msg;
+
+	/* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/
+	if ((head = setup_msg_header(ct, DHCP6_SOLICIT)) == NULL)
+		return E_PAR;
+
+	if ((msg = common_options(ct, head, DHCP6_SOLICIT, lease)) == NULL)
+		return E_PAR;
+
+#if defined(DHCP6_CLI_CFG_IA_NA)
+
+	/* IA_NA ãè¿½å ããã*/
+	msg = solicit_ia_na_pd(ct, msg, DHCP6_OPT_IA_NA);
+#endif
+
+#if defined(DHCP6_CLI_CFG_IA_TA)
+
+	/* IA_TA ãè¿½å ããã*/
+	msg = solicit_ia_ta(ct, msg);
+#endif
+
+#if defined(DHCP6_CLI_CFG_IA_PD)
+
+	/* IA_PD ãè¿½å ããã*/
+	msg = solicit_ia_na_pd(ct, msg, DHCP6_OPT_IA_PD);
+#endif
+
+	/* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨­å®ããã*/
+	ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg;
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ct->dst.ipaddr	= in6_addr_all_DHCP_relay_servers;
+	return E_OK;
+	}
+
+/*
+ *  send_solicit_msg -- SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_solicit_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	ER	error;
+
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	ct->error = E_OK;
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãSELECT ç¶æ
+ã«é·ç§»ããã*/
+	if (select_adv(ct)) {
+
+		/* ADVERTISE ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_RCV_ADV] = 0;
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+ 		/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ SELECT ç¶æ
+ã«é·ç§»ããã*/
+ 		start_select(ct);
+		return;
+		}
+
+	/* åéä¿¡åæ°ãç¢ºèªããã*/
+	if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) {
+		ct->error  = E_TMOUT;
+		return;
+		}
+
+	/* SOLICIT ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_solicit_msg(ct, NULL)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, setup solicit message: %s.", itron_strerror(error));
+		ct->error = error;
+		return;
+		}
+
+	/* SOLICIT ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, send solicit message: %s.", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_SOL] = SYSTIM2TIMER(ct->RT);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/
+	advance_retrans(ct);
+	}
+
+/*
+ *  request_ia_option -- REQUEST ã¡ãã»ã¼ã¸ã® IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã
+ */
+
+#if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_TA) || defined(DHCP6_CLI_CFG_IA_PD)
+
+static uint8_t *
+request_ia_option (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t code, uint8_t *lease)
+{
+	T_DHCP6_OPT_IA_NA_PD	*dst, *src;
+
+	dst = (T_DHCP6_OPT_IA_NA_PD*)msg;
+	src = (T_DHCP6_OPT_IA_NA_PD*)lease;
+
+	/* ãªãã·ã§ã³ã³ã¼ããè¨­å®ããã*/
+	HOST2MSG16(dst->code, code);
+
+	/* IA_NAIA_TA/IA_PD ãªãã·ã§ã³ãé¤ãããªãã·ã§ã³é·ãè¨­å®ããã*/
+	HOST2MSG16(dst->len, sizeof(*dst) - (sizeof(dst->code) + sizeof(dst->len)));
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ãã IA ID ãã³ãã¼ããã*/
+	memcpy(&dst->iaid, &src->iaid, sizeof(src->iaid));
+
+	return msg + sizeof(uint16_t) * 2 + sizeof(uint32_t);
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_TA) || defined(DHCP6_CLI_CFG_IA_PD) */
+
+/*
+ *  request_ia_na_pd -- REQUEST ã¡ãã»ã¼ã¸ã® IA_NA/IA_PD ãªãã·ã§ã³ãè¿½å ããã
+ */
+
+#if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_PD)
+
+static uint8_t *
+request_ia_na_pd (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t msg_type, uint_t opt_code, T_DHCP6_CLI_MSG *lease)
+{
+	T_DHCP6_OPT_IA_NA_PD	*dia,  *sia;
+	T_DHCP6_OPT_IAADDR	*diaa, *siaa;
+	uint8_t			*opt;
+	uint32_t		t1, t2;
+	uint_t			ix, nsiaa;
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ã«æå®ããããªãã·ã§ã³ããããã¨ãç¢ºèªããã*/
+	if ((opt = find_msg_option(lease, opt_code, 0)) == NULL)
+		return msg;
+
+	/* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã*/
+	dia = (T_DHCP6_OPT_IA_NA_PD*)msg;
+	sia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+	msg = request_ia_option(ct, msg, opt_code, opt);
+
+	/* T1ãT2 ãæ±ºå®ããã*/
+	switch (msg_type) {
+	case DHCP6_REQUEST:
+	case DHCP6_RENEW:
+	case DHCP6_REBIND:
+		t1 = SYSTIM2TIMER(TMO_DHCP6C_REQ_LEASE);
+		t2 = t1 + (t1 / 2);
+		break;
+
+	case DHCP6_CONFIRM:
+	case DHCP6_RELEASE:
+	case DHCP6_DECLINE:
+		t1 = t2 = 0;
+		break;
+
+	default:
+		syslog(LOG_NOTICE, "[DHCP6C] unkown msg_type in setup IA_NA/IA_PD for request message: %d.", msg_type);
+		return NULL;
+		break;
+		}
+
+	/* T1ãT2 ãè¨­å®ããã*/
+	HOST2MSG32(dia->renew,  t1);
+	HOST2MSG32(dia->rebind, t2);
+	msg += sizeof(dia->renew) + sizeof(dia->rebind);
+
+	/* IAADDR ãªãã·ã§ã³ãè¨­å®ããã*/
+	nsiaa = ((MSG2HOST16(sia->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*sia) - (sizeof(sia->code) + sizeof(sia->len)))) / sizeof(*siaa);
+
+	for (ix = 0; ix <nsiaa; ix++) {
+		diaa = (T_DHCP6_OPT_IAADDR*)(msg + sizeof(*diaa) * ix);
+		siaa = (T_DHCP6_OPT_IAADDR*)((opt + sizeof(*sia)) + sizeof(*siaa) * ix);
+
+		/* ã¢ãã¬ã¹ã®æå¹æéãåãã¦ããã°ã¹ã­ããããã*/
+		if (MSG2HOST16(siaa->len) & DHCP6C_IAA_FLAG_EXPIRED)
+			continue;
+
+		/* ã³ã¼ãã¨é·ããè¨­å®ããã*/
+		memcpy(&diaa->code, &siaa->code, sizeof(siaa->code));
+		HOST2MSG16(diaa->len, MSG2HOST16(siaa->len) & ~DHCP6C_IAA_FLAG_MASK);
+		msg += sizeof(dia->code) + sizeof(dia->len);
+
+		/* IPv6 ã¢ãã¬ã¹ãã³ãã¼ããã*/
+		memcpy(&diaa->addr, &siaa->addr, sizeof(siaa->addr));
+		msg += sizeof(diaa->addr);
+
+		/* T1ãT2 ãæ±ºå®ããã*/
+		switch (msg_type) {
+		case DHCP6_REQUEST:
+		case DHCP6_RENEW:
+		case DHCP6_REBIND:
+			t1 = SYSTIM2TIMER(TMO_DHCP6C_REQ_LEASE);
+			t2 = t1 + 300;
+			break;
+
+		case DHCP6_CONFIRM:
+		case DHCP6_RELEASE:
+		case DHCP6_DECLINE:
+			t1 = t2 = 0;
+			break;
+
+		default:
+			syslog(LOG_NOTICE, "[DHCP6C] unknown msg_type in setup IA_NA/IA_PD for request: %d.", msg_type);
+			return NULL;
+			break;
+			}
+
+		/* T1ãT2 ãè¨­å®ããã*/
+		HOST2MSG32(diaa->prefer, t1);
+		HOST2MSG32(diaa->valid,  t2);
+		msg += sizeof(diaa->prefer) + sizeof(diaa->valid);
+
+		/* IAADDR ã«ä»å ãªãã·ã§ã³ãè¿½å ãããå
+éããã*/
+		}
+
+	HOST2MSG16(((T_DHCP6_OPTION*)dia)->len, 
+	MSG2HOST16(((T_DHCP6_OPTION*)dia)->len) + (msg - (uint8_t*)dia) - sizeof(*dia));
+	return msg;
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_NA) || defined(DHCP6_CLI_CFG_IA_PD) */
+
+/*
+ *  request_ia_ta -- REQUEST ã¡ãã»ã¼ã¸ã® IA_TA ãªãã·ã§ã³ãè¿½å ããã
+ */
+
+#if defined(DHCP6_CLI_CFG_IA_TA)
+
+static uint8_t *
+request_ia_ta (T_DHCP6_CLI_CONTEXT *ct, uint8_t *msg, uint_t msg_type, T_DHCP6_CLI_MSG *lease)
+{
+	T_DHCP6_OPT_IA_TA	*dia,  *sia;
+	T_DHCP6_OPT_IAADDR	*diaa, *siaa;
+	uint8_t			*opt;
+	uint32_t		t1, t2;
+	uint_t			ix, nsiaa;
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ã« IA_TA ãªãã·ã§ã³ããããã¨ãç¢ºèªããã*/
+	if ((opt = find_msg_option(lease, DHCP6_OPT_IA_TA, 0)) == NULL)
+		return msg;
+
+	/* IA_NA/IA_TA/IA_PD ãªãã·ã§ã³ã®å
+±éé¨åãè¿½å ããã*/
+	dia = (T_DHCP6_OPT_IA_TA*)msg;
+	sia = (T_DHCP6_OPT_IA_TA*)opt;
+	msg = request_ia_option(ct, msg, DHCP6_OPT_IA_TA, opt);
+
+	/* IAADDR ãªãã·ã§ã³ãè¨­å®ããã*/
+	nsiaa = ((MSG2HOST16(sia->len) & ~DHCP6C_IAA_FLAG_MASK) - (sizeof(*sia) - (sizeof(sia->code) + sizeof(sia->len)))) / sizeof(*siaa);
+
+	for (ix = 0; ix <nsiaa; ix++) {
+		diaa = (T_DHCP6_OPT_IAADDR*)(msg + sizeof(*diaa) * ix);
+		siaa = (T_DHCP6_OPT_IAADDR*)((opt + sizeof(*sia)) + sizeof(*siaa) * ix);
+
+		/* ã¢ãã¬ã¹ã®æå¹æéãåãã¦ããã°ã¹ã­ããããã*/
+		if (MSG2HOST16(siaa->len) & DHCP6C_IAA_FLAG_EXPIRED)
+			continue;
+
+		/* ã³ã¼ãã¨é·ããè¨­å®ããã*/
+		memcpy(diaa->code, siaa->code, sizeof(siaa->code));
+		diaa->len  = HOST2MSG16(MSG2HOST16(siaa->len) & ~DHCP6C_IAA_FLAG_MASK);
+		msg += sizeof(dia->code) + sizeof(dia->len);
+
+		/* IPv6 ã¢ãã¬ã¹ãã³ãã¼ããã*/
+		memcpy(diaa->addr, siaa->addr, sizeof(siaa->addr));
+		msg += sizeof(diaa->addr);
+
+		/* T1ãT2 ãæ±ºå®ããã*/
+		switch (msg_type) {
+		case DHCP6_REQUEST:
+		case DHCP6_RENEW:
+		case DHCP6_REBIND:
+			t1 = SYSTIM2TIMER(TMO_DHCP6C_REQ_LEASE);
+			t2 = t1 + 300;
+			break;
+
+		case DHCP6_CONFIRM:
+		case DHCP6_RELEASE:
+		case DHCP6_DECLINE:
+			t1 = t2 = 0;
+			break;
+
+		default:
+			syslog(LOG_NOTICE, "[DHCP6C] unknown msg_type in setup IA_TA for request message: %d.", msg_type);
+			return NULL;
+			break;
+			}
+
+		/* T1ãT2 ãè¨­å®ããã*/
+		HOST2MSG32(diaa->prefer, t1);
+		HOST2MSG32(diaa->valid,  t2);
+		msg += sizeof(diaa->prefer) + sizeof(diaa->valid);
+
+		/* IAADDR ã«ä»å ãªãã·ã§ã³ãè¿½å ãããå
+éããã*/
+		}
+
+	return msg;
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG_IA_TA) */
+
+/*
+ *  setup_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_request_msg (T_DHCP6_CLI_CONTEXT *ct, T_DHCP6_CLI_MSG *lease, uint_t type)
+{
+	uint8_t	*msg;
+
+	/* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/
+	if ((msg = setup_msg_header(ct, type)) == NULL)
+		return E_PAR;
+
+	if ((msg = common_options(ct, msg, type, lease)) == NULL)
+		return E_PAR;
+
+#if defined(DHCP6_CLI_CFG_IA_NA)
+
+	/* IA_NA ãè¿½å ããã*/
+	msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_NA, lease);
+#endif
+
+#if defined(DHCP6_CLI_CFG_IA_TA)
+
+	/* IA_TA ãè¿½å ããã*/
+	msg = request_ia_ta(ct, msg, type, lease);
+#endif
+
+#if defined(DHCP6_CLI_CFG_IA_PD)
+
+	/* IA_PD ãè¿½å ããã*/
+	msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_PD, lease);
+#endif
+
+	/* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨­å®ããã*/
+	ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg;
+	return E_OK;
+	}
+
+/*
+ *  send_request_msg -- REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_request_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	ER	error;
+
+	ct->error = E_OK;
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+
+	/* ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ã¨ã©ã¼ */
+	if (ct->adv_msg == NULL) {
+		ct->error  = E_OBJ;
+		return;
+		}
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	if (select_reply(ct)) {
+
+		/* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0;
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	 	/* ADVERTISE ã¡ãã»ã¼ã¸ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+		ct->adv_msg->next = ct->rcv_lst;
+		ct->rcv_lst = ct->adv_msg;
+		ct->adv_msg = NULL;
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+		/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+		start_bound(ct);
+		return;
+		}
+
+	/* åéä¿¡åæ°ãç¢ºèªããã*/
+	if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) {
+		ct->error  = E_TMOUT;
+		return;
+		}
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_request_msg(ct, ct->adv_msg, DHCP6_REQUEST)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, setup request message: %s.", itron_strerror(error));
+		ct->error = error;
+		return;
+		}
+
+	/* REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, send request message: %s.", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_REQ] = SYSTIM2TIMER(ct->RT);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/
+	advance_retrans(ct);
+	}
+
+/*
+ *  send_refresh_msg -- REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_refresh_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPT_UNICAST	*uc;
+	ER			error;
+	uint8_t			*opt;
+
+	/* æå¹ãªãªã¼ã¹æ
+å ±ããªããã°ã¨ã©ã¼ */
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	if (ct->act_msg == NULL)
+		ct->error = E_OBJ;
+
+	/* REFRESH ã¿ã¤ãã RENEW ã¾ãã¯ REBIND ã§ãªããã°ã¨ã©ã¼ */
+	if (!((ct->refresh_type == DHCP6_RENEW) || (ct->refresh_type == DHCP6_REBIND)))
+		ct->error = E_PAR;
+
+	/* REPLY ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	if (select_reply(ct)) {
+
+		/* REPLY ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0;
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+		/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+		rel_lease(ct);
+
+		/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+		start_bound(ct);
+		return;
+		}
+
+	/* åéä¿¡åæ°ãç¢ºèªããã*/
+	if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) {
+		eval_expire(ct);
+		return;
+		}
+
+	/*
+	 *  ãµã¼ããã UNICAST ãªãã·ã§ã³ãåä¿¡ããã¨ãã¯
+	 *  æå®ããã¢ãã¬ã¹ãéä¿¡å
+ã¢ãã¬ã¹ã«è¨­å®ããã
+	 */
+	if ((opt = find_msg_option(ct->act_msg, DHCP6_OPT_UNICAST, sizeof(T_DHCP6_OPT_UNICAST))) != NULL) {
+		uc = (T_DHCP6_OPT_UNICAST*)opt;
+		ct->dst.ipaddr = uc->addr;
+		}
+
+	/* REFRESH (REQUEST) ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_request_msg(ct, ct->act_msg, ct->refresh_type)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, setup refresh message: %s.", itron_strerror(error));
+		ct->error = error;
+		return;
+		}
+
+	/* REFRESH ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, send refresh message: %s.", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_REF] = SYSTIM2TIMER(ct->RT);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/
+	advance_retrans(ct);
+	}
+
+/*
+ *  setup_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_release_msg (T_DHCP6_CLI_CONTEXT *ct, T_DHCP6_CLI_MSG *lease, uint_t type)
+{
+	uint8_t	*msg;
+
+	/* ã¡ãã»ã¼ã¸ã®ãããé¨åãä½æããã*/
+	if ((msg = setup_msg_header(ct, type)) == NULL)
+		return E_PAR;
+
+	if ((msg = common_options(ct, msg, type, lease)) == NULL)
+		return E_PAR;
+
+#if defined(DHCP6_CLI_CFG_IA_NA)
+
+	/* IA_NA ãè¿½å ããã*/
+	msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_NA, lease);
+#endif
+
+#if defined(DHCP6_CLI_CFG_IA_PD)
+
+	/* IA_PD ãè¿½å ããã*/
+	msg = request_ia_na_pd(ct, msg, type, DHCP6_OPT_IA_PD, lease);
+#endif
+
+	/* ã¡ãã»ã¼ã¸æ§é ä½é·ãè¨­å®ããã*/
+	ct->snd_msg->len = msg - (uint8_t*)&ct->snd_msg->msg;
+	return E_OK;
+	}
+
+/*
+ *  send_release_msg -- RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static void
+send_release_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	ER	error;
+
+	/* æå¹ãª REPLY ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããªããã°ã¨ã©ã¼ */
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	if (ct->act_msg == NULL)
+		ct->error = E_OBJ;
+
+	/* æå¹ãª REPLY ã¡ãã»ã¼ã¸ãåä¿¡ãã¦ããã°ãSLEEP ç¶æ
+ã«é·ç§»ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	if (ct->prf_lst != NULL) {
+
+		/* åéä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+		ct->timers[DHCP6C_TIMER_RCV_REPLY] = 0;
+		syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+		/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+		if (ct->act_msg != NULL) {
+			syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->act_msg));
+			ct->act_msg = NULL;
+			}
+
+		/* SLEEP ç¶æ
+ã«é·ç§»ããã*/
+		ct->fsm    = DHCP6_FSM_SLEEP;
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+		return;
+		}
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+	/* åéä¿¡åæ°ãç¢ºèªããã*/
+	if ((ct->MRC != 0) && (ct->txcount > ct->MRC)) {
+		ct->error  = E_TMOUT;
+		return;
+		}
+
+	/* RELEASE ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((error = setup_release_msg(ct, ct->act_msg, DHCP6_RELEASE)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, setup release message: %s.", itron_strerror(error));
+		ct->error = error;
+		return;
+		}
+
+	/* RELEASE ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+	error = UDP_SND_DAT(ct->cepid, &ct->dst, &ct->snd_msg->msg, ct->snd_msg->len, TMO_NBLK);
+	if (error != E_WBLK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, send release message: %s.", itron_strerror(error));
+		ct->error  = error;
+		return;
+		}
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_REL] = SYSTIM2TIMER(ct->RT);
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	/* åéä¿¡ã¿ã¤ã ã¢ã¦ããæ´æ°ããã*/
+	advance_retrans(ct);
+	}
+
+/*
+ *  advertise_msg_timeout -- ADVERTISE ã¡ãã»ã¼ã¸ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+advertise_msg_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* SOLICIT ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_SOL] = 0;
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+	if (select_adv(ct)) {
+		/*
+		 *  ADVERTISE ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ã
+ 		 *  REQUEST ã¡ãã»ã¼ã¸ãéä¿¡ãã¦ SELECT ç¶æ
+ã«é·ç§»ããã
+ 		 */
+ 		start_select(ct);
+		}
+	else
+		ct->error  = E_TMOUT;
+	}
+
+/*
+ *  renew_timeout -- RENEW ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+renew_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* RENEW ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	start_renew(ct);
+	}
+
+/*
+ *  rebind_timeout -- REBIND ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+rebind_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* REBIND ç¶æ
+ã«é·ç§»ããã*/
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	start_rebind(ct);
+	}
+
+/*
+ *  depref_timeout -- DEPREF ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+depref_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPTION		*opt;
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	T_DHCP6_OPT_IAADDR	*iaa;
+	SYSTIM		time;
+	uint8_t		*msg, *last;
+	uint_t		aoff, asize;
+
+	/* æå¹ãªãªã¼ã¹ãç¡ããã°å¦ççµäº */
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	if (ct->act_msg == NULL) {
+		return;
+		}
+
+	get_tim(&time);
+	msg = ct->act_msg->msg.options;
+	last = msg + (ct->act_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	while (msg < last) {
+
+		/* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæ¨å¥¨æå¹æéãç¢ºèªããã*/
+		opt = (T_DHCP6_OPTION*)msg;
+		if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) {
+
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			asize = MSG2HOST16(ia->len) + sizeof(*opt);
+			for (aoff  = sizeof(*ia); aoff < asize;
+				                  aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa)) {
+
+				/* ãã§ã«æ¨å¥¨æå¹æéãçµéãã¦ããã°å¦çããªãã*/
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				if ((MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_DEPREFERD))
+					continue;
+
+				/* æ¨å¥¨æå¹æéçµéãã¦ããã° FLAG ãè¨­å®ããã*/
+				if (TIMEC_GE(time, ct->act_msg->rcv_time + MSG2HOST32(iaa->prefer))) {
+					HOST2MSG16(iaa->len, MSG2HOST16(iaa->len) | DHCP6C_IAA_FLAG_DEPREFERD);
+					if (MSG2HOST16(ia->code) == DHCP6_OPT_IA_NA)
+						syslog(LOG_NOTICE, "[DHCP6C] address depreferd: %s.", ipv62str(NULL, &iaa->addr));
+					else
+						syslog(LOG_NOTICE, "[DHCP6C] prefix  depreferd: %s.", ipv62str(NULL, &iaa->addr));
+
+					/*ãDNS ã®å¦çãå¿
+è¦ã*/
+					}
+				}
+			}
+		msg += MSG2HOST16(opt->len) + sizeof(*opt);
+		}
+
+	eval_expire(ct);
+	}
+
+/*
+ *  expire_timeout -- EXPIRE ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+expire_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_OPTION		*opt;
+	T_DHCP6_OPT_IA_NA_PD	*ia;
+	T_DHCP6_OPT_IAADDR	*iaa;
+	SYSTIM		time;
+	uint8_t		*msg, *last;
+	uint_t		aoff, asize, addrs = 0;
+
+	/* æå¹ãªãªã¼ã¹ãç¡ããã°å¦ççµäº */
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	if (ct->act_msg == NULL) {
+		return;
+		}
+
+	get_tim(&time);
+	msg = ct->act_msg->msg.options;
+	last = msg + (ct->act_msg->len - sizeof(T_DHCP6_MSG_HDR));
+	while (msg < last) {
+
+		/* IA_NA/IA_PD ãªãã·ã§ã³ã§ããã°ãæå¹æéãç¢ºèªããã*/
+		opt = (T_DHCP6_OPTION*)msg;
+		if (MSG2HOST16(opt->code) == DHCP6_OPT_IA_NA || MSG2HOST16(opt->code) == DHCP6_OPT_IA_PD) {
+
+			ia = (T_DHCP6_OPT_IA_NA_PD*)opt;
+			asize = MSG2HOST16(ia->len) + sizeof(*opt);
+			for (aoff  = sizeof(*ia); aoff < asize;
+				                  aoff += (MSG2HOST16(iaa->len) & ~DHCP6C_IAA_FLAG_MASK) + sizeof(*iaa)) {
+
+				/* ãã§ã«æå¹æéãçµéãã¦ããã°å¦çããªãã*/
+				iaa = (T_DHCP6_OPT_IAADDR*)((uint8_t*)opt + aoff);
+				if ((MSG2HOST16(iaa->len) & DHCP6C_IAA_FLAG_EXPIRED))
+					continue;
+
+				/* æå¹æéçµéãã¦ããã° FLAG ãè¨­å®ããã*/
+				if (TIMEC_GE(time, ct->act_msg->rcv_time + MSG2HOST32(iaa->valid))) {
+					HOST2MSG16(iaa->len, MSG2HOST16(iaa->len) | DHCP6C_IAA_FLAG_EXPIRED);
+					if (MSG2HOST16(ia->code) == DHCP6_OPT_IA_NA)
+						syslog(LOG_NOTICE, "[DHCP6C] address expired: %s.", ipv62str(NULL, &iaa->addr));
+					else
+						syslog(LOG_NOTICE, "[DHCP6C] prefix  expired: %s.", ipv62str(NULL, &iaa->addr));
+
+					/*ãDNS ã®å¦çãå¿
+è¦ã*/
+					continue;
+					}
+				addrs ++;
+				}
+			}
+		msg += MSG2HOST16(opt->len) + sizeof(*opt);
+		}
+
+	/* æå¹ãªã¢ãã¬ã¹ãå
+¨ã¦ç¡ããªã£ãæã¯ INIT ç¶æ
+ã«é·ç§»ããã*/
+	if (addrs == 0) {
+
+	 	/* ACTIVE ãªã¼ã¹ãåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã«æ»ãã*/
+		syslog(LOG_NOTICE, "[DHCP6C] all address expired.");
+		syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+		ct->act_msg->next = ct->rcv_lst;
+		ct->rcv_lst = ct->act_msg;
+		ct->act_msg = NULL;
+		syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+		/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+		cancel_all_timers(ct);
+
+		/* INIT ç¶æ
+ã«é·ç§»ããã*/
+		start_init(ct);
+		return;
+		}
+
+	eval_expire(ct);
+	}
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+/*
+ *  reply_msg_timeout -- REPLY ã¡ãã»ã¼ã¸ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+reply_msg_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+	/* SOLICIT ã¡ãã»ã¼ã¸éä¿¡ã¿ã¤ãã¼ãåæ­¢ããã*/
+	ct->flags &= ~DHCP6C_FLAG_TMOUT_MASK;
+	syscall(wai_sem(SEM_DHCP6_CLI_TIMER));
+	ct->timers[DHCP6C_TIMER_SND_REQ] = 0;
+	ct->timers[DHCP6C_TIMER_SND_REF] = 0;
+	syscall(sig_sem(SEM_DHCP6_CLI_TIMER));
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	/* STATELES ã¢ã¼ãã§ã¯SLEEP ã«é·ç§»ããã*/
+	ct->error = E_TMOUT;
+	ct->fsm   = DHCP6_FSM_SLEEP;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	/* RENEW ã¡ãã»ã¼ã¸ã®é¸æãçµäºãã¦ããã°ãBOUND ç¶æ
+ã«é·ç§»ããã*/
+	if (select_reply(ct)) {
+
+		/* ãªã¼ã¹æ
+å ±ãè§£æ¾ããã*/
+		rel_lease(ct);
+
+		/* BOUND ç¶æ
+ã«é·ç§»ããã*/
+		start_bound(ct);
+		}
+	else if (ct->fsm == DHCP6_FSM_RENEW || ct->fsm == DHCP6_FSM_REBIND)
+		eval_expire(ct);
+	else {
+		/* SLEEP ã«é·ç§»ããã*/
+		ct->error = E_TMOUT;
+		ct->fsm   = DHCP6_FSM_SLEEP;
+		}
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+	}
+
+/*
+ *  dispatch_timeout -- ã¿ã¤ã ã¢ã¦ãããæã®å¦ç
+ */
+
+static ER
+dispatch_timeout (T_DHCP6_CLI_CONTEXT *ct)
+{
+
+	switch (ct->flags & DHCP6C_FLAG_TMOUT_TIMER_MASK) {
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	case DHCP6C_TIMER_SND_IREQ:
+		send_info_req_msg(ct);
+		break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA
+
+	case DHCP6C_TIMER_SND_SOL:
+		send_solicit_msg(ct);
+		break;
+
+	case DHCP6C_TIMER_SND_REQ:
+		send_request_msg(ct);
+		break;
+
+	case DHCP6C_TIMER_SND_REF:
+		send_refresh_msg(ct);
+		break;
+
+	case DHCP6C_TIMER_SND_REL:
+		send_release_msg(ct);
+		break;
+
+	case DHCP6C_TIMER_RCV_ADV:
+		advertise_msg_timeout(ct);
+		break;
+
+	case DHCP6C_TIMER_RENEW:
+		renew_timeout(ct);
+		break;
+
+	case DHCP6C_TIMER_REBIND:
+		rebind_timeout(ct);
+		break;
+
+	case DHCP6C_TIMER_DEPREF:
+		depref_timeout(ct);
+		break;
+
+	case DHCP6C_TIMER_EXPIRE:
+		expire_timeout(ct);
+		break;
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL || DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_RA */
+
+	case DHCP6C_TIMER_RCV_REPLY:
+		reply_msg_timeout(ct);
+		break;
+
+	default:
+		syslog(LOG_NOTICE, "[DHCP6C] error, unknown timeout: %d.", ct->flags & DHCP6C_FLAG_TMOUT_TIMER_MASK);
+		break;
+		}
+
+	return ct->error;
+	}
+
+/*
+ *  dispatch_event -- ã¤ãã³ãæ¯ã®å¦ç
+ */
+
+static ER
+dispatch_event (T_DHCP6_CLI_CONTEXT *ct)
+{
+	ER	error = E_OK;
+
+	while (ct->fsm != DHCP6_FSM_SLEEP && error == E_OK) {
+
+		/* ã¡ãã»ã¼ã¸ã®éåä¿¡ã¨ã¿ã¤ã ã¢ã¦ããå¾
+ã¤ã*/
+		syscall(wai_sem(SEM_DHCP6_CLI_READY));
+
+		if (ct->flags & DHCP6C_FLAG_RCV_MSG) {
+			while (ct->val_lst != NULL) {
+				error = eval_rcv_msg(ct);
+				}
+			ct->flags &= ~DHCP6C_FLAG_RCV_MSG;
+			}
+
+		if (ct->flags & DHCP6C_FLAG_TMOUT_MASK)
+			error = dispatch_timeout(ct);
+
+		if (ct->error != E_OK)
+			error = ct->error;
+		}
+
+	return error;
+	}
+
+/*
+ *  init_context -- DHCPv6 ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã
+ */
+
+static void
+init_context (T_DHCP6_CLI_CONTEXT *ct, ID cepid)
+{
+  	memset(ct, 0, sizeof(*ct));
+	ct->cepid	= cepid;
+	ct->sc		= IF_ETHER_NIC_GET_SOFTC();
+	ct->dst.portno	= DHCP6_SRV_CFG_PORTNO;
+	}
+
+/*
+ *  rel_cli_msg -- ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã
+ */
+
+static void
+rel_cli_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG	*ptr, *cell;
+
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	for (ptr = ct->rcv_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)cell));
+		}
+
+	for (ptr = ct->val_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)cell));
+		}
+
+	for (ptr = ct->prf_lst; ptr != NULL; ) {
+		cell = ptr;
+		ptr = ptr->next;
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)cell));
+		}
+
+	if (ct->snd_msg != NULL)
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->snd_msg));
+	if (ct->adv_msg != NULL)
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->adv_msg));
+	ct->rcv_lst = ct->prf_lst = ct->val_lst = ct->snd_msg = ct->adv_msg = NULL;
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+
+	/* ã¹ãã¼ãã¬ã¹ã®æã¯æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+	if (ct->act_msg != NULL) {
+		syscall(rel_mpf(MPF_DHCP6_CLI_MSG, (void*)ct->act_msg));
+		ct->act_msg = NULL;
+		}
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+	}
+
+/*
+ *  init_cli_msg -- åã¡ãã»ã¼ã¸æ§é ä½ãåæåããã
+ */
+
+static ER
+init_cli_msg (T_DHCP6_CLI_CONTEXT *ct)
+{
+	T_DHCP6_CLI_MSG	*cell;
+	ER		error;
+	int		count;
+
+	/* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/
+	if ((error = tget_mpf(MPF_DHCP6_CLI_MSG, (void*)&ct->snd_msg, TMO_DHCP6C_MPF_GET)) != E_OK) {
+		syslog(LOG_NOTICE, "[DHCP6C] error, tget_mpf() for send: %s.", itron_strerror(error));
+		return error;
+		}
+
+	/*
+	 *  æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½ãããå ´åã¯ã
+	 *  ç²å¾ããåä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ãã®æ§é ä½ã 1æ¸ããã
+	 */
+	if (ct->act_msg == NULL)
+		count = NUM_DHCP6_CLI_MSG_LIST;
+	else
+		count = NUM_DHCP6_CLI_MSG_LIST - 1;
+
+	/* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãç²å¾ããã*/
+	syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+	while (count --> 0) {
+		if ((error = tget_mpf(MPF_DHCP6_CLI_MSG, (void*)&cell, TMO_DHCP6C_MPF_GET)) != E_OK) {
+			syslog(LOG_NOTICE, "[DHCP6C] error, tget_mpf() for receive: %s.", itron_strerror(error));
+			break;
+			}
+		cell->next  = ct->rcv_lst;
+		ct->rcv_lst = cell;
+		}
+	syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+	return E_OK;
+	}
+
+/*
+ *  dhcp6c_renew_info -- ãããã¯ã¼ã¯æ
+å ±ãååå¾ããã
+ */
+
+ER
+dhcp6c_renew_info (void)
+{
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+
+	if (context.fsm == DHCP6_FSM_INFORMED) {
+
+		/* REL_INFO ç¶æ
+ã«é·ç§»ããå¾ã« SLEEP ãè§£é¤ããããã«è¨­å®ããã*/
+		context.flags |= DHCP6C_FLAG_RENEW;
+		start_rel_info(&context);
+		return E_OK;
+		}
+	else if (context.fsm == DHCP6_FSM_SLEEP) {
+
+		/* SLEEP ãè§£é¤ããã*/
+		wup_tsk(DHCP6_CLI_TASK);
+		return E_OK;
+		}
+	else
+		return E_OBJ;
+
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+
+	if (context.fsm == DHCP6_FSM_BOUND) {
+
+		/* RENEW ç¶æ
+ã«é·ç§»ããã*/
+		start_renew(&context);
+		return E_OK;
+		}
+	else if (context.fsm == DHCP6_FSM_SLEEP) {
+
+		/* SLEEP ãè§£é¤ããã*/
+		wup_tsk(DHCP6_CLI_TASK);
+		return E_OK;
+		}
+	else
+		return E_OBJ;
+
+#else	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+#endif	/* of #if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS */
+
+	}
+
+/*
+ *  dhcp6c_rel_info -- DHCP ã§è¨­å®ããããããã¯ã¼ã¯æ
+å ±ãè§£æ¾ããã
+ */
+
+ER
+dhcp6c_rel_info (void)
+{
+	/* REL_INFO ç¶æ
+ã«é·ç§»ããã*/
+	start_rel_info(&context);
+	return E_OK;
+	}
+
+/*
+ *  dhcp6c_get_info -- DHCP ã§è¨­å®ããããããã¯ã¼ã¯æ
+å ±ãè¿ãã
+ */
+
+ER
+dhcp6c_get_info (T_IN6_ADDR *addr, uint32_t *expire, uint32_t *renew,
+                                   uint32_t *rebind, uint32_t *deprefer, SYSTIM *bind_start)
+{
+	if (addr   == NULL || expire ==   NULL || renew == NULL || 
+	    rebind == NULL || deprefer == NULL || bind_start == NULL)
+		return E_PAR;
+	else if (context.act_msg == NULL)
+		return E_OBJ;
+	else {
+		//            context.timers[DHCP6C_TIMER_EXPIRE],
+		//            context.timers[DHCP6C_TIMER_RENEW],
+		//            context.timers[DHCP6C_TIMER_REBIND],
+		//            context.timers[DHCP6C_TIMER_DEPREF]);
+
+		*addr = context.act_msg->srv.ipaddr;
+		*expire		= context.timers[DHCP6C_TIMER_EXPIRE];
+		*renew		= context.timers[DHCP6C_TIMER_RENEW];
+		*rebind		= context.timers[DHCP6C_TIMER_REBIND];
+		*deprefer	= context.timers[DHCP6C_TIMER_DEPREF];
+		*bind_start	= context.act_msg->rcv_time;
+		return E_OK;
+		}
+	}
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_dhcp6_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	T_DHCP6_CLI_MSG	*msg;
+	ER_UINT		len;
+
+	len = *(ER_UINT*)p_parblk;
+	if (len < 0 && len != E_RLWAI) {
+		/* E_RLWAI ä»¥å¤ã§ã0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[DHCP6C(CBR)] error: %s, fncd: %s.", itron_strerror(len), in_strtfn(fncd));
+		}
+	else {
+		if (fncd == TEV_UDP_RCV_DAT) {
+
+			/* åä¿¡ã¡ãã»ã¼ã¸ãªã¹ããç©ºã®æã¯ãåä¿¡ããªãã§ãã¼ã¿ã°ã©ã ãæ¨ã¦ãã*/
+			if (context.rcv_lst == NULL) 
+				syslog(LOG_NOTICE, "[DHCP6C(CBR)] receive buffer all busy.");
+			else {
+				/* ã¡ãã»ã¼ã¸ãåä¿¡ããã¡ãã»ã¼ã¸æ§é ä½ãæºåããã*/
+				syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+				msg = context.rcv_lst;
+				context.rcv_lst = context.rcv_lst->next;
+				syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+
+				/* ã¡ãã»ã¼ã¸ãåä¿¡ããã*/
+				len = UDP_RCV_DAT(context.cepid, &msg->srv, &msg->msg, sizeof(msg->msg), TMO_POL);
+
+				syscall(wai_sem(SEM_DHCP6_CLI_LOCK));
+				msg->len = len;
+				if (len >= 0) {
+					/* åä¿¡ããã¡ãã»ã¼ã¸ãæ¤è¨¼ã¡ãã»ã¼ã¸ãªã¹ãã«ç§»ãã*/
+					msg->next = context.val_lst;
+					context.val_lst = msg;
+					context.flags |= DHCP6C_FLAG_RCV_MSG;
+					}
+				else {
+					/* ã¡ãã»ã¼ã¸æ§é ä½ãåä¿¡ã¡ãã»ã¼ã¸ãªã¹ãã«æ»ãã*/
+					context.error = len;
+					msg->next = context.rcv_lst;
+					context.rcv_lst = msg;
+					}
+				syscall(sig_sem(SEM_DHCP6_CLI_LOCK));
+				}
+			}
+		syscall(sig_sem(SEM_DHCP6_CLI_READY));
+		}
+	return E_OK;
+	}
+/*
+ *  dhcp6_cli_task -- DHCPv6 ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯
+ */
+
+void
+dhcp6_cli_task (intptr_t exinf)
+{
+	T_DHCP6_CLI_CONTEXT	*ct;
+	ID			tskid;
+	ER			error;
+
+	dly_tsk(1000);
+	get_tid(&tskid);
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+	syslog(LOG_NOTICE, "[DHCP6C:%d] started in stateless.", tskid);
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+	syslog(LOG_NOTICE, "[DHCP6C:%d] started in statefull.", tskid);
+#else
+#endif
+
+	dly_tsk(500);
+	ct = &context;
+
+	/* DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½ãåæåããã*/
+	init_context(ct, (ID)exinf);
+
+	while (true) {
+
+		/* 1ç§æ¯ã«ã¿ã¤ã ã¢ã¦ãããããã«ã¿ã¤ãã¼ãè¨­å®ããã*/
+		timeout((callout_func)dhcpc_timer, ct, NET_TIMER_HZ / DHCP6C_TIMER_HZ);
+
+		/* ã¯ã©ã¤ã¢ã³ã DUID ãè¨­å®ããã*/
+		init_duid(ct);
+
+		/* ã¡ãã»ã¼ã¸æ§é ä½ãåæåããã*/
+		if ((error = init_cli_msg(ct))  == E_OK) {
+
+#if DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATELESS
+			start_req_info(ct);
+#elif DHCP6_CLI_CFG_MODE == DHCP6_CLI_CFG_STATEFULL
+			start_init(ct);
+#else
+#endif
+
+			/* ã¡ã¤ã³ã«ã¼ã */
+			error = dispatch_event(ct);
+			}
+
+		/* å
+¨ã¦ã® TIMER ãã­ã£ã³ã»ã«ããã*/
+		cancel_all_timers(ct);
+
+		/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+		untimeout((callout_func)dhcpc_timer, ct);
+
+		/* ã¡ãã»ã¼ã¸æ§é ä½ãè§£æ¾ããã*/
+		rel_cli_msg(ct);
+
+		/* ãªã¼ã¹ãè§£æ¾å¾ãååå¾ãæå®ããã¦ããªããã°ä¼æ­¢ããã*/
+		if (!(ct->flags & DHCP6C_FLAG_RENEW)) {
+
+			/* ä¼æ­¢ããã*/
+			if (error == E_OK)
+				syslog(LOG_NOTICE, "[DHCP6C] lease released, go to sleep.");
+			else {
+				syslog(LOG_NOTICE, "[DHCP6C] server not available, go to sleep, error: %s.", itron_strerror(error));
+				ct->fsm = DHCP6_FSM_SLEEP;
+				}
+			slp_tsk();
+			}
+		ct->flags = 0;
+		ct->error = E_OK;
+		}
+	}
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.cfg	(revision 313)
@@ -0,0 +1,70 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  DHCPv6 ã¯ã©ã¤ã¢ã³ã
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef DHCP6_CLI_CFG
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(DHCP6_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	UDP6_DHCP_CLI_CEPID,
+	dhcp6_cli_task,
+	DHCP6_CLI_MAIN_PRIORITY,
+	DHCP6_CLI_STACK_SIZE,
+	NULL
+	});
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_DHCP6_CLI_READY,	{ TA_TPRI, 0, 1 });
+CRE_SEM(SEM_DHCP6_CLI_TIMER,	{ TA_TPRI, 1, 1 });
+CRE_SEM(SEM_DHCP6_CLI_LOCK,	{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli.h	(revision 313)
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 2004-2011 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1995-2003 by Internet Software Consortium
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *   Internet Systems Consortium, Inc.
+ *   950 Charter Street
+ *   Redwood City, CA 94063
+ *   <info@isc.org>
+ *   https://www.isc.org/
+ *
+ * This code is based on the original client state machine that was
+ * written by Elliot Poger.  The code has been extensively hacked on
+ * by Ted Lemon since then, so any mistakes you find are probably his
+ * fault and not Elliot's.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP6_CLI_H
+#define DHCP6_CLI_H
+
+#ifdef DHCP6_CLI_CFG
+
+#include <netinet/in.h>
+#include <netapp/dhcp6.h>
+
+/* 
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã®ã¹ã¿ãã¯ãµã¤ãº
+ */
+
+#define DHCP6_CLI_STACK_SIZE		1024		/* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* 
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã®åªå
+åº¦
+ */
+
+#define DHCP6_CLI_MAIN_PRIORITY		5		/* DHCP ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
+åº¦		*/
+
+/* 
+ *  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³
+ */
+
+/*
+ *  DHCPv6 åä½ã¢ã¼ã
+ *
+ *    #define DHCP6_CLI_CFG_MODE ã§æå®ããã
+ *    æå®ããã¦ããªããã°ãã¹ãã¼ãã¬ã¹ã«è¨­å®ããã
+ *
+ */
+
+#define DHCP6_CLI_CFG_STATELESS		0	/* ã¹ãã¼ãã¬ã¹ã«è¨­å®ããã		*/
+#define DHCP6_CLI_CFG_STATEFULL		1	/* ã¹ãã¼ããã«ã«è¨­å®ããã		*/
+#define DHCP6_CLI_CFG_RA		2	/* RA ã® M/O ãããã«ããè¨­å®ããã	*/
+#define DHCP6_CLI_CFG_MODE_DEFAULT	DHCP6_CLI_CFG_STATELESS
+
+/* IA ã®è¨­å® */
+#define DHCP6_CLI_CFG_IA_NA		1
+//#define DHCP6_CLI_CFG_IA_TA		1
+//#define DHCP6_CLI_CFG_IA_PD		1
+
+/* Rapid-commit ã®æå® */
+//#define DHCP6_CLI_CFG_RAPID_COMMIT	1
+
+/* æ¨å¥¨åº¦ã®å®ç¾© */
+#define DHCP6_CLI_CFG_PREFER_IA		50	/* IA_NA/TA/PD å½ããã®æ¨å¥¨åº¦	*/
+#define DHCP6_CLI_CFG_PREFER_IAADDR	100	/* ã¢ãã¬ã¹å½ããã®æ¨å¥¨åº¦	*/
+
+/* DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸ã®åä¿¡ãªã¹ããµã¤ãºï¼2ä»¥ä¸æå®ãããã¨ï¼ */
+#define NUM_DHCP6_CLI_MSG_LIST		3
+
+/*
+ *  DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½æ°ãå¤æ´ç¦æ­¢ã
+ *  +1 ã¯éä¿¡ç¨
+ */
+#define NUM_MPF_DHCP6_CLI_MSG		(NUM_DHCP6_CLI_MSG_LIST+1)
+
+/* DHCP å¿
+é ãªãã·ã§ã³ãªã¹ã */
+
+#ifndef DHCP6_CLI_CFG_REQUIRED_OLIST
+
+#if defined(USE_RESOLVER)
+
+#define DHCP6_CLI_CFG_REQUIRED_OLIST {	\
+	DHCP6_OPT_NAME_SERVERS,		\
+	}
+
+#else	/* of #if defined(USE_RESOLVER) */
+
+#endif	/* of #if defined(USE_RESOLVER) */
+
+#endif	/* of #ifndef DHCP6_CLI_CFG_REQUIRED_OLIST */
+
+/* DHCP è¦æ±ãªãã·ã§ã³ãªã¹ã */
+
+#ifndef DHCP6_CLI_CFG_REQUEST_OLIST
+
+#if defined(USE_RESOLVER)
+
+#define DHCP6_CLI_CFG_REQUEST_OLIST {	\
+	DHCP6_OPT_DOMAIN_SEARCH,	\
+	}
+
+#else	/* of #if defined(USE_RESOLVER) */
+
+#endif	/* of #if defined(USE_RESOLVER) */
+
+#endif	/* of #ifndef DHCP6_CLI_CFG_REQUEST_OLIST */
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãå®æ°
+ *  RFC3315 ã«è¦å®ãããã¿ã¤ãã³ã°å®æ°ã¯ dhcp6.h åç
+§
+ */
+
+/* æ¨æºã¡ãã»ã¼ã¸ã®åéä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP6C_NORMAL	ULONG_C(60*1000)
+
+/* æ¨æºè¦æ±ãªã¼ã¹æé			*/
+#define TMO_DHCP6C_REQ_LEASE	ULONG_C(7200*1000)
+
+/* ã¡ãã»ã¼ã¸æ§é ä½ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP6C_MPF_GET	ULONG_C(1000)
+
+/* ã¡ãã»ã¼ã¸åä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DHCP6C_RCV_DAT	ULONG_C(1000)
+
+/*
+ *  DHCPv6 ã¯ã©ã¤ã¢ã³ãã¡ãã»ã¼ã¸æ§é ä½
+ */
+
+typedef struct dhcp6_cli_msg {
+	/* 4ãã¤ãå¢çã«ã¢ã©ã¤ã³ããã*/
+	T_DHCP6_MSG		msg;		/* DHCPv6 ã¡ãã»ã¼ã¸æ§é ä½	*/
+	struct dhcp6_cli_msg	*next;		/* ãªã¹ãã®æ¬¡ã®ã¡ãã»ã¼ã¸æ§é ä½	*/
+	SYSTIM			rcv_time;	/* åä¿¡ããæé			*/
+	T_IPV6EP		srv;		/* ãµã¼ãã®IPv6ã¢ãã¬ã¹/ãã¼ãçªå· */
+	uint16_t		len;		/* msg ã®æå¹é·			*/
+	uint16_t		prefer;		/* msg ã®æ¨å¥¨åº¦			*/
+	uint16_t		status;		/* STATUS CODE ãªãã·ã§ã³ã® status */
+	} T_DHCP6_CLI_MSG;
+
+/* prefer ã®ãã©ã° */
+
+#define DHCP6_ClI_MSG_PREFER_ADDR	UINT_C(0x8000)	/* ã¢ãã¬ã¹æ
+å ±ãã		*/
+#define DHCP6_ClI_MSG_PREFER_REQUIRED	UINT_C(0x4000)	/* å¿
+é ãªãã·ã§ã³ãã		*/
+#define DHCP6_ClI_MSG_PREFER_REQUEST	UINT_C(0x2000)	/* è¦æ±ãªãã·ã§ã³ãã		*/
+#define DHCP6_ClI_MSG_PREFER_OPTION	UINT_C(0x1000)	/* PREFER ãªãã·ã§ã³ãã	*/
+#define DHCP6_ClI_MSG_PREFER_FLAG_MASK	UINT_C(0xf000)
+#define DHCP6_ClI_MSG_PREFER_VALUE_MASK	(~(DHCP6_ClI_MSG_PREFER_FLAG_MASK))
+
+/*
+ *  STATUS CODE ãªãã·ã§ã³ãç¡ãæã®å¤
+ */
+
+#define DHCP6_CLI_STAT_UNDEFINED	(-1)
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+extern ER callback_nblk_dhcp6_cli (ID cepid, FN fncd, void *p_parblk);
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	dhcp6_cli_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern ER dhcp6c_rel_info (void);
+extern ER dhcp6c_renew_info (void);
+extern ER dhcp6c_get_info (T_IN6_ADDR *addr, uint32_t *expire, uint32_t *renew,
+                                             uint32_t *rebind, uint32_t *deprefer, SYSTIM *bind_start);
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
+
+#endif	/* of #ifndef DHCP6_CLI_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_asp.cfg	(revision 313)
@@ -0,0 +1,73 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ASP ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#ifdef DHCP6_CLI_CFG
+
+INCLUDE("netapp/dhcp6_cli.cfg");
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_DHCP6_CLI_MSG, {
+	TA_TFIFO,
+	NUM_MPF_DHCP6_CLI_MSG,
+	sizeof(T_DHCP6_CLI_MSG),
+	NULL,
+	NULL
+	});
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_jsp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_jsp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_jsp.cfg	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  JSP ç¨ DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é DHCP ã¯ã©ã¤ã¢ã³ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#ifdef DHCP6_CLI_CFG
+
+#include "netapp/dhcp6_cli.cfg"
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_DHCP6_CLI_MSG, {
+	TA_TFIFO,
+	NUM_MPF_DHCP6_CLI_MSG,
+	sizeof(T_DHCP6_CLI_MSG),
+	NULL
+	});
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dhcp6_cli_var.h	(revision 313)
@@ -0,0 +1,237 @@
+/*
+ * Copyright (c) 2004-2011 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1995-2003 by Internet Software Consortium
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ *   Internet Systems Consortium, Inc.
+ *   950 Charter Street
+ *   Redwood City, CA 94063
+ *   <info@isc.org>
+ *   https://www.isc.org/
+ *
+ * This code is based on the original client state machine that was
+ * written by Elliot Poger.  The code has been extensively hacked on
+ * by Ted Lemon since then, so any mistakes you find are probably his
+ * fault and not Elliot's.
+ */
+/*
+ * WIDE Project DHCP Implementation
+ * Copyright (c) 1995-1997 Akihiro Tominaga
+ * Copyright (c) 1995-1997 WIDE Project
+ * All rights reserved.
+ *
+ * Permission to use, copy, modify and distribute this software and its
+ * documentation is hereby granted, provided the following conditions
+ * are satisfied,
+ *
+ * 1. Both the copyright notice and this permission notice appear in
+ *    all copies of the software, derivative works or modified versions,
+ *    and any portions thereof, and that both notices appear in
+ *    supporting documentation.
+ * 2. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *      This product includes software developed by WIDE Project and
+ *      its contributors.
+ * 3. Neither the name of WIDE Project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE DEVELOPER ``AS IS'' AND WIDE
+ * PROJECT DISCLAIMS ANY LIABILITY OF ANY KIND FOR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. ALSO, THERE
+ * IS NO WARRANTY IMPLIED OR OTHERWISE, NOR IS SUPPORT PROVIDED.
+ *
+ * Feedback of the results generated from any improvements or
+ * extensions made to this software would be much appreciated.
+ * Any such feedback should be sent to:
+ * 
+ *  Akihiro Tominaga
+ *  WIDE Project
+ *  Keio University, Endo 5322, Kanagawa, Japan
+ *  (E-mail: dhcp-dist@wide.ad.jp)
+ *
+ * WIDE project has the rights to redistribute these changes.
+ */
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DHCP6_CLI_VAR_H
+#define DHCP6_CLI_VAR_H
+
+#ifdef DHCP6_CLI_CFG
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã³ã³ãã­ã¹ãæ§é ä½
+ */
+
+/* TIMER ã®å®ç¾© */
+
+#define DHCP6C_TIMER_SND_SOL	0
+#define DHCP6C_TIMER_SND_REQ	1
+#define DHCP6C_TIMER_SND_REL	2
+#define DHCP6C_TIMER_RCV_ADV	3
+#define DHCP6C_TIMER_RCV_REPLY	4
+#define DHCP6C_TIMER_RENEW	5
+#define DHCP6C_TIMER_REBIND	6
+#define DHCP6C_TIMER_EXPIRE	7
+#define DHCP6C_TIMER_DEPREF	8
+#define DHCP6C_TIMER_SND_REF	9
+#define DHCP6C_TIMER_SND_IREQ	10
+#define NUM_DHCP6C_TIMERS	11
+
+#define DHCP6C_TIMER_HZ		1
+
+/* å®æ°ã®å®ç¾© */
+
+#define MAX_DUID_LEN		(ETHER_ADDR_LEN+8)
+
+typedef struct dhcp6_cli_context {
+	T_DHCP6_CLI_MSG		*rcv_lst;	/* åä¿¡ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP6_CLI_MSG		*val_lst;	/* æ¤è¨¼ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP6_CLI_MSG		*prf_lst;	/* æ¨å¥¨ã¡ãã»ã¼ã¸æ§é ä½ãªã¹ã		*/
+	T_DHCP6_CLI_MSG		*snd_msg;	/* éä¿¡ã¡ãã»ã¼ã¸æ§é ä½			*/
+	T_DHCP6_CLI_MSG		*adv_msg;	/* éç¥ããããªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½	*/
+	T_DHCP6_CLI_MSG		*act_msg;	/* æå¹ãªãªã¼ã¹ã»ã¡ãã»ã¼ã¸æ§é ä½	*/
+	T_IF_SOFTC		*sc;		/* IF ã®ã½ããã¦ã§ã¢æ
+å ±		*/
+	T_IPV6EP		dst;		/* éä¿¡å
+ã®IPã¢ãã¬ã¹/ãã¼ãçªå·	*/
+	SYSTIM			RT;		/* åéä¿¡éé				*/
+	SYSTIM			IRT;		/* åæåéä¿¡éé			*/
+	SYSTIM			MRT;		/* æå¤§åéä¿¡éé			*/
+	SYSTIM			MRD;		/* æå¤§åéä¿¡ç¶ç¶æé			*/
+	SYSTIM			next_MRD;	/* æ¬¡ã®æå¤§åéä¿¡ç¶ç¶æé		*/
+	SYSTIM			timers[NUM_DHCP6C_TIMERS];	
+						/* ã¿ã¤ãã¼é
+å			*/
+	ER_UINT			error;		/* ã¨ã©ã¼ã»ãã¼ã¿é·		*/
+	ID			cepid;		/* CEP ID			*/
+	uint32_t		xid;		/* ãã©ã³ã¶ã¯ã·ã§ã³ ID		*/
+	uint16_t		flags;		/* åç¨®ãã©ã°			*/
+	uint16_t		max_prefer;	/* åä¿¡ã¡ãã»ã¼ã¸ã®æå¤§æ¨å¥¨åº¦	*/
+	uint8_t			duid[MAX_DUID_LEN];	
+						/* client DHCP Unique ID	*/
+	uint8_t			duid_len;	/* client DUID é·		*/
+	uint8_t			fsm;		/* ç¾å¨ã®ç¶æ
+			*/
+	uint8_t			MRC;		/* æå¤§åéä¿¡åæ°		*/
+	uint8_t			txcount;	/* åéä¿¡åæ°			*/
+	uint8_t			refresh_type;	/* REFRESH ã®ã¡ãã»ã¼ã¸ã¿ã¤ã	*/
+	} T_DHCP6_CLI_CONTEXT;
+
+/* fsmï¼ç¶æ
+é·ç§»ï¼ã®å®ç¾© */
+
+#define DHCP6_FSM_INIT		1
+#define DHCP6_FSM_SELECT	2
+#define DHCP6_FSM_BOUND		4
+#define DHCP6_FSM_RENEW		5
+#define DHCP6_FSM_REBIND	6
+#define DHCP6_FSM_REQ_INFO	9	/* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/
+#define DHCP6_FSM_INFORMED	10	/* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/
+#define DHCP6_FSM_REL_INFO	11	/* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/
+#define DHCP6_FSM_SLEEP		12	/* DHCPv6 ã® RFC3315 ã«ã¯ç¡ãã*/
+
+/* flag ã®å®ç¾© */
+
+#define DHCP6C_FLAG_TMOUT_SND_SOL	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_SOL)
+#define DHCP6C_FLAG_TMOUT_SND_REQ	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_REQ)
+#define DHCP6C_FLAG_TMOUT_SND_REL	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_REL)
+#define DHCP6C_FLAG_TMOUT_RCV_ADV	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_RCV_ADV)
+#define DHCP6C_FLAG_TMOUT_RCV_REPLY	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_RCV_REPLY)
+#define DHCP6C_FLAG_TMOUT_RENEW		(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_RENEW)
+#define DHCP6C_FLAG_TMOUT_REBIND	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_REBIND)
+#define DHCP6C_FLAG_TMOUT_EXPIRE	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_EXPIRE)
+#define DHCP6C_FLAG_TMOUT_DEPREF	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_DEPREF)
+#define DHCP6C_FLAG_TMOUT_SND_REF	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_REF)
+#define DHCP6C_FLAG_TMOUT_SND_IREQ	(DHCP6C_FLAG_TMOUT_TIMER|DHCP6C_TIMER_SND_IREQ)
+#define DHCP6C_FLAG_TMOUT_TIMER		UINT_C(0x0010)
+#define DHCP6C_FLAG_TMOUT_TIMER_MASK	UINT_C(0x000f)
+#define DHCP6C_FLAG_TMOUT_MASK		UINT_C(0x001f)
+
+#define DHCP6C_FLAG_RCV_MSG		UINT_C(0x0200)
+#define DHCP6C_FLAG_RENEW		UINT_C(0x0400)
+
+/* IAADDR æ§é ä½ã® FLAG ã®å®ç¾©ï¼len ã«å¤éåããï¼*/
+
+#define DHCP6C_IAA_FLAG_EXPIRED		UINT_C(0x8000)
+#define DHCP6C_IAA_FLAG_DEPREFERD	UINT_C(0x4000)
+#define DHCP6C_IAA_FLAG_MASK		UINT_C(0xc000)
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+/* æéæ¯è¼ */
+
+#define TIMEC_GT(a,b)		((int32_t)((a)-(b))>0)
+#define TIMEC_GE(a,b)		((int32_t)((a)-(b))>=0)
+
+/* æéå®æ°ã®å¤æ */
+
+#define SYSTIM2TIMER(t)		(((t)<SYSTIM_HZ/DHCP6C_TIMER_HZ)?(DHCP6C_TIMER_HZ):((t)*DHCP6C_TIMER_HZ)/SYSTIM_HZ)
+#define SYSTIM2SEC(t)		(((t)<SYSTIM_HZ)?1:((t)/SYSTIM_HZ))
+#define SEC2TIMER(t)		((t)*DHCP6C_TIMER_HZ)
+#define SEC2SYSTIM(t)		((t)*SYSTIM_HZ)
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
+
+#endif	/* of #ifndef DHCP6_CLI_VAR_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/dns.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/dns.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/dns.h	(revision 313)
@@ -0,0 +1,294 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef DNS_H
+#define DNS_H
+
+/*
+ *  DNS ã¡ãã»ã¼ã¸ã«é¢ããå®ç¾©
+ *
+ *    RFC1034ãRFC1035ãRFC1886ãRFC2136ã
+ *    RFC2671ãRFC2845ãRFC2930ãRFC3596
+ *
+ *  DNS ã¡ãã»ã¼ã¸
+ *
+ *  +---------------------+
+ *  |       Header        |
+ *  +---------------------+
+ *  |      Question       | Question section å½¢å¼
+ *  +---------------------+
+ *  |       Answer        | RR (Resouce Record) å½¢å¼
+ *  +---------------------+
+ *  |     Authority       | RR (Resouce Record) å½¢å¼
+ *  +---------------------+
+ *  |     Additional      | RR (Resouce Record) å½¢å¼
+ *  +---------------------+
+ *
+ *  DNS ããã
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                      ID                       |
+ *  +--+-----------+--+--+--+--+--------+-----------+
+ *  |QR|   Opcode  |AA|TC|RD|RA|    Z   |   RCODE   |
+ *  +--+--------+--+--+--+--+--+--------+-----------+
+ *  |                    QDCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    ANCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    NSCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    ARCOUNT                    |
+ *  +-----------------------------------------------+
+ */
+
+typedef struct dns_hdr {
+	uint16_t	id;		/* ID */
+	uint16_t	code;	/* QR:		1
+				   Opcode:	4
+				   AA:		1
+				   TC:		1
+				   RD:		1
+				   RA:		1
+				   Z:		3
+				   RCODE:	4
+				   */
+	uint16_t	qdcount;	/* question   section */
+	uint16_t	ancount;	/* answer     section */
+	uint16_t	nscount;	/* authority  section */
+	uint16_t	arcount;	/* additional section */
+	} T_DNS_HDR;
+
+/*
+ *  code ã®å®ç¾©
+ */
+
+/* QR ã®å®ç¾© */
+
+#define DNS_QR_QUERY		0x0000U
+#define DNS_QR_RESPONSE		0x8000U
+
+/* Opcode ã®å®ç¾© */
+
+#define DNS_OPCODE_MASK		0x7800U
+#define DNS_OPCODE_FORWARD	0x0000U
+#define DNS_OPCODE_REVERSE	0x0800U
+#define DNS_OPCODE_STATUS	0x1000U
+
+/* AA ã®å®ç¾© */
+
+#define DNS_AUTHORITATIVE	0x0400U
+
+/* TC ã®å®ç¾© */
+
+#define DNS_TRUN_CATION		0x0200U
+
+/* RD ã®å®ç¾© */
+
+#define DNS_RECURSION_DESIRED	0x0100U
+
+/* RA ã®å®ç¾© */
+
+#define DNS_RECURSION_AVAILABLE	0x0080U
+
+/* RCODE ã®å®ç¾© */
+
+#define DNS_RCODE_MASK		0x000fU
+#define DNS_RCODE_NO_ERROR	0x0000U
+#define DNS_RCODE_FORMAT_ERROR	0x0001U
+#define DNS_RCODE_SERVER_ERROR	0x0002U
+#define DNS_RCODE_NAME_ERROR	0x0003U
+#define DNS_RCODE_NOT_IMPLEMENT	0x0004U
+#define DNS_RCODE_REFUSED	0x0005U
+
+/*
+ * DNS TYPE ã®å®ç¾©
+ */
+
+#define DNS_TYPE_A		(uint16_t)1U
+#define DNS_TYPE_NS		(uint16_t)2U
+#define DNS_TYPE_CNAME		(uint16_t)5U
+#define DNS_TYPE_SOA		(uint16_t)6U
+#define DNS_TYPE_PTR		(uint16_t)12U
+#define DNS_TYPE_AAAA		(uint16_t)28U
+
+/*
+ * DNS CLASS ã®å®ç¾©
+ */
+
+#define DNS_CLASS_IN		(uint16_t)1U
+
+/*
+ *  RR (Resouce Record) å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                      NAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                      TYPE                     |
+ *  +-----------------------------------------------+
+ *  |                      CLASS                    |
+ *  +-----------------------------------------------+
+ *  |                       TTL                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    RDLENGTH                   |
+ *  +-----------------------------------------------+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     RDATA                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *
+ *    æ³¨æ: offset ã®åç¹ã¯ DNS message ã®å
+é ­
+ */
+
+typedef struct dns_rr {
+					/* NAME			*/
+	uint16_t	type;		/* TYPE			*/
+	uint16_t	class;		/* CLASS		*/
+	uint32_t	ttl;		/* TTL			*/
+	uint16_t	rdlength;	/* RDATA length		*/
+					/* RDATA		*/
+	} T_DNS_RR;
+
+#define T_DNS_RR_SIZE	(sizeof(uint16_t)*3+sizeof(uint32_t))
+
+/*
+ *  Question section å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     QNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                     QTYPE                     |
+ *  +-----------------------------------------------+
+ *  |                     QCLASS                    |
+ *  +-----------------------------------------------+
+ */
+
+typedef struct dns_qd {
+					/* QNAME		*/
+	uint16_t	type;		/* TYPE			*/
+	uint16_t	class;		/* CLASS		*/
+	} T_DNS_QD;
+
+#define T_DNS_QD_SIZE	(sizeof(uint16_t)*2)
+
+/*
+ *  SOA RDATA å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     MNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     RNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                    SERIAL                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    REFRESH                    |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                     RETRY                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    EXPIRE                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    MINIMUM                    |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *
+ *    æ³¨æ: offset ã®åç¹ã¯ DNS message ã®å
+é ­
+ */
+
+typedef struct dns_soa {
+					/* MNAME		*/
+					/* RNAME		*/
+	uint32_t	serial;		/* SERIAL		*/
+	uint32_t	refresh;	/* REFRESH		*/
+	uint32_t	retry;		/* RETRY		*/
+	uint32_t	expire;		/* EXPIRE		*/
+	uint32_t	minimum;	/* MINIMUM		*/
+	} T_DNS_SOA;
+
+#define T_DNS_SOA_SIZE	(sizeof(uint32_t)*5)
+
+/*
+ *  DNS ã®å®æ°ã®å®ç¾©
+ */
+
+#define DNS_LABEL_LENGTH	63
+#define DNS_NAME_LENGTH		255
+#define DNS_UDP_MSG_LENGTH	512
+
+#define DNS_MSG_COMP_MARK	0xc0
+
+#endif	/* of #ifndef DNS_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.c	(revision 313)
@@ -0,0 +1,495 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#include <stdarg.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <sil.h>
+#include "target_syssvc.h"
+#include "target_lcd.h"
+#include <kernel.h>
+#include <t_syslog.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "hw_lcd.h"
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/lcd.h>
+
+/*
+ *  å±æå¤æ°ã®å®ç¾©
+ */
+
+static bool_t newline = false;
+static int_t col = 0;
+static int8_t line[LCD_COLUMN_SIZE + 1] = { "                " };
+
+/*
+ *  lcd_cls -- LCD è¡¨ç¤ºã¯ãªã¢
+ */
+
+void
+lcd_cls (void)
+{
+	target_lcd_cls();
+	col = 0;
+	newline = false;
+	}
+
+/*
+ *  lcd_newline -- LCD ã®è¡¨ç¤ºãæ¹è¡ããã
+ */
+
+static void
+lcd_newline (void)
+{
+	target_lcd_newline(line, col);
+	col = 0;
+	newline = false;
+	}
+
+/*
+ *  lcd_initialize -- LCD åæå
+ */
+
+void
+lcd_initialize (intptr_t exinf)
+{
+	target_lcd_initialize();
+	lcd_cls();
+	}
+
+/*
+ *  lcd_putc -- LCD åºå
+ */
+
+void
+lcd_putc (ID portid, int8_t data)
+{
+	if (data == '\n')
+		newline = true;
+	else {
+		if (newline)
+			lcd_newline();
+		target_lcd_data_putc(data);
+		line[col ++] = data;
+		if (col >= LCD_COLUMN_SIZE)
+			newline = true;
+		}
+	}
+
+/*
+ *  lcd_puts -- LCD ã¸ã®æå­åã®åºå
+ */
+
+void
+lcd_puts (ID portid, const char *str)
+{
+	while (*str != '\0')
+		lcd_putc(portid, *str ++);
+	}
+
+/*
+ *  LCD ã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
+ */
+
+/*
+ *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ */
+
+static const char radhex[] = "0123456789abcdef";
+static const char radHEX[] = "0123456789ABCDEF";
+
+/*
+ *  ãã£ã¨ãé·ãæ´æ°å (LONGEST) ã¨ç¬¦å·ãªãæ´æ°å (ULONGEST)
+ */
+
+#ifdef _int64_
+
+typedef _int64_			LONGEST;
+typedef unsigned _int64_	ULONGEST;
+
+#else	/* of #ifdef _int64_ */
+
+#ifdef _int32_
+
+typedef _int32_			LONGEST;
+typedef unsigned _int32_	ULONGEST;
+
+#else	/* of #ifdef _int32_ */
+
+typedef int_t			LONGEST;
+typedef uint_t			ULONGEST;
+
+#endif	/* of #ifdef _int32_ */
+
+#endif	/* of #ifdef _int64_ */
+
+/*
+ *  convert -- lcd_printf ã®æ°å¤å¤æ
+ */
+
+static int_t
+convert (ID portid, ULONGEST val, int_t radix,
+         const char *radchar, int_t width, bool_t minus, char padchar)
+{
+	char	digits[24];
+	int_t	ix, pad, pchars;
+	bool_t	left;
+
+	if (width < 0) {
+		width = -width;
+		left = true;
+		}
+	else
+		left = false;
+
+	ix = 0;
+	do {
+		digits[ix ++] = radchar[val % radix];
+		val /= radix;
+		} while (val != 0);
+
+	if (minus)
+		digits[ix ++] = '-';
+
+	if (width > ix)
+		pchars = width;
+	else
+		pchars = ix;
+
+	pad = ix;
+	if (!left)	/* å³è©°ã */
+		for ( ; pad < width; pad ++)
+			lcd_putc(portid, padchar);
+
+	while (ix -- > 0)
+		lcd_putc(portid, digits[ix]);
+
+	if (left)	/* å·¦è©°ã */
+		for ( ; pad < width; pad ++)
+			lcd_putc(portid, padchar);
+
+	return pchars;
+	}
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ */
+
+static void
+put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width)
+{
+	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+
+	len += convert(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+	lcd_putc(portid, '.');
+	len += convert(portid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	lcd_putc(portid, '.');
+	len += convert(portid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	lcd_putc(portid, '.');
+	len += convert(portid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+
+	for ( ; len < width; len ++)
+		lcd_putc(portid, ' ');
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+/*
+ *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ */
+
+static void
+put_ipv6addr (ID portid, const T_IN6_ADDR *addr, int_t width)
+{
+	int_t	len = 0, ix;
+	bool_t	omit = false, zero = false;
+
+	if (addr == NULL || IN6_IS_ADDR_UNSPECIFIED(addr)) {
+		lcd_putc(portid, ':');
+		lcd_putc(portid, ':');
+		}
+	else {
+		for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
+			if (omit) {
+				if (ix < 7) {
+					lcd_putc(portid, ':');
+					len ++;
+					}
+				}
+			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
+				zero = true;
+			else {
+				if (zero) {
+					omit = true;
+					lcd_putc(portid, ':');
+					len ++;
+					}
+				if (ix < 7) {
+					lcd_putc(portid, ':');
+					len ++;
+					}
+				}
+			}
+
+		for ( ; len < width; len ++)
+			lcd_putc(portid, ' ');
+		}
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/*
+ *  macaddr -- MAC ã¢ãã¬ã¹åºå
+ */
+
+static void
+macaddr (ID portid, uint8_t *mac, int_t width)
+{
+	int_t oct, len;
+
+	for (oct = 5; oct -- > 0; ) {
+		convert(portid, *mac ++, 16, radhex, 2, false, '0'); 
+		lcd_putc(portid, ':');
+		}
+	convert(portid, *mac, 16, radhex, 2, false, '0'); 
+
+	for (len = 17; len < width; len ++)
+		lcd_putc(portid, ' ');
+	}
+
+/*
+ *  å¼æ°ãåãåºãããã®ãã¯ã­
+ */
+
+#ifdef _int32_
+
+#define GET_ARG(ap,lf)	 (lf ? va_arg(ap, _int32_) : va_arg(ap, int_t))
+
+#else	/* of #ifdef _int32_ */
+
+#define GET_ARG(ap,lf)	(va_arg(ap, int_t))
+
+#endif	/* of #ifdef _int32_ */
+
+/*
+ *  lcd_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ */
+
+void
+lcd_printf (ID portid, const char *fmt, ...)
+{
+	va_list	ap;
+	LONGEST	val;
+	char	padchar, *str;
+	int_t	ch, width, longflag, shortflag, left;
+
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	*addr;
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+	va_start(ap, fmt);
+	while ((ch = *fmt ++) != '\0') {
+		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+			lcd_putc(portid, (char)ch);
+			continue;
+			}
+
+		width = longflag = shortflag = 0;
+		padchar = ' ';
+
+		if (ch == '-') {		/* å·¦è©°ã */
+			fmt ++;
+			left = -1;
+			}
+		else
+			left = 1;
+
+		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+			padchar = '0';
+			ch = *fmt ++;
+			}
+
+		while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+			width = width * 10 + ch - '0';
+			ch = *fmt ++;
+			}
+
+		while (ch == 'l') {		/* long (long) ã®æå® */
+			longflag ++;
+			ch = *fmt ++;
+			}
+
+		while (ch == 'h') {		/* short ã®æå® */
+			shortflag ++;
+			ch = *fmt ++;
+			}
+
+		switch (ch) {
+		case 'd':
+			val = GET_ARG(ap, longflag);
+			if (val >= 0)
+				convert(portid, val, 10, radhex, width * left, false, padchar);
+			else
+				convert(portid, -val, 10, radhex, width * left, true, padchar);
+			break;
+
+		case 'u':
+			val = GET_ARG(ap, longflag);
+			convert(portid, val, 10, radhex, width * left, false, padchar);
+			break;
+
+		case 'x':
+			val = GET_ARG(ap, longflag);
+			convert(portid, val, 16, radhex, width * left, false, padchar);
+			break;
+
+		case 'X':
+			val = GET_ARG(ap, longflag);
+			convert(portid, val, 16, radHEX, width * left, false, padchar);
+			break;
+
+		case 'c':
+			ch = va_arg(ap, int_t);
+			lcd_putc(portid, (char)ch);
+			break;
+
+		case 's':
+			str = va_arg(ap, char*);
+			while ((ch = *str ++) != '\0')
+				lcd_putc(portid, (char)ch);
+			break;
+
+		case 'I':
+
+			if (longflag) {
+
+#if defined(SUPPORT_INET6)
+
+				str = va_arg(ap, char*);
+				put_ipv6addr(portid, (T_IN6_ADDR *)str, width);
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+				addr = va_arg(ap, T_IN4_ADDR *);
+				put_ipv4addr(portid, addr, width);
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+				}
+			else if (shortflag) {
+
+#if defined(SUPPORT_INET4)
+
+				addr = va_arg(ap, T_IN4_ADDR *);
+				put_ipv4addr(portid, addr, width);
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+				str = va_arg(ap, char*);
+				put_ipv6addr(portid, (T_IN6_ADDR *)str, width);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+				}
+			else {
+
+#if defined(SUPPORT_INET6)
+
+				str = va_arg(ap, char*);
+				put_ipv6addr(portid, (T_IN6_ADDR *)str, width);
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+				addr = va_arg(ap, T_IN4_ADDR *);
+				put_ipv4addr(portid, addr, width);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+				}
+			break;
+
+		case 'M':
+			str = va_arg(ap, char*);
+			macaddr(portid, str, width);
+			break;
+
+		case '%':
+			lcd_putc(portid, '%');
+			break;
+
+		case '0':
+			fmt --;
+			break;
+
+		default:
+			break;
+			}
+
+		}
+	va_end(ap);
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/lcd.h	(revision 313)
@@ -0,0 +1,78 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  æ±ç¨ LCD ãã©ã¤ã
+ */
+
+#ifndef LCD_H
+#define LCD_H
+
+/*
+ *  lcd_cls -- LCD è¡¨ç¤ºã¯ãªã¢
+ */
+extern void lcd_cls (void);
+
+/*
+ *  lcd_initialize -- LCD åæå
+ */
+extern void lcd_initialize (intptr_t exinf);
+
+/*
+ *  lcd_putc -- LCD åºå
+ */
+extern void lcd_putc (ID portid, int8_t data);
+
+/*
+ *  lcd_puts -- LCD ã¸ã®æå­åã®åºå
+ */
+extern void lcd_puts (ID portid, const char *str);
+
+/*
+ *  LCD ã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
+ */
+extern void lcd_printf (ID portid, const char *fmt, ...);
+
+#endif	/* of #ifndef LCD_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.c	(revision 313)
@@ -0,0 +1,609 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
+¥åºå
+ */
+
+#include <stdarg.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <syssvc/serial.h>
+#include <syssvc/logtask.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/net_cons.h>
+
+#ifdef USE_NET_CONS
+
+/*
+ *  ãã¯ã­å®ç¾©
+ */
+
+/*  ãªãã¼ã ã®è§£é¤  */
+
+#undef syslog
+#undef serial_rea_dat
+#undef serial_ctl_por
+
+#define EOF		(-1)
+
+/*  TELNET ãªãã·ã§ã³ */
+
+#define TELNET_OPT_SE		(240)
+#define TELNET_OPT_NOP		(241)
+#define TELNET_OPT_DM		(242)
+#define TELNET_OPT_BRK		(243)
+#define TELNET_OPT_IP		(244)
+#define TELNET_OPT_AO		(245)
+#define TELNET_OPT_AYT		(246)
+#define TELNET_OPT_EC		(247)
+#define TELNET_OPT_EL		(248)
+#define TELNET_OPT_GA		(249)
+#define TELNET_OPT_SB		(250)
+#define TELNET_OPT_WILL		(251)
+#define TELNET_OPT_WONT		(252)
+#define TELNET_OPT_DO		(253)
+#define TELNET_OPT_DONT		(254)
+#define TELNET_OPT_IAC		(255)
+
+#if defined(SUPPORT_INET6)
+#define API_PROTO		'6'
+#else
+#define API_PROTO		'4'
+#endif
+
+/*
+ *  å¤æ°
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+uint8_t net_cons_swbuf[NET_CONS_SWBUF_SIZE];
+uint8_t net_cons_rwbuf[NET_CONS_RWBUF_SIZE];
+
+bool_t	connected	= false;	/* ã³ãã¯ã·ã§ã³ã®ç¶æ
+	*/
+bool_t	wait_accept	= false;	/* æ¥ç¶è¦æ±å¾
+ã¡ä¸­	*/
+
+#if defined(SUPPORT_INET6)
+
+T_IPV6EP	dst;
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+T_IPV4EP	dst;
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+uint8_t		*snd_buff	= NULL;
+uint8_t		*rcv_buff	= NULL;
+uint_t		snd_off		= 0;
+uint_t		rcv_off		= 0;
+uint_t		net_ioctl	= IOCTL_NULL;
+ER_UINT		snd_len		= 0;
+ER_UINT		rcv_len		= 0;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_net_cons (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+	SYSTIM	now;
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		get_tim(&now);
+		if (*(ER*)p_parblk == E_OK) {
+			syslog(LOG_NOTICE, "[NCS%c:%02u CBN] conct: %7lu, from: %s.%u",
+			                   API_PROTO, cepid, now / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+			connected = true;
+			}
+		else
+			syslog(LOG_NOTICE, "[NCS%c:%02d CBN] error: %s",
+			                   API_PROTO, itron_strerror(*(ER*)p_parblk));
+		snd_len = snd_off = rcv_len = rcv_off = 0;
+		wait_accept = false;
+		break;
+
+	case TFN_TCP_CLS_CEP:
+	case TFN_TCP_RCV_BUF:
+	case TFN_TCP_GET_BUF:
+	case TFN_TCP_RCV_DAT:
+	case TFN_TCP_SND_DAT:
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+/*
+ *  éä¿¡ãããã¡ã®ãã©ãã·ã¥
+ */
+
+void
+flush_snd_buff (void)
+{
+	ER_UINT	error;
+
+	if (connected) {
+		syscall(wai_sem(SEM_NET_CONS_SEND));
+		if (snd_off > 0) {
+			if ((error = tcp_snd_buf(NET_CONS_CEPID, snd_off)) != E_OK && error != E_CLS)
+				syslog(LOG_NOTICE, "[NCS%c:%02d SND] flush send error: %s",
+				                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+			snd_len = snd_off = 0;
+			}
+		syscall(sig_sem(SEM_NET_CONS_SEND));
+		}
+	return;
+	}
+
+/*
+ *  æå­éä¿¡
+ */
+
+void
+cons_putchar (ID portid, char ch)
+{
+	ER_UINT	error;
+
+	if (connected) {
+		if (ch == '\n' && (net_ioctl & IOCTL_CRLF) != 0)
+			cons_putchar(portid, '\r');
+		syscall(wai_sem(SEM_NET_CONS_SEND));
+		if (snd_off >= snd_len) {
+			if ((error = tcp_snd_buf(NET_CONS_CEPID, snd_off)) != E_OK) {
+				if (error != E_CLS)
+					syslog(LOG_NOTICE, "[NCS%c:%02d SND] send buff error: %s",
+					                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+				syscall(sig_sem(SEM_NET_CONS_SEND));
+				return;
+				}
+			snd_off = 0;
+			if ((snd_len = tcp_get_buf(NET_CONS_CEPID, (void*)&snd_buff, TMO_FEVR)) <= 0) {
+				if (snd_len != E_CLS)
+					syslog(LOG_NOTICE, "[NCS%c:%02d SND] get buff error: %s",
+					                   API_PROTO, NET_CONS_CEPID, itron_strerror(snd_len));
+				syscall(sig_sem(SEM_NET_CONS_SEND));
+				return;
+				}
+			}
+		snd_buff[snd_off ++] = ch;
+		syscall(sig_sem(SEM_NET_CONS_SEND));
+		}
+	else
+		serial_wri_dat(portid, &ch, sizeof(ch));
+	}
+
+/*
+ *  æå­åä¿¡ï¼å¤æãªãï¼
+ */
+
+static int_t
+cons_getchar_raw (void)
+{
+	ER	error = E_OK;
+
+	if (connected) {
+		if (rcv_off >= rcv_len) {
+			rcv_off = 0;
+			if ((error = tcp_rel_buf(NET_CONS_CEPID, rcv_len)) != E_OK) {
+				if (error != E_CLS)
+					syslog(LOG_NOTICE, "[NCS%c:%02d RCV] release buff error: %s",
+					                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+				discon_net_cons();
+				return EOF;
+				}
+			if ((rcv_len = tcp_rcv_buf(NET_CONS_CEPID, (void*)&rcv_buff, TMO_FEVR)) == 0) {
+				discon_net_cons();
+				return EOF;
+				}
+			else if (rcv_len < 0) {
+				if (rcv_len != E_CLS)
+					syslog(LOG_NOTICE, "[NCS%c:%02d RCV] recieve buff error: %s",
+					                   API_PROTO, NET_CONS_CEPID, itron_strerror(rcv_len));
+				discon_net_cons();
+				return EOF;
+				}
+			}
+		return rcv_buff[rcv_off ++];
+		}
+	else
+		return EOF;
+	}
+
+/*
+ *  æå­åä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ã­ããï¼
+ */
+
+int_t
+cons_getchar (ID portid)
+{
+	T_SERIAL_RPOR	rpor;
+	int_t		ch;
+	char		uch;
+	ER		error;
+
+	if (!wait_accept && !connected) {
+		wait_accept = true;
+		error = TCP_ACP_CEP(NET_CONS_CEPID, NET_CONS_REPID, &dst, TMO_NBLK);
+#if 0
+		syslog(LOG_NOTICE, "[NCS%c:%02d ACP] status: %s",
+		                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+#endif
+		if (error != E_WBLK)
+			return EOF;
+		}
+
+	while (true) {
+		if (connected) {
+			while ((ch = cons_getchar_raw()) == TELNET_OPT_IAC || ch == '\0') {
+				if (ch != '\0') {
+					switch (ch = cons_getchar_raw()) {
+					case TELNET_OPT_WILL:
+					case TELNET_OPT_WONT:
+					case TELNET_OPT_DO:
+					case TELNET_OPT_DONT:
+						cons_getchar_raw();
+						break;
+					case TELNET_OPT_SB:
+						while ((ch = cons_getchar_raw()) != EOF && ch != TELNET_OPT_IAC) {
+							if ((ch = cons_getchar_raw()) == EOF || ch == TELNET_OPT_SE)
+								break;
+							}
+						break;
+					default:
+						break;
+						}
+					}
+				}
+			if (ch != '\n') {
+				if ((net_ioctl & IOCTL_ECHO) != 0 && ch != EOF) {
+					cons_putchar(portid, ch);
+					flush_snd_buff();
+					}
+				return ch;
+				}
+			}
+
+		else if (serial_ref_por(portid, &rpor) == E_OK && rpor.reacnt > 0) {
+			if (serial_rea_dat(portid, &uch, sizeof(uch)) > 0)
+				return uch;
+			else
+				return EOF;
+			}
+		dly_tsk(100);
+		}
+	return EOF;
+	}
+
+/*
+ *  ã³ãã¯ã·ã§ã³ãåæ­
+ */
+
+ER
+discon_net_cons (void)
+{
+	ER	error = E_OK;
+	SYSTIM	now;
+
+	if (connected) {
+		syscall(wai_sem(SEM_NET_CONS_SEND));
+		if (snd_off > 0) {
+			if ((error = tcp_snd_buf(NET_CONS_CEPID, snd_off)) != E_OK && error != E_CLS)
+				syslog(LOG_NOTICE, "[NCS%c:%02d SND] send buff error: %s",
+				                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+			}
+		if ((error = tcp_sht_cep(NET_CONS_CEPID)) != E_OK)
+			syslog(LOG_NOTICE, "[NCS%c:%02d SHT] shutdown error: %s",
+			                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+		if ((error = tcp_cls_cep(NET_CONS_CEPID, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[NCS%c:%02d CLS] close error: %s",
+			                   API_PROTO, NET_CONS_CEPID, itron_strerror(error));
+		connected = false;
+		syscall(sig_sem(SEM_NET_CONS_SEND));
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[NCS%c:%02u SND] discn: %7lu, from: %s.%u",
+		                   API_PROTO, NET_CONS_CEPID, now / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+		}
+	return error;
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡
+ */
+
+ER
+net_serial_ctl_por (ID portid, uint_t ioctl)
+{
+	net_ioctl = ioctl;
+	return serial_ctl_por(portid, ioctl);
+	}
+
+/*
+ *  ã­ã°åºå
+ */
+
+ER
+net_syslog (uint_t prio, const char *format, ...)
+{
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	*addr;
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+	ulong_t		val;
+	SYSLOG		log;
+	va_list		ap;
+	char		padchar, *str;
+	int_t		ch, width, left, i;
+	bool_t		longflag;
+
+	if (connected) {
+		syscall(wai_sem(SEM_NET_CONS_PRINTF));
+		va_start(ap, format);
+		while ((ch = *format ++) != '\0') {
+			if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+				cons_putchar(CONSOLE_PORTID, (char)ch);
+				continue;
+				}
+
+			width = 0;
+			longflag = false;
+			padchar = ' ';
+
+			if (ch == '-') {		/* å·¦è©°ã */
+				format ++;
+				left = -1;
+				}
+			else
+				left = 1;
+
+			if ((ch = *format ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+				padchar = '0';
+				ch = *format ++;
+				}
+
+			while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+				width = width * 10 + ch - '0';
+				ch = *format ++;
+				}
+
+			while (ch == 'l') {		/* long (long) ã®æå® */
+				longflag = true;
+				ch = *format ++;
+				}
+
+			switch (ch) {
+			case 'd':
+				val = longflag ? (ulong_t)va_arg(ap, long_t)
+				               : (ulong_t)va_arg(ap, int_t);
+				if ((long_t)val >= 0)
+					cons_putnumber(CONSOLE_PORTID,  val, 10, radhex, width * left, false, padchar);
+				else
+					cons_putnumber(CONSOLE_PORTID, -val, 10, radhex, width * left, true, padchar);
+				break;
+
+			case 'u':
+				val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+				               : (ulong_t)va_arg(ap, uint_t);
+				cons_putnumber(CONSOLE_PORTID, val, 10, radhex, width * left, false, padchar);
+				break;
+
+			case 'x':
+				val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+				               : (ulong_t)va_arg(ap, uint_t);
+				cons_putnumber(CONSOLE_PORTID, val, 16, radhex, width * left, false, padchar);
+				break;
+
+			case 'X':
+				val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+				               : (ulong_t)va_arg(ap, uint_t);
+				cons_putnumber(CONSOLE_PORTID, val, 16, radHEX, width * left, false, padchar);
+				break;
+
+			case 'c':
+				ch = va_arg(ap, int_t);
+				cons_putchar(CONSOLE_PORTID, (char)ch);
+				break;
+
+			case 's':
+				str = va_arg(ap, char*);
+				while ((ch = *str ++) != '\0') {
+					cons_putchar(CONSOLE_PORTID, (char)ch);
+					width --;
+					}
+				while (width -- > 0)
+					cons_putchar(CONSOLE_PORTID, ' ');
+				break;
+
+			case 'I':
+
+#if defined(SUPPORT_INET4)
+
+				addr = va_arg(ap, T_IN4_ADDR*);
+				put_ipv4addr(CONSOLE_PORTID, addr, width);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+				str = va_arg(ap, char*);
+				put_ipv6addr(CONSOLE_PORTID, (T_IN6_ADDR *)str, width);
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+				break;
+
+			case 'M':
+				str = va_arg(ap, char*);
+				put_macaddr(CONSOLE_PORTID, (uint8_t *)str, width);
+				break;
+
+			case '%':
+				cons_putchar(CONSOLE_PORTID, '%');
+				break;
+
+			case '0':
+				format --;
+				break;
+
+			default:
+				break;
+				}
+
+			}
+		va_end(ap);
+		cons_putchar(CONSOLE_PORTID, '\n');
+		flush_snd_buff();
+		syscall(sig_sem(SEM_NET_CONS_PRINTF));
+		return E_OK;
+		}
+	else {
+		log.logtype = LOG_TYPE_COMMENT;
+		log.loginfo[0] = (intptr_t)format;
+		i = 1;
+		va_start(ap, format);
+
+		while ((ch = *format++) != '\0' && i < TMAX_LOGINFO) {
+			if (ch != '%') {
+				continue;
+				}
+
+			longflag = false;
+
+			ch = *format++;
+			while ('0' <= ch && ch <= '9') {
+				ch = *format++;
+				}
+
+			while (ch == 'l') {		/* long (long) ã®æå® */
+				longflag = true;
+				ch = *format ++;
+				}
+
+			switch (ch) {
+			case 'd':
+				log.loginfo[i++] = longflag
+					? (intptr_t)va_arg(ap, long_t) 
+					: (intptr_t)va_arg(ap, int_t);
+				break;
+			case 'u':
+			case 'x':
+			case 'X':
+				log.loginfo[i++] = longflag
+					? (intptr_t)va_arg(ap, ulong_t)
+					: (intptr_t)va_arg(ap, uint_t);
+				break;
+			case 'p':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, void *);
+				break;
+			case 'c':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, int_t);
+				break;
+			case 's':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, const char *);
+				break;
+			case '\0':
+				format--;
+				break;
+			default:
+				break;
+				}
+			}
+		va_end(ap);
+
+#ifdef TARGET_KERNEL_ASP
+
+		return(syslog_wri_log(prio, &log));
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+		return(vwri_log(prio, &log));
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+		}
+	}
+
+#endif	/* of #ifdef USE_NET_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.cfg	(revision 313)
@@ -0,0 +1,57 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
+¥åºå
+ *  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_NET_CONS
+
+CRE_SEM(SEM_NET_CONS_PRINTF, { TA_TPRI, 1, 1 });
+CRE_SEM(SEM_NET_CONS_SEND,   { TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef USE_NET_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/net_cons.h	(revision 313)
@@ -0,0 +1,67 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
+¥åºå
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+
+#define NET_CONS_SWBUF_SIZE	512
+#define NET_CONS_RWBUF_SIZE	512
+
+#ifndef _MACRO_ONLY
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+extern uint8_t net_cons_swbuf[];
+extern uint8_t net_cons_rwbuf[];
+
+/*  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°  */
+
+extern ER	callback_nblk_net_cons(ID cepid, FN fncd, void *p_parblk);
+
+#endif /* _MACRO_ONLY */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp.h	(revision 313)
@@ -0,0 +1,111 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NETAPP_H_
+#define _NETAPP_H_
+
+/*
+ *  IPv4 ã¨ IPv6 ã®åæããã¯ã­
+ */
+
+#if defined(SUPPORT_INET6)
+
+#define PUT_IPADDR(p,a,w)	put_ipv6addr(p,a,w)
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#define PUT_IPADDR(p,a,w)	put_ipv4addr(p,a,w)
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/*
+ *  ã³ã³ã½ã¼ã«ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·
+ */
+
+#ifndef CONSOLE_PORTID
+#define	CONSOLE_PORTID		LOGTASK_PORTID
+#endif
+
+/*
+ *  ã³ã³ã½ã¼ã«ã«ç¨ãã LCD ãã¼ãçªå·
+ */
+
+#define	LCD_PORTID		0
+
+/*
+ *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ */
+
+extern const char radhex[];
+extern const char radHEX[];
+
+/*
+ *  é¢æ°
+ */
+
+extern char *skip_blanks (char *line);
+extern int_t cons_getline (ID portid, char *line, int_t size);
+extern char *get_int (int_t *val, char *line);
+extern char *get_xuint (uint_t *val, char *line);
+extern void cons_putchar (ID portid, char ch);
+extern int_t cons_getchar (ID portid);
+extern int_t cons_putnumber (ID portid, ulong_t val, int_t radix,
+                           const char *radchar, int_t width,
+                           bool_t minus, char padchar);
+extern void cons_printf (ID portid, const char *fmt, ...);
+extern int_t put_macaddr (ID portid, uint8_t *mac, int_t width);
+
+#ifdef T_IN4_ADDR_DEFINED
+extern int_t put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width);
+#endif
+#ifdef T_IN6_ADDR_DEFINED
+extern int_t put_ipv6addr (ID portid, const T_IN6_ADDR *addr, int_t width);
+#endif
+
+#endif	/* of #ifndef _NETAPP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.c	(revision 313)
@@ -0,0 +1,1246 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ãµãã¼ãã«ã¼ãã³
+ */
+
+#include <stdarg.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <syssvc/serial.h>
+#include <syssvc/logtask.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/resolver.h>
+
+#ifdef USE_NETAPP_SUBR
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#if defined(SUPPORT_INET6)
+
+#ifdef USE_TCP_EXTENTIONS
+
+const ID vrid_tcp6_cep[] =
+{
+#if NUM_VRID_TCP6_CEPS >= 1
+	TCP6_RSV_CEPID1,
+#endif
+#if NUM_VRID_TCP6_CEPS >= 2
+	TCP6_RSV_CEPID2,
+#endif
+#if NUM_VRID_TCP6_CEPS >= 3
+	TCP6_RSV_CEPID3,
+#endif
+#if NUM_VRID_TCP6_CEPS >= 4
+	TCP6_RSV_CEPID4,
+#endif
+	};
+
+const ID vrid_tcp6_rep[] =
+{
+#if NUM_VRID_TCP6_REPS >= 1
+	TCP6_RSV_REPID1,
+#endif
+#if NUM_VRID_TCP6_REPS >= 2
+	TCP6_RSV_REPID2,
+#endif
+	};
+
+ID tskid_tcp6_cep[NUM_VRID_TCP6_CEPS];
+ID tskid_tcp6_rep[NUM_VRID_TCP6_REPS];
+
+#endif	/* #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+const ID vrid_udp6_cep[] =
+{
+#if NUM_VRID_UDP6_CEPS >= 1
+	UDP6_RSV_CEPID1,
+#endif
+#if NUM_VRID_UDP6_CEPS >= 2
+	UDP6_RSV_CEPID2,
+#endif
+	};
+
+ID tskid_udp6_cep[NUM_VRID_UDP6_CEPS];
+
+#endif	/* #ifdef USE_UDP_EXTENTIONS */
+
+#undef	TCP_CRE_REP
+#undef	UDP_CRE_CEP
+#undef	UDP_DEL_CEP
+#undef	TCP_IS_CEPID
+#undef  ALLOC_TCP_REP
+#undef  ALLOC_TCP_CEP
+#undef  ALLOC_UDP_CEP
+#undef  FREE_TCP_REP
+#undef  FREE_TCP_CEP
+#undef  FREE_UDP_CEP
+#undef	T_TCPN_CREP
+#undef	T_UDPN_CCEP
+#undef	NUM_VRID_TCP_CEPS
+#undef	NUM_VRID_TCP_REPS
+#undef	NUM_VRID_UDP_CEPS
+#undef	VRID_TCP_CEP
+#undef	VRID_UDP_CEP
+#undef	VRID_TCP_REP
+#undef	TSKID_TCP_CEP
+#undef	TSKID_TCP_REP
+#undef	TSKID_UDP_CEP
+#undef	API_IPPROTO
+
+#define TCP_CRE_REP		tcp6_cre_rep
+#define UDP_CRE_CEP		udp6_cre_cep
+#define UDP_DEL_CEP		udp6_del_cep
+
+#define TCP_IS_CEPID		tcp6_is_cepid
+#define ALLOC_TCP_REP		alloc_tcp6_rep
+#define ALLOC_TCP_CEP		alloc_tcp6_cep
+#define ALLOC_UDP_CEP		alloc_udp6_cep
+#define FREE_TCP_REP		free_tcp6_rep
+#define FREE_TCP_CEP		free_tcp6_cep
+#define FREE_UDP_CEP		free_udp6_cep
+#define T_TCPN_CREP		T_TCP6_CREP
+#define T_UDPN_CCEP		T_UDP6_CCEP
+#define NUM_VRID_TCP_CEPS	NUM_VRID_TCP6_CEPS
+#define NUM_VRID_TCP_REPS	NUM_VRID_TCP6_REPS
+#define NUM_VRID_UDP_CEPS	NUM_VRID_UDP6_CEPS
+#define VRID_TCP_CEP		vrid_tcp6_cep
+#define VRID_TCP_REP		vrid_tcp6_rep
+#define VRID_UDP_CEP		vrid_udp6_cep
+#define TSKID_TCP_CEP		tskid_tcp6_cep
+#define TSKID_TCP_REP		tskid_tcp6_rep
+#define TSKID_UDP_CEP		tskid_udp6_cep
+#define API_IPPROTO		API_PROTO_IPV6
+
+#include <netapp/netappn_subr.c>
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#ifdef USE_TCP_EXTENTIONS
+
+const ID vrid_tcp4_cep[] =
+{
+#if NUM_VRID_TCP4_CEPS >= 1
+	TCP4_RSV_CEPID1,
+#endif
+#if NUM_VRID_TCP4_CEPS >= 2
+	TCP4_RSV_CEPID2,
+#endif
+#if NUM_VRID_TCP4_CEPS >= 3
+	TCP4_RSV_CEPID3,
+#endif
+#if NUM_VRID_TCP4_CEPS >= 4
+	TCP4_RSV_CEPID4,
+#endif
+	};
+
+const ID vrid_tcp4_rep[] =
+{
+#if NUM_VRID_TCP4_REPS >= 1
+	TCP4_RSV_REPID1,
+#endif
+#if NUM_VRID_TCP4_REPS >= 2
+	TCP4_RSV_REPID2,
+#endif
+	};
+
+ID tskid_tcp4_cep[NUM_VRID_TCP4_CEPS];
+ID tskid_tcp4_rep[NUM_VRID_TCP4_REPS];
+
+#endif	/* #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+const ID vrid_udp4_cep[] =
+{
+#if NUM_VRID_UDP4_CEPS >= 1
+	UDP4_RSV_CEPID1,
+#endif
+#if NUM_VRID_UDP4_CEPS >= 2
+	UDP4_RSV_CEPID2,
+#endif
+	};
+
+ID tskid_udp4_cep[NUM_VRID_UDP4_CEPS];
+
+#endif	/* #ifdef USE_UDP_EXTENTIONS */
+
+#undef	TCP_CRE_REP
+#undef	UDP_CRE_CEP
+#undef	UDP_DEL_CEP
+#undef	TCP_IS_CEPID
+#undef  ALLOC_TCP_REP
+#undef  ALLOC_TCP_CEP
+#undef  ALLOC_UDP_CEP
+#undef  FREE_TCP_REP
+#undef  FREE_TCP_CEP
+#undef  FREE_UDP_CEP
+#undef	T_TCPN_CREP
+#undef	T_UDPN_CCEP
+#undef	NUM_VRID_TCP_CEPS
+#undef	NUM_VRID_TCP_REPS
+#undef	NUM_VRID_UDP_CEPS
+#undef	VRID_TCP_CEP
+#undef	VRID_TCP_REP
+#undef	VRID_UDP_CEP
+#undef	TSKID_TCP_CEP
+#undef	TSKID_TCP_REP
+#undef	TSKID_UDP_CEP
+#undef	API_IPPROTO
+
+#define TCP_CRE_REP		tcp_cre_rep
+#define UDP_CRE_CEP		udp_cre_cep
+#define UDP_DEL_CEP		udp_del_cep
+#define TCP_IS_CEPID		tcp4_is_cepid
+#define ALLOC_TCP_REP		alloc_tcp4_rep
+#define ALLOC_TCP_CEP		alloc_tcp4_cep
+#define ALLOC_UDP_CEP		alloc_udp4_cep
+#define FREE_TCP_REP		free_tcp4_rep
+#define FREE_TCP_CEP		free_tcp4_cep
+#define FREE_UDP_CEP		free_udp4_cep
+#define T_TCPN_CREP		T_TCP_CREP
+#define T_UDPN_CCEP		T_UDP_CCEP
+#define NUM_VRID_TCP_CEPS	NUM_VRID_TCP4_CEPS
+#define NUM_VRID_TCP_REPS	NUM_VRID_TCP4_REPS
+#define NUM_VRID_UDP_CEPS	NUM_VRID_UDP4_CEPS
+#define VRID_TCP_CEP		vrid_tcp4_cep
+#define VRID_TCP_REP		vrid_tcp4_rep
+#define VRID_UDP_CEP		vrid_udp4_cep
+#define TSKID_TCP_CEP		tskid_tcp4_cep
+#define TSKID_TCP_REP		tskid_tcp4_rep
+#define TSKID_UDP_CEP		tskid_udp4_cep
+#define API_IPPROTO		API_PROTO_IPV4
+
+#include <netapp/netappn_subr.c>
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#undef	TCP_CRE_REP
+#undef  ALLOC_TCPN_REP
+#undef  ALLOC_TCPN_CEP
+#undef  ALLOC_UDPN_CEP
+#undef  FREE_TCPN_REP
+#undef  FREE_TCPN_CEP
+#undef  FREE_UDPN_CEP
+#undef	T_TCPN_CREP
+#undef	NUM_VRID_TCP_REPS
+#undef	NUM_VRID_UDP_CEPS
+#undef	VRID_TCP_CEP
+#undef	VRID_TCP_REP
+#undef	VRID_UDP_CEP
+#undef	TSKID_TCP_CEP
+#undef	TSKID_TCP_REP
+#undef	TSKID_UDP_CEP
+
+/*
+ *  å¤æ°
+ */
+
+static uint32_t rand_next = ULONG_C(1);
+
+#if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+const T_IN6_ADDR in6_addr_unspecified =
+	IPV6_ADDR_UNSPECIFIED_INIT;
+
+#endif	/* of #if !defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
+ */
+
+#define EOF		(-1)
+
+/*
+ *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ */
+
+const char radhex[] = "0123456789abcdef";
+const char radHEX[] = "0123456789ABCDEF";
+
+/*
+ *  netapp_rand -- ä¹±æ°ãè¿ãã
+ */
+
+uint32_t
+netapp_rand (void)
+{
+	rand_next = (rand_next * 99991 + 12345) & ULONG_C(0x7fffffff);
+	return rand_next;
+	}
+
+/*
+ *  srand -- ä¹±æ°ãåæåããã
+ */
+
+void
+netapp_srand (uint32_t seed)
+{
+	SYSTIM now;
+
+	syscall(get_tim(&now));
+	rand_next += now + seed;
+	}
+
+#ifndef USE_NET_CONS
+
+/*
+ *  cons_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æå­åºå
+ */
+
+void
+cons_putchar (ID portid, char ch)
+{
+	serial_wri_dat(portid, &ch, 1);
+	}
+
+/*
+ *  cons_getchar -- ã·ãªã¢ã«ãã¼ãããã®æå­å
+¥å
+ */
+
+int_t
+cons_getchar (ID portid)
+{
+	char ch;
+
+	if (serial_rea_dat(portid, &ch, sizeof(ch)) > 0)
+		return ch;
+	else
+		return EOF;
+	}
+
+#endif	/* of #ifndef USE_NET_CONS */
+
+/*
+ *  cons_putnumber -- cons_printf ã®æ°å¤å¤æ
+ */
+
+int_t
+cons_putnumber(ID portid, ulong_t 	val, int_t radix,
+         const char *radchar, int_t width, bool_t minus, char padchar)
+{
+	char	digits[24];
+	int_t	ix, pad, pchars;
+	bool_t	left;
+
+	if (width < 0) {
+		width = -width;
+		left = true;
+		}
+	else
+		left = false;
+
+	ix = 0;
+	do {
+		digits[ix ++] = radchar[val % radix];
+		val /= radix;
+		} while (val != 0);
+
+	if (minus)
+		digits[ix ++] = '-';
+
+	if (width > ix)
+		pchars = width;
+	else
+		pchars = ix;
+
+	pad = ix;
+	if (!left)	/* å³è©°ã */
+		for ( ; pad < width; pad ++)
+			cons_putchar(portid, padchar);
+
+	while (ix -- > 0)
+		cons_putchar(portid, digits[ix]);
+
+	if (left)	/* å·¦è©°ã */
+		for ( ; pad < width; pad ++)
+			cons_putchar(portid, padchar);
+
+	return pchars;
+	}
+
+/*
+ *  put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv4addr (ID portid, T_IN4_ADDR *addr, int_t width)
+{
+	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+
+	len += cons_putnumber(portid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+	cons_putchar(portid, '.');
+	len += cons_putnumber(portid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	cons_putchar(portid, '.');
+	len += cons_putnumber(portid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	cons_putchar(portid, '.');
+	len += cons_putnumber(portid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+
+	for ( ; len < width; len ++)
+		cons_putchar(portid, ' ');
+
+	return len;
+	}
+
+/*
+ *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv6addr (ID portid, const T_IN6_ADDR *addr, int_t width)
+{
+	int_t	len = 0, ix, len6;
+	bool_t	omit = false, zero = false;
+
+	if (addr == NULL || IN6_IS_ADDR_UNSPECIFIED(addr)) {
+		cons_putchar(portid, '0');
+		cons_putchar(portid, ':');
+		cons_putchar(portid, ':');
+		cons_putchar(portid, '0');
+		len = 4;
+		}
+	else {
+		if (in6_is_addr_ipv4mapped(addr))
+			len6 = sizeof(T_IN6_ADDR) / 2 - 2;
+		else
+			len6 = sizeof(T_IN6_ADDR) / 2;
+		for (ix = 0; ix < len6; ix ++) {
+			if (omit) {
+				len += cons_putnumber(portid, ntohs(addr->s6_addr16[ix]), 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					cons_putchar(portid, ':');
+					len ++;
+					}
+				}
+			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
+				zero = true;
+			else {
+				if (zero) {
+					omit = true;
+					cons_putchar(portid, ':');
+					len ++;
+					}
+				len += cons_putnumber(portid, ntohs(addr->s6_addr16[ix]), 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					cons_putchar(portid, ':');
+					len ++;
+					}
+				}
+			}
+
+		if (len6 == sizeof(T_IN6_ADDR) / 2 - 2) {
+			T_IN4_ADDR ip4addr;
+
+			ip4addr = ntohl(addr->s6_addr32[3]);
+			len += put_ipv4addr(portid, &ip4addr, 0);
+			}
+
+		for ( ; len < width; len ++)
+			cons_putchar(portid, ' ');
+		}
+	return len;
+	}
+
+/*
+ *  put_macaddr -- MAC ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_macaddr (ID portid, uint8_t *mac, int_t width)
+{
+	int_t oct, len;
+
+	for (oct = 5; oct -- > 0; ) {
+		cons_putnumber(portid, *mac ++, 16, radhex, 2, false, '0'); 
+		cons_putchar(portid, ':');
+		}
+	cons_putnumber(portid, *mac, 16, radhex, 2, false, '0'); 
+
+	for (len = 17; len < width; len ++)
+		cons_putchar(portid, ' ');
+
+	return len;
+	}
+
+/*
+ *  cons_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ */
+
+void
+cons_printf (ID portid, const char *fmt, ...)
+{
+	va_list	ap;
+	long_t	val;
+	char	padchar, *str;
+	int_t	ch, width, longflag, shortflag, left;
+	T_IN4_ADDR	*addr;
+
+	va_start(ap, fmt);
+	while ((ch = *fmt ++) != '\0') {
+		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+			cons_putchar(portid, (char)ch);
+			continue;
+			}
+
+		width = longflag = shortflag = 0;
+		padchar = ' ';
+
+		if (*fmt == '-') {		/* å·¦è©°ã */
+			fmt ++;
+			left = -1;
+			}
+		else
+			left = 1;
+
+		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+			padchar = '0';
+			ch = *fmt ++;
+			}
+
+		while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+			width = width * 10 + ch - '0';
+			ch = *fmt ++;
+			}
+
+		while (ch == 'l') {		/* long (long) ã®æå® */
+			longflag ++;
+			ch = *fmt ++;
+			}
+
+		while (ch == 'h') {		/* short ã®æå® */
+			shortflag ++;
+			ch = *fmt ++;
+			}
+
+		switch (ch) {
+		case 'd':
+			val = longflag ? (ulong_t)va_arg(ap, long_t)
+			               : (ulong_t)va_arg(ap, int_t);
+			if (val >= 0)
+				cons_putnumber(portid,  val, 10, radhex, width * left, false, padchar);
+			else
+				cons_putnumber(portid, -val, 10, radhex, width * left, true, padchar);
+			break;
+
+		case 'u':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			cons_putnumber(portid, val, 10, radhex, width * left, false, padchar);
+			break;
+
+		case 'x':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			cons_putnumber(portid, val, 16, radhex, width * left, false, padchar);
+			break;
+
+		case 'X':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			cons_putnumber(portid, val, 16, radHEX, width * left, false, padchar);
+			break;
+
+		case 'c':
+			ch = va_arg(ap, int_t);
+			cons_putchar(portid, (char)ch);
+			break;
+
+		case 's':
+			str = va_arg(ap, char*);
+			while ((ch = *str ++) != '\0') {
+				cons_putchar(portid, (char)ch);
+				width --;
+				}
+			while (width -- > 0)
+				cons_putchar(portid, ' ');
+			break;
+
+		case 'I':
+
+			if (longflag) {
+				str = va_arg(ap, char*);
+				put_ipv6addr(portid, (T_IN6_ADDR *)str, width);
+				}
+			else if (shortflag) {
+				addr = va_arg(ap, T_IN4_ADDR *);
+				put_ipv4addr(portid, addr, width);
+				}
+			else {
+
+#if defined(SUPPORT_INET6)
+
+				str = va_arg(ap, char*);
+				put_ipv6addr(portid, (T_IN6_ADDR *)str, width);
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+				addr = va_arg(ap, T_IN4_ADDR *);
+				put_ipv4addr(portid, addr, width);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+				}
+			break;
+
+		case 'M':
+			str = va_arg(ap, char*);
+			put_macaddr(portid, (uint8_t *)str, width);
+			break;
+
+		case '%':
+			cons_putchar(portid, '%');
+			break;
+
+		case '0':
+			fmt --;
+			break;
+
+		default:
+			break;
+			}
+
+		}
+	va_end(ap);
+	}
+
+/*
+ *  host2msg16 -- 16ãããã®å¤ãããã¤ããªã¼ãã¼ãèª¿æ´ãã¦ã¡ãã»ã¼ã¸ã«æ¸ãè¾¼ãã
+ */
+
+void
+host2msg16 (void *msg, uint16_t host_data)
+{
+	uint16_t	msg_data;
+
+	msg_data = htons(host_data);
+	memcpy(msg, &msg_data, sizeof(msg_data));
+	}
+
+/*
+ *  host2msg32 -- 32ãããã®å¤ãããã¤ããªã¼ãã¼ãèª¿æ´ãã¦ã¡ãã»ã¼ã¸ã«æ¸ãè¾¼ãã
+ */
+
+void
+host2msg32 (void *msg, uint32_t host_data)
+{
+	uint32_t	msg_data;
+
+	msg_data = htonl(host_data);
+	memcpy(msg, &msg_data, sizeof(msg_data));
+	}
+
+/*
+ *  msg2host16 -- 16ãããã®å¤ãããã¤ããªã¼ãã¼ãèª¿æ´ãã¦ã¡ãã»ã¼ã¸ããèª­ã¿åºãã
+ */
+
+uint16_t
+msg2host16 (void *msg)
+{
+	uint16_t	host_data;
+
+	memcpy(&host_data, msg, sizeof(host_data));
+	return htons(host_data);
+	}
+
+/*
+ *  msg2host32 -- 32ãããã®å¤ãããã¤ããªã¼ãã¼ãèª¿æ´ãã¦ã¡ãã»ã¼ã¸ããèª­ã¿åºãã
+ */
+
+uint32_t
+msg2host32 (void *msg)
+{
+	uint32_t	host_data;
+
+	memcpy(&host_data, msg, sizeof(host_data));
+	return htonl(host_data);
+	}
+
+/*
+ *  skip_blanks -- ç©ºç½ã¨ TAB ãã¹ã­ããããã
+ */
+
+char *
+skip_blanks (char *line)
+{
+	while (*line == ' ' || *line == '\t')
+		line ++;
+	return line;
+	}
+
+/*
+ *  get_ipv4addr -- æå­åã® IPv4 ã¢ãã¬ã¹ã T_IN4_ADDR å¤ã«å¤æããã
+ */
+
+char *
+get_ipv4addr (T_IN4_ADDR *addr, char *line)
+{
+	int_t oct;
+
+	*addr = IPV4_ADDRANY;
+	while ('0' <= *line && *line <= '9') {
+		oct = 0;
+		while ('0' <= *line && *line <= '9')
+			oct = oct * 10 + (*line ++) - '0';
+		*addr = (*addr << 8) | (oct & 0xff);
+		if (*line == '.')
+			line ++;
+		}
+#if 1
+	return *addr == IPV4_ADDRANY ? NULL : line;
+#else
+	return line;
+#endif
+	}
+
+#if defined(SUPPORT_INET6) || defined(USE_RESOLVER)
+
+/*
+ *  get_ipv6addr -- æå­åã® IPv6 ã¢ãã¬ã¹ã T_IN6_ADDR å¤ã«å¤æããã
+ */
+
+char *
+get_ipv6addr (T_IN6_ADDR *addr, char *line)
+{
+	int_t word, ix = 0, omit = 0, six;
+	char *ipv4line;
+
+	memset(addr, 0, sizeof(T_IN6_ADDR));
+
+	/*
+	 * IPv4 ã¢ãã¬ã¹ï¼æ°å­.ï¼ãæ¤åºããã IPv4 ã¢ãã¬ã¹ã¨ãã¦å
+¥åãã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ã«å¤æããã
+	 */
+	for (ipv4line = line; '0' <= *ipv4line && *ipv4line <= '9'; ipv4line ++)
+		;
+	if (*ipv4line == '.') {
+		T_IN4_ADDR ipv4addr;
+
+		line = get_ipv4addr(&ipv4addr, line);
+		in6_make_ipv4mapped (addr, ipv4addr);
+		}
+	else {
+		while (ix < 8 &&
+		       (('0' <= *line && *line <= '9') ||
+		        ('a' <= *line && *line <= 'f') ||
+		        ('A' <= *line && *line <= 'F'))) {
+			word = 0;
+			while (('0' <= *line && *line <= '9') ||
+ 		               ('a' <= *line && *line <= 'f') ||
+		               ('A' <= *line && *line <= 'F')) {
+				if      ('0' <= *line && *line <= '9')
+					word = (word << 4) + (*line ++) - '0';
+				else if ('a' <= *line && *line <= 'f')
+					word = (word << 4) + (*line ++) - 'a' + 10;
+				else if ('A' <= *line && *line <= 'F')
+					word = (word << 4) + (*line ++) - 'A' + 10;
+				}
+			addr->s6_addr16[ix ++] = htons(word);
+			if (*line == ':') {
+				line ++;
+				if (*line == ':') {
+					omit = ix;
+					line ++;
+					}
+				}
+			}
+		if (omit > 0) {
+			six = 7;
+			while (ix > omit) {
+				addr->s6_addr16[six --] = addr->s6_addr16[-- ix];
+				addr->s6_addr16[ ix   ] = 0;
+				}
+			}
+		}
+	return line;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) || defined(USE_RESOLVER) */
+
+/*
+ *  ãããã°è¡å
+¥å
+ */
+
+int_t
+cons_getline (ID portid, char *line, int_t size)
+{
+	int_t	ch, len;
+
+	len = size;
+	while (size > 0) {
+		if ((ch = cons_getchar(portid)) != EOF) {
+			if (ch == '\r') {
+				cons_putchar(portid, '\n');
+				break;
+				}
+			else if (ch == '\b') {
+				if (size < len) {
+					line --;
+					size ++;
+					}
+				}
+			else {
+				*line ++ = ch;
+				size --;
+				}
+			}
+		}
+	*line = '\0';
+	return len - size;
+	}
+
+/*
+ *  get_int -- æ´æ°å¤æ
+ */
+
+char *
+get_int (int_t *val, char *line)
+{
+	int_t sign = 1;
+
+	line = skip_blanks(line);
+	if (*line == '-') {
+		sign = -1;
+		line ++;
+		}
+	else if (*line == '+')
+		line ++;
+
+	line = skip_blanks(line);
+	*val = 0;
+	while ('0' <= *line && *line <= '9') {
+		*val = *val * 10 + *line - '0';
+		line ++;
+		}
+
+	*val = *val * sign;
+	return line;
+	}
+
+/*
+ *  get_xuint -- ç¬¦å·ãªãæ´æ° (16é²) å¤æ
+ */
+
+char *
+get_xuint (uint_t *val, char *line)
+{
+	line = skip_blanks(line);
+	*val = 0;
+	while (1) {
+		if      ('0' <= *line && *line <= '9')
+			*val = (*val << 4) + *line - '0';
+		else if ('a' <= *line && *line <= 'f')
+			*val = (*val << 4) + *line - 'a' + 10;
+		else if ('A' <= *line && *line <= 'F')
+			*val = (*val << 4) + *line - 'A' + 10;
+		else
+			break;
+		line ++;
+		}
+	return line;
+	}
+
+#ifdef USE_RESOLVER
+
+/*
+ *  dns_strtype -- DNS ã® type ã®æå­åãè¿ãã
+ */
+
+const char *
+dns_strtype (uint_t type)
+{
+	switch (type) {
+	case DNS_TYPE_A:
+		return "A";
+		break;
+	case DNS_TYPE_NS:
+		return "NS";
+		break;
+	case DNS_TYPE_CNAME:
+		return "CNAME";
+		break;
+	case DNS_TYPE_SOA:
+		return "SOA";
+		break;
+	case DNS_TYPE_PTR:
+		return "PTR";
+		break;
+	case DNS_TYPE_AAAA:
+		return "AAAA";
+		break;
+	default:
+		return "unknown type";
+		break;
+		}
+	}
+
+/*
+ *  dns_strclass -- DNS ã® class ãè¡¨ç¤ºããã
+ */
+
+const char *
+dns_strclass (uint_t class)
+{
+	switch (class) {
+	case DNS_CLASS_IN:
+		return "IN";
+		break;
+	default:
+		return "unknown class";
+		break;
+		}
+	}
+
+/*
+ *  resolv_hoststr -- æå­åã®FQDNã»ãã¹ãåã»IPv6/IPv4 ã¢ãã¬ã¹ãè§£æããã
+ */
+
+#define IS_HOSTCH_DIGIT(c)	(('0'<=(c)&&(c)<='9'))
+#define IS_HOSTCH_XDIGIT(c)	(IS_HOSTCH_DIGIT(c)||('a'<=(c)&&(c)<='f')||('A'<=(c)&&(c)<='F'))
+#define IS_HOSTCH_ALPHA(c)	(('a'<=(c)&&(c)<='z')||('A'<=(c)&&(c)<='z'))
+#define IS_HOSTCH_ALNUM(c)	(IS_HOSTCH_ALPHA(c)||IS_HOSTCH_DIGIT(c))
+#define IS_HOSTCH_IPV6ADDR(c)	(IS_HOSTCH_XDIGIT(c)||(c)==':')
+#define IS_HOSTCH_IPV4ADDR(c)	(IS_HOSTCH_DIGIT(c)||(c)=='.')
+#define IS_HOSTCH_IPADDR(c)	(IS_HOSTCH_XDIGIT(c)||(c)==':'||(c)=='.')
+#define IS_HOSTCH_NAME_FIRST(c)	(IS_HOSTCH_ALPHA(c))
+#define IS_HOSTCH_NAME(c)	(IS_HOSTCH_ALNUM(c)||(c)=='-'||(c)=='.')
+#define IS_HOSTCH_BLANK(c)	((c)=='\0'||(c)==' '||(c)=='\t')
+
+char *
+resolv_hoststr (uint_t *flags, char *hostname, uint_t name_size, char *line)
+{
+	char *h, *p;
+
+	h = hostname;
+	p = line = skip_blanks(line);
+
+	if (IS_HOSTCH_IPADDR(*p)) {
+		while (IS_HOSTCH_DIGIT(*p)) {
+			if (h - hostname > name_size)
+				return NULL;
+			*h ++ = *p ++;
+			}
+		if (p > line && *p == '.') {
+			while (IS_HOSTCH_IPV4ADDR(*p)) {
+				if (h - hostname > name_size)
+					return NULL;
+				*h ++ = *p ++;
+				}
+			if (IS_HOSTCH_BLANK(*p)) {
+				*flags |= HOSTSTR_IPV4;
+				*h = '\0';
+				return p;
+				}
+			}
+		else if (IS_HOSTCH_IPADDR(*p)) {
+			while (IS_HOSTCH_IPADDR(*p)) {
+				if (h - hostname > name_size)
+					return NULL;
+				*h ++ = *p ++;
+				}
+			if (IS_HOSTCH_BLANK(*p)) {
+				*flags |= HOSTSTR_IPV6;
+				*h = '\0';
+				return p;
+				}
+			}
+		h = hostname;
+		p = line;
+		}
+
+	if (IS_HOSTCH_NAME_FIRST(*p)) {
+		*flags |= HOSTSTR_HOSTNAME;
+		while (IS_HOSTCH_NAME(*p)) {
+			if (h - hostname > name_size)
+				return NULL;
+			if (*p == '.')
+				*flags |= HOSTSTR_FQDN;
+			*h ++ = *p ++;
+			}
+		}
+	else
+		*flags |= HOSTSTR_OTHER;
+
+	*h = '\0';
+	return p;
+	}
+
+/*
+ *  show_dns_domain_name -- DNS ã®ãã¡ã¤ã³åãè¡¨ç¤ºããã
+ */
+
+uint_t
+show_dns_domain_name (ID portid, uint8_t *hdr, uint_t offset)
+{
+	uint8_t	*ptr;
+	uint_t	c;
+
+	ptr = hdr + offset;
+	while (*ptr) {
+		if ((*ptr & DNS_MSG_COMP_MARK) == DNS_MSG_COMP_MARK) {
+			show_dns_domain_name(portid, hdr, (*ptr & ~DNS_MSG_COMP_MARK) << 8 | *(ptr + 1));
+			ptr += 2;
+			break;
+			}
+		else {
+			for (c = 1; c <= *ptr; c++)
+				cons_printf(portid, "%c", *(ptr + c));
+			ptr += *ptr + 1;
+			if (*ptr)
+				cons_printf(portid, ".");
+			}
+		}
+	return ptr - hdr;
+	}
+
+/*
+ *  resolv_options -- ã¢ãã¬ã¹è§£æ±ºã®ãªãã·ã§ã³è§£æ
+ */
+
+char *
+resolv_options (uint_t *flags, char *line, char apip)
+{
+#if defined(SUPPORT_INET6)
+	T_IN6_ADDR	in6_addr;
+#endif
+
+#if defined(SUPPORT_INET4)
+	T_IN4_ADDR	in4_addr;
+#endif
+
+	line = skip_blanks(line);
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+	*flags |= DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_PROTO_IPV4;
+	if (apip == API_PROTO_IPV4)
+		*flags |= DNS_LUP_FLAGS_QTYPE_A;
+	else
+		*flags |= DNS_LUP_FLAGS_QTYPE_AAAA;
+
+	if (*line == '-') {
+		line ++;
+		if (*line == '6') {
+			line ++;
+			*flags &= ~DNS_LUP_FLAGS_PROTO_IPV4;
+			}
+		else if (*line == '4') {
+			line ++;
+			*flags &= ~DNS_LUP_FLAGS_PROTO_IPV6;
+			}
+		if (*line == 'Q' || *line == 'q') {
+			*flags &= ~DNS_LUP_FLAGS_QTYPE_A;
+			line ++;                   
+			}
+		else if (*line == 'A' || *line == 'a') {
+			*flags &= ~DNS_LUP_FLAGS_QTYPE_AAAA;
+			line ++;                   
+			}
+		while (*line && !(*line == ' ' || *line == '\t'))
+			line ++;
+		}
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+	*flags = DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_QTYPE_AAAA;
+	if (*line == '-') {
+		line ++;
+		while (*line && !(*line == ' ' || *line == '\t'))
+			line ++;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+	*flags = DNS_LUP_FLAGS_PROTO_IPV4 | DNS_LUP_FLAGS_QTYPE_A;
+	if (*line == '-') {
+		line ++;
+		while (*line && !(*line == ' ' || *line == '\t'))
+			line ++;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET6)
+
+	if (*flags | DNS_LUP_FLAGS_PROTO_IPV6) {
+		/*
+		 *  IPv6 ã§ DNS ãµã¼ãã«ç
+§ä¼ãããã¨ãæå®ããã¦ãã
+		 *  ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãæå®ãå¤ãã
+		 */
+		dns_in6_get_addr(&in6_addr);
+		if (IN6_IS_ADDR_UNSPECIFIED(&in6_addr))
+			*flags &= ~DNS_LUP_FLAGS_PROTO_IPV6;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+	if (*flags | DNS_LUP_FLAGS_PROTO_IPV4) {
+		/*
+		 *  IPv4 ã§ DNS ãµã¼ãã«ç
+§ä¼ãããã¨ãæå®ããã¦ãã
+		 *  ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãæå®ãå¤ãã
+		 */
+		dns_in4_get_addr(&in4_addr);
+		if (in4_addr == IPV4_ADDRANY)
+			*flags &= ~DNS_LUP_FLAGS_PROTO_IPV4;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+	return line;
+	}
+
+#endif	/* of #ifdef USE_RESOLVER */
+
+/*
+ *  lookup_ipaddr -- ãã¹ãåã»ãªãã©ã«ã®IPã¢ãã¬ã¹ãIP ã¢ãã¬ã¹ã«å¤æããã
+ */
+
+char *
+lookup_ipaddr (T_IN_ADDR *addr, char *line, char apip)
+{
+
+#ifdef USE_RESOLVER
+
+	static char hostname[DBG_LINE_SIZE + 1];
+
+	ER_UINT	error;
+	uint_t	flags = 0;
+	char	*last;
+
+	line = skip_blanks(resolv_options(&flags, line, apip));
+	if ((last = resolv_hoststr(&flags, hostname, sizeof(hostname), line)) == NULL) {
+		cons_printf(CONSOLE_PORTID, "unknown host: %s.\n", hostname);
+		return NULL;
+		}
+
+	switch (flags & DNS_LUP_FLAGS_NAME_MASK) {
+	case DNS_LUP_FLAGS_NAME_IPV4:
+	case DNS_LUP_FLAGS_NAME_IPV6:
+		line = GET_IPADDR(addr, line);		/* IP Address by Literal */
+		break;
+
+	case DNS_LUP_FLAGS_NAME_HOST:
+	case DNS_LUP_FLAGS_NAME_FQDN:
+		line = last;
+		if ((flags & (DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_PROTO_IPV4)) == 0) {
+			cons_printf(CONSOLE_PORTID, "DNS server not available.\n");
+			return NULL;
+			}
+
+		flags |= DNS_LUP_OPCODE_FORWARD;
+		if ((error = dns_host_addr(flags, hostname, addr)) != E_OK) {
+			cons_printf(CONSOLE_PORTID, "error: %s.\n", itron_strerror(error));
+			return NULL;
+			}
+		break;
+
+		}
+
+	return line;
+
+#else	/* of #ifdef USE_RESOLVER */
+
+	return GET_IPADDR(addr, skip_blanks(line));		/* IP Address by Literal */
+
+#endif	 /* of #ifdef USE_RESOLVER */
+
+	}
+
+#endif	/* of #ifdef USE_NETAPP_SUBR */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_subr.cfg	(revision 313)
@@ -0,0 +1,63 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãµã³ãã«ã¢ããªã±ã¼ã·ã§ã³å
+±é
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+CRE_SEM(SEM_ALLOC_TCP_REP_LOCK,	{ TA_TPRI, 1, 1 });
+CRE_SEM(SEM_ALLOC_TCP_CEP_LOCK,	{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_SEM(SEM_ALLOC_UDP_CEP_LOCK,	{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/netapp_var.h	(revision 313)
@@ -0,0 +1,281 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NETAPP_VAR_H_
+#define _NETAPP_VAR_H_
+
+/*
+ *  TOPPERS/JSP ã«ã¼ãã«ãã·ã¹ãã æå» (SYSTIM) ã®å¨æ³¢æ°
+ */
+
+#define SYSTIM_HZ		ULONG_C(1000)	/* [ms]					*/
+
+/*
+ *  IPv6/IPv4 ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  æå®ããããã¯ã­ã«å¯¾ãããµã³ãã«ã¢ããªã±ã¼ã·ã§ã³å
+é¨ã®ãã¯ã­ã®å®ç¾©
+ *
+ *    SUPPORT_INET6		 .   .  ON  ON  ON  ON
+ *    SUPPORT_INET4		ON  ON   .   .  ON  ON
+ *    API_CFG_IP4MAPPED_ADDR	 .  ON   .  ON   .  ON
+ *    ----------------------    ----------------------
+ *    NETAPP_IP6_CFG             .   .  ON  ON  ON  ON
+ *    NETAPP_IP4_CFG            ON  ON   .  ON  ON  ON
+ *    
+ */
+
+#if defined(SUPPORT_INET6)
+
+#define	NETAPP_IP6_CFG
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4) || (defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR))
+#define NETAPP_IP4_CFG
+#endif
+
+/*
+ *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ */
+
+#define DBG_LINE_SIZE		63
+
+#if defined(SUPPORT_INET6)
+
+#define T_IN_ADDR		T_IN6_ADDR
+#define T_IPEP			T_IPV6EP
+#define IP_ADDRANY		IPV6_ADDRANY
+#define T_TCPN_CREP		T_TCP6_CREP
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#define T_IN_ADDR		T_IN4_ADDR
+#define T_IPEP			T_IPV4EP
+#define IP_ADDRANY		IPV4_ADDRANY
+#define T_TCPN_CREP		T_TCP_CREP
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/*
+ *  API IPãã­ãã³ã«ã®æå®
+ */
+
+#if defined(SUPPORT_INET6)
+#define DEFAULT_API_PROTO	API_PROTO_IPV6
+#else
+#define DEFAULT_API_PROTO	API_PROTO_IPV4
+#endif
+
+/*
+ *  resolv_hoststr ãè¿ã flags ã®å¤ã®å®ç¾©
+ *
+ *    æ³¨æ:
+ *
+ *      dns.h ã§å®ç¾©ããã¦ãã DNS_OPCODEã
+ *      resolver.h ã§å®ç¾©ããã¦ãã DNS_LUP_FLAGS ã¨éãªããªãäºã
+ */
+
+#define HOSTSTR_OTHER		0x0000U
+#define HOSTSTR_IPV4		DNS_LUP_FLAGS_NAME_IPV4
+#define HOSTSTR_IPV6		DNS_LUP_FLAGS_NAME_IPV6
+#define HOSTSTR_HOSTNAME	DNS_LUP_FLAGS_NAME_HOST
+#define HOSTSTR_FQDN		DNS_LUP_FLAGS_NAME_FQDN
+
+/*
+ *  å®æ°ã®å®ç¾©
+ */
+
+#define DBG_LINE_SIZE		63
+
+#if defined(SUPPORT_INET6)
+
+#define NUM_VRID_TCP_CEPS	NUM_VRID_TCP6_CEPS
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#define NUM_VRID_TCP_CEPS	NUM_VRID_TCP4_CEPS
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+/* ã¡ãã»ã¼ã¸ããã®èª­åºã */
+
+#define MSG2HOST16(p)		(msg2host16((void*)&(p)))
+#define MSG2HOST32(p)		(msg2host32((void*)&(p)))
+
+/* ã¡ãã»ã¼ã¸ã¸ã®æ¸è¾¼ã¿ */
+
+#define HOST2MSG16(p,v)		(host2msg16((void*)&(p),(v)))
+#define HOST2MSG32(p,v)		(host2msg32((void*)&(p),(v)))
+
+/*
+ *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
+¥åºå
+ */
+
+#ifdef USE_NET_CONS
+
+/* ãªãã¼ã  */
+
+#define syslog		net_syslog
+#define serial_ctl_por	net_serial_ctl_por
+
+/* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­ */
+
+#define FLUSH_SND_BUFF()	flush_snd_buff()
+#define WAI_NET_CONS_PRINTF()	syscall(wai_sem(SEM_NET_CONS_PRINTF))
+#define SIG_NET_CONS_PRINTF()	sig_sem(SEM_NET_CONS_PRINTF)
+
+#else	/* of #ifdef USE_NET_CONS */
+
+/* é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­ */
+
+#define FLUSH_SND_BUFF()
+#define WAI_NET_CONS_PRINTF()
+#define SIG_NET_CONS_PRINTF()
+
+#endif	/* of #ifdef USE_NET_CONS */
+
+/*
+ *  é¢æ°
+ */
+
+extern const char *in_strtfn (FN fncd);
+extern const char *itron_strerror (ER ercd);
+extern const char *dns_strtype (uint_t type);
+extern const char *dns_strclass (uint_t class);
+extern ER	net_syslog(uint_t prio, const char *format, ...) throw();
+extern ER	net_serial_ctl_por(ID portid, uint_t ioctl) throw();
+extern void	flush_snd_buff (void);
+extern ER	discon_net_cons (void);
+extern void	wup_net_cons (void);
+extern bool_t	tcp6_is_cepid (ID cepid);
+extern ER	alloc_tcp6_rep (ID *repid, ID tskid, T_TCP6_CREP *crep);
+extern ER	alloc_tcp6_cep (ID *cepid, ID tskid, T_TCP_CCEP *ccep);
+extern ER	alloc_udp6_cep (ID *cepid, ID tskid, T_UDP6_CCEP *ccep);
+extern ER	free_tcp6_rep (ID repid, bool_t call_tcp_del_rep);
+extern ER	free_tcp6_cep (ID cepid);
+extern ER	free_udp6_cep (ID cepid, bool_t call_udp_del_cep);
+extern bool_t	tcp4_is_cepid (ID cepid);
+extern ER	alloc_tcp4_rep (ID *repid, ID tskid, T_TCP_CREP *crep);
+extern ER	alloc_tcp4_cep (ID *cepid, ID tskid, T_TCP_CCEP *ccep);
+extern ER	alloc_udp4_cep (ID *cepid, ID tskid, T_UDP_CCEP *ccep);
+extern ER	free_tcp4_rep (ID repid, bool_t call_tcp_del_rep);
+extern ER	free_tcp4_cep (ID cepid);
+extern ER	free_udp4_cep (ID cepid, bool_t call_udp_del_cep);
+extern void	ping6 (T_IN6_ADDR *addr, uint_t tmo, uint_t len);
+extern void	ping4 (T_IN4_ADDR *addr, uint_t tmo, uint_t len);
+extern char	*get_ipv6addr (T_IN6_ADDR *addr, char *line);
+extern char	*get_ipv4addr (T_IN4_ADDR *addr, char *line);
+extern char	*resolv_options (uint_t *flags, char *line, char apip);
+extern char	*resolv_hoststr (uint_t *flags, char *hostname, uint_t name_size, char *line);
+extern char	*lookup_ipaddr (T_IN_ADDR *addr, char *line, char apip);
+extern uint_t	show_dns_domain_name (ID portid, uint8_t *hdr, uint_t offset);
+extern void	host2msg16 (void *msg, uint16_t host_data);
+extern void	host2msg32 (void *msg, uint32_t host_data);
+extern uint16_t	msg2host16 (void *msg);
+extern uint32_t	msg2host32 (void *msg);
+extern uint32_t	netapp_rand (void);
+extern void	netapp_srand (uint32_t seed);
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_CRE_REP(i,r)	tcp6_cre_rep(i,r)
+#define TCP_CRE_CEP(i,c)	tcp6_cre_cep(i,c)
+#define UDP_CRE_CEP(i,c)	udp6_cre_cep(i,c)
+#define TCP_ACP_CEP(c,r,d,t)	tcp6_acp_cep(c,r,d,t)
+#define TCP_CON_CEP(c,m,d,t)	tcp6_con_cep(c,m,d,t)
+
+#define UDP_SND_DAT(c,d,b,l,t)	udp6_snd_dat(c,d,b,l,t)
+#define UDP_RCV_DAT(c,d,b,l,t)	udp6_rcv_dat(c,d,b,l,t)
+
+#define TCP_IS_CEPID(i)		tcp6_is_cepid(i)
+#define ALLOC_TCP_REP(i,t,r)	alloc_tcp6_rep(i,t,r)
+#define ALLOC_TCP_CEP(i,t,c)	alloc_tcp6_cep(i,t,c)
+#define ALLOC_UDP_CEP(i,t,c)	alloc_udp6_cep(i,t,c)
+#define FREE_TCP_REP(i,r)	free_tcp6_rep(i,r)
+#define FREE_TCP_CEP(i)		free_tcp6_cep(i)
+#define FREE_UDP_CEP(i,c)	free_udp6_cep(i,c)
+
+#define IP2STR(s,a)		ipv62str(s,a)
+#define GET_IPADDR(a,l)		get_ipv6addr(a,l)
+#define PING(a,t,l)		ping6(a,t,l)
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#define TCP_CRE_REP(i,r)	tcp_cre_rep(i,r)
+#define TCP_CRE_CEP(i,c)	tcp_cre_cep(i,c)
+#define UDP_CRE_CEP(i,c)	udp_cre_cep(i,c)
+#define TCP_ACP_CEP(c,r,d,t)	tcp_acp_cep(c,r,d,t)
+#define TCP_CON_CEP(c,m,d,t)	tcp_con_cep(c,m,d,t)
+
+#define UDP_SND_DAT(c,d,b,l,t)	udp_snd_dat(c,d,b,l,t)
+#define UDP_RCV_DAT(c,d,b,l,t)	udp_rcv_dat(c,d,b,l,t)
+
+#define TCP_IS_CEPID(i)		tcp4_is_cepid(i)
+#define ALLOC_TCP_REP(i,t,r)	alloc_tcp4_rep(i,t,r)
+#define ALLOC_TCP_CEP(i,t,c)	alloc_tcp4_cep(i,t,c)
+#define ALLOC_UDP_CEP(i,t,c)	alloc_udp4_cep(i,t,c)
+#define FREE_TCP_REP(i,r)	free_tcp4_rep(i,r)
+#define FREE_TCP_CEP(i)		free_tcp4_cep(i)
+#define FREE_UDP_CEP(i,c)	free_udp4_cep(i,c)
+
+#define IP2STR(s,a)		ip2str(s,a)
+#define GET_IPADDR(a,l)		get_ipv4addr(a,l)
+#define PING(a,t,l)		ping4(a,t,l)
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #ifndef _NETAPP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/netappn_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/netappn_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/netappn_subr.c	(revision 313)
@@ -0,0 +1,219 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯å¿ç¨ãã­ã°ã©ã ãµãã¼ãã«ã¼ãã³
+ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  alloc_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ */
+
+ER
+ALLOC_TCP_REP (ID *repid, ID tskid, T_TCPN_CREP *crep)
+{
+	int_t	ix;
+
+	*repid = TCP_REP_NONE;
+	syscall(wai_sem(SEM_ALLOC_TCP_REP_LOCK));
+	for (ix = NUM_VRID_TCP_REPS; ix -- > 0; ) {
+		if (TSKID_TCP_REP[ix] == TSK_NONE) {
+			*repid = VRID_TCP_REP[ix];
+			TSKID_TCP_REP[ix] = tskid;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_TCP_REP_LOCK));
+
+	if (*repid == TCP_REP_NONE)
+		return E_NOEXS;
+	else
+		return TCP_CRE_REP(*repid, crep);
+	}
+
+/*
+ *  free_tcp_rep -- TCP åä»å£ãè§£æ¾ããã
+ */
+
+ER
+FREE_TCP_REP (ID repid, bool_t call_tcp_del_rep)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_ALLOC_TCP_REP_LOCK));
+	for (ix = NUM_VRID_TCP_REPS; ix -- > 0; ) {
+		if (repid == VRID_TCP_REP[ix]) {
+			TSKID_TCP_REP[ix] = TSK_NONE;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_TCP_REP_LOCK));
+
+	if (call_tcp_del_rep)
+		return tcp_del_rep(repid);
+	else
+		return E_OK;
+	}
+
+/*
+ *  tcpn_is_cepid -- TCP éä¿¡ç«¯ç¹ãæå®ããããããã¯ã¼ã¯å±¤ãªã true ãè¿ãã
+ */
+
+bool_t
+TCP_IS_CEPID (ID cepid)
+{
+	int_t	ix;
+
+	for (ix = NUM_VRID_TCP_CEPS; ix -- > 0; ) {
+		if (cepid == VRID_TCP_CEP[ix])
+			return true;
+		}
+	return false;
+	}
+
+/*
+ *  alloc_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ */
+
+ER
+ALLOC_TCP_CEP (ID *cepid, ID tskid, T_TCP_CCEP *ccep)
+{
+	int_t	ix;
+
+	*cepid = TCP_CEP_NONE;
+	syscall(wai_sem(SEM_ALLOC_TCP_CEP_LOCK));
+	for (ix = NUM_VRID_TCP_CEPS; ix -- > 0; ) {
+		if (TSKID_TCP_CEP[ix] == TSK_NONE) {
+			*cepid = VRID_TCP_CEP[ix];
+			TSKID_TCP_CEP[ix] = tskid;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_TCP_CEP_LOCK));
+
+	if (*cepid == TCP_CEP_NONE)
+		return E_NOEXS;
+	else
+		return tcp_cre_cep(*cepid, ccep);
+	}
+
+/*
+ *  free_tcp_cep -- TCP éä¿¡ç«¯ç¹ãè§£æ¾ããã
+ */
+
+ER
+FREE_TCP_CEP (ID cepid)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_ALLOC_TCP_CEP_LOCK));
+	for (ix = NUM_VRID_TCP_CEPS; ix -- > 0; ) {
+		if (cepid == VRID_TCP_CEP[ix]) {
+			TSKID_TCP_CEP[ix] = TSK_NONE;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_TCP_CEP_LOCK));
+
+	return tcp_del_cep(cepid);
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+/*
+ *  alloc_udp_cep -- UDP éä¿¡ç«¯ç¹ãç²å¾ããã
+ */
+
+ER
+ALLOC_UDP_CEP (ID *cepid, ID tskid, T_UDPN_CCEP *ccep)
+{
+	int_t	ix;
+
+	*cepid = UDP_CEP_NONE;
+	syscall(wai_sem(SEM_ALLOC_UDP_CEP_LOCK));
+	for (ix = NUM_VRID_UDP_CEPS; ix -- > 0; ) {
+		if (TSKID_UDP_CEP[ix] == TSK_NONE) {
+			*cepid = VRID_UDP_CEP[ix];
+			TSKID_UDP_CEP[ix] = tskid;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_UDP_CEP_LOCK));
+
+	if (*cepid == UDP_CEP_NONE)
+		return E_NOEXS;
+	else
+		return UDP_CRE_CEP(*cepid, ccep);
+	}
+
+/*
+ *  free_udp_cep -- UDP éä¿¡ç«¯ç¹ãè§£æ¾ããã
+ */
+
+ER
+FREE_UDP_CEP (ID cepid, bool_t call_udp_del_cep)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_ALLOC_UDP_CEP_LOCK));
+	for (ix = NUM_VRID_UDP_CEPS; ix -- > 0; ) {
+		if (cepid == VRID_UDP_CEP[ix]) {
+			TSKID_UDP_CEP[ix] = TSK_NONE;
+			break;
+			}
+		}
+	syscall(sig_sem(SEM_ALLOC_UDP_CEP_LOCK));
+
+	if (call_udp_del_cep)
+		return UDP_DEL_CEP(cepid);
+	else
+		return E_OK;
+	}
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping.c	(revision 313)
@@ -0,0 +1,184 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ping -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/ppp_var.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/icmp_var.h>
+
+#ifdef USE_PING
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  å¤æ°
+ */
+
+#if 0
+static uint16_t	curr_icmp_id;
+static uint16_t	curr_icmp_len;
+#endif
+
+static uint16_t	icmp_id = 0;
+static SYSTIM	icmp_start_time;
+
+/*
+ *  icmp_reply_timeout -- ICMP REPLY ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+icmp_reply_timeout (void *arg)
+{
+	syslog(LOG_NOTICE, "[PING4] request timeout.");
+	}
+
+/*
+ *  icmp_echo_reply -- ICMP ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã
+ */
+
+void
+icmp_echo_reply (T_NET_BUF *input, uint_t ihoff)
+{
+	SYSTIM		time;
+	T_IN4_ADDR	addr;
+
+	syscall(get_tim(&time));
+	addr = ntohl(GET_IP4_HDR(input)->src);
+	untimeout(icmp_reply_timeout, NULL);
+	syslog(LOG_NOTICE, "[PING4] reply: %5ld [ms] from: %s",
+	                   (time - icmp_start_time) * 1000 / SYSTIM_HZ,
+	                   ip2str(NULL, &addr));
+	}
+
+/*
+ *  ping4 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+void
+ping4 (T_IN4_ADDR *addr, uint_t tmo, uint_t len)
+{
+	T_ICMP4_HDR	*icmp4h;
+	T_NET_BUF	*output;
+	uint8_t		*sdu;
+	int_t		ix;
+
+	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	if (in4_get_datagram(&output, ICMP4_HDR_SIZE + len, 0,
+	                     addr, NULL, IPPROTO_ICMP,
+	                     IP4_DEFTTL, NBA_SEARCH_ASCENT, TMO_FEVR) != E_OK)
+		return;
+
+	/* ICMP ããããè¨­å®ããã*/
+	icmp4h			= GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
+	icmp4h->type		= ICMP4_ECHO_REQUEST;
+	icmp4h->code		= 0;
+	icmp4h->data.id_seq.id	= htons(icmp_id);
+	icmp4h->data.id_seq.seq	= 0;
+
+	/* ãã¼ã¿ãè¨­å®ããã*/
+	sdu = GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + len;
+	for (ix = len; ix -- > 0; )
+		*-- sdu = ('0' + icmp_id + ix) & 0xff;
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	icmp4h->sum = 0;
+	icmp4h->sum = in_cksum(icmp4h, ICMP4_HDR_SIZE + len);
+
+	/* å¿ç­ãã§ãã¯ç¨ã®å¤æ°ãè¨­å®ããã*/
+#if 0
+	curr_icmp_id  = icmp_id ++;
+	curr_icmp_len = len;
+#endif
+
+	NET_COUNT_MIB(icmp_stats.icmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp_stats.icmpOutEchos, 1);
+
+	/* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	ip_output(output, TMO_FEVR);
+
+	syscall(get_tim(&icmp_start_time));
+	timeout(icmp_reply_timeout, NULL, tmo * NET_TIMER_HZ);
+
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #ifdef USE_PING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/ping6.c	(revision 313)
@@ -0,0 +1,211 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ping6 -- ICMPv6 ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/ppp_var.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+
+#include <netinet6/nd6.h>
+
+#include <net/if_var.h>
+
+#ifdef USE_PING
+
+#if defined(SUPPORT_INET6)
+
+/*
+ *  å¤æ°
+ */
+
+#if 0
+static uint16_t	curr_icmp6_id;
+static uint16_t	curr_icmp6_size;
+#endif
+
+static uint16_t	send_icmp6_id = 0;
+static uint16_t	reply_count;
+static SYSTIM	icmp6_start_time;
+
+/*
+ *  icmp6_reply_timeout -- ICMP6 REPLY ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static void
+icmp6_reply_timeout (void *arg)
+{
+	if (reply_count == 0)
+		syslog(LOG_NOTICE, "[PING6] request timeout.");
+	}
+
+/*
+ *  icmp6_echo_reply -- ICMP6 ECHO REPLY ã¡ãã»ã¼ã¸ãå¦çããã
+ */
+
+void
+icmp6_echo_reply (T_NET_BUF *input, uint_t ihoff)
+{
+	SYSTIM	time;
+
+	syscall(get_tim(&time));
+	untimeout(icmp6_reply_timeout, NULL);
+	syslog(LOG_NOTICE, "[PING6] reply: %5ld [ms] from: %s",
+	                   (time - icmp6_start_time) * 1000 / SYSTIM_HZ,
+	                   ipv62str(NULL, &GET_IP6_HDR(input)->src));
+	reply_count ++;
+	}
+
+/*
+ *  ping6 -- ICMP ECHO ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+void
+ping6 (T_IN6_ADDR *addr, uint_t tmo, uint_t size)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_ICMP6_HDR	*icmp6h;
+	T_NET_BUF	*output;
+	T_IN6_IFADDR	*ia;
+	int_t		ix;
+	uint16_t	ipflags = 0;
+	uint8_t		*sdu;
+
+	/*
+	 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 */
+	if ((ia = in6_ifawithifp(ifp, addr)) == NULL)
+		return;
+
+	if (IN6_IS_ADDR_MULTICAST(addr))
+		ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_DEFHLIM);
+
+	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	if (in6_get_datagram(&output, ICMP6_HDR_SIZE + size, 0,
+	                     addr, &ia->addr, IPPROTO_ICMPV6,
+	                     IPV6_DEFHLIM, NBA_SEARCH_ASCENT, TMO_FEVR) != E_OK)
+		return;
+
+	/* ICMP ããããè¨­å®ããã*/
+	icmp6h           = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
+	icmp6h->type     = ICMP6_ECHO_REQUEST;
+	icmp6h->code     = 0;
+	icmp6h->icmp6_id = htons(send_icmp6_id);
+	icmp6h->icmp6_seq= 0;
+
+	/* ãã¼ã¿ãè¨­å®ããã*/
+	sdu = GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET) + size;
+	for (ix = size; ix -- > 0; )
+		*-- sdu = ('0' + send_icmp6_id + ix) & 0xff;
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	icmp6h->sum = 0;
+	icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6,
+	                        (uint8_t*)icmp6h - output->buf, ICMP6_HDR_SIZE + size);
+
+	/* å¿ç­ãã§ãã¯ç¨ã®å¤æ°ãè¨­å®ããã*/
+	reply_count = 0;
+
+#if 0
+	curr_icmp6_id   = send_icmp6_id ++;
+	curr_icmp6_size = size;
+#endif
+
+#if 0
+	syslog(LOG_NOTICE, "[PING6] send: TMO:%d, SIZE:%d, to: %s, from %s",
+	                   tmo, size,
+	                   ipv62str(NULL, addr), ipv62str(NULL, &ia->addr));
+#endif
+
+	/* éä¿¡å¾ãç¾å¨ã®æéãè¨æ¶ããã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+	ip6_output(output, ipflags, TMO_FEVR);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutEchos, 1);
+
+	syscall(get_tim(&icmp6_start_time));
+	timeout(icmp6_reply_timeout, NULL, tmo * NET_TIMER_HZ);
+
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #ifdef USE_PING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.c	(revision 313)
@@ -0,0 +1,1204 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãã¹ãåââIP ã¢ãã¬ã¹å¤æ
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <syssvc/logtask.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_config.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/resolver.h>
+
+#if defined(USE_RESOLVER)
+
+/*
+ *  å±æå¤æ°
+ */
+
+static uint8_t	dns_domain_name[DNS_NAME_LENGTH + 1] = RSLV_CFG_DNS_DOMAIN_NAME_STR;
+
+#if defined(SUPPORT_INET6)
+static T_IN6_ADDR in6_addr_dns      = IPV6_ADDR_DNS_INIT;
+static T_IN6_ADDR in6_addr_dns_init = IPV6_ADDR_DNS_INIT;
+#endif
+
+#if defined(SUPPORT_INET4)
+static T_IN4_ADDR in4_addr_dns = IPV4_ADDR_DNS;
+#endif
+
+static uint16_t	dns_msg_id = 0;
+
+/*
+ *  get_dns_header -- DNS ã¡ãã»ã¼ã¸ãã DNS ããããåãåºãã
+ */
+
+static ER_UINT
+get_dns_header (uint8_t *msg, uint_t length, T_RSLV_DNS_MSG *rslv)
+{
+	T_DNS_HDR	*dns_hdr;
+
+	/* DNS ããããåãåºãã*/
+	if (length < sizeof(rslv->dns_hdr))
+		return EV_RSLV_ESIZE;
+	dns_hdr = (T_DNS_HDR*)msg;
+	rslv->dns_hdr.id	= MSG2HOST16(dns_hdr->id);
+	rslv->dns_hdr.code	= MSG2HOST16(dns_hdr->code);
+	rslv->dns_hdr.qdcount	= MSG2HOST16(dns_hdr->qdcount);
+	rslv->dns_hdr.ancount	= MSG2HOST16(dns_hdr->ancount);
+	rslv->dns_hdr.nscount	= MSG2HOST16(dns_hdr->nscount);
+	rslv->dns_hdr.arcount	= MSG2HOST16(dns_hdr->arcount);
+	return sizeof(rslv->dns_hdr);
+	}
+
+/*
+ *  dns_strtype -- DNS ã® type ã®æå­åãè¿ãã
+ */
+
+static const char *
+dns_flag_qtype (uint16_t flags)
+{
+	if      (flags & DNS_LUP_FLAGS_QTYPE_AAAA)
+		return "AAAA";
+	else if (flags & DNS_LUP_FLAGS_QTYPE_A)
+		return "   A";
+	else if (flags & DNS_LUP_FLAGS_QTYPE_PTR)
+		return " PTR";
+	else
+		return "unknown type";
+	}
+
+#if defined(SUPPORT_INET6)
+
+/*
+ *  udp6_dns -- UDP/IPv6 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã
+ */
+
+static ER
+udp6_dns (uint16_t flags, T_IN6_ADDR *addr, uint8_t *msg, uint_t msg_size, uint_t length)
+{
+	T_IPV6EP	ep_dns;
+	ER_UINT		len = E_OK;
+	int		retry;
+
+	/* DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+	if (IN6_IS_ADDR_UNSPECIFIED(addr) || (in6_is_addr_ipv4mapped(addr) && addr->s6_addr32[3] == IPV4_ADDRANY)) {
+		syslog(LOG_NOTICE, "[RSLV] undefined IPv6 DNS server address.");
+		return E_PAR;
+		}
+
+	memcpy(&ep_dns.ipaddr, addr, sizeof(*addr));
+	ep_dns.portno = RSLV_CFG_DNS_PORTNO;
+	for (retry = NUM_DNS_UDP_RETRY + 1; retry -- > 0; ) {
+		if ((len = udp6_snd_dat(UDP6_RESOLVER_CEPID, &ep_dns, msg, length, TMO_DNS_UDP_SND)) >= 0) {
+			if ((len = udp6_rcv_dat(UDP6_RESOLVER_CEPID, &ep_dns, msg, msg_size, TMO_DNS_UDP_RCV)) >= 0)
+				return len;
+			}
+		if (flags & DNS_LUP_FLAGS_MSG) {
+			if (len == E_TMOUT)
+				syslog(LOG_NOTICE, "[RSLV] TMOUT: %d, type: %s, server: %s.%d.",
+				       NUM_DNS_UDP_RETRY + 1 - retry,
+				       dns_flag_qtype(flags),
+				       ipv62str(NULL, &ep_dns.ipaddr), ep_dns.portno);
+			else {
+				syslog(LOG_NOTICE, "[RSLV] error:  %s, type: %s,\n       server: %s.%d.",
+				       itron_strerror(len),
+				       dns_flag_qtype(flags),
+				       ipv62str(NULL, &ep_dns.ipaddr), ep_dns.portno);
+				return len;
+				}
+			}
+		}
+	return E_TMOUT;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  udp4_dns -- UDP/IPv4 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã
+ */
+
+static ER
+udp4_dns (uint16_t flags, T_IN4_ADDR *addr, uint8_t *msg, uint_t msg_size, uint_t length)
+{
+	T_IPV4EP	ep_dns;
+	ER_UINT		len = E_OK;
+	int		retry;
+
+	/* DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯ãã©ã¡ã¼ã¿ã¨ã©ã¼ */
+	if (*addr == IPV4_ADDRANY) {
+		syslog(LOG_NOTICE, "[RSLV] undefined IPv4 DNS server address.");
+		return E_PAR;
+		}
+
+	memcpy(&ep_dns.ipaddr, addr, sizeof(*addr));
+	ep_dns.portno = RSLV_CFG_DNS_PORTNO;
+	for (retry = NUM_DNS_UDP_RETRY + 1; retry -- > 0; ) {
+		if ((len = udp_snd_dat(UDP4_RESOLVER_CEPID, &ep_dns, msg, length, TMO_DNS_UDP_SND)) >= 0) {
+			if ((len = udp_rcv_dat(UDP4_RESOLVER_CEPID, &ep_dns, msg, msg_size, TMO_DNS_UDP_RCV)) >= 0)
+				return len;
+			}
+		if (flags & DNS_LUP_FLAGS_MSG) {
+			if (len == E_TMOUT)
+				syslog(LOG_NOTICE, "[RSLV] TMOUT: %d, type: %s, server: %s.%d.",
+				       NUM_DNS_UDP_RETRY + 1 - retry,
+				       dns_flag_qtype(flags),
+				       ip2str(NULL, &ep_dns.ipaddr), ep_dns.portno);
+			else {
+				syslog(LOG_NOTICE, "[RSLV] error: %s, type: %s, server: %s.%d.",
+				       itron_strerror(len),
+				       dns_flag_qtype(flags),
+				       ip2str(NULL, &ep_dns.ipaddr), ep_dns.portno);
+				return len;
+				}
+			}
+		}
+	return E_TMOUT;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+/*
+ *  skip_label -- ã©ãã«ãèª­ã¿é£ã°ãã
+ */
+
+static char *
+skip_label (char *name)
+{
+	while (!(*name == '\0' || *name == '.'))
+		name ++;
+	return name;
+	}
+
+/*
+ *  add_name -- ã¡ãã»ã¼ã¸ã«ååãè¿½å ããã
+ */
+
+static ER_UINT
+add_name (uint8_t *msg, uint_t size, uint_t offset, char *name)
+{
+	uint_t	label_len;
+	char	*tail;
+
+	while (*name != '\0') {
+
+		/* ã¡ãã»ã¼ã¸ãµã¤ãºã«éãã¦ãããã¨ã©ã¼ */
+		if (offset + 1 > size)
+			return E_BOVR;
+
+		/* ã©ãã«ã®çµãããè¦ã¤ããã*/
+		tail = skip_label(name);
+
+		/* ã©ãã«é·ãè¨­å®ããã*/
+		label_len = tail - name;
+		if (label_len > DNS_LABEL_LENGTH) {	/* 63 ãªã¯ããããè¶
+ããã¨ã¨ã©ã¼ */
+			syslog(LOG_NOTICE, "[RSLV] label length(%d) too long > %d.",
+			                   label_len, DNS_LABEL_LENGTH);
+			return E_PAR;
+			}
+
+		*(msg + offset) = (uint8_t)label_len;
+		offset ++;
+
+		/* ã©ãã«åãè¨­å®ããã*/
+		if (offset + label_len > size) {	/* ã¡ãã»ã¼ã¸ãµã¤ãºãè¶
+ããã¨ã¨ã©ã¼ */
+			syslog(LOG_NOTICE, "[RSLV] message length(%d) too long > %d.",
+			                   offset + label_len, size);
+			return E_BOVR;
+			}
+
+		memcpy((void*)(msg + offset), (void*)name, label_len);
+		offset += label_len;
+
+		/* æ¬¡ã®ã©ãã«ã«ç§»åããã*/
+		if (*tail == '\0')
+			name = tail;
+		else
+			name = tail + 1;	/* '.' ãã¹ã­ããããã*/
+		}
+
+	return offset;
+	}
+
+/*
+ *  add_ipv6addr -- ã¡ãã»ã¼ã¸ã« IPv6 ã¢ãã¬ã¹ãè¿½å ããã
+ */
+
+static ER_UINT
+add_ipv6addr (uint8_t *msg, uint_t size, uint_t offset, char *name)
+{
+	T_IN6_ADDR	addr;
+	ER_UINT		error;
+	uint_t		len;
+	int			col;
+	char		digit[2];
+
+	len = strlen(name);
+	if (len == 0)
+		return E_PAR;
+
+	digit[1] = '\0';
+	get_ipv6addr(&addr, name);
+	for (col = sizeof(T_IN6_ADDR) * 2; -- col >= 0; ) {
+
+		/* 16é²æ° 1æ¡ã®å¤ããååã¨ãã¦è¿½å ããã*/
+		digit[0] = (addr.s6_addr8[col / 2] >> ((1 - (col % 2)) << 2)) & 0x0f;
+		if (digit[0] >= 10)
+			digit[0] += 'a' - 10;
+		else
+			digit[0] += '0';
+		if ((error = add_name(msg, size, offset, digit)) < 0)
+			return error;
+		offset = error;
+		}
+
+	/* "ip6" ãè¿½å ããã*/
+	if ((error = add_name(msg, size, offset, "ip6")) < 0)
+		return error;
+
+	/* "arpa" ãè¿½å ããã*/
+	return add_name(msg, size, error, "arpa");
+	}
+
+/*
+ *  add_ipv4addr -- ã¡ãã»ã¼ã¸ã« IPv4 ã¢ãã¬ã¹ãè¿½å ããã
+ */
+
+static ER_UINT
+add_ipv4addr (uint8_t *msg, uint_t size, uint_t offset, char *name)
+{
+	T_IN4_ADDR	addr;
+	ER_UINT		error;
+	uint_t		len, octet;
+	int			col;
+	char		*op, ostr[4];
+
+	len = strlen(name);
+	if (len == 0)
+		return E_PAR;
+
+	ostr[3] = '\0';
+	get_ipv4addr(&addr, name);
+	for (col = 0; col < sizeof(T_IN4_ADDR); col ++) {
+
+		/* 1ãªã¯ãããã®å¤ããæ´æ°å¤ãããªãã©ã«ã«å¤æããã*/
+		octet = (addr >> (col << 3)) & 0xff;
+		op = &ostr[3];
+		while (octet > 0) {
+			*(-- op) = octet % 10 + '0';
+			octet   /= 10;
+			}
+
+		/* 1ãªã¯ãããã®å¤ããååã¨ãã¦è¿½å ããã*/
+		if ((error = add_name(msg, size, offset, op)) < 0)
+			return error;
+		offset = error;
+		}
+
+	/* "in-addr" ãè¿½å ããã*/
+	if ((error = add_name(msg, size, offset, "in-addr")) < 0)
+		return error;
+
+	/* "arpa" ãè¿½å ããã*/
+	return add_name(msg, size, error, "arpa");
+	}
+
+/*
+ *  setup_dns_msg -- DNS ã¡ãã»ã¼ã¸ãä½æããã
+ */
+
+static ER
+setup_dns_msg (uint16_t flags, char *name, uint8_t *msg, uint_t msg_size)
+{
+	T_DNS_HDR	dns_hdr;
+	ER_UINT		offset;
+
+	memset((void*)&dns_hdr, 0, sizeof(dns_hdr));
+
+	dns_msg_id++;
+	HOST2MSG16(dns_hdr.id,      dns_msg_id);
+	HOST2MSG16(dns_hdr.code,    (flags & DNS_OPCODE_MASK) | DNS_RECURSION_DESIRED);
+	HOST2MSG16(dns_hdr.qdcount, 1);
+
+	memcpy((void*)msg, (void*)&dns_hdr, sizeof(dns_hdr));
+	offset = sizeof(dns_hdr);
+
+	switch (flags & DNS_LUP_FLAGS_NAME_MASK) {
+
+	case DNS_LUP_FLAGS_NAME_HOST:
+	case DNS_LUP_FLAGS_NAME_FQDN:
+
+		/* ãã¹ãåãã¾ãã¯ FQDN ã®æã®å¦çã*/
+		/* ãã¹ãåãè¿½å ããã*/
+		if ((offset = add_name(msg, msg_size, offset, name)) < 0)
+			return offset;
+
+		if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) {		/* ååã 255 ãªã¯ããããè¶
+ããã¨ã¨ã©ã¼ */
+			syslog(LOG_NOTICE, "[RSLV] name length(%d) too long > %d.",
+			                   offset - sizeof(dns_hdr), DNS_NAME_LENGTH);
+			return E_PAR;
+			}
+
+		/* ãã¹ãåã ãã®æã¯ããã¡ã¤ã³åãè¿½å ããã*/
+		if ((flags & DNS_LUP_FLAGS_NAME_MASK) == DNS_LUP_FLAGS_NAME_HOST) {
+
+			/* ãã¡ã¤ã³åãè¿½å ããã*/
+			if ((offset = add_name(msg, msg_size, offset, (char *)dns_domain_name)) < 0)
+				return offset;
+
+			if (offset - sizeof(dns_hdr) > DNS_NAME_LENGTH) {		/* ååã 255 ãªã¯ããããè¶
+ããã¨ã¨ã©ã¼ */
+				syslog(LOG_NOTICE, "[RSLV] name length(%d) too long > %d.",
+				                   offset - sizeof(dns_hdr), DNS_NAME_LENGTH);
+				return E_PAR;
+				}
+			}
+		break;
+
+	case DNS_LUP_FLAGS_NAME_IPV4:
+		if ((offset = add_ipv4addr(msg, msg_size, offset, name)) < 0)
+			return offset;
+		break;
+
+	case DNS_LUP_FLAGS_NAME_IPV6:
+		if ((offset = add_ipv6addr(msg, msg_size, offset, name)) < 0)
+			return offset;
+		break;
+
+	default:
+		syslog(LOG_NOTICE, "[RSLV] unknown name type: %04x.", flags & DNS_LUP_FLAGS_NAME_MASK);
+		return E_PAR;
+		break;
+
+		}
+
+	/* ååã®çµäºã³ã¼ããTYPEãCLASS ãè¿½å ãã¦ãã¡ãã»ã¼ã¸é·ãè¶
+ããªããã¨ãç¢ºèªããã*/
+	if (offset + sizeof(uint16_t) * 2 + 1 > msg_size) {
+		syslog(LOG_NOTICE, "[RSLV] message length(%d) too long > %d.",
+		                   offset + sizeof(uint16_t) * 2 + 1, msg_size);
+		return E_BOVR;
+		}
+
+	/* ååã®çµäºã³ã¼ããè¨­å®ããã*/
+	*(msg + offset) = '\0';
+	offset ++;
+
+	/* DNS ã® TYPE ãè¨­å®ããã*/
+	if (flags & DNS_LUP_FLAGS_QTYPE_PTR)
+		host2msg16(msg + offset, DNS_TYPE_PTR);
+	else if (flags & DNS_LUP_FLAGS_QTYPE_AAAA)
+		host2msg16(msg + offset, DNS_TYPE_AAAA);
+	else if (flags & DNS_LUP_FLAGS_QTYPE_A)
+		host2msg16(msg + offset, DNS_TYPE_A);
+	else {
+		syslog(LOG_NOTICE, "[RSLV] unknown query type: %04x.", flags & DNS_LUP_FLAGS_QTYPE_MASK);
+		return E_PAR;
+		}
+	offset += sizeof(uint16_t);
+
+	/* DNS ã® CLASS ãè¨­å®ããã*/
+	host2msg16(msg + offset, DNS_CLASS_IN);
+
+	return offset + sizeof(uint16_t);
+	}
+
+/*
+ *  skip_dns_name -- DNS ã¡ãã»ã¼ã¸ã®ååãèª­ã¿é£ã°ãã
+ *
+ *    æ³¨æ: å§ç¸®å½¢å¼ãèæ
+®ãããä¸ä½ 2ãããã 11ãªãå§ç¸®å½¢å¼ã
+ */
+
+static ER_UINT
+skip_dns_name (uint8_t *name, uint_t offset, uint_t length)
+{
+	while (*(name + offset)) {
+		if ((*(name + offset) & 0xc0) == 0xc0) {
+			if (offset + 2 > length)
+				return EV_RSLV_ESIZE;
+			else
+				return offset + 2;
+			}
+		else if (offset + *name + 1 > length)
+			return EV_RSLV_ESIZE;
+		else
+			offset += *name + 1;
+		}
+	return offset + 1;
+	}
+
+/*
+ *  skip_dns_qd -- DNS Question section ãèª­ã¿é£ã°ãã
+ */
+
+static ER_UINT
+skip_dns_qd (uint8_t *msg, uint_t offset, uint_t length, uint_t count)
+{
+	ER_UINT	next;
+
+	while (count != 0) {
+		/* name ãèª­ã¿é£ã°ãã*/
+		if ((next = skip_dns_name(msg, offset, length)) < 0)
+			return next;
+		offset = next;
+
+		/* typeãclass ãèª­ã¿é£ã°ãã*/
+		if ((offset + sizeof(uint16_t) + sizeof(uint16_t)) > length)
+			return EV_RSLV_ESIZE;
+		offset += sizeof(uint16_t) + sizeof(uint16_t);
+
+		count --;
+		}
+
+	return offset;
+	}
+
+/*
+ *  skip_dns_rr -- DNS RR ãèª­ã¿é£ã°ãã
+ */
+
+static ER_UINT
+skip_dns_rr (uint8_t *msg, uint_t offset, uint_t length, uint_t count)
+{
+	ER_UINT		next;
+	uint16_t	len = 0;
+
+	while (count != 0) {
+		/* name ãèª­ã¿é£ã°ãã*/
+		if ((next = skip_dns_name(msg, offset, length)) < 0)
+			return next;
+		offset = next;
+
+		/* typeãclassãTTL ãèª­ã¿é£ã°ãã*/
+		if (offset + sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t) > length)
+			return EV_RSLV_ESIZE;
+		offset += sizeof(uint16_t) + sizeof(uint16_t) + sizeof(uint32_t);
+
+		/* RD length ã¨ RDATA ãèª­ã¿é£ã°ãã*/
+		if (offset + sizeof(uint16_t) > length)
+			return EV_RSLV_ESIZE;
+		len = msg2host16(msg + offset);
+
+		if (offset + sizeof(uint16_t) + len > length)
+			return EV_RSLV_ESIZE;
+		offset += sizeof(uint16_t) + len;
+
+		count --;
+		}
+
+	return offset;
+	}
+
+/*
+ *  dns_analyze_qd -- DNS ã¡ãã»ã¼ã¸ã® question section ãè§£æããã
+ */
+
+ER_UINT
+dns_analyze_qd (T_RSLV_QD *qd, uint_t offset, uint8_t *msg, uint_t length)
+{
+	ER_UINT		error;
+	T_DNS_QD	*dns_qd;
+
+	if ((error = skip_dns_name(msg, offset, length)) < 0)
+		return error;
+	offset = error;
+
+	/* DNS ã¡ãã»ã¼ã¸å
+ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/
+	if (offset + T_DNS_QD_SIZE > length)
+		return EV_RSLV_ESIZE;
+
+	/*
+	 *  DNS ã¡ãã»ã¼ã¸å
+ã® SOA RDATA ããã¤ããªã¼ãã¼ãèª¿æ´ãã¦
+	 *  å
+é¨æ§é ä½ã«ã³ãã¼ããã
+	 */
+	dns_qd = (T_DNS_QD*)(msg + offset);
+	qd->type  = MSG2HOST16(dns_qd->type);
+	qd->class = MSG2HOST16(dns_qd->class);
+
+	return offset + T_DNS_QD_SIZE;
+	}
+
+/*
+ *  dns_analyze_soa -- DNS ã¡ãã»ã¼ã¸ã® SOA RDATA ãè§£æããã
+ */
+
+ER_UINT
+dns_analyze_soa (T_RSLV_SOA *soa, uint_t offset, uint8_t *msg, uint_t length)
+{
+	ER_UINT		error;
+	T_DNS_SOA	*dns_soa;
+
+	/* MNAME ãã¹ã­ããããã*/
+	if ((error = skip_dns_name(msg, offset, length)) < 0)
+		return error;
+	offset = error;
+
+	/* RNAME ãã¹ã­ããããã*/
+	if ((error = skip_dns_name(msg, offset, length)) < 0)
+		return error;
+	offset = error;
+
+	/* DNS ã¡ãã»ã¼ã¸å
+ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/
+	if (offset + T_DNS_SOA_SIZE > length)
+		return EV_RSLV_ESIZE;
+
+	/*
+	 *  DNS ã¡ãã»ã¼ã¸å
+ã® SOA RDATA ããã¤ããªã¼ãã¼ãèª¿æ´ãã¦
+	 *  å
+é¨æ§é ä½ã«ã³ãã¼ããã
+	 */
+	dns_soa = (T_DNS_SOA*)(msg + offset);
+	soa->serial  = MSG2HOST32(dns_soa->serial);
+	soa->refresh = MSG2HOST32(dns_soa->refresh);
+	soa->retry   = MSG2HOST32(dns_soa->retry);
+	soa->expire  = MSG2HOST32(dns_soa->expire);
+	soa->minimum = MSG2HOST32(dns_soa->minimum);
+
+	return offset + T_DNS_SOA_SIZE;
+	}
+
+/*
+ *  dns_analyze_rr -- DNS ã¡ãã»ã¼ã¸ã® AN/NS/AR section ãè§£æããã
+ */
+
+ER_UINT
+dns_analyze_rr (T_RSLV_RR *rr, uint_t offset, uint8_t *msg, uint_t length)
+{
+	ER_UINT		error;
+	T_DNS_RR	*dns_rr;
+
+	if ((error = skip_dns_name(msg, offset, length)) < 0)
+		return error;
+	offset = error;
+
+	/* DNS ã¡ãã»ã¼ã¸å
+ã®å½¢å¼ã®ãµã¤ãºã§ãã§ãã¯ããã*/
+	if (offset + T_DNS_RR_SIZE > length)
+		return EV_RSLV_ESIZE;
+
+	/*
+	 *  DNS ã¡ãã»ã¼ã¸å
+ã® SOA RDATA ããã¤ããªã¼ãã¼ãèª¿æ´ãã¦
+	 *  å
+é¨æ§é ä½ã«ã³ãã¼ããã
+	 */
+	dns_rr = (T_DNS_RR*)(msg + offset);
+	rr->type	= MSG2HOST16(dns_rr->type);
+	rr->class	= MSG2HOST16(dns_rr->class);
+	rr->ttl		= MSG2HOST32(dns_rr->ttl);
+	rr->rdlength	= MSG2HOST16(dns_rr->rdlength);
+	rr->rdata_offset= offset + sizeof(rr->type) + sizeof(rr->class)
+	                         + sizeof(rr->ttl)  + sizeof(rr->rdlength);
+
+	return offset + T_DNS_RR_SIZE + rr->rdlength;
+	}
+
+/*
+ *  analyze_dns_msg -- DNS ã¡ãã»ã¼ã¸ãè§£æããã
+ */
+
+static ER_UINT
+analyze_dns_msg (uint8_t *msg, uint_t length, T_RSLV_DNS_MSG *rslv)
+{
+	ER_UINT	offset;
+
+	/* DNS ããããåãåºãã*/
+	if ((offset = get_dns_header(msg, length, rslv)) < 0)
+		return offset;
+
+	/* question section ãèª­ã¿é£ã°ãã*/
+	rslv->qd_offset = offset;
+	if ((offset = skip_dns_qd(msg, offset, length, rslv->dns_hdr.qdcount)) < 0)
+		return offset;
+
+	/* answer section ãèª­ã¿é£ã°ãã*/
+	rslv->an_offset = offset;
+	if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.ancount)) < 0)
+		return offset;
+
+	/* authority records section ãèª­ã¿é£ã°ãã*/
+	rslv->ns_offset = offset;
+	if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.nscount)) < 0)
+		return offset;
+
+	/* additional records  section ãèª­ã¿é£ã°ãã*/
+	rslv->ar_offset = offset;
+	if ((offset = skip_dns_rr(msg, offset, length, rslv->dns_hdr.arcount)) < 0)
+		return offset;
+
+	return E_OK;
+	}
+
+/*
+ *  dns_lookup_host_sub -- DNS ã«ãããã¹ãã®æ
+å ±ãåå¾ããï¼è£å©é¢æ°ï¼ã
+ */
+
+static ER_UINT
+dns_lookup_host_sub (uint16_t flags, char *hostname, uint8_t *msg, 
+                     uint_t msg_size, T_RSLV_DNS_MSG *rslv)
+{
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+	uint16_t	proto;
+#endif
+	ER_UINT		length;
+	ER		error;
+
+	if ((length = setup_dns_msg(flags, hostname, msg, msg_size)) < 0)
+		return length;
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+	if (flags & DNS_LUP_FLAGS_PROTO_IPV6) {
+		proto = DNS_LUP_FLAGS_PROTO_IPV6;
+		if ((length = udp6_dns(flags, &in6_addr_dns, msg, msg_size, length)) < 0)
+			return length;
+		}
+	else if (flags & DNS_LUP_FLAGS_PROTO_IPV4) {
+		proto = DNS_LUP_FLAGS_PROTO_IPV4;
+		if ((length = udp4_dns(flags, &in4_addr_dns, msg, msg_size, length)) < 0)
+			return length;
+		}
+	else {
+		syslog(LOG_NOTICE, "[RSLV] unknown lookup protocol: %04x.", flags & DNS_LUP_FLAGS_PROTO_MASK);
+		return E_PAR;
+		}
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+	if (flags & DNS_LUP_FLAGS_PROTO_IPV6) {
+		if ((length = udp6_dns(flags, &in6_addr_dns, msg, msg_size, length)) < 0)
+			return length;
+		}
+	else {
+		syslog(LOG_NOTICE, "[RSLV] unknown lookup protocol: %04x.", flags & DNS_LUP_FLAGS_PROTO_MASK);
+		return E_PAR;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+	if (flags & DNS_LUP_FLAGS_PROTO_IPV4) {
+		if ((length = udp4_dns(flags, &in4_addr_dns, msg, msg_size, length)) < 0)
+			return length;
+		}
+	else {
+		syslog(LOG_NOTICE, "[RSLV] unknown lookup protocol: %04x.", flags & DNS_LUP_FLAGS_PROTO_MASK);
+		return E_PAR;
+		}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+	if ((error = analyze_dns_msg(msg, length, rslv)) != E_OK)
+		return error;
+	else {
+		if ((rslv->dns_hdr.ancount > 0) && (flags & DNS_LUP_FLAGS_MSG)) {
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+			if (proto & DNS_LUP_FLAGS_PROTO_IPV6) {
+				syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+				       dns_flag_qtype(flags),
+				       ipv62str(NULL, &in6_addr_dns),
+				       RSLV_CFG_DNS_PORTNO);
+				}
+			else {
+				syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+				       dns_flag_qtype(flags),
+				       ip2str(NULL, &in4_addr_dns),
+				       RSLV_CFG_DNS_PORTNO);
+				}
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+			syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+			       dns_flag_qtype(flags),
+			       ipv62str(NULL, &in6_addr_dns),
+			       RSLV_CFG_DNS_PORTNO);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+			syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+			       dns_flag_qtype(flags),
+			       ip2str(NULL, &in4_addr_dns),
+			       RSLV_CFG_DNS_PORTNO);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+			}
+		return length;
+		}
+	}
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+/*
+ *  udp64_dns -- DNS/IPv6ãDNS/IPv4 ã«ãã DNS ãµã¼ãããã¡ãã»ã¼ã¸ãåä¿¡ããã
+ */
+
+static ER_UINT
+udp64_dns (uint16_t flags, char *hostname, uint8_t *msg, 
+           uint_t msg_size, T_RSLV_DNS_MSG *rslv)
+{
+	ER_UINT		length;
+	ER		error;
+	uint16_t	proto;
+
+	/* DNS ã¡ãã»ã¼ã¸ãä½æããã*/
+	if ((length = setup_dns_msg(flags, hostname, msg, msg_size)) < 0)
+		return length;
+
+	/* UDP/IPv6 ã® DNS ãµã¼ãã«ç
+§ä¼ããã*/
+	proto = DNS_LUP_FLAGS_PROTO_IPV6;
+	if ((length = udp6_dns(flags, &in6_addr_dns, msg, msg_size, length)) < 0) {
+		/*  UDP/IPv6 ã® DNS ãµã¼ãã¸ã®ç
+§ä¼ãã¨ã©ã¼ã«ãªã£ãæã¯ãUDP/IPv4 ã® DNS ãµã¼ãã«ç
+§ä¼ããã*/
+		if ((length = setup_dns_msg(flags, hostname, msg, msg_size)) < 0)
+			return length;
+
+		/* UDP/IPv4 ã® DNS ãµã¼ãã«ç
+§ä¼ããã*/
+		proto = DNS_LUP_FLAGS_PROTO_IPV4;
+		if ((length = udp4_dns(flags, &in4_addr_dns, msg, msg_size, length)) < 0)
+			return length;
+		}
+
+	/* DNS ã¡ãã»ã¼ã¸ãè§£æããã*/
+	if ((error = analyze_dns_msg(msg, length, rslv)) != E_OK)
+		return error;
+	else {
+		if ((rslv->dns_hdr.ancount > 0) && (flags & DNS_LUP_FLAGS_MSG)) {
+			if (proto & DNS_LUP_FLAGS_PROTO_IPV6) {
+				syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+				       dns_flag_qtype(flags),
+				       ipv62str(NULL, &in6_addr_dns),
+				       RSLV_CFG_DNS_PORTNO);
+				}
+			else {
+				syslog(LOG_NOTICE, "[RSLV] reslv:    type: %s, server: %s.%d.",
+				       dns_flag_qtype(flags),
+				       ip2str(NULL, &in4_addr_dns),
+				       RSLV_CFG_DNS_PORTNO);
+				}
+			}
+		return length;
+		}
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  dns_lookup_host -- DNS ã«ãããã¹ãã®æ
+å ±ãåå¾ããã
+ */
+
+ER_UINT
+dns_lookup_host (uint16_t flags, char *hostname, uint8_t *msg, 
+              uint_t msg_size, T_RSLV_DNS_MSG *rslv)
+{
+	ER	error;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if ((flags & DNS_LUP_FLAGS_PROTO_MASK) == (DNS_LUP_FLAGS_PROTO_IPV6 | DNS_LUP_FLAGS_PROTO_IPV4)) {
+
+		/*
+		 *  IPv6/IPv4 ã®ä¸¡æ¹ãæå®ãããæã®å¦ç
+		 *  ã¾ã type == AAAA ã§ DNS ãµã¼ãã«ç
+§ä¼ããã
+		 */
+		if (flags & DNS_LUP_FLAGS_QTYPE_PTR) {
+			if ((error = udp64_dns(flags, hostname, msg, msg_size, rslv)) < 0)
+				return error;
+			}
+		else if (flags & DNS_LUP_FLAGS_QTYPE_AAAA) {
+			if ((error = udp64_dns(flags & ~DNS_LUP_FLAGS_QTYPE_A, hostname, msg, msg_size, rslv)) < 0)
+				return error;
+			}
+		else {
+			HOST2MSG16(rslv->dns_hdr.ancount, 0);
+			error = E_OK;
+			}
+
+		if (rslv->dns_hdr.ancount == 0) {
+
+			/*
+			 *  type == AAAA ã§ã¢ãã¬ã¹è§£æ±ºãã§ããªãã£ãæã®å¦ç
+			 *  type == A ã§ DNS ãµã¼ãã«ç
+§ä¼ããã
+			 */
+			if (flags & DNS_LUP_FLAGS_QTYPE_A)
+				return udp64_dns(flags & ~DNS_LUP_FLAGS_QTYPE_AAAA, hostname, msg, msg_size, rslv);
+			else {
+				syslog(LOG_NOTICE, "[RSLV] unknown query type: %04x.", flags & DNS_LUP_FLAGS_QTYPE_MASK);
+				return E_PAR;
+				}
+			}
+		else
+			return error;
+		}
+
+	if ((flags & DNS_LUP_FLAGS_QTYPE_MASK) == (DNS_LUP_FLAGS_QTYPE_AAAA | DNS_LUP_FLAGS_QTYPE_A)) {
+
+		/*
+		 *  type == AAAA ã¨ A ã®ä¸¡æ¹ãæå®ãããæã®å¦ç
+		 *  ã¾ã type == AAAA ã§ DNS ãµã¼ãã«ç
+§ä¼ããã
+		 */
+		if ((error = dns_lookup_host_sub(flags & ~DNS_LUP_FLAGS_QTYPE_A, hostname, msg, msg_size, rslv)) < 0)
+			return error;
+
+		if (rslv->dns_hdr.ancount == 0) {
+
+			/*
+			 *  type == AAAA ã§ã¢ãã¬ã¹è§£æ±ºãã§ããªãã£ãæã®å¦ç
+			 *  type == A ã§ DNS ãµã¼ãã«ç
+§ä¼ããã
+			 */
+			return dns_lookup_host_sub(flags & ~DNS_LUP_FLAGS_QTYPE_AAAA, hostname, msg, msg_size, rslv);
+			}
+#if 0
+		else {
+			syslog(LOG_NOTICE, "[RSLV] unknown query type: %04x.", flags & DNS_LUP_FLAGS_QTYPE_MASK);
+			return E_PAR;
+			}
+#endif
+		}
+
+	else {
+		/* IPv6/IPv4 ã®ã©ã¡ããä¸æ¹ãæå®ãããæã®å¦ç */
+		error = dns_lookup_host_sub(flags, hostname, msg, msg_size, rslv);
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	error = dns_lookup_host_sub(flags, hostname, msg, msg_size, rslv);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	return error;
+	}
+
+#if defined(SUPPORT_INET6)
+
+/*
+ *  dns_in6_set_dname -- DNS ã® ãã¡ã¤ã³åãè¨­å®ããï¼DHCPv6ç¨ï¼ã
+ *
+ *    æ³¨æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã
+ */
+
+const uint8_t *
+dns_in6_set_dname (const uint8_t *new, uint_t len)
+{
+	uint8_t	*dst;
+	int	label_len, name_len = DNS_NAME_LENGTH;
+
+	if (new == NULL)
+		strcpy((char *)dns_domain_name, RSLV_CFG_DNS_DOMAIN_NAME_STR);
+	else {
+		dst = dns_domain_name;
+		while ((*new != 0) && (name_len > 0) && (len > 0)) {
+			label_len = *new ++;
+			len --;
+			while ((name_len > 0) && (len > 0) && (label_len > 0)) {
+				*dst ++ = *new ++;
+				name_len  --;
+				len       --;
+				label_len --;
+				}
+			if ((*new != 0) && (name_len > 0)) {
+				*dst ++ = '.';
+				name_len --;
+				}
+			}
+		*dst = '\0';
+		}
+	return dns_domain_name;
+	}
+
+/*
+ *  dns_in6_get_dname -- DNS ã® ãã¡ã¤ã³åãå¾ãã
+ */
+
+const uint8_t *
+dns_in6_get_dname (void)
+{
+	return dns_domain_name;
+	}
+
+/*
+ *  dns_in6_set_addr -- DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãè¨­å®ããï¼DHCPv6ç¨ï¼ã
+ *
+ *    æ³¨æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã
+ */
+
+T_IN6_ADDR *
+dns_in6_set_addr (T_IN6_ADDR *new)
+{
+	if (new == NULL)
+		in6_addr_dns = in6_addr_dns_init;
+	else
+		in6_addr_dns = *new;
+	return &in6_addr_dns;
+	}
+
+/*
+ *  dns_in6_get_addr -- DNS ãµã¼ãã® IPv6 ã¢ãã¬ã¹ãå¾ãã
+ */
+
+T_IN6_ADDR *
+dns_in6_get_addr (T_IN6_ADDR *dst)
+{
+	if (dst == NULL)
+		return NULL;
+	else {
+		*dst = in6_addr_dns;
+		return dst;
+		}
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  dns_in4_set_dname -- DNS ã® ãã¡ã¤ã³åãè¨­å®ããï¼DHCPv4ç¨ï¼ã
+ *
+ *    æ³¨æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã
+ */
+
+const uint8_t *
+dns_in4_set_dname (const uint8_t *new, uint_t len)
+{
+	uint8_t	*dst;
+	int	name_len = DNS_NAME_LENGTH;
+
+	if (new == NULL)
+		strcpy((char *)dns_domain_name, RSLV_CFG_DNS_DOMAIN_NAME_STR);
+	else {
+		dst = dns_domain_name;
+		while ((name_len -- > 0) && (len -- > 0) && *new)
+			*dst ++ = *new ++;
+		*dst = '\0';
+		}
+	return dns_domain_name;
+	}
+
+/*
+ *  dns_in4_get_dname -- DNS ã® ãã¡ã¤ã³åãå¾ãã
+ */
+
+const uint8_t *
+dns_in4_get_dname (void)
+{
+	return dns_domain_name;
+	}
+
+/*
+ *  dns_in4_set_addr -- DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãè¨­å®ããï¼DHCPv4ç¨ï¼ã
+ *
+ *    æ³¨æ: new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã
+ */
+
+T_IN4_ADDR *
+dns_in4_set_addr (T_IN4_ADDR *new)
+{
+	if (new == NULL)
+		in4_addr_dns = IPV4_ADDR_DNS;
+	else
+		in4_addr_dns = *new;
+	return &in4_addr_dns;
+	}
+
+/*
+ *  dns_in4_get_addr -- DNS ãµã¼ãã® IPv4 ã¢ãã¬ã¹ãå¾ãã
+ */
+
+T_IN4_ADDR *
+dns_in4_get_addr (T_IN4_ADDR *dst)
+{
+	if (dst == NULL)
+		return NULL;
+	else {
+		*dst = in4_addr_dns;
+		return dst;
+		}
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+/*
+ *  dns_host_addr -- ãã¹ãåã IP ã¢ãã¬ã¹ã«å¤æããã
+ */
+
+ER
+dns_host_addr (uint16_t flags, char *hostname, T_IN_ADDR *addr)
+{
+	T_RSLV_DNS_MSG	rslv;
+	T_RSLV_RR	rr;
+	ER_UINT		length, offset;
+	ER		error = E_OK;
+	int		scount;
+	uint8_t 	*msg;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	T_IN4_ADDR	addr4;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	if ((error = tget_mpf(MPF_RSLV_SRBUF, (void*)&msg, TMO_FEVR)) != E_OK)
+		return error;
+
+	if ((length = dns_lookup_host(flags, hostname, msg, DNS_UDP_MSG_LENGTH, &rslv)) < 0) {
+		error = length;
+		goto err_ret;
+		}
+
+	offset = rslv.an_offset;
+	for (scount = 1; scount <= rslv.dns_hdr.ancount; scount ++) {
+		if ((offset = dns_analyze_rr(&rr, offset, msg, length)) < 0) {
+			error = offset;
+			goto err_ret;
+			}
+
+#if defined(SUPPORT_INET6)
+
+		if (rr.type == DNS_TYPE_AAAA && rr.class == DNS_CLASS_IN &&  rr.rdlength == sizeof(*addr)) {
+			memcpy((void*)addr, (void*)(msg + rr.rdata_offset), sizeof(*addr));
+			break;
+			}
+
+#if defined(SUPPORT_INET4)
+
+		if (rr.type == DNS_TYPE_A && rr.class == DNS_CLASS_IN && rr.rdlength == sizeof(addr4)) {
+			addr4 = msg2host32(msg + rr.rdata_offset);
+			in6_make_ipv4mapped(addr, addr4);
+			break;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+		if (rr.type == DNS_TYPE_A && rr.class == DNS_CLASS_IN && rr.rdlength == sizeof(*addr)) {
+			*addr = msg2host32((msg + rr.rdata_offset));
+			break;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+		}
+	if (scount > rslv.dns_hdr.ancount)
+		error = EV_RSLV_UNEXPCT;
+
+err_ret:
+	rel_mpf(MPF_RSLV_SRBUF, (void*)msg);
+	return error;
+	}
+
+#endif	/* of #if defined(USE_RESOLVER) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver.h	(revision 313)
@@ -0,0 +1,332 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãã¹ãåââIP ã¢ãã¬ã¹å¤æ
+ */
+
+#ifndef RESOLVER_H
+#define RESOLVER_H
+
+#include <netapp/dns.h>
+
+/*
+ *  ã³ã³ãã¤ã«æã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ã®æå®
+ */
+
+/* ãã¼ãçªå· */
+
+#define RSLV_CFG_DNS_PORTNO	53
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ãå¤
+ */
+
+#define TMO_DNS_UDP_SND		ULONG_C(1*1000)	/* [ms]ãDNS ãµã¼ãã¸ã®   UDP éä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define TMO_DNS_UDP_RCV		ULONG_C(5*1000)	/* [ms]ãDNS ãµã¼ãããã® UDP åä¿¡ã¿ã¤ã ã¢ã¦ã	*/
+#define NUM_DNS_UDP_RETRY	1		/* ãªãã©ã¤åæ°					*/
+
+/*
+ *  ãã¡ã¤ã³å
+ */
+
+
+#if !defined(RSLV_CFG_DNS_DOMAIN_NAME_STR)
+#define RSLV_CFG_DNS_DOMAIN_NAME_STR	""
+#endif
+
+/*
+ *  DNS ãµã¼ãã¼ã® IPã¢ãã¬ã¹
+ */
+
+#if !defined(IPV6_ADDR_DNS_INIT)
+#define IPV6_ADDR_DNS_INIT	IPV6_ADDR_UNSPECIFIED_INIT
+#endif
+
+#if !defined(IPV4_ADDR_DNS)
+#define	IPV4_ADDR_DNS		IPV4_ADDRANY
+#endif
+
+/*
+ *  éåä¿¡ãããã¡æ°
+ */
+
+#define NUM_MPF_RSLV_SRBUF	1
+
+/*
+ *  ãã­ã°ã©ã ã§ä½¿ç¨ããæ
+å ±ã®å®ç¾©
+ */
+
+/*
+ *  ãã­ã°ã©ã ã§ä½¿ç¨ãã DNS ããã
+ *
+ *    æ³¨æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                      ID                       |
+ *  +--+-----------+--+--+--+--+--------+-----------+
+ *  |QR|   Opcode  |AA|TC|RD|RA|    Z   |   RCODE   |
+ *  +--+--------+--+--+--+--+--+--------+-----------+
+ *  |                    QDCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    ANCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    NSCOUNT                    |
+ *  +-----------------------------------------------+
+ *  |                    ARCOUNT                    |
+ *  +-----------------------------------------------+
+ */
+
+typedef struct rslv_dns_hdr {
+	uint16_t	id;		/* ID */
+	uint16_t	code;	/* QR:		1
+				   Opcode:	4
+				   AA:		1
+				   TC:		1
+				   RD:		1
+				   RA:		1
+				   Z:		3
+				   RCODE:	4
+				   */
+	uint16_t	qdcount;	/* question   section */
+	uint16_t	ancount;	/* answer     section */
+	uint16_t	nscount;	/* authority  section */
+	uint16_t	arcount;	/* additional section */
+	} T_RSLV_DNS_HDR;
+
+/*
+ *  DNS message data
+ *
+ *    æ³¨æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼
+ */
+
+typedef struct rslv_dns_msg {
+	T_RSLV_DNS_HDR	dns_hdr;	/* DNS heder                            */
+	uint_t		qd_offset;	/* offset of question           section */
+	uint_t		an_offset;	/* offset of answer             section */
+	uint_t		ns_offset;	/* offset of authority  records section */
+	uint_t		ar_offset;	/* offset of additional records section */
+	} T_RSLV_DNS_MSG;
+
+/*
+ *  RR (Resouce Record) å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                      NAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                      TYPE                     |
+ *  +-----------------------------------------------+
+ *  |                      CLASS                    |
+ *  +-----------------------------------------------+
+ *  |                       TTL                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    RDLENGTH                   |
+ *  +-----------------------------------------------+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     RDATA                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *
+ *    æ³¨æ: offset ã®åç¹ã¯ DNS message ã®å
+é ­
+ *          ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼
+ */
+
+typedef struct rslv_rr {
+	uint16_t	type;		/* TYPE			*/
+	uint16_t	class;		/* CLASS		*/
+	uint32_t	ttl;		/* TTL			*/
+	uint16_t	rdlength;	/* RDATA length		*/
+	uint_t		rdata_offset;	/* offset of RDATA	*/
+	} T_RSLV_RR;
+
+/*
+ *  Question section å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     QNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                     QTYPE                     |
+ *  +-----------------------------------------------+
+ *  |                     QCLASS                    |
+ *  +-----------------------------------------------+
+ *
+ *    æ³¨æ: ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼
+ */
+
+typedef struct rslv_qd {
+	uint16_t	type;		/* TYPE			*/
+	uint16_t	class;		/* CLASS		*/
+	} T_RSLV_QD;
+
+/*
+ *  SOA RDATA å½¢å¼
+ *
+ *    0                    7  8                   15
+ *  +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     MNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                       .                       |
+ *  +-----------------      .      -----------------+
+ *  |                     RNAME                     |
+ *  +-----------------      .      -----------------+
+ *  |                       .                       |
+ *  +-----------------------------------------------+
+ *  |                    SERIAL                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    REFRESH                    |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                     RETRY                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    EXPIRE                     |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *  |                    MINIMUM                    |
+ *  |                                               |
+ *  +-----------------------------------------------+
+ *
+ *    æ³¨æ: offset ã®åç¹ã¯ DNS message ã®å
+é ­
+ *          ã¡ã³ãã¯ãã¹ããã¤ããªã¼ãã¼
+ */
+
+typedef struct rslv_soa {
+	uint32_t	serial;		/* SERIAL		*/
+	uint32_t	refresh;	/* REFRESH		*/
+	uint32_t	retry;		/* RETRY		*/
+	uint32_t	expire;		/* EXPIRE		*/
+	uint32_t	minimum;	/* MINIMUM		*/
+	} T_RSLV_SOA;
+
+/*
+ *  dns_lookup_host ã® flags ã®å®ç¾©
+ *
+ *    æ³¨æ:
+ *      dns.h ã§å®ç¾©ããã¦ãã DNS_OPCODE ã¨éãªããªããã¨ã
+ *      #define DNS_OPCODE_MASK		0x7800U
+ */
+
+#define DNS_LUP_FLAGS_NAME_IPV4		0x0004U
+#define DNS_LUP_FLAGS_NAME_IPV6		0x0006U
+#define DNS_LUP_FLAGS_NAME_HOST		0x0010U
+#define DNS_LUP_FLAGS_NAME_FQDN		0x0011U
+#define DNS_LUP_FLAGS_NAME_MASK		0x001fU
+
+#define DNS_LUP_OPCODE_FORWARD		DNS_OPCODE_FORWARD
+#define DNS_LUP_OPCODE_REVERSE		DNS_OPCODE_REVERSE
+#define DNS_LUP_OPCODE_STATUS		DNS_OPCODE_STATUS
+#define DNS_LUP_OPCODE_MASK		DNS_OPCODE_MASK
+
+#define DNS_LUP_FLAGS_PROTO_IPV4	0x0040U
+#define DNS_LUP_FLAGS_PROTO_IPV6	0x0080U
+#define DNS_LUP_FLAGS_PROTO_MASK	0x00c0U
+
+#define DNS_LUP_FLAGS_QTYPE_A		0x0100U
+#define DNS_LUP_FLAGS_QTYPE_AAAA	0x0200U
+#define DNS_LUP_FLAGS_QTYPE_PTR		0x0400U
+#define DNS_LUP_FLAGS_QTYPE_MASK	0x0700U
+
+#define DNS_LUP_FLAGS_MSG		0x0020U
+
+/*
+ *  ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã
+ */
+
+#define EV_RSLV_ESIZE			(-100)		/* DNSã¡ãã»ã¼ã¸ã®ååé·ç°å¸¸	*/
+#define EV_RSLV_UNEXPCT			(-101)		/* äºæããªãDNSã¡ãã»ã¼ã¸	*/
+
+/*
+ *  é¢æ°
+ */
+
+extern ER_UINT	dns_lookup_host (uint16_t flags, char *hostname, uint8_t *msg, uint_t msg_len, T_RSLV_DNS_MSG *rslv);
+extern ER	dns_host_addr (uint16_t flags, char *hostname, T_IN_ADDR *addr);
+extern ER_UINT	dns_analyze_qd (T_RSLV_QD *qd, uint_t offset, uint8_t *msg, uint_t length);
+extern ER_UINT	dns_analyze_rr (T_RSLV_RR *rr, uint_t offset, uint8_t *msg, uint_t length);
+extern ER_UINT	dns_analyze_soa (T_RSLV_SOA *soa, uint_t offset, uint8_t *msg, uint_t length);
+
+/*
+ *  æ³¨æ: dns_in6_set_dnameãdns_in4_set_dnameã
+ *        dns_in6_set_addrã dns_in4_set_addr ã§ã
+ *        new ã« NULL ãæå®ããã¨ãåæå¤ã«æ»ãã
+ */
+
+extern const uint8_t *dns_in6_set_dname (const uint8_t *new, uint_t len);
+extern const uint8_t *dns_in6_get_dname (void);
+extern const uint8_t *dns_in4_set_dname (const uint8_t *new, uint_t len);
+extern const uint8_t *dns_in4_get_dname (void);
+extern T_IN6_ADDR *dns_in6_set_addr (T_IN6_ADDR *new);
+extern T_IN6_ADDR *dns_in6_get_addr (T_IN6_ADDR *dst);
+extern T_IN4_ADDR *dns_in4_set_addr (T_IN4_ADDR *new);
+extern T_IN4_ADDR *dns_in4_get_addr (T_IN4_ADDR *dst);
+
+#endif	/* of #ifndef RESOLVER_H */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_asp.cfg	(revision 313)
@@ -0,0 +1,66 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ASP ç¨ Resolver ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_RESOLVER
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_RSLV_SRBUF, {
+	TA_TFIFO,
+	NUM_MPF_RSLV_SRBUF,
+	DNS_UDP_MSG_LENGTH,
+	NULL,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_RESOLVER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_jsp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_jsp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/resolver_jsp.cfg	(revision 313)
@@ -0,0 +1,65 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  JSP ç¨ Resolver ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_RESOLVER
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* éåä¿¡ãããã¡ */
+
+CRE_MPF(MPF_RSLV_SRBUF, {
+	TA_TFIFO,
+	NUM_MPF_RSLV_SRBUF,
+	DNS_UDP_MSG_LENGTH,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_RESOLVER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.c	(revision 313)
@@ -0,0 +1,535 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»IPv4
+ *    ã»IPv6
+ */
+
+#include <stdlib.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_discard_cli.h>
+
+#ifdef USE_TCP_DISCARD_CLI
+
+/* discard ãµã¼ãã®ãã¼ãçªå· */
+
+#define DISCARD_SRV_PORTNO	UINT_C(9)
+
+/* è¡¨ç¤º */
+
+/*#define SHOW_RCV_RANGE*/
+
+/* éä¿¡éé */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define START_DLY	(10*SYSTIM_HZ)
+#define SND_ITV		(5*SYSTIM_HZ)
+#define SLP_ITV		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#define START_DLY	(10*SYSTIM_HZ)
+#define SND_ITV		(5*SYSTIM_HZ)
+#define SLP_ITV		(60*SYSTIM_HZ)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+/* èªåå®è¡ */
+
+#if defined(TCP_DISCARD_CLI_AUTO_RUN_STR)
+#else
+#if 0
+#if defined(SUPPORT_INET6)
+#define TCP_DISCARD_CLI_AUTO_RUN_STR	"fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 - 0"
+#else
+#define TCP_DISCARD_CLI_AUTO_RUN_STR	"172.25.129.142 - 0"
+#endif
+#endif
+#endif
+
+/*
+ *  ãããã¡ãµã¤ãºã®å®ç¾©
+ */
+
+#define NUM_DISCARD		5
+#define NUM_REP_PAT		40
+#define PAT_BEGIN		' '
+#define PAT_END			'~'
+#define SND_BUF_SIZE		((PAT_END - PAT_BEGIN + 1) * NUM_REP_PAT)
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+bool_t tcp_discard_cli_valid;
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_SWBUF_CSAVE_ONLY
+uint8_t tcp_discard_cli_swbuf[TCP_DISCARD_CLI_SWBUF_SIZE];
+#endif
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+static T_IPEP		nblk_src = {
+				IP_ADDRANY,
+				TCP_PORTANY,
+				};
+static T_IPEP		nblk_dst;
+static ER_UINT		nblk_error;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_discard_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	nblk_error = *(ER*)p_parblk;
+
+	switch (fncd) {
+
+	case TFN_TCP_CON_CEP:
+		syscall(sig_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		if (nblk_error < 0)
+			syslog(LOG_NOTICE, "[TDCn:%02u CBN] close error: %s", cepid, itron_strerror(nblk_error));
+		syscall(sig_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_ACP_CEP:
+	case TFN_TCP_SND_DAT:
+	case TFN_TCP_GET_BUF:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+/*
+ *  send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static ER
+send_tcp_discard (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno)
+{
+	static char smsg[SND_BUF_SIZE];
+
+	ER_UINT		slen;
+	ER		error;
+	SYSTIM		time;
+	uint32_t	total;
+	uint16_t	soff, discard, rep, scount;
+	uint8_t		pat, *p;
+
+	nblk_dst.ipaddr = *ipaddr;
+	nblk_dst.portno = portno;
+
+	p = smsg;
+	for (rep = NUM_REP_PAT; rep -- > 0; )
+		for (pat = PAT_BEGIN; pat <= PAT_END; pat ++)
+			*p ++ = pat;
+
+	if ((error = TCP_CON_CEP(cepid, &nblk_src, &nblk_dst, TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] connect error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	/* æ¥ç¶ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
+
+	if (nblk_error != E_OK)
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] connect error: %s", cepid, itron_strerror(nblk_error));
+	else {
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] conct: %7lu, to:   %s.%d",
+		                   cepid, time / SYSTIM_HZ, IP2STR(NULL, ipaddr), nblk_dst.portno);
+
+		scount = total = 0;
+		for (discard = NUM_DISCARD; discard -- > 0; ) {
+			soff = 0;
+			while (soff < SND_BUF_SIZE) {
+				if ((slen = tcp_snd_dat(cepid, smsg + soff, sizeof(smsg) - soff, TMO_FEVR)) < 0) {
+					syslog(LOG_NOTICE, "[TDCn:%02u SND] send error: %s",
+					                   cepid, itron_strerror(slen));
+					goto cls_ret;
+					}
+				soff  += (uint16_t)slen;
+				total +=     slen;
+				scount ++;
+
+#ifdef SHOW_RCV_RANGE
+				syslog(LOG_NOTICE, "[TDCn:%02u SND] send:  %7lu, len: %4u, off: %4u",
+				                   cepid, scount, (uint16_t)slen, soff);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+				syscall(dly_tsk(500 + netapp_rand() % SYSTIM_HZ));
+				}
+			}
+
+	cls_ret:
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] finsh: %7lu, ttl: %lu",
+		                   cepid, time / SYSTIM_HZ, scount, total);
+
+		if ((error = tcp_sht_cep(cepid)) < 0)
+			syslog(LOG_NOTICE, "[TDCn:%02u SND] shutdown error: %s", cepid, itron_strerror(error));
+
+		if ((error = tcp_cls_cep(cepid, TMO_NBLK)) != E_WBLK)
+			syslog(LOG_NOTICE, "[TDCn:%02u SND] close error: %s", cepid, itron_strerror(error));
+
+		/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_DISCARD_CLI_NBLK_READY));
+		}
+
+	return E_OK;
+	}
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+/*
+ *  send_tcp_discard -- DISCARD/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static ER
+send_tcp_discard (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno)
+{
+	static char smsg[SND_BUF_SIZE];
+	static T_IPEP src = {
+		IP_ADDRANY,
+		TCP_PORTANY,
+		};
+
+	T_IPEP		dst;
+	ER_UINT		slen;
+	ER		error;
+	SYSTIM		time;
+	uint16_t	pat, soff, discard, rep, scount, total;
+	uint8_t		*p;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+
+	p = smsg;
+	for (rep = NUM_REP_PAT; rep -- > 0; )
+		for (pat = PAT_BEGIN; pat <= PAT_END; pat ++)
+			*p ++ = pat;
+
+	if ((error = TCP_CON_CEP(cepid, &src, &dst, 60 * 1000)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] connect error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDCn:%02u SND] conct: %7lu, to:   %s.%d",
+	                   cepid, time / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+
+	scount = total = 0;
+	for (discard = NUM_DISCARD; discard -- > 0; ) {
+		soff = 0;
+		while (soff < SND_BUF_SIZE) {
+			if ((slen = tcp_snd_dat(cepid, smsg + soff, sizeof(smsg) - soff, TMO_FEVR)) < 0) {
+				syslog(LOG_NOTICE, "[TDCn:%02u SND] send error: %s", cepid, itron_strerror(slen));
+				goto cls_ret;
+				}
+			soff  += (uint16_t)slen;
+			total +=     slen;
+			scount ++;
+
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TDCn:%02u SND] send:  %7lu, len: %4u, off: %4u",
+			                   cepid, scount, (uint16_t)slen, soff);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+			syscall(dly_tsk(500 + netapp_rand() % SYSTIM_HZ));
+			}
+		}
+
+cls_ret:
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDCn:%02u SND] finsh: %7lu, ttl: %lu",
+	                   cepid, time / SYSTIM_HZ, scount, total);
+
+	if ((error = tcp_sht_cep(cepid)) < 0)
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] shutdown error: %s", cepid, itron_strerror(error));
+
+	if ((error = tcp_cls_cep(cepid, TMO_FEVR)) < 0)
+		syslog(LOG_NOTICE, "[TDCn:%02u SND] close error: %s", cepid, itron_strerror(error));
+
+	return E_OK;
+	}
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+/*
+ *  getcomd -- ã³ãã³ããå¾ãã
+ */
+
+#ifdef TCP_DISCARD_CLI_AUTO_RUN_STR
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER		error;
+	char		*line = NULL;
+	static char	auto_run_str[] = TCP_DISCARD_CLI_AUTO_RUN_STR;
+	static int_t	count = 0;
+
+	if (retry || (count == 0)) {
+		line = auto_run_str;
+		dly_tsk(3 * 1000);
+		}
+	else {
+		while ((error = rcv_dtq(DTQ_TCP_DISCARD_CLI, (intptr_t*)&line)) != E_OK) {
+			syslog(LOG_NOTICE, "[TDCn:%02u TSK] error: %s", cepid, itron_strerror(error));
+			dly_tsk(SLP_ITV);
+			}
+		}
+
+	count ++;
+	return line;
+	}
+
+#else	/* of #ifdef TCP_DISCARD_CLI_AUTO_RUN_STR */
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER	error;
+	char	*line = NULL;
+
+	while ((error = rcv_dtq(DTQ_TCP_DISCARD_CLI, (intptr_t*)&line)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDCn:%02u TSK] error: %s", cepid, itron_strerror(error));
+		dly_tsk(SLP_ITV);
+		}
+	return line;
+	}
+
+#endif	/* of #ifdef TCP_DISCARD_CLI_AUTO_RUN_STR */
+
+void
+tcp_discard_cli_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	T_IN_ADDR	addr;
+	ER		error;
+	uint8_t		*line;
+	int_t		rep, count;
+	bool_t		retry = false;
+	uint16_t	portno;
+	char		apip;
+
+#ifdef USE_TCP_EXTENTIONS
+
+	T_TCP_CCEP	ccep;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef TCP_ECHO_CLI_AUTO_RUN_STR
+	dly_tsk(START_DLY);
+#endif
+	get_tid(&tskid);
+
+#if defined(SUPPORT_INET6)
+	apip = API_PROTO_IPV6;
+#if defined(SUPPORT_INET4)
+	syslog(LOG_NOTICE, "[TCPn DISCARD CLI:%d,%d] started.", tskid, (ID)exinf);
+#else
+	syslog(LOG_NOTICE, "[TCP6 DISCARD CLI:%d,%d] started.", tskid, (ID)exinf);
+#endif
+#else
+	apip = API_PROTO_IPV4;
+	syslog(LOG_NOTICE, "[TCP4 DISCARD CLI:%d,%d] started.", tskid, (ID)exinf);
+#endif
+
+	while (true) {
+		line = skip_blanks(getcomd((ID)exinf, retry));
+
+		if ((line = lookup_ipaddr(&addr, line, apip)) == NULL) {
+			syslog(LOG_NOTICE, "[TDCn:%02u TSK] sleep %d.%03u[s], unknown host.",
+			       (ID)exinf, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ);
+			dly_tsk(SLP_ITV);
+			syslog(LOG_NOTICE, "[TDCn:%02u TSK] resume.", (ID)exinf);
+			retry = true;
+			continue;
+			}
+		else
+			retry = false;
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {	/* Port No */
+			line = get_int(&rep, line);
+			portno = (uint16_t)rep;
+			}
+		else {
+			line ++;
+			portno = DISCARD_SRV_PORTNO;
+			}
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9')	/* Repeat */
+			line = get_int(&rep, line);
+		else
+			rep = 1;
+
+#ifdef USE_TCP_EXTENTIONS
+
+		ccep.cepatr = 0;
+		ccep.sbufsz = TCP_DISCARD_CLI_SWBUF_SIZE;
+		ccep.rbufsz = 0;
+		ccep.rbuf = NADR;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+		ccep.sbuf = NADR;
+#else
+		ccep.sbuf = tcp_discard_cli_swbuf;
+#endif
+#ifdef USE_TCP_NON_BLOCKING
+		ccep.callback = (FP)callback_nblk_tcp_discard_cli;
+#else
+		ccep.callback = NULL;
+#endif
+
+		if ((error = ALLOC_TCP_CEP(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[TDCn:%02u TSK] CEP create error: %s", cepid, itron_strerror(error));
+			continue;
+			}
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		cepid = (ID)exinf;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		tcp_discard_cli_valid = true;
+		count = 0;
+		while (rep == 0 || count < rep) {
+			if (!tcp_discard_cli_valid) {
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] canceled.", cepid);
+				break;
+				}
+
+			count ++;
+			if (rep == 0) {
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] start:       repeat: %d", cepid, count);
+				error = send_tcp_discard(cepid, &addr, portno);
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] finsh:       repeat: %d", cepid, count);
+				}
+			else {
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] start:       repeat: %d/%d", cepid, count, rep);
+				error = send_tcp_discard(cepid, &addr, portno);
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] finsh:       repeat: %d/%d", cepid, count, rep);
+				}
+
+			if (error != E_OK) {
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] sleep %d.%03u[s], error: %s",
+				                   cepid, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ, itron_strerror(error));
+				tslp_tsk(SLP_ITV);
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] resume.", cepid);
+				}
+
+#if defined(SND_ITV)
+#if SND_ITV > 0
+			if (count < rep) {
+				uint_t itv;
+				
+				itv = SND_ITV;
+				syslog(LOG_NOTICE, "[TDCn:%02u TSK] interval: %d[s].", cepid, itv / SYSTIM_HZ);
+				syscall(dly_tsk(SND_ITV));
+				}
+#endif
+#endif
+			}
+
+#ifdef USE_TCP_EXTENTIONS
+
+		if ((error = FREE_TCP_CEP(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TDCn:%02u TSK] CEP delete error: %s", cepid, itron_strerror(error));
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.cfg	(revision 313)
@@ -0,0 +1,91 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_DISCARD_CLI
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+CRE_TSK(TCP_DISCARD_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	tcp_discard_cli_task,
+	TCP_DISCARD_CLI_MAIN_PRIORITY,
+	TCP_DISCARD_CLI_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+CRE_TSK(TCP_DISCARD_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	TCP_DISCARD_CLI_CEPID,
+	tcp_discard_cli_task,
+	TCP_DISCARD_CLI_MAIN_PRIORITY,
+	TCP_DISCARD_CLI_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_TCP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
+
+/* ã»ããã© */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+CRE_SEM(SEM_TCP_DISCARD_CLI_NBLK_READY,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_cli.h	(revision 313)
@@ -0,0 +1,100 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TCP_DISCARD_CLI_H_
+#define _TCP_DISCARD_CLI_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define TCP_DISCARD_CLI_STACK_SIZE	1024		/* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+
+/* åªå
+åº¦ */
+
+#define TCP_DISCARD_CLI_MAIN_PRIORITY	5	/* TCP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_DISCARD_CLI_SWBUF_SIZE	(1024)
+
+#elif defined(SUPPORT_INET4)
+
+#define TCP_DISCARD_CLI_SWBUF_SIZE	(512)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define TCP_DISCARD_CLI_SWBUF_SIZE	(2048)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+/*
+ *  å¤æ°
+ */
+
+extern bool_t	tcp_discard_cli_valid;
+
+/* TCP éåä¿¡ãããã¡ */
+
+extern uint8_t tcp_discard_cli_swbuf[];
+extern uint8_t tcp_discard_cli_rwbuf[];
+
+/* ã¿ã¹ã¯ */
+
+extern void tcp_discard_cli_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_nblk_tcp_discard_cli (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _TCP_DISCARD_CLI_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.c	(revision 313)
@@ -0,0 +1,369 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  DISCARD ãµã¼ã
+ *
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4
+ *    ã»IPv6
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_discard_srv.h>
+
+#ifdef USE_TCP_DISCARD_SRV
+
+/*
+ *  è¡¨ç¤º
+ */
+
+//#define SHOW_RCV_RANGE
+//#define SHOW_RCV_DATA
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_RWBUF_CSAVE_ONLY
+uint8_t tcp_discard_srv_rwbuf[TCP_DISCARD_SRV_RWBUF_SIZE];
+#endif
+
+/*
+ *  TCP DISCARD ãµã¼ãã¿ã¹ã¯
+ */
+
+#define BUF_SIZE	TCP_DISCARD_SRV_RWBUF_SIZE
+
+#ifdef USE_COPYSAVE_API
+
+static ER
+tcp_discard_srv (ID cepid, ID repid)
+{
+	T_IPEP		dst;
+	ER_UINT		rlen;
+	ER		error;
+	SYSTIM		time;
+	uint32_t	total;
+	uint16_t	count;
+	uint8_t		*buf;
+
+#ifdef SHOW_RCV_DATA
+	uint_t	ix;
+#endif	/* of #ifdef SHOW_RCV_DATA */
+
+	if ((error = TCP_ACP_CEP(cepid, repid, &dst, TMO_FEVR)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDSn:%02u ACP] accept error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(repid, true)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDSn:%02u DEL] REP delete error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	count = total = 0;
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDSn:%02u RCV] conct: %7lu, from: %s.%d",
+	                   cepid, time / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+	while ((rlen = tcp_rcv_buf(cepid, (void*)&buf, TMO_FEVR)) > 0) {
+		count ++;
+
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] count: %6lu, len: %4u, data: %02x -> %02x",
+		       cepid, count, (uint16_t)rlen, *buf, *(buf + rlen - 1));
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+#ifdef SHOW_RCV_DATA
+		for (ix = 0; ix < rlen; ix ++)
+			cons_putchar(CONSOLE_PORTID,  *(buf + ix));
+#endif	/* of #ifdef SHOW_RCV_DATA */
+
+		if ((error = tcp_rel_buf(cepid, rlen)) != E_OK) {
+			syslog(LOG_NOTICE, "[TDSn:%02u RCV] rel buf error: %s",
+			                    cepid, itron_strerror(error));
+			rlen = 0;
+			break;
+			}
+		total += rlen;
+		}
+
+	if (rlen != 0)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] recv buf error: %s", cepid, itron_strerror(rlen));
+
+	if ((error = tcp_sht_cep(cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] shutdown error: %s", cepid, itron_strerror(error));
+
+	if ((error = tcp_cls_cep(cepid, TMO_FEVR)) != E_OK)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] close error: %s", cepid, itron_strerror(error));
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDSn:%02u RCV] finsh: %7lu, ttl: %lu",
+	                   cepid, time / SYSTIM_HZ, count, total);
+
+	return error;
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+static ER
+tcp_discard_srv (ID cepid, ID repid)
+{
+	static char buffer[BUF_SIZE];
+
+	T_IPEP		dst;
+	ER_UINT		rlen;
+	ER		error;
+	SYSTIM		time;
+	uint32_t	total;
+	uint16_t	count;
+	uint8_t		*buf = buffer;
+
+	if ((error = TCP_ACP_CEP(cepid, repid, &dst, TMO_FEVR)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] accept error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(repid, true)) != E_OK) {
+		syslog(LOG_NOTICE, "[TDSn:%02u DEL] REP delete error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	count = total = 0;
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDSn:%02u RCV] conct: %7lu, from: %s.%d",
+	                   cepid, time / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+	while ((rlen = tcp_rcv_dat(cepid, buf, BUF_SIZE - 1, TMO_FEVR)) > 0) {
+		count ++;
+
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] count: %6lu, len: %4u, data: %02x -> %02x",
+		       cepid, count, (uint16_t)rlen, *buf, *(buf + rlen - 1));
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+		total += rlen;
+		}
+	if (rlen != 0)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] recv error: %s", cepid, itron_strerror(rlen));
+
+	if ((error = tcp_sht_cep(cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] shutdown error: %s", cepid, itron_strerror(error));
+
+	if ((error = tcp_cls_cep(cepid, TMO_FEVR)) != E_OK)
+		syslog(LOG_NOTICE, "[TDSn:%02u RCV] close error: %s", cepid, itron_strerror(error));
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TDSn:%02u RCV] finsh: %7lu, ttl: %lu",
+	                   cepid, time / SYSTIM_HZ, count, total);
+
+	return error;
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ */
+
+static ER
+get_tcp_rep (ID *repid)
+{
+	ID		tskid;
+	T_TCPN_CREP	crep;
+
+	get_tid(&tskid);
+
+	crep.repatr = UINT_C(0);
+	crep.myaddr.portno = UINT_C(9);
+
+#if defined(SUPPORT_INET6)
+
+	memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#else	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+	crep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+	return ALLOC_TCP_REP(repid, tskid, &crep);
+	}
+
+/*
+ *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ã¨ãç²å¾ããã
+ */
+
+static ER
+get_tcp_cep (ID *cepid)
+{
+	ID		tskid;
+	T_TCP_CCEP	ccep;
+
+	get_tid(&tskid);
+
+	ccep.cepatr = UINT_C(0);
+	ccep.sbuf = NADR;
+	ccep.sbufsz = 0;
+	ccep.rbufsz = TCP_DISCARD_SRV_RWBUF_SIZE;
+	ccep.callback = NULL;
+
+#ifdef TCP_CFG_RWBUF_CSAVE
+	ccep.rbuf = NADR;
+#else
+	ccep.rbuf = tcp_discard_srv_rwbuf;
+#endif
+
+	return ALLOC_TCP_CEP(cepid, tskid, &ccep);
+	}
+
+/*
+ *  tcp_discard_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+tcp_discard_srv_task (intptr_t exinf)
+{
+	ID	tskid, cepid, repid;
+	ER	error = E_OK;
+
+	syscall(get_tid(&tskid));
+
+#if defined(SUPPORT_INET6)
+#if defined(SUPPORT_INET4)
+	syslog(LOG_NOTICE, "[TCPn DISCARD SRV:%d] started.", tskid);
+#else
+	syslog(LOG_NOTICE, "[TCP6 DISCARD SRV:%d] started.", tskid);
+#endif
+#else
+	syslog(LOG_NOTICE, "[TCP4 DISCARD SRV:%d] started.", tskid);
+#endif
+
+	while (true) {
+
+		syscall(slp_tsk());
+		if ((error = get_tcp_cep (&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TDSn:00 EXT] CEP create error: %s", itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			if ((error = get_tcp_rep (&repid)) != E_OK) {
+				syslog(LOG_NOTICE, "[TDSn:00 EXT] REP create error: %s", itron_strerror(error));
+				break;
+				}
+			else if ((error = tcp_discard_srv(cepid, repid)) != E_OK) {
+				error = FREE_TCP_REP(repid, error != E_DLT);
+				break;
+				}
+			}
+
+		if ((error = FREE_TCP_CEP(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TDSn:%02u EXT] CEP delete error: %s", cepid, itron_strerror(error));
+
+		}
+	}
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+void
+tcp_discard_srv_task(intptr_t exinf)
+{
+	ID	tskid;
+
+	get_tid(&tskid);
+
+#if defined(SUPPORT_INET6)
+#if defined(SUPPORT_INET4)
+	syslog(LOG_NOTICE, "[TCPn DISCARD SRV:%d,%d] started.", tskid, (ID)exinf);
+#else
+	syslog(LOG_NOTICE, "[TCP6 DISCARD SRV:%d,%d] started.", tskid, (ID)exinf);
+#endif
+#else
+	syslog(LOG_NOTICE, "[TCP4 DISCARD SRV:%d,%d] started.", tskid, (ID)exinf);
+#endif
+
+	while (true) {
+		while (tcp_discard_srv((ID)exinf, TCP_DISCARD_SRV_REPID) == E_OK)
+			;
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_DISCARD_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.cfg	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP DISCARD ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_DISCARD_SRV
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+CRE_TSK(TCP_DISCARD_SRV_TASK,  {
+	TA_HLNG | TA_ACT,
+	0,
+	tcp_discard_srv_task,
+	TCP_DISCARD_SRV_MAIN_PRIORITY,
+	TCP_DISCARD_SRV_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+CRE_TSK(TCP_DISCARD_SRV_TASK,  {
+	TA_HLNG | TA_ACT,
+	TCP_DISCARD_SRV_CEPID,
+	tcp_discard_srv_task,
+	TCP_DISCARD_SRV_MAIN_PRIORITY,
+	TCP_DISCARD_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_DISCARD_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_discard_srv.h	(revision 313)
@@ -0,0 +1,90 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TCP_DISCARD_SRV_H_
+#define _TCP_DISCARD_SRV_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define TCP_DISCARD_SRV_STACK_SIZE	1024		/* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+
+/* åªå
+åº¦ */
+
+#define TCP_DISCARD_SRV_MAIN_PRIORITY	5	/* TCP DISCARD ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦ */
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_DISCARD_SRV_RWBUF_SIZE	(1024)
+
+#elif defined(SUPPORT_INET4)
+
+#define TCP_DISCARD_SRV_RWBUF_SIZE	(512)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define TCP_DISCARD_SRV_RWBUF_SIZE	(2048)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+/* TCP éåä¿¡ãããã¡ */
+
+extern uint8_t tcp_discard_srv_swbuf[];
+extern uint8_t tcp_discard_srv_rwbuf[];
+
+/* ã¿ã¹ã¯ */
+
+extern void tcp_discard_srv_task(intptr_t exinf);
+
+#endif	/* of #ifndef _TCP_DISCARD_SRV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.c	(revision 313)
@@ -0,0 +1,509 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åé¢å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4
+ *    ã»IPv6
+ */
+
+#include <stdlib.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_cli.h>
+
+#ifdef USE_TCP_ECHO_CLI
+
+/* echo ãµã¼ãã®ãã¼ãçªå· */
+
+#define ECHO_SRV_PORTNO		UINT_C(7)
+
+/* ç·æ¥ãã¼ã¿ã®éä¿¡ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+//#define SND_URG_DATA_SIZE	4
+#define SND_URG_COUNT		10
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/* éä¿¡éé */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+//#define SND_DLY		(500)
+#define START_DLY	(10*SYSTIM_HZ)
+#define SND_ITV		(5*SYSTIM_HZ)
+#define SLP_ITV		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+//#define SND_DLY		(500)
+#define START_DLY	(10*SYSTIM_HZ)
+#define SND_ITV		(5*SYSTIM_HZ)
+#define SLP_ITV		(60*SYSTIM_HZ)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+/* èªåå®è¡ */
+
+#if defined(TCP_ECHO_CLI_AUTO_RUN_STR)
+#else
+#if 0
+#if defined(SUPPORT_INET6)
+#define TCP_ECHO_CLI_AUTO_RUN_STR	"fd90:cce5:25f6:ff81:201:2ff:fe81:e7c9 - 0"
+#else
+#define TCP_ECHO_CLI_AUTO_RUN_STR	"172.25.129.140 - 0"
+#endif
+#endif
+#endif
+
+#if defined(SUPPORT_INET6)
+#if defined(SUPPORT_INET4)
+#define API_PROTO		'n'
+#else
+#define API_PROTO		'6'
+#endif
+#else
+#define API_PROTO		'4'
+#endif
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+bool_t	tcp_echo_cli_valid;
+uint_t	tcp_echo_cli_scount;
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_SWBUF_CSAVE
+uint8_t tcp_echo_cli_swbuf[TCP_ECHO_CLI_SWBUF_SIZE];
+#endif
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+uint8_t tcp_echo_cli_rwbuf[TCP_ECHO_CLI_RWBUF_SIZE];
+#endif
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+ER_UINT	tcp_echo_cli_nblk_error;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_echo_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	tcp_echo_cli_nblk_error = *(ER*)p_parblk;
+
+	switch (fncd) {
+
+	case TFN_TCP_CON_CEP:
+		syscall(sig_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_BUF:
+		if (tcp_echo_cli_nblk_error < 0)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CBN] error: %s",
+			                   API_PROTO, cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		syscall(sig_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		if (tcp_echo_cli_nblk_error < 0)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CBN] error: %s",
+			                   API_PROTO, cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		syscall(sig_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_RCV_DAT:
+		if (tcp_echo_cli_nblk_error < 0)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CBN] error: %s",
+			                   API_PROTO, cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		syscall(sig_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+		break;
+
+	case TFN_TCP_SND_OOB:
+		if (tcp_echo_cli_nblk_error > 0)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CBN] snd urg: %4u",
+			                   API_PROTO, cepid, tcp_echo_cli_nblk_error);
+		else
+			syslog(LOG_NOTICE, "[TEC%c:%02u CBN] error: %s",
+			                   API_PROTO, cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		break;
+
+	case TFN_TCP_ACP_CEP:
+	case TFN_TCP_SND_DAT:
+	case TFN_TCP_GET_BUF:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+/*
+ *  getcomd -- ã³ãã³ããå¾ãã
+ */
+
+#ifdef TCP_ECHO_CLI_AUTO_RUN_STR
+
+static char *
+getcomd (ID cepid, bool_t retry, char *apip)
+{
+	ER		error;
+	char		*line = NULL;
+	static char	auto_run_str[] = TCP_ECHO_CLI_AUTO_RUN_STR;
+	static int_t	count = 0;
+
+	if (retry || (count == 0)) {
+		line = auto_run_str;
+		dly_tsk(3 * 1000);
+		}
+	else {
+		while ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_SND, (intptr_t*)&line)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", API_PROTO, cepid, itron_strerror(error));
+			dly_tsk(SLP_ITV);
+			}
+		}
+
+	count ++;
+	return line;
+	}
+
+#else	/* of #ifdef TCP_ECHO_CLI_AUTO_RUN_STR */
+
+static char *
+getcomd (ID cepid, bool_t retry, char *apip)
+{
+	ER	error;
+	char	*line = NULL;
+
+	while ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_SND, (intptr_t*)&line)) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", API_PROTO, cepid, itron_strerror(error));
+		dly_tsk(SLP_ITV);
+		}
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+	if (*line == '6') {
+		line ++;
+		*apip = API_PROTO_IPV6;
+		}
+	else if (*line == '4') {
+		line ++;
+		*apip = API_PROTO_IPV4;
+		}
+	else {
+		*apip= DEFAULT_API_PROTO;
+		if (*line && *line != ' ')
+			line ++;
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	*apip= DEFAULT_API_PROTO;
+	if (*line && *line != ' ')
+		line ++;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	return line;
+	}
+
+#endif	/* of #ifdef TCP_ECHO_CLI_AUTO_RUN_STR */
+
+/*
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ */
+
+/*
+ *  IP ã¢ãã¬ã¹ã®æå®
+ */
+
+#define ADDR_IPVn	'n'
+#define ADDR_IPV6	'6'
+#define ADDR_IPV4	'4'
+
+void
+tcp_echo_cli_snd_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER		error;
+	T_IN_ADDR	addr;
+	char		*line;
+	int_t		rep, count;
+	bool_t		retry = false;
+	uint16_t	portno;
+	char		apip;
+
+#ifdef USE_TCP_EXTENTIONS
+
+	T_TCP_CCEP	ccep;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef TCP_ECHO_CLI_AUTO_RUN_STR
+	dly_tsk(START_DLY);
+#endif
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP%c ECHO CLI SND:%d,%d] started.", DEFAULT_API_PROTO, tskid, (ID)exinf);
+	while (true) {
+		line = skip_blanks(getcomd((ID)exinf, retry, &apip));
+
+#if defined(SUPPORT_INET6) && !defined(SUPPORT_INET4) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+		if (apip == API_PROTO_IPV4) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: E_PAR", API_PROTO, (ID)exinf);
+			retry = true;
+			continue;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET6) && !defined(SUPPORT_INET4) && !defined(API_CFG_IP4MAPPED_ADDR) */
+
+		if ((line = lookup_ipaddr(&addr, line, apip)) == NULL) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] sleep %d.%03u[s], unknown host.",
+			       API_PROTO, (ID)exinf, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ);
+			dly_tsk(SLP_ITV);
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] resume.", API_PROTO, (ID)exinf);
+			retry = true;
+			continue;
+			}
+		else
+			retry = false;
+
+#if defined(SUPPORT_INET6)
+
+#if defined(USE_TCP4_ECHO_CLI)
+
+#else	/* of #if defined(USE_TCP4_ECHO_CLI) */
+
+		if (in6_is_addr_ipv4mapped(&addr))
+			apip = API_PROTO_IPV4;
+		else
+			apip = API_PROTO_IPV6;
+
+#endif	/* of #if defined(USE_TCP4_ECHO_CLI) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+		if (apip == API_PROTO_IPV6) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: E_PAR", API_PROTO, (ID)exinf);
+			retry = true;
+			continue;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {	/* Port No */
+			line = get_int(&rep, line);
+			portno = (uint16_t)rep;
+			}
+		else {
+			line ++;
+			portno = ECHO_SRV_PORTNO;
+			}
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9')	/* Repeat */
+			line = get_int(&rep, line);
+		else {
+			line ++;
+			rep = 1;
+			}
+
+#ifdef USE_TCP_EXTENTIONS
+
+		ccep.cepatr = 0;
+		ccep.sbufsz = TCP_ECHO_CLI_SWBUF_SIZE;
+		ccep.rbufsz = TCP_ECHO_CLI_RWBUF_SIZE;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+		ccep.sbuf = NADR;
+#else
+		ccep.sbuf = tcp_echo_cli_swbuf;
+#endif
+#ifdef TCP_CFG_RWBUF_CSAVE
+		ccep.rbuf = NADR;
+#else
+		ccep.rbuf = tcp_echo_cli_rwbuf;
+#endif
+#ifdef USE_TCP_NON_BLOCKING
+		ccep.callback = (FP)callback_nblk_tcp_echo_cli;
+#else
+		ccep.callback = NULL;
+#endif
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+		if (apip == API_PROTO_IPV6) {
+			if ((error = alloc_tcp6_cep(&cepid, tskid, &ccep)) != E_OK) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", apip, cepid, itron_strerror(error));
+				continue;
+				}
+			}
+		else {
+			if ((error = alloc_tcp4_cep(&cepid, tskid, &ccep)) != E_OK) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", apip, cepid, itron_strerror(error));
+				continue;
+				}
+			}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+		if ((error = ALLOC_TCP_CEP(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", apip, cepid, itron_strerror(error));
+			continue;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+		if (apip == API_PROTO_IPV6)
+			cepid = (ID)exinf;
+		else
+			cepid = TCP4_ECHO_CLI_CEPID;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+		cepid = (ID)exinf;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		tcp_echo_cli_valid = true;
+		count = 0;
+		while (rep == 0 || count < rep) {
+			if (!tcp_echo_cli_valid) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] canceled.", apip, cepid);
+				break;
+				}
+
+			count ++;
+			if (rep == 0) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] start:       repeat: %d", apip, cepid, count);
+				error = tcp_echo_cli_snd(cepid, &addr, portno, apip);
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] finsh:       repeat: %d", apip, cepid, count);
+				}
+			else {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] start:       repeat: %d/%d", apip, cepid, count, rep);
+				error = tcp_echo_cli_snd(cepid, &addr, portno, apip);
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] finsh:       repeat: %d/%d", apip, cepid, count, rep);
+				}
+
+			if (error != E_OK) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] sleep %d.%03u[s], error: %s",
+				                   apip, cepid, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ, itron_strerror(error));
+				tslp_tsk(SLP_ITV);
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] resume.", apip, cepid);
+				}
+
+#if defined(SND_ITV)
+#if SND_ITV > 0
+			if (count < rep) {
+				uint_t itv;
+				
+				itv = SND_ITV;
+				syslog(LOG_NOTICE, "[TEC%c:%02u TSK] interval: %d[s].", apip, cepid, itv / SYSTIM_HZ);
+				syscall(dly_tsk(SND_ITV));
+				}
+#endif
+#endif
+			}
+
+#ifdef USE_TCP_EXTENTIONS
+
+		if ((error = FREE_TCP_CEP(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TEC%c:%02u TSK] error: %s", apip, cepid, itron_strerror(error));
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.cfg	(revision 313)
@@ -0,0 +1,110 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_ECHO_CLI
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+CRE_TSK(TCP_ECHO_CLI_SND_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	tcp_echo_cli_snd_task,
+	TCP_ECHO_CLI_SND_MAIN_PRIORITY,
+	TCP_ECHO_CLI_SND_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(TCP_ECHO_CLI_RCV_TASK,  {
+	TA_HLNG|TA_ACT,
+	0,
+	tcp_echo_cli_rcv_task,
+	TCP_ECHO_CLI_RCV_MAIN_PRIORITY,
+	TCP_ECHO_CLI_RCV_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+CRE_TSK(TCP_ECHO_CLI_SND_TASK, {
+	TA_HLNG|TA_ACT,
+	TCP_ECHO_CLI_CEPID,
+	tcp_echo_cli_snd_task,
+	TCP_ECHO_CLI_SND_MAIN_PRIORITY,
+	TCP_ECHO_CLI_SND_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(TCP_ECHO_CLI_RCV_TASK,  {
+	TA_HLNG|TA_ACT,
+	TCP_ECHO_CLI_CEPID,
+	tcp_echo_cli_rcv_task,
+	TCP_ECHO_CLI_RCV_MAIN_PRIORITY,
+	TCP_ECHO_CLI_RCV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_TCP_ECHO_CLI_SND,  { TA_TFIFO, 1, NULL });
+CRE_DTQ(DTQ_TCP_ECHO_CLI_RCV,  { TA_TFIFO, 1, NULL });
+
+/* ã»ããã© */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+CRE_SEM(SEM_TCP_ECHO_CLI_NBLK_READY,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli.h	(revision 313)
@@ -0,0 +1,133 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TCP_ECHO_CLI_H_
+#define _TCP_ECHO_CLI_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define TCP_ECHO_CLI_RCV_STACK_SIZE	512		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define TCP_ECHO_CLI_SND_STACK_SIZE	512		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#define TCP_ECHO_CLI_RCV_STACK_SIZE	1024		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#define TCP_ECHO_CLI_SND_STACK_SIZE	1024		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+/* åªå
+åº¦ */
+
+#define TCP_ECHO_CLI_RCV_MAIN_PRIORITY	5		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯ã®åªå
+åº¦		*/
+#define TCP_ECHO_CLI_SND_MAIN_PRIORITY	5		/* TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯ã®åªå
+åº¦		*/
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_ECHO_CLI_SWBUF_SIZE		(1024)
+#define TCP_ECHO_CLI_RWBUF_SIZE		(1024)
+
+#elif defined(SUPPORT_INET4)
+
+#define TCP_ECHO_CLI_SWBUF_SIZE		(512)
+#define TCP_ECHO_CLI_RWBUF_SIZE		(512)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define TCP_ECHO_CLI_SWBUF_SIZE		(2048)
+#define TCP_ECHO_CLI_RWBUF_SIZE		(2048)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+/*
+ *  ãããã¡ãµã¤ãºã®å®ç¾©
+ */
+
+#define NUM_ECHO		20
+#define NUM_REP_PAT		20
+#define PAT_BEGIN		' '
+#define PAT_END			'~'
+#define SND_BUF_SIZE		((PAT_END - PAT_BEGIN + 1) * NUM_REP_PAT)
+#define RCV_BUF_SIZE		(SND_BUF_SIZE*15/10)
+
+/*
+ *  å¤æ°
+ */
+
+extern bool_t	tcp_echo_cli_valid;
+extern uint_t	tcp_echo_cli_scount;
+extern ER_UINT	tcp_echo_cli_nblk_error;
+
+/* TCP éåä¿¡ãããã¡ */
+
+extern uint8_t tcp_echo_cli_swbuf[];
+extern uint8_t tcp_echo_cli_rwbuf[];
+
+/* ã¿ã¹ã¯*/
+
+extern void	tcp_echo_cli_rcv_task(intptr_t exinf);
+extern void	tcp_echo_cli_snd_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_nblk_tcp_echo_cli (ID cepid, FN fncd, void *p_parblk);
+
+#ifdef T_IN_ADDR
+extern ER tcp_echo_cli_snd (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno, char apip);
+#endif
+
+#endif	/* of #ifndef _TCP_ECHO_CLI_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_rcv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_rcv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_rcv.c	(revision 313)
@@ -0,0 +1,454 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯
+ */
+
+#include <stdlib.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_cli.h>
+
+#ifdef USE_TCP_ECHO_CLI
+
+/* è¡¨ç¤º */
+
+//#define SHOW_TIME_OUT
+//#define SHOW_RCV_RANGE
+
+/* ã¿ã¤ã ã¢ã¦ã */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define CLS_TMO		TMO_FEVR					/* Close Wait ã¯æ¨æºã§ 60ç§ */
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+//#define CLS_TMO		TMO_FEVR				/* Close Wait ã¯æ¨æºã§ 60ç§ */
+#define CLS_TMO		(70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10)
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(40*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*20)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+/*
+ *  API IPãã­ãã³ã«ã®æå®
+ */
+
+#undef  DEFAULT_API_PROTO
+
+#if defined(SUPPORT_INET6)
+#if defined(SUPPORT_INET4)
+#define DEFAULT_API_PROTO	API_PROTO_IPVn
+#else
+#define DEFAULT_API_PROTO	API_PROTO_IPV6
+#endif
+#else
+#define DEFAULT_API_PROTO	API_PROTO_IPV4
+#endif
+
+/*
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ãåä¿¡ã¿ã¹ã¯
+ */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_cli_rcv_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER		error;
+	SYSTIM		time;
+	uint32_t	total, rcount;
+	uint16_t	roff, rlen;
+	char		*rmsg, head, tail, apip = DEFAULT_API_PROTO;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP%c ECHO CLI (NBLK,CS) RCV:%d] started.", DEFAULT_API_PROTO, tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s",
+			                   DEFAULT_API_PROTO, cepid, itron_strerror(error));
+			}
+                else {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+#ifdef USE_TCP_EXTENTIONS
+
+			apip = API_PROTO_IPVn;
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+			if (cepid == TCP4_ECHO_CLI_CEPID)
+				apip = API_PROTO_IPV4;
+			else
+				apip = API_PROTO_IPV6;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+			roff = rcount = total = 0;
+			while (true) {
+				if ((error = tcp_rcv_buf(cepid, (void**)&rmsg, TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] error: %s", apip, cepid, itron_strerror(error));
+					break;
+					}
+
+				/* åä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+				if (tcp_echo_cli_nblk_error < 0)
+					break;
+
+				rlen = tcp_echo_cli_nblk_error;
+				head = *rmsg;
+				tail = *(rmsg + rlen - 1);
+				if (rlen > 0) {
+					roff  += rlen;
+					total += rlen;
+					rcount ++;
+#ifdef SHOW_RCV_RANGE
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] "
+					                   "count: %7lu, len: %4u, off: %4u, data: %02x -> %02x",
+					                   apip, cepid, rcount, rlen, roff, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+					}
+				else
+					break;
+
+				if ((error = tcp_rel_buf(cepid, rlen)) != E_OK)
+					syslog(LOG_NOTICE, "[TEC%c:%02u REL] error: %s", 
+					                   apip, cepid, itron_strerror(error));
+				}
+
+			if ((error = tcp_cls_cep(cepid, TMO_NBLK)) != E_WBLK && error != E_OK)
+				syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error));
+
+			/* åæ­ãå®äºããã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[TEC%c:%02u RCV] finsh: %7lu, ttl: %lu",
+			                   apip, cepid, time / SYSTIM_HZ, total);
+			}
+
+		syscall(wup_tsk(TCP_ECHO_CLI_SND_TASK));
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_cli_rcv_task (intptr_t exinf)
+{
+	static char rmsg[RCV_BUF_SIZE];
+
+	ID		tskid, cepid;
+	ER		error;
+	SYSTIM		time;
+	uint32_t	total, rcount;
+	uint16_t	roff, rlen;
+	char		head, tail, apip = DEFAULT_API_PROTO;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP%c ECHO CLI (NBLK) RCV:%d] started.", DEFAULT_API_PROTO, tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s",
+			                   DEFAULT_API_PROTO, cepid, itron_strerror(error));
+			}
+                else {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+			if (cepid == TCP4_ECHO_CLI_CEPID)
+				apip = API_PROTO_IPV4;
+			else
+				apip = API_PROTO_IPV6;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+			roff = rcount = total = 0;
+			while (true) {
+				if ((error = tcp_rcv_dat(cepid, rmsg, sizeof(rmsg), TMO_NBLK)) != E_WBLK) {
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] error: %s", apip, cepid, itron_strerror(error));
+					break;
+					}
+
+				/* åä¿¡ãå®äºããã¾ã§å¾
+ã¤ã*/
+				syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+				if (tcp_echo_cli_nblk_error < 0)
+					break;
+
+				rlen = tcp_echo_cli_nblk_error;
+				head = *rmsg;
+				tail = *(rmsg + rlen - 1);
+				rcount ++;
+				if (rlen > 0) {
+					roff  += rlen;
+					total += rlen;
+#ifdef SHOW_RCV_RANGE
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] "
+					                   "count: %7lu, len: %4u, off: %4u, data: %02x -> %02x",
+					                   apip, cepid, rcount, rlen, roff, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+					}
+				else
+					break;
+				}
+
+			if ((error = tcp_cls_cep(cepid, TMO_NBLK)) != E_WBLK && error != E_OK)
+				syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error));
+
+			/* åæ­ãå®äºããã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[TEC%c:%02u RCV] finsh: %7lu, ttl: %lu",
+			                   apip, cepid, time / SYSTIM_HZ, total);
+			}
+
+		syscall(wup_tsk(TCP_ECHO_CLI_SND_TASK));
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef USE_COPYSAVE_API
+
+void
+tcp_echo_cli_rcv_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER_UINT		rlen;
+	ER		error;
+	SYSTIM		time, tmo;
+	uint32_t	total = 0, rcount;
+	uint16_t	roff;
+	char		*rmsg, apip = DEFAULT_API_PROTO;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP%c ECHO CLI (CS) RCV:%d] started.", DEFAULT_API_PROTO, tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s",
+			                   DEFAULT_API_PROTO, cepid, itron_strerror(error));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+#ifdef USE_TCP_EXTENTIONS
+
+			if (tcp6_is_cepid(cepid))
+				apip = API_PROTO_IPV6;
+			else
+				apip = API_PROTO_IPV4;
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+			if (cepid == TCP4_ECHO_CLI_CEPID)
+				apip = API_PROTO_IPV4;
+			else
+				apip = API_PROTO_IPV6;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+			}
+		else {
+			roff = rcount = total = 0;
+			while (true) {
+				tmo = RCV_TMO;
+#ifdef SHOW_TIME_OUT
+				syslog(LOG_NOTICE, "[TEC%c:%02u RCV] tmo:   %7lu", apip, cepid, tmo);;
+#endif	/* of #ifdef SHOW_TIME_OUT */
+				if ((rlen = tcp_rcv_buf(cepid, (void**)&rmsg, tmo)) < 0) {
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] error: %s",
+					                   apip, cepid, itron_strerror(rlen));
+					break;
+					}
+				else if (rlen > 0) {
+					roff  += (uint16_t)rlen;
+					total +=     rlen;
+					rcount ++;
+#ifdef SHOW_RCV_RANGE
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] count: %7lu, len: %4u, data: %02x -> %02x",
+					                   apip, cepid, rcount, (uint16_t)rlen, *rmsg, *(rmsg + rlen - 1));
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+					}
+				else
+					break;
+				if ((error = tcp_rel_buf(cepid, rlen)) != E_OK)
+					syslog(LOG_NOTICE, "[TEC%c:%02u REL] error: %s", apip, cepid, itron_strerror(error));
+				}
+
+			tmo = CLS_TMO;
+#ifdef SHOW_TIME_OUT
+			syslog(LOG_NOTICE, "[TEC%c:%02u CLS] tmo:   %7lu", apip, cepid, tmo);;
+#endif	/* of #ifdef SHOW_TIME_OUT */
+			if ((error = tcp_cls_cep(cepid, tmo)) < 0)
+				syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error));
+
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[TEC%c:%02u RCV] finsh: %7lu, ttl: %lu",
+			                   apip, cepid, time / SYSTIM_HZ, total);
+			}
+
+		syscall(wup_tsk(TCP_ECHO_CLI_SND_TASK));
+		}
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+void
+tcp_echo_cli_rcv_task (intptr_t exinf)
+{
+	static char rmsg[RCV_BUF_SIZE];
+
+	ID		tskid, cepid;
+	ER_UINT		rlen;
+	ER		error;
+	SYSTIM		time, tmo;
+	uint32_t	total, rcount;
+	uint16_t	roff;
+	char		apip = DEFAULT_API_PROTO;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP%c ECHO CLI RCV:%d] started.", DEFAULT_API_PROTO, tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s",
+			                   DEFAULT_API_PROTO, cepid, itron_strerror(error));
+			}
+                else {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+			if (cepid == TCP4_ECHO_CLI_CEPID)
+				apip = API_PROTO_IPV4;
+			else
+				apip = API_PROTO_IPV6;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+			roff = rcount = total = 0;
+			while (true) {
+#ifdef SHOW_TIME_OUT
+				syslog(LOG_NOTICE, "[TEC%c:%02u RCV] tmo:   %7lu", apip, cepid, tmo);;
+#endif	/* of #ifdef SHOW_TIME_OUT */
+				tmo = RCV_TMO;
+				if ((rlen = tcp_rcv_dat(cepid, rmsg, sizeof(rmsg), tmo)) < 0) {
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] error: %s", apip, cepid, itron_strerror(rlen));
+					tcp_can_cep(cepid, TFN_TCP_ALL);
+					break;
+					}
+				else if (rlen > 0) {
+					roff  += (uint16_t)rlen;
+					total +=     rlen;
+					rcount ++;
+#ifdef SHOW_RCV_RANGE
+					syslog(LOG_NOTICE, "[TEC%c:%02u RCV] count: %7lu, len: %4u, data: %02x -> %02x",
+					                   apip, cepid, rcount, (uint16_t)rlen, *rmsg, *(rmsg + rlen - 1));
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+					}
+				else
+					break;
+				}
+
+#ifdef SHOW_TIME_OUT
+			syslog(LOG_NOTICE, "[TEC%c:%02u CLS] tmo:   %7lu", apip, cepid, tmo);;
+#endif	/* of #ifdef SHOW_TIME_OUT */
+			tmo = CLS_TMO;
+			if ((error = tcp_cls_cep(cepid, tmo)) < 0)
+				syslog(LOG_NOTICE, "[TEC%c:%02u CLS] error: %s", apip, cepid, itron_strerror(error));
+
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[TEC%c:%02u RCV] finsh: %7lu, ttl: %lu",
+			                   apip, cepid, time / SYSTIM_HZ, total);
+			}
+
+		syscall(wup_tsk(TCP_ECHO_CLI_SND_TASK));
+		}
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_snd.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_snd.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_cli_snd.c	(revision 313)
@@ -0,0 +1,499 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡é¢æ°
+ */
+
+#include <stdlib.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_cli.h>
+
+#ifdef USE_TCP_ECHO_CLI
+
+/* è¡¨ç¤º */
+
+//#define SHOW_TIME_OUT
+//#define SHOW_SND_COUNT
+
+/* ã¿ã¤ã ã¢ã¦ã */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define CON_TMO		TMO_FEVR
+//#define CON_TMO		(60*SYSTIM_HZ)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#define CON_TMO		TMO_FEVR
+//#define CON_TMO		(60*SYSTIM_HZ)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(30*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*30)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+static T_IPV4EP	nblk_src4 = {
+			IPV4_ADDRANY,
+			TCP_PORTANY,
+			};
+static T_IPV4EP	nblk_dst4;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+static T_IPEP	nblk_src = {
+			IP_ADDRANY,
+			TCP_PORTANY,
+			};
+static T_IPEP	nblk_dst;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+/*
+ *  tcp4_active_open -- è½åãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ */
+
+static ER
+tcp4_active_open (ID cepid, T_IN4_ADDR ipaddr, uint16_t portno)
+{
+	ER		error;
+	SYSTIM		time;
+
+	nblk_dst4.ipaddr = ipaddr;
+	nblk_dst4.portno = portno;
+
+	if ((error = tcp_con_cep(cepid, &nblk_src4, &nblk_dst4, TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[TEC4:%02u CON] error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	/* æ¥ç¶ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+
+	if ((error = tcp_echo_cli_nblk_error) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC4:%02u CON] error: %s", cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		return error;
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TEC4:%02u CON] conct: %7lu,  to: %s.%u",
+	                   cepid, time / SYSTIM_HZ, ip2str(NULL, &nblk_dst4.ipaddr), nblk_dst4.portno);
+	return error;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+/*
+ *  tcp_active_open -- è½åãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ */
+
+static ER
+tcp_active_open (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno, char apip)
+{
+	ER		error;
+	SYSTIM		time;
+
+	nblk_dst.ipaddr = *ipaddr;
+	nblk_dst.portno = portno;
+
+	if ((error = TCP_CON_CEP(cepid, &nblk_src, &nblk_dst, TMO_NBLK)) != E_WBLK) {
+		if (error == E_PAR || error == E_ID)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s, API: IPv%c, addr: %s",
+			                   apip, cepid, itron_strerror(error), apip, IP2STR(NULL, ipaddr));
+		else
+			syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s",
+			                   apip, cepid, itron_strerror(error));
+		return error;
+		}
+
+	/* æ¥ç¶ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_ECHO_CLI_NBLK_READY));
+
+	if ((error = tcp_echo_cli_nblk_error) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s",
+		                   apip, cepid, itron_strerror(tcp_echo_cli_nblk_error));
+		return error;
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TEC%c:%02u CON] conct: %7lu,  to: %s.%u",
+	                   apip, cepid, time / SYSTIM_HZ,
+	                   IP2STR(NULL, &nblk_dst.ipaddr), nblk_dst.portno);
+	return error;
+	}
+
+/*
+ *  tcp_echo_cli_snd -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ */
+
+ER
+tcp_echo_cli_snd (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno, char apip)
+{
+	static char smsg[SND_BUF_SIZE];
+
+	ER_UINT		slen;
+	ER		error;
+	uint32_t	total;
+	uint16_t	soff, echo, rep;
+	char		*p, pat;
+
+#ifdef SND_URG_DATA_SIZE
+	int_t	urg = SND_URG_COUNT;
+#endif
+
+	p = smsg;
+	for (rep = NUM_REP_PAT; rep -- > 0; )
+		for (pat = PAT_BEGIN; pat <= PAT_END; pat ++)
+			*p ++ = pat;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+	if (apip == API_PROTO_IPV6) {
+		if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+			return error;
+		}
+	else if (in6_is_addr_ipv4mapped(ipaddr)) {
+		if ((error = tcp4_active_open(cepid, ntohl(ipaddr->s6_addr32[3]), portno)) != E_OK)
+			return error;
+		}
+	else {
+		if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+			return error;
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+		return error;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	if ((error = psnd_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t)cepid)) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s", apip, cepid, itron_strerror(error));
+		goto cls_ret;
+		}
+
+	tcp_echo_cli_scount = total = 0;
+	for (echo = NUM_ECHO; echo -- > 0; ) {
+		soff = 0;
+		while (soff < SND_BUF_SIZE) {
+#ifdef SHOW_TIME_OUT
+			syslog(LOG_NOTICE, "[TEC%c:%02u SND] tmo:   %7lu", apip, cepid, SND_TMO);;
+#endif/* of #ifdef SHOW_TIME_OUT */
+			if ((slen = tcp_snd_dat(cepid, smsg + soff, sizeof(smsg) - soff, SND_TMO)) < 0) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u SND] error: %s",
+				                   apip, cepid, itron_strerror(slen));
+				error = slen;
+				goto cls_ret;
+				}
+			soff  += (uint16_t)slen;
+			total +=     slen;
+			tcp_echo_cli_scount ++;
+#ifdef SHOW_SND_COUNT
+			syslog(LOG_NOTICE, "[TEC%c:%02u SND] count: %7lu, len: %4u, off: %4u",
+			                   apip, cepid, tcp_echo_cli_scount, (uint16_t)slen, soff);
+#endif/* of #ifdef SHOW_SND_COUNT */
+
+#ifdef SND_URG_DATA_SIZE
+			if (urg) {
+				if (urg == 1) {
+					if ((error = tcp_snd_oob(cepid, smsg, SND_URG_DATA_SIZE, TMO_NBLK)) != E_WBLK)
+						syslog(LOG_NOTICE, "[TEC%c:%02u OOB] error: %s",
+						                   apip, cepid, itron_strerror(error));
+					}
+				urg --;
+				}
+#endif/* of #ifdef SND_URG_DATA_SIZE */
+
+#if defined(SND_DLY)
+#if SND_DLY > 0
+			syscall(dly_tsk(SND_DLY + netapp_rand() % SYSTIM_HZ));
+#endif
+#endif
+			}
+		}
+
+cls_ret:
+	if ((error = tcp_sht_cep(cepid)) < 0)
+		syslog(LOG_NOTICE, "[TEC%c:%02u SHT] error: %s", apip, cepid, itron_strerror(error));
+
+	/* åä¿¡ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(slp_tsk());
+
+	return error;
+	}
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+/*
+ *  tcp4_active_open -- è½åãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+static ER
+tcp4_active_open (ID cepid, T_IN4_ADDR ipaddr, uint16_t portno)
+{
+	static T_IPV4EP src = {
+		IPV4_ADDRANY,
+		TCP_PORTANY,
+		};
+
+	T_IPV4EP	dst;
+	ER		error;
+	SYSTIM		time;
+
+	dst.ipaddr = ipaddr;
+	dst.portno = portno;
+
+#ifdef SHOW_TIME_OUT
+	syslog(LOG_NOTICE, "[TEC%c:%02u CON] tmo:   %7lu", API_PROTO_IPV4, cepid, CON_TMO);
+#endif	/* of #ifdef SHOW_TIME_OUT */
+	if ((error = tcp_con_cep(cepid, &src, &dst, CON_TMO)) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s, addr: %s",
+		                   API_PROTO_IPV4, cepid, itron_strerror(error), ip2str(NULL, &ipaddr));
+		return error;
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TEC%c:%02u CON] conct: %7lu,  to: %s.%u",
+	                   API_PROTO_IPV4, cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno);
+	return error;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+/*
+ *  tcp_active_open -- è½åãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+static ER
+tcp_active_open (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno, char apip)
+{
+	static T_IPEP src = {
+		IP_ADDRANY,
+		TCP_PORTANY,
+		};
+
+	T_IPEP		dst;
+	ER		error;
+	SYSTIM		time;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+
+#ifdef SHOW_TIME_OUT
+	syslog(LOG_NOTICE, "[TEC%c:%02u CON] tmo:   %7lu", apip, cepid, CON_TMO);
+#endif	/* of #ifdef SHOW_TIME_OUT */
+	if ((error = TCP_CON_CEP(cepid, &src, &dst, CON_TMO)) != E_OK) {
+		if (error == E_PAR || error == E_ID)
+			syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s, API: IPv%c, addr: %s",
+			                   apip, cepid, itron_strerror(error), apip, IP2STR(NULL, ipaddr));
+		else
+			syslog(LOG_NOTICE, "[TEC%c:%02u CON] error: %s", apip, cepid, itron_strerror(error));
+		return error;
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[TEC%c:%02u CON] conct: %7lu,  to: %s.%u",
+	                   apip, cepid, time / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+	return error;
+	}
+
+/*
+ *  tcp_echo_cli_snd -- ECHO/TCP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+ER
+tcp_echo_cli_snd (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno, char apip)
+{
+	static char smsg[SND_BUF_SIZE];
+
+	ER_UINT		slen;
+	ER		error;
+	uint32_t	total;
+	uint16_t	soff, echo, rep;
+	char		*p, pat;
+
+#ifdef SND_URG_DATA_SIZE
+	int_t	urg = SND_URG_COUNT;
+#endif
+
+	p = smsg;
+	for (rep = NUM_REP_PAT; rep -- > 0; )
+		for (pat = PAT_BEGIN; pat <= PAT_END; pat ++)
+			*p ++ = pat;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI)
+
+	if (apip == API_PROTO_IPV6) {
+		if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+			return error;
+		}
+	else if (in6_is_addr_ipv4mapped(ipaddr)) {
+		if ((error = tcp4_active_open(cepid, ntohl(ipaddr->s6_addr32[3]), portno)) != E_OK)
+			return error;
+		}
+	else {
+		if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+			return error;
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	if ((error = tcp_active_open(cepid, ipaddr, portno, apip)) != E_OK)
+		return error;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_CLI) */
+
+	if ((error = psnd_dtq(DTQ_TCP_ECHO_CLI_RCV, (intptr_t)cepid)) != E_OK) {
+		syslog(LOG_NOTICE, "[TEC%c:%02u DTQ] error: %s", apip, cepid, itron_strerror(error));
+		goto cls_ret;
+		}
+
+	tcp_echo_cli_scount = total = 0;
+	for (echo = NUM_ECHO; echo -- > 0; ) {
+		soff = 0;
+		while (soff < SND_BUF_SIZE) {
+#ifdef SHOW_TIME_OUT
+			syslog(LOG_NOTICE, "[TEC%c:%02u SND] tmo:   %7lu", apip, cepid, SND_TMO);
+#endif	/* of #ifdef SHOW_TIME_OUT */
+			if ((slen = tcp_snd_dat(cepid, smsg + soff, sizeof(smsg) - soff, SND_TMO)) < 0) {
+				syslog(LOG_NOTICE, "[TEC%c:%02u SND] error: %s", apip, cepid, itron_strerror(slen));
+				error = slen;
+				goto cls_ret;
+				}
+			soff  += (uint16_t)slen;
+			total +=     slen;
+			tcp_echo_cli_scount ++;
+#ifdef SHOW_SND_COUNT
+			syslog(LOG_NOTICE, "[TEC%c:%02u SND] count: %7lu, len: %4u",
+			                   apip, cepid, tcp_echo_cli_scount, (uint16_t)slen);
+#endif	/* of #ifdef SHOW_SND_COUNT */
+
+#ifdef SND_URG_DATA_SIZE
+			if (urg > 0) {
+				if (urg == 1) {
+#ifdef SHOW_TIME_OUT
+					syslog(LOG_NOTICE, "[TEC%c:%02u SND] tmo:   %7lu", apip, cepid, SND_TMO);
+#endif	/* of #ifdef SHOW_TIME_OUT */
+					if ((slen = tcp_snd_oob(cepid, smsg, SND_URG_DATA_SIZE, SND_TMO)) >= 0)
+						syslog(LOG_NOTICE, "[TEC%c:%02u SND] urg:   %7lu",
+						                   apip, cepid, (uint16_6)slen);
+					else
+						syslog(LOG_NOTICE, "[TEC%c:%02u OOB] error: %s",
+						                   apip, cepid, itron_strerror(slen));
+					}
+				urg --;
+				}
+#endif	/* of #ifdef SND_URG_DATA_SIZE */
+
+#if defined(SND_DLY)
+#if SND_DLY > 0
+			syscall(dly_tsk(SND_DLY + netapp_rand() % SYSTIM_HZ));
+#endif
+#endif
+			}
+		}
+
+cls_ret:
+	if ((error = tcp_sht_cep(cepid)) < 0)
+		syslog(LOG_NOTICE, "[TEC%c:%02u SHT] error: %s", apip, cepid, itron_strerror(error));
+
+	/* åä¿¡ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(slp_tsk());
+
+	return error;
+	}
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.c	(revision 313)
@@ -0,0 +1,571 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ãµã¼ã #1
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4/IPv6
+ *    ã»ç·æ¥ãã¼ã¿ã®åä¿¡
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_srv1.h>
+#include <netapp/tcp_echo_srv1_var.h>
+
+#if defined(_NET_CFG_BYTE_ORDER)
+#error "net/net.h included."
+#endif
+
+#ifdef USE_TCP_ECHO_SRV1
+
+/*
+ *  è¡¨ç¤º
+ */
+
+//#define SHOW_RCV_RANGE
+
+/*
+ *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ */
+
+#define USE_TCP_SHT_CEP
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ã
+ */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define CLS_TMO		TMO_FEVR		/* Close Wait ã¯æ¨æºã§ 60ç§ */
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+//#define CLS_TMO		TMO_FEVR	/* Close Wait ã¯æ¨æºã§ 60ç§ */
+#define CLS_TMO		(70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10)
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*30)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(40*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*20)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_SWBUF_CSAVE
+uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE];
+#endif
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+uint8_t tcp_echo_srv_rwbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_RWBUF_SIZE];
+#endif
+
+#ifndef USE_TCP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+T_TCP_ECHO_SRV_INFO tcp_echo_srv_info[NUM_TCP_ECHO_SRV_TASKS];
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+T_TCP_ECHO_SRV_INFO tcp_echo_srv_info[] = {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV)
+
+	{ TCP4_ECHO_SRV_CEPID1, TCP4_ECHO_SRV_REPID },
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+	{ TCP_ECHO_SRV_CEPID1, TCP_ECHO_SRV_REPID },
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+	{ TCP_ECHO_SRV_CEPID2, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+	{ TCP_ECHO_SRV_CEPID3, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+	{ TCP_ECHO_SRV_CEPID4, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+	{ TCP_ECHO_SRV_CEPID5, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+	{ TCP_ECHO_SRV_CEPID6, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+	{ TCP_ECHO_SRV_CEPID7, TCP_ECHO_SRV_REPID },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+	{ TCP_ECHO_SRV_CEPID8, TCP_ECHO_SRV_REPID },
+#endif
+
+	};
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/*
+ *  tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+static ER
+tcp_passive_open (T_TCP_ECHO_SRV_INFO *info, char apip)
+{
+	ER		error = E_OK;
+
+#if TNUM_TCP4_REPID > 0
+	T_IPV4EP	dst4;
+#endif
+
+	if (apip == API_PROTO_IPV6) {
+
+#if TNUM_TCP6_REPID > 0
+
+		/* åä»å£ã¯ IPv6 */
+		if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK)
+			return error;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp6_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #if TNUM_TCP6_REPID > 0 */
+
+		}
+	else {
+
+#if TNUM_TCP4_REPID > 0
+
+		/* åä»å£ã¯ IPv4 */
+		if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_FEVR)) != E_OK)
+			return error;
+		in6_make_ipv4mapped (&info->dst.ipaddr, dst4.ipaddr);
+		info->dst.portno = dst4.portno;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp4_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #if TNUM_TCP4_REPID > 0 */
+
+		}
+
+	return error;
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+static ER
+tcp_passive_open (T_TCP_ECHO_SRV_INFO *info, char apip)
+{
+	ER		error = E_OK;
+
+	if ((error = TCP_ACP_CEP(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK)
+		return error;
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(info->repid, true)) != E_OK)
+		return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	return error;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+#ifdef USE_COPYSAVE_API
+
+/*
+ *  tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ *    USE_COPYSAVE_API		ON
+ */
+
+ER
+tcp_echo_srv (uint_t six, char apip)
+{
+	ER		error = E_OK;
+	ER_UINT		rblen, sblen;
+	SYSTIM		now;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, scount, rcount;
+	char		*rbuf, *sbuf;
+
+#ifdef SHOW_RCV_RANGE
+	char		head, tail;
+#endif
+
+	if ((error = tcp_passive_open(&tcp_echo_srv_info[six], apip)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES%c:%02u OPN] error: %s",
+		                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+		return error;
+		}
+
+	syscall(get_tim(&now));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if (apip == API_PROTO_IPV6)
+		syslog(LOG_NOTICE, "[TES6:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ipv62str(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+		                   tcp_echo_srv_info[six].dst.portno);
+	else {
+		T_IN4_ADDR	addr;
+
+		addr = ntohl(tcp_echo_srv_info[six].dst.ipaddr.s6_addr32[3]);
+		syslog(LOG_NOTICE, "[TES4:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ip2str(NULL, &addr), tcp_echo_srv_info[six].dst.portno);
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	syslog(LOG_NOTICE, "[TES%c:%02u ACP] conct: %7lu,from: %s.%u",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+	                   IP2STR(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+	                   tcp_echo_srv_info[six].dst.portno);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	scount = rcount = total = 0;
+	while (true) {
+		if ((rblen = tcp_rcv_buf(tcp_echo_srv_info[six].cepid, (void**)&rbuf, RCV_TMO)) <= 0) {
+			if (rblen != E_OK)
+				syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s",
+				                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(rblen));
+			break;
+			}
+
+		rcount ++;
+
+#ifdef SHOW_RCV_RANGE
+		head = *rbuf;
+		tail = *(rbuf + rblen - 1);
+
+		//syslog(LOG_NOTICE, "[TES%c:%02u RCV] len:   %7lu",
+		//                   apip, tcp_echo_srv_info[six].cepid, (uint16_t)rblen);
+		syslog(LOG_NOTICE, "[TES%c:%02u RCV] rcount: %7lu, len: %6lu, data %02x -> %02x",
+		                   apip, tcp_echo_srv_info[six].cepid, rcount, (uint16_t)rblen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+		rlen   = (uint16_t)rblen;
+		total +=     rblen;
+		soff = 0;
+		while (rlen > 0) {
+
+			if ((sblen = tcp_get_buf(tcp_echo_srv_info[six].cepid, (void**)&sbuf, SND_TMO)) < 0) {
+				syslog(LOG_NOTICE, "[TES%c:%02u GET] error: %s",
+				                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(sblen));
+				goto err_fin;
+				}
+
+			//syslog(LOG_NOTICE, "[TES%c:%02u SND] len:   %7lu",
+			//                   apip, tcp_echo_srv_info[six].cepid, (uint16_t)sblen);
+			scount ++;
+			slen = rlen < (uint16_t)sblen ? rlen : (uint16_t)sblen;
+			memcpy(sbuf, rbuf + soff, slen);
+			if ((error = tcp_snd_buf(tcp_echo_srv_info[six].cepid, slen)) != E_OK) {
+				syslog(LOG_NOTICE, "[TES%c:%02u SND] error: %s",
+				                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+				goto err_fin;
+				}
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES%c:%02u SND] scount: %4u, len: %4u",
+			                   apip, tcp_echo_srv_info[six].cepid, scount, slen);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+			rlen -= slen;
+			soff += slen;
+			}
+
+		if ((error = tcp_rel_buf(tcp_echo_srv_info[six].cepid, rblen)) < 0) {
+			syslog(LOG_NOTICE, "[TES%c:%02u REL] error: %s",
+			                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+			break;
+			}
+		}
+err_fin:
+
+#ifdef USE_TCP_SHT_CEP
+	if ((error = tcp_sht_cep(tcp_echo_srv_info[six].cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u SHT] error: %s",
+		                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+	if ((error = tcp_cls_cep(tcp_echo_srv_info[six].cepid, CLS_TMO)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u CLS] error: %s",
+		                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+
+	syscall(get_tim(&now));
+#if 1
+	syslog(LOG_NOTICE, "[TES%c:%02u FIN] finsh: %7lu, ttl: %lu",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ, total);
+#else
+	syslog(LOG_NOTICE, "[TES%c:%02u FIN] finsh: %7lu, ttl: %lu, error: %s",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ, total, itron_strerror(error));
+#endif
+
+	return error;
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+/*
+ *  tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ *    USE_COPYSAVE_API		OFF
+ */
+
+ER
+tcp_echo_srv (uint_t six, char apip)
+{
+	ID		cepid;
+	ER		error = E_OK;
+	ER_UINT		rlen, slen;
+	SYSTIM		now;
+	uint32_t	total;
+	uint16_t	soff, scount, rcount;
+
+	if ((error = tcp_passive_open(&tcp_echo_srv_info[six], apip)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES%c:%02u OPN] error: %s",
+		                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+		return error;
+		}
+	
+	syscall(get_tim(&now));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if (apip == API_PROTO_IPV6)
+		syslog(LOG_NOTICE, "[TES6:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ipv62str(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+		                   tcp_echo_srv_info[six].dst.portno);
+	else	{
+		T_IN4_ADDR	addr;
+
+		addr = ntohl(tcp_echo_srv_info[six].dst.ipaddr.s6_addr32[3]);
+		syslog(LOG_NOTICE, "[TES4:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ip2str(NULL, &addr), tcp_echo_srv_info[six].dst.portno);
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	syslog(LOG_NOTICE, "[TES%c:%02u ACP] conct: %7lu,from: %s.%u",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+	                   IP2STR(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+	                   tcp_echo_srv_info[six].dst.portno);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	cepid =  tcp_echo_srv_info[six].cepid;
+	scount = rcount = total = 0;
+	while (true) {
+		if ((rlen = tcp_rcv_dat(cepid, tcp_echo_srv_info[six].buffer, BUF_SIZE - 1, RCV_TMO)) <= 0) {
+			if (rlen != E_OK)
+				syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s",
+				                   apip, cepid, itron_strerror(rlen));
+			break;
+			}
+
+		rcount ++;
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TES%c:%02u RCV] rcount: %4u, len: %4u, data %02x -> %02x",
+		                   apip, cepid, rcount,
+		                   (uint16_t)rlen, * tcp_echo_srv_info[six].tcp_echo_srv_info[six].buffer,
+		                                   *(tcp_echo_srv_info[six].tcp_echo_srv_info[six].buffer + rlen - 1));
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+		total += rlen;
+		soff = 0;
+		while (rlen > 0) {
+			scount ++;
+			if ((slen = tcp_snd_dat(cepid, &tcp_echo_srv_info[six].buffer[soff], rlen, SND_TMO)) < 0) {
+				syslog(LOG_NOTICE, "[TES%c:%02u SND] error: %s",
+				                   apip, cepid, itron_strerror(slen));
+				goto err_fin;
+				}
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES%c:%02u SND] scount: %4u, len: %4u",
+			                   apip, cepid, scount, (uint16_t)slen);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+			rlen -= slen;
+			soff += slen;
+			}
+		}
+err_fin:
+
+#ifdef USE_TCP_SHT_CEP
+	if ((error = tcp_sht_cep(cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u SHT] error: %s", 
+		                    apip, cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+	if ((error = tcp_cls_cep(cepid, CLS_TMO)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u CLS] error: %s",
+		                   apip, cepid, itron_strerror(error));
+
+	syscall(get_tim(&now));
+	syslog(LOG_NOTICE, "[TES%c:%02u FIN] finsh: %7lu, ttl: %lu",
+	                   apip, cepid, now / SYSTIM_HZ, total);
+
+	return error;
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#endif	/* of #ifndef USE_TCP_NON_BLOCKING */
+
+#ifndef USE_TCP_EXTENTIONS
+
+/*
+ *  tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+tcp_echo_srv_task(intptr_t exinf)
+{
+	ID	tskid, cepid;
+	ER	error;
+	uint_t	six;
+	char	apip;
+
+	six = INDEX_SRV_INFO((ID)exinf);
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV)
+
+	if (six >= NUM_TCP4_ECHO_SRV_TASKS)
+		apip = API_PROTO_IPV6;
+	else
+		apip = API_PROTO_IPV4;
+
+#else	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+	apip = API_PROTO_IPV6;
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+	apip = API_PROTO_IPV4;
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+	syscall(get_tid(&tskid));
+	cepid = tcp_echo_srv_info[six].cepid;
+	syslog(LOG_NOTICE, "[TCP%c ECHO SRV:%d,%d] started.", apip, tskid, cepid);
+
+	while (true) {
+		while ((error = tcp_echo_srv(six, apip)) == E_OK)
+			;
+		syslog(LOG_NOTICE, "[TES%c:%02u TSK] sleep 60[s], error: %s", apip, cepid, itron_strerror(error));
+		tslp_tsk(60 * 1000);
+		syslog(LOG_NOTICE, "[TES%c:%02u TSK] resume.", apip, cepid);
+		}
+	}
+
+#endif	/* of #ifndef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.cfg	(revision 313)
@@ -0,0 +1,185 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ã #1ãéåä¿¡ã¿ã¹ã¯åä¸å
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_ECHO_SRV1
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(TCP_ECHO_SRV_TASK1,  {
+	TA_HLNG | TA_ACT,
+	1,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+
+CRE_TSK(TCP_ECHO_SRV_TASK2,  {
+	TA_HLNG | TA_ACT,
+	2,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 2 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+
+CRE_TSK(TCP_ECHO_SRV_TASK3,  {
+	TA_HLNG | TA_ACT,
+	3,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 3 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+
+CRE_TSK(TCP_ECHO_SRV_TASK4,  {
+	TA_HLNG | TA_ACT,
+	4,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 4 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+
+CRE_TSK(TCP_ECHO_SRV_TASK5,  {
+	TA_HLNG | TA_ACT,
+	5,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 5 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+
+CRE_TSK(TCP_ECHO_SRV_TASK6,  {
+	TA_HLNG | TA_ACT,
+	6,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 6 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+
+CRE_TSK(TCP_ECHO_SRV_TASK7,  {
+	TA_HLNG | TA_ACT,
+	7,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 7 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+
+CRE_TSK(TCP_ECHO_SRV_TASK8,  {
+	TA_HLNG | TA_ACT,
+	8,
+	tcp_echo_srv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
+
+/* ã»ããã© */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY1,	{ TA_TPRI, 0, 1 });
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY2,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY3,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY4,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY5,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY6,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY7,	{ TA_TPRI, 0, 1 });
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+CRE_SEM(SEM_TCP_ECHO_SRV_NBLK_READY8,	{ TA_TPRI, 0, 1 });
+#endif
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1.h	(revision 313)
@@ -0,0 +1,135 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifdef USE_TCP_ECHO_SRV1
+
+#ifndef _TCP_ECHO_SRV1_H_
+#define _TCP_ECHO_SRV1_H_
+
+/* 
+ *  TCP ECHO ãµã¼ã #1
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4/IPv6
+ *    ã»ç·æ¥ãã¼ã¿ã®åä¿¡
+ */
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define TCP_ECHO_SRV_STACK_SIZE		1024		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+
+/* åªå
+åº¦ */
+
+#define TCP_ECHO_SRV_MAIN_PRIORITY	5		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(1024)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(1024)
+
+#elif defined(SUPPORT_INET4)
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(512)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(512)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(1024)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(1024)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+/*
+ *  ã¿ã¹ã¯æ°
+ */
+
+#ifndef NUM_TCP_ECHO_SRV_TASKS
+#define NUM_TCP_ECHO_SRV_TASKS		1
+#endif
+
+/* IPv4 ç¨ã® TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯ã¯ 1åã«å¶éããã*/
+
+#ifdef  NUM_TCP4_ECHO_SRV_TASKS
+#undef  NUM_TCP4_ECHO_SRV_TASKS
+#endif
+#define NUM_TCP4_ECHO_SRV_TASKS		1
+
+/*
+ *  å¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+extern uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE];
+extern uint8_t tcp_echo_srv_rwbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_RWBUF_SIZE];
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	tcp_echo_srv_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern ER callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk);
+extern ER wakeup_tcp_echo_srv (char apip);
+
+#endif	/* of #ifndef _TCP_ECHO_SRV1_H_ */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_ext.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_ext.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_ext.c	(revision 313)
@@ -0,0 +1,381 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ãµã¼ã #1
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4/IPv6
+ *    ã»ç·æ¥ãã¼ã¿ã®åä¿¡
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_srv1.h>
+#include <netapp/tcp_echo_srv1_var.h>
+
+#ifdef USE_TCP_ECHO_SRV1
+
+/*
+ *  è¡¨ç¤º
+ */
+
+//#define SHOW_RCV_RANGE
+
+/*
+ *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ */
+
+#define USE_TCP_SHT_CEP
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ã
+ */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define CLS_TMO		TMO_FEVR		/* Close Wait ã¯æ¨æºã§ 60ç§ */
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+//#define CLS_TMO		TMO_FEVR	/* Close Wait ã¯æ¨æºã§ 60ç§ */
+#define CLS_TMO		(70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10)
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*30)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(40*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*20)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  å¤æ°
+ */
+
+typedef struct t_tcp_echo_srv_task_info {
+	ID	taskid;		/* ã¿ã¹ã¯ ID		*/
+	bool_t	active;		/* åä½ç¶æ
+		*/
+	char	apip;		/* API IPãã­ãã³ã«	*/
+	} T_TCP_ECHO_SRV_TASK_INFO;
+
+static T_TCP_ECHO_SRV_TASK_INFO tcp_echo_srv_task_info[NUM_TCP_ECHO_SRV_TASKS] = {
+
+				{ TCP_ECHO_SRV_TASK1, false },
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+				{ TCP_ECHO_SRV_TASK2, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+				{ TCP_ECHO_SRV_TASK3, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+				{ TCP_ECHO_SRV_TASK4, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+				{ TCP_ECHO_SRV_TASK5, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+				{ TCP_ECHO_SRV_TASK6, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+				{ TCP_ECHO_SRV_TASK7, false },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+				{ TCP_ECHO_SRV_TASK8, false },
+#endif
+
+			};
+
+/*
+ *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+static ER
+get_tcp_rep (ID *repid, char apip)
+{
+	ID		tskid;
+	T_TCP6_CREP	crep6;
+	T_TCP_CREP	crep4;
+
+	get_tid(&tskid);
+	if (apip == API_PROTO_IPV6) {
+		crep6.repatr = UINT_C(0);
+		crep6.myaddr.portno = UINT_C(7);
+		memcpy(&crep6.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+		return alloc_tcp6_rep(repid, tskid, &crep6);
+		}
+	else {
+		crep4.repatr = UINT_C(0);
+		crep4.myaddr.portno = UINT_C(7);
+		crep4.myaddr.ipaddr = IPV4_ADDRANY;
+		return alloc_tcp4_rep(repid, tskid, &crep4);
+		}
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+static ER
+get_tcp_rep (ID *repid, char apip)
+{
+	ID		tskid;
+	T_TCPN_CREP	crep;
+
+	get_tid(&tskid);
+
+	crep.repatr = UINT_C(0);
+	crep.myaddr.portno = UINT_C(7);
+
+#if defined(SUPPORT_INET6)
+
+	memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#else	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+	crep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+	return ALLOC_TCP_REP(repid, tskid, &crep);
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ */
+
+static ER
+get_tcp_cep (ID *cepid, char apip)
+{
+	ID		tskid;
+	T_TCP_CCEP	ccep;
+
+	get_tid(&tskid);
+
+	ccep.cepatr = UINT_C(0);
+	ccep.sbufsz = TCP_ECHO_SRV_SWBUF_SIZE;
+	ccep.rbufsz = TCP_ECHO_SRV_RWBUF_SIZE;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+	ccep.sbuf = NADR;
+#else
+	ccep.sbuf = tcp_echo_srv_swbuf;
+#endif
+#ifdef TCP_CFG_RWBUF_CSAVE
+	ccep.rbuf = NADR;
+#else
+	ccep.rbuf = tcp_echo_srv_rwbuf;
+#endif
+#ifdef USE_TCP_NON_BLOCKING
+	ccep.callback = (FP)callback_nblk_tcp_echo_srv;
+#else
+	ccep.callback = NULL;
+#endif
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if (apip == API_PROTO_IPV6)
+		return alloc_tcp6_cep(cepid, tskid, &ccep);
+	else
+		return alloc_tcp4_cep(cepid, tskid, &ccep);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	return ALLOC_TCP_CEP(cepid, tskid, &ccep);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	}
+
+/*
+ *  wakeup_tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯ã®ä¼æ­¢è§£é¤
+ */
+
+ER
+wakeup_tcp_echo_srv (char apip)
+{
+	int	ix;
+
+	for (ix = NUM_TCP_ECHO_SRV_TASKS; -- ix >= 0; )
+		if (!tcp_echo_srv_task_info[ix].active) {
+			syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] wake up.",
+			                   apip, tcp_echo_srv_task_info[ix].taskid);
+			tcp_echo_srv_task_info[ix].apip   = apip;
+			tcp_echo_srv_task_info[ix].active = true;
+			return syscall(wup_tsk(tcp_echo_srv_task_info[ix].taskid));
+			}
+	syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] wake up error: %s.",
+			   apip, tcp_echo_srv_task_info[ix].taskid, itron_strerror(E_ID));
+	return E_ID;
+	}
+
+/*
+ *  tcp_echo_srv_task -- TCP ã¨ã³ã¼ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+tcp_echo_srv_task (intptr_t exinf)
+{
+	ID	tskid;
+	ER	error = E_OK;
+	int	ix;
+	char	apip;
+
+	syscall(get_tid(&tskid));
+	syslog(LOG_NOTICE, "[TCPn ECHO SRV(EXT):%d] started.", tskid);
+	while (true) {
+		syslog(LOG_NOTICE, "[TCPn ECHO SRV(EXT):%d] goto sleep.", tskid);
+		syscall(slp_tsk());
+
+		for (ix = NUM_TCP_ECHO_SRV_TASKS; -- ix >= 0; ) {
+			if (tcp_echo_srv_task_info[ix].taskid == tskid) {
+				break;
+				}
+			}
+
+		apip = tcp_echo_srv_task_info[ix].apip;
+		if ((error = get_tcp_cep(&tcp_echo_srv_info[ix].cepid, apip)) != E_OK) {
+			syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] create CEP error: %s",
+		                           apip, tskid, itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			if ((error = get_tcp_rep(&tcp_echo_srv_info[ix].repid, apip)) != E_OK) {
+				syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] create REP error: %s",
+		                                   apip, tskid, itron_strerror(error));
+				break;
+				}
+			else if ((error = tcp_echo_srv(ix, apip)) != E_OK) {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+				if (apip == API_PROTO_IPV6)
+					error = free_tcp6_rep(tcp_echo_srv_info[ix].repid, error != E_DLT);
+				else
+					error = free_tcp4_rep(tcp_echo_srv_info[ix].repid, error != E_DLT);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+				error = FREE_TCP_REP(tcp_echo_srv_info[ix].repid, error != E_DLT);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+				if (error != E_OK) {
+					syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] delete REP error: %s",
+		                                           apip, tskid, itron_strerror(error));
+					}
+
+				break;
+				}
+			}
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+		if (apip == API_PROTO_IPV6)
+			error = free_tcp6_cep(tcp_echo_srv_info[ix].cepid);
+		else
+			error = free_tcp4_cep(tcp_echo_srv_info[ix].cepid);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		error = FREE_TCP_CEP(tcp_echo_srv_info[ix].cepid);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		if (error != E_OK) {
+			syslog(LOG_NOTICE, "[TCP%c ECHO SRV(EXT):%d] delete CEP error: %s",
+		                           apip, tskid, itron_strerror(error));
+			}
+
+		for (ix = NUM_TCP_ECHO_SRV_TASKS; -- ix >= 0; ) {
+			if (tcp_echo_srv_task_info[ix].taskid == tskid) {
+				tcp_echo_srv_task_info[ix].active = false;
+				break;
+				}
+			}
+
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_nblk.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_nblk.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_nblk.c	(revision 313)
@@ -0,0 +1,656 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ãµã¼ã #1
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4/IPv6
+ *    ã»ç·æ¥ãã¼ã¿ã®åä¿¡
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_srv1.h>
+#include <netapp/tcp_echo_srv1_var.h>
+
+#ifdef USE_TCP_ECHO_SRV1
+
+/*
+ *  è¡¨ç¤º
+ */
+
+//#define SHOW_RCV_RANGE
+
+/*
+ *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ */
+
+#define USE_TCP_SHT_CEP
+
+/*
+ *  ã¿ã¤ã ã¢ã¦ã
+ */
+
+#ifdef TOPPERS_S810_CLG3_85
+
+#define CLS_TMO		TMO_FEVR		/* Close Wait ã¯æ¨æºã§ 60ç§ */
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(30*SYSTIM_HZ)
+
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+//#define CLS_TMO		TMO_FEVR	/* Close Wait ã¯æ¨æºã§ 60ç§ */
+#define CLS_TMO		(70*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*10)
+//#define RCV_TMO		TMO_FEVR
+#define RCV_TMO		(30*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*30)
+//#define SND_TMO		TMO_FEVR
+#define SND_TMO		(40*SYSTIM_HZ+(netapp_rand()%SYSTIM_HZ)*20)
+
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+
+#ifdef USE_TCP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+T_TCP_ECHO_SRV_INFO tcp_echo_srv_info[] = {
+
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY1 },
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY2 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY3 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY4 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY5 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY6 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY7 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+	{ 0, 0, SEM_TCP_ECHO_SRV_NBLK_READY8 },
+#endif
+
+	};
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+T_TCP_ECHO_SRV_INFO tcp_echo_srv_info[] = {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV)
+
+	{ TCP4_ECHO_SRV_CEPID1, TCP4_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY1 },
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+	{ TCP_ECHO_SRV_CEPID1, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY1 },
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+	{ TCP_ECHO_SRV_CEPID2, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY2 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+	{ TCP_ECHO_SRV_CEPID3, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY3 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+	{ TCP_ECHO_SRV_CEPID4, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY4 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+	{ TCP_ECHO_SRV_CEPID5, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY5 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+	{ TCP_ECHO_SRV_CEPID6, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY6 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+	{ TCP_ECHO_SRV_CEPID7, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY7 },
+#endif
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+	{ TCP_ECHO_SRV_CEPID8, TCP_ECHO_SRV_REPID, SEM_TCP_ECHO_SRV_NBLK_READY8 },
+#endif
+
+	};
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/*
+ *  find_srv_info -- æ¥ç¶ç¸æã®æ
+å ±æ§é ä½ãæ¢ç´¢ããã
+ */
+
+static 
+T_TCP_ECHO_SRV_INFO *find_srv_info (ID cepid)
+{
+	T_TCP_ECHO_SRV_INFO	*ri;
+
+	for (ri = &tcp_echo_srv_info[sizeof(tcp_echo_srv_info) / sizeof(T_TCP_ECHO_SRV_INFO)]; ri --; )
+		if (ri->cepid == cepid)
+			return ri;
+	return NULL;
+	}
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER		error = E_OK;
+	T_TCP_ECHO_SRV_INFO	*ri;
+
+	if ((ri = find_srv_info(cepid)) == NULL) {
+		syslog(LOG_NOTICE, "[TESn:%02u CBN] CEPID not found", cepid);
+		return E_PAR;
+		}
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		ri->error = *(ER*)p_parblk;
+		syscall(sig_sem(ri->semid));
+		break;
+
+	case TFN_TCP_RCV_DAT:
+		if ((ri->rlen = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u CBN] error: %s", cepid, itron_strerror(ri->rlen));
+		syscall(sig_sem(ri->semid));
+		break;
+
+	case TFN_TCP_SND_DAT:
+		if ((ri->slen = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u CBN] error: %s", cepid, itron_strerror(ri->slen));
+		syscall(sig_sem(ri->semid));
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		if ((ri->error = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u CBN] error: %s", cepid, itron_strerror(ri->error));
+		syscall(sig_sem(ri->semid));
+		break;
+
+	case TFN_TCP_RCV_BUF:
+		if ((ri->rlen = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u CBN] error: %s", cepid, itron_strerror(ri->rlen));
+		syscall(sig_sem(ri->semid));
+		break;
+
+	case TFN_TCP_GET_BUF:
+		if ((ri->slen = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u CBN] error: %s", cepid, itron_strerror(ri->slen));
+		syscall(sig_sem(ri->semid));
+		break;
+
+#ifdef USE_TCP_EXTENTIONS
+
+	case TEV_TCP_RCV_OOB:
+		if ((ri->rlen = *(ER*)p_parblk) < 0)
+			syslog(LOG_NOTICE, "[TESn:%02u OOB] error: %s", cepid, itron_strerror(ri->rlen));
+		else if (ri->rlen > 0) {
+			char ch;
+
+			if ((ri->rlen = tcp_rcv_oob(cepid, &ch, sizeof(ch))) > 0)
+				syslog(LOG_NOTICE, "[TESn:%02u OOB] recv oob: 0x%02x", cepid, ch);
+			else if (ri->rlen < 0)
+				syslog(LOG_NOTICE, "[TESn:%02u OOB] error: %s", cepid, itron_strerror(ri->rlen));
+			}
+		break;
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+/*
+ *  tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+static ER
+tcp_passive_open (T_TCP_ECHO_SRV_INFO *info, char apip)
+{
+	ER		error;
+	T_IPV4EP	dst4;
+
+	if (apip == API_PROTO_IPV6) {
+		/* åä»å£ã¯ IPv6 */
+		if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_NBLK)) != E_WBLK)
+			return error;
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(info->semid));
+
+		if (info->error != E_OK)
+			return info->error;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp6_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		}
+	else {
+		/* åä»å£ã¯ IPv4 */
+		if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_NBLK)) != E_WBLK)
+			return error;
+
+		/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(info->semid));
+
+		if (info->error != E_OK)
+			return info->error;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp4_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		in6_make_ipv4mapped (&info->dst.ipaddr, dst4.ipaddr);
+		info->dst.portno = dst4.portno;
+
+		}
+
+	return E_OK;
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+static ER
+tcp_passive_open (T_TCP_ECHO_SRV_INFO *info, char apip)
+{
+	ER		error;
+
+	if ((error = TCP_ACP_CEP(info->cepid, info->repid, &info->dst, TMO_NBLK)) != E_WBLK)
+		return error;
+
+	/* ç¸æããæ¥ç¶ãããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(info->semid));
+
+	if (info->error != E_OK)
+		return info->error;
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(info->repid, true)) != E_OK)
+		return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	return E_OK;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+#ifdef USE_COPYSAVE_API
+
+/*
+ *  tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ *    USE_COPYSAVE_API		ON
+ */
+
+ER
+tcp_echo_srv (uint_t six, char apip)
+{
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+	T_IN4_ADDR	ipv4addr;
+#endif
+	ER		error;
+	SYSTIM		now;
+	uint32_t	total;
+	uint16_t	rblen, sblen, rlen, slen, soff, scount, rcount;
+	char		*rbuf, *sbuf, head, tail;
+
+	if ((error = tcp_passive_open(&tcp_echo_srv_info[six], apip)) != E_OK)
+		return error;
+
+	syscall(get_tim(&now));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if (apip == API_PROTO_IPV6)
+		syslog(LOG_NOTICE, "[TES6:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ipv62str(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+		                   tcp_echo_srv_info[six].dst.portno);
+	else {
+		ipv4addr = ntohl(tcp_echo_srv_info[six].dst.ipaddr.s6_addr32[3]);
+		syslog(LOG_NOTICE, "[TES4:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ip2str(NULL, &ipv4addr),
+		                   tcp_echo_srv_info[six].dst.portno);
+		}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	syslog(LOG_NOTICE, "[TES%c:%02u ACP] conct: %7lu,from: %s.%u",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+	                   IP2STR(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+	                   tcp_echo_srv_info[six].dst.portno);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	rlen = scount = rcount = total = 0;
+	while (true) {
+		if ((error = tcp_rcv_buf(tcp_echo_srv_info[six].cepid, (void**)&rbuf, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s",
+	                                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+			break;
+			}
+
+		/* åä¿¡ããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+		if (tcp_echo_srv_info[six].rlen < 0) {	/* ã¨ã©ã¼ */
+			syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s", 
+	                                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(tcp_echo_srv_info[six].rlen));
+			break;
+			}
+		else if (tcp_echo_srv_info[six].rlen == 0)	/* åä¿¡çµäº */
+			break;
+
+		rblen = tcp_echo_srv_info[six].rlen;
+
+		/* ãããã¡ã®æ®ãã«ãããåä¿¡é·ãèª¿æ´ããã*/
+		if (rblen > BUF_SIZE - rlen)
+			rblen = BUF_SIZE - rlen;
+		total += rblen;
+		rlen   = rblen;
+
+		head = *rbuf;
+		tail = *(rbuf + rblen - 1);
+		rcount ++;
+
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TES%c:%02u RCV] "
+		                   "rcount: %7lu, len: %6lu, data %02x -> %02x",
+	                           apip, tcp_echo_srv_info[six].cepid, rcount, rblen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+		memcpy(tcp_echo_srv_info[six].buffer, rbuf, rblen);
+
+		if ((error = tcp_rel_buf(tcp_echo_srv_info[six].cepid, rlen)) < 0) {
+			syslog(LOG_NOTICE, "[TES%c:%02u REL] error: %s",
+	                                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+			break;
+			}
+
+		soff = 0;
+		while (rlen > 0) {
+
+			if ((error = tcp_get_buf(tcp_echo_srv_info[six].cepid, (void**)&sbuf, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TES%c:%02u GET] error: %s",
+	                                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+				goto err_fin;
+				}
+
+			/* éä¿¡ãããã¡ã®ç²å¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+			if (tcp_echo_srv_info[six].slen < 0) {
+				syslog(LOG_NOTICE, "[TES%c:%02u GET] error: %s",
+	                                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(tcp_echo_srv_info[six].slen));
+				goto err_fin;
+				}
+
+			sblen = tcp_echo_srv_info[six].slen;
+			scount ++;
+			slen = sblen < rlen ? sblen : rlen;
+			memcpy(sbuf, tcp_echo_srv_info[six].buffer + soff, slen);
+
+			if ((error = tcp_snd_buf(tcp_echo_srv_info[six].cepid, slen)) != E_OK) {
+				syslog(LOG_NOTICE, "[TES%c:%02u SND] error: %s",
+	                                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+				goto err_fin;
+				}
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES%c:%02u SND] scount: %7lu, len: %4u",
+	                                   apip, cepid, scount, slen);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+			rlen -= slen;
+			soff += slen;
+			}
+		}
+err_fin:
+
+#ifdef USE_TCP_SHT_CEP
+	if ((error = tcp_sht_cep(tcp_echo_srv_info[six].cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u SHT] error: %s",
+	                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+	if ((error = tcp_cls_cep(tcp_echo_srv_info[six].cepid, TMO_NBLK)) != E_WBLK)
+		syslog(LOG_NOTICE, "[TES%c:%02u CLS] error: %s",
+	                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+
+	/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+	syscall(get_tim(&now));
+	syslog(LOG_NOTICE, "[TES%c:%02u FIN] finsh: %7lu, ttl: %lu",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ, total);
+
+	return error == E_WBLK ? E_OK : error;
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+/*
+ *  tcp_echo_srv -- TCP ã¨ã³ã¼ãµã¼ã
+ *
+ *    USE_TCP_NON_BLOCKING	ON
+ *    USE_COPYSAVE_API		OFF
+ */
+
+ER
+tcp_echo_srv (uint_t six, char apip)
+{
+	T_IN4_ADDR	ipv4addr;
+	ER		error;
+	SYSTIM		now;
+	uint32_t	total;
+	uint16_t	rlen, slen, soff, scount, rcount;
+	char		head, tail;
+
+	if ((error = tcp_passive_open(&tcp_echo_srv_info[six], apip)) != E_OK)
+		return error;
+
+	syscall(get_tim(&now));
+	if (apip == API_PROTO_IPV6)
+		syslog(LOG_NOTICE, "[TES6:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ipv62str(NULL, &tcp_echo_srv_info[six].dst.ipaddr),
+		                   tcp_echo_srv_info[six].dst.portno);
+	else {
+		ipv4addr = ntohl(tcp_echo_srv_info[six].dst.ipaddr.s6_addr32[3]);
+		syslog(LOG_NOTICE, "[TES4:%02u ACP] conct: %7lu,from: %s.%u",
+		                   tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ip2str(NULL, &ipv4addr),
+		                   tcp_echo_srv_info[six].dst.portno);
+		}
+
+	scount = rcount = total = 0;
+	while (true) {
+		if ((error = tcp_rcv_dat(tcp_echo_srv_info[six].cepid, tcp_echo_srv_info[six].buffer, BUF_SIZE - 1, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s",
+	                                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+			break;
+			}
+
+		/* åä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+		if (tcp_echo_srv_info[six].rlen < 0) {
+			syslog(LOG_NOTICE, "[TES%c:%02u RCV] error: %s",
+	                                   apip, tcp_echo_srv_info[six].cepid, itron_strerror(tcp_echo_srv_info[six].rlen));
+			break;
+			}
+		else if (tcp_echo_srv_info[six].rlen == 0)
+			break;
+
+		rlen = tcp_echo_srv_info[six].rlen;
+		head = * tcp_echo_srv_info[six].buffer;
+		tail = *(tcp_echo_srv_info[six].buffer + rlen - 1);
+		rcount ++;
+
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TES%c:%02u RCV] rcount: %4u, len: %4u, data %02x -> %02x",
+	                           apip, tcp_echo_srv_info[six].cepid, rcount, rlen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+		total += rlen;
+		soff = 0;
+		while (rlen > 0) {
+			scount ++;
+			if ((error = tcp_snd_dat(tcp_echo_srv_info[six].cepid, &tcp_echo_srv_info[six].buffer[soff], rlen, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TES%c:%02u SND] error: %s",
+	                                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+				goto err_fin;
+				}
+
+			/* éä¿¡å®äºã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+			if (tcp_echo_srv_info[six].slen < 0) {
+				syslog(LOG_NOTICE, "[TES%c:%02u SND] error: %s",
+	                                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(tcp_echo_srv_info[six].slen));
+				goto err_fin;
+				}
+
+			slen = tcp_echo_srv_info[six].slen;
+
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES%c:%02u SND] scount: %4u, len: %4u",
+	                                   apip, tcp_echo_srv_info[six].cepid, scount, slen);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+
+			rlen -= slen;
+			soff += slen;
+			}
+		}
+err_fin:
+
+#ifdef USE_TCP_SHT_CEP
+	if ((error = tcp_sht_cep(tcp_echo_srv_info[six].cepid)) != E_OK)
+		syslog(LOG_NOTICE, "[TES%c:%02u SHT] error: %s",
+	                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+	if ((error = tcp_cls_cep(tcp_echo_srv_info[six].cepid, TMO_NBLK)) != E_WBLK)
+		syslog(LOG_NOTICE, "[TES%c:%02u CLS] error: %s",
+	                           apip, tcp_echo_srv_info[six].cepid, itron_strerror(error));
+
+	/* éæ¾ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(tcp_echo_srv_info[six].semid));
+
+	syscall(get_tim(&now));
+	syslog(LOG_NOTICE, "[TES%c:%02u FIN] finsh: %7lu, ttl: %lu",
+	                   apip, tcp_echo_srv_info[six].cepid, now / SYSTIM_HZ, total);
+
+	return error == E_WBLK ? E_OK : error;
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv1_var.h	(revision 313)
@@ -0,0 +1,111 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifdef USE_TCP_ECHO_SRV1
+
+#ifndef _TCP_ECHO_SRV1_VAR_H_
+#define _TCP_ECHO_SRV1_VAR_H_
+
+/*
+ *  æ³¨æ:
+ *
+ *    BUF_SIZE ã¯ TCP ã®
+ *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
+ *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ */
+
+#define BUF_SIZE	((TCP_ECHO_SRV_SWBUF_SIZE + \
+                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
+
+/*
+ *  ãµã¼ãæ
+å ±æ§é ä½
+ */
+
+typedef struct t_tcp_echo_srv_info {
+	ID	cepid;		/* éä¿¡ç«¯ç¹ ID		*/
+	ID	repid;		/* åä»å£   ID		*/
+
+#ifdef USE_TCP_NON_BLOCKING
+	ID	semid;		/* NBLK ç¨ ã»ããã©ID	*/
+	ER	error;		/* NBLK ç¨ error	*/
+	ER_UINT	slen;		/* NBLK ç¨ éä¿¡ãã¼ã¿æ°	*/
+	ER_UINT	rlen;		/* NBLK ç¨ åä¿¡ãã¼ã¿æ°	*/
+#endif
+
+	T_IPEP	dst;		/* æ¥ç¶ç¸æã¢ãã¬ã¹æ
+å ±	*/
+
+#ifdef USE_TCP_NON_BLOCKING
+
+	char	buffer[BUF_SIZE];
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifndef USE_COPYSAVE_API
+	char	buffer[BUF_SIZE];
+#endif
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+	} T_TCP_ECHO_SRV_INFO;
+
+#define INDEX_SRV_INFO(id)	((id)-1)
+
+/*
+ *  å¤æ°
+ */
+
+extern T_TCP_ECHO_SRV_INFO tcp_echo_srv_info[];
+
+/*
+ *  é¢æ°
+ */
+
+extern ER tcp_echo_srv (uint_t six, char apip);
+
+#endif	/* of #ifndef _TCP_ECHO_SRV1_VAR_H_ */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV1 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.c	(revision 313)
@@ -0,0 +1,787 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  TCP ECHO ãµã¼ã #2
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åé¢å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»IPv4/IPv6
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/tcp.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/tcp_echo_srv2.h>
+
+#ifdef USE_TCP_ECHO_SRV2
+
+/*
+ *  è¡¨ç¤º
+ */
+
+/*#define SHOW_RCV_RANGE*/
+
+/*
+ *  ã³ãã¯ã·ã§ã³åæ­æ¹æ³ã®æå®
+ */
+
+/*#define USE_TCP_SHT_CEP*/
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_SWBUF_CSAVE
+uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE];
+#endif
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+uint8_t tcp_echo_srv_rwbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_RWBUF_SIZE];
+#endif
+
+/*
+ *  å¤æ°
+ */
+
+/*
+ *  æ³¨æ:
+ *
+ *    BUF_SIZE ã¯ TCP ã®
+ *    éä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãº + åä¿¡ã¦ã¤ã³ãã¦ãããã¡ãµã¤ãºã® 
+ *    3/2 åä»¥ä¸ã®å¤§ããããªããã°ããããã­ãã¯ããå¯è½æ§ãããã
+ */
+
+#define BUF_SIZE	((TCP_ECHO_SRV_SWBUF_SIZE + \
+                          TCP_ECHO_SRV_RWBUF_SIZE) * 3 / 2)
+
+static char	buffer[BUF_SIZE];	/* ãããã¡		*/
+
+static T_IPEP	dst;			/* æ¥ç¶ç¸æ		*/
+static bool_t	ena_rcv;		/* åä¿¡å¯è½ãã©ã°	*/
+static char	*rptr = buffer;		/* åä¿¡ãã¤ã³ã¿		*/
+static char	*sptr = buffer;		/* éä¿¡ãã¤ã³ã¿		*/
+static uint32_t	rcv_total;		/* åä¿¡æå­æ°		*/
+static uint32_t	snd_total;		/* éä¿¡æå­æ°		*/
+static uint16_t	chars;			/* ãããã¡å
+ã®æå­æ°	*/
+static uint16_t	rcv_count;		/* åä¿¡åæ°		*/
+static uint16_t	snd_count;		/* éä¿¡åæ°		*/
+
+#ifdef USE_TCP_NON_BLOCKING
+
+static ER	rcv_error = E_OK;	/* åä¿¡ããã³ãã­ãã­ã³ã°ã³ã¼ã«ã¨ã©ã¼ */
+static ER	snd_error = 1;		/* éä¿¡ããã³ãã­ãã­ã³ã°ã³ã¼ã«ã¨ã©ã¼ */
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER		error = E_OK;
+	ER_UINT		slen, rlen;
+	SYSTIM		now;
+	uint16_t	last;
+	char		head, tail;
+
+	get_tim(&now);
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		rcv_error = *(ER*)p_parblk;
+		if (rcv_error == E_OK) {
+			sptr = rptr = buffer;
+			snd_count = snd_total = rcv_count = rcv_total = chars = 0;
+			snd_error = 1;
+			ena_rcv   = true;
+			syslog(LOG_NOTICE, "[TES:%02u CBN] connect: %6lu, from: %s.%d",
+			                   cepid, now / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+			}
+		else
+			syslog(LOG_NOTICE, "[TES:%02u CBN] accept error: %s\n", cepid, itron_strerror(rcv_error));
+
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY));
+		break;
+
+	case TFN_TCP_SND_DAT:
+		slen = snd_error = *(ER*)p_parblk;
+		if (slen > 0) {
+			head = *sptr;
+			tail = *(sptr + slen - 1);
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES:%02u CBN] send len: %4u, data %02x -> %02x",
+			                   cepid, (uint16_t)slen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+			snd_count ++;
+			snd_total += slen;
+
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+			/* éä¿¡ãã¤ã³ã¿ãé²ããã*/
+			if (sptr - buffer + slen >= sizeof(buffer))
+				sptr -= sizeof(buffer) - slen;
+			else
+				sptr += slen;
+
+			/* ãããã¡å
+ã®æå­æ°ãæ¸ããã*/
+			last   = chars;
+			chars -= slen;
+
+ 			/* ãããã¡å
+ã«æå­ãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (chars > 0 || (!ena_rcv && chars == 0))
+				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+ 			/* åä¿¡å¯è½ã§ããããã¡å
+ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
+				syscall(sig_sem(SEM_TCP_ECHO_SRV_RCV_READY));
+
+			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+			}
+		else {
+			syslog(LOG_NOTICE, "[TES:%02u CBN] send error = %s", cepid, itron_strerror(snd_error));
+			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+			}
+		break;
+
+	case TFN_TCP_RCV_DAT:
+		rlen = rcv_error = *(ER*)p_parblk;
+		if (rlen > 0) {
+			head = *rptr;
+			tail = *(rptr + rlen - 1);
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES:%02u CBN] recv len: %4u, data %02x -> %02x",
+			                   cepid, (uint16_t)rlen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+			rcv_count ++;
+			rcv_total += rlen;
+
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+			/* åä¿¡ãã¤ã³ã¿ãé²ããã*/
+			if (rptr - buffer + rlen >= sizeof(buffer))
+				rptr -= sizeof(buffer) - rlen;
+			else
+				rptr += rlen;
+
+			/* ãããã¡å
+ã®æå­æ°ãå¢ããã*/
+			last   = chars;
+			chars += rlen;
+
+ 			/* ãããã¡å
+ã«æå­ãå
+¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (last == 0 && chars > 0)
+				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+ 			/* ãããã¡å
+ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (sizeof(buffer) - chars > 0)
+				sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+
+			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+			}
+		else {
+			if (rlen < 0)
+				syslog(LOG_NOTICE, "[TES:%02u CBN] recv error = %s", cepid, itron_strerror(rcv_error));
+			sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+			}
+		break;
+
+	case TFN_TCP_CLS_CEP:
+		snd_error = *(ER*)p_parblk;
+		if (snd_error != E_OK)
+			syslog(LOG_NOTICE, "[TES:%02u CBN] close error = %s", cepid, itron_strerror(snd_error));
+
+		syslog(LOG_NOTICE, "[TES:%02u CBN] finish:  %6lu, snd: %4u, rcv: %4u, len: %ld",
+		                   cepid, now / SYSTIM_HZ, snd_count, rcv_count, snd_total);
+
+		sig_sem(SEM_TCP_ECHO_SRV_CLS_READY);
+		break;
+
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_GET_BUF:
+	case TFN_TCP_RCV_BUF:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		}
+	return error;
+	}
+
+/*
+ *  TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³ (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)
+ */
+
+ER
+tcp_echo_srv_rcv (ID cepid, ID repid)
+{
+	ER		error;
+	uint16_t	blen;
+
+	if ((error = psnd_dtq(DTQ_TCP_ECHO_SRV_SND, (intptr_t)cepid)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES:%02u RCV] sync error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	if ((error = TCP_ACP_CEP(cepid, repid, &dst, TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[TES:%02u ACP] accept error = %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	/* ã³ãã¯ã·ã§ã³éè¨­å®äºã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
+
+	/* å¾
+ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ãããã³ãã¯ã·ã§ã³ã®éè¨­å¾
+ã¡ã«æ»ãã*/
+	if (rcv_error != E_OK)
+		return rcv_error;
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(repid, true)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES:%02u DEL] REP delete error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	while (true) {
+
+		/* åä¿¡ãµã¤ãºãè¨ç®ããã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+		if (sptr > rptr)
+			blen = sptr - rptr;
+		else
+			blen = sizeof(buffer) - (rptr - buffer);
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+		/* åä¿¡ããã*/
+		if ((error = tcp_rcv_dat(cepid, rptr, blen, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TES:%02u RCV] recv error = %s", cepid, itron_strerror(error));
+			break;
+			}
+
+		/* åä¿¡ãããã¡ã«ç©ºãã§ããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
+
+		/* å¾
+ã£ã¦ããéã«ãåä¿¡æå­æ°ã 0 ã«ãªãããã¨ã©ã¼ã«ãªã£ããçµäºããã*/
+		if (rcv_error <= 0)
+			break;
+
+		}
+
+	/* åä¿¡å®äº */
+	ena_rcv = false;
+
+	/* åä¿¡ãããã¡ã«æå­ãå
+¥ãã®ãå¾
+ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+	if (chars == 0)
+		sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+	/* ã³ãã¯ã·ã§ã³åæ­å®äºã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
+
+	return error == E_WBLK ? E_OK : error;
+	}
+
+/*
+ *  TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯ (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)
+ */
+
+void
+tcp_echo_srv_snd_task(intptr_t exinf)
+{
+	ER		error;
+	ID		tskid, cepid;
+	uint16_t	blen;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV (NBLK) SND:%d] started.", tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_SRV_SND, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TES:%02u SND] sync error: %s",
+			                   cepid, itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			/* ãããã¡ã«æå­ãå
+¥ãã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
+
+			/* å¾
+ã£ã¦ããéã«ã¨ã©ã¼ã«ãªã£ããçµäºããã*/
+			if (snd_error <= 0)
+				break;
+
+			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			if (!ena_rcv && chars == 0)
+				break;
+
+			/* éä¿¡ãµã¤ãºãè¨ç®ããã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+			if (rptr > sptr)
+				blen = rptr - sptr;
+			else
+				blen = sizeof(buffer) - (sptr - buffer);
+			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+			/* éä¿¡ããã*/
+			if ((error = tcp_snd_dat(cepid, sptr, blen, TMO_NBLK)) != E_WBLK) {
+				syslog(LOG_NOTICE, "[TES:%02u SND] send error = %s", cepid, itron_strerror(error));
+				break;
+				}
+			}
+
+		/* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾
+ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		if (chars == sizeof(buffer))
+			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+#ifdef USE_TCP_SHT_CEP
+		if ((error = tcp_sht_cep(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TES:%02u SND] shutdown error = %s", cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+		if ((error = tcp_cls_cep(cepid, TMO_NBLK)) != E_WBLK) {
+			syslog(LOG_NOTICE, "[TES:%02u SND] close error = %s", cepid, itron_strerror(error));
+			}
+
+		pol_sem(SEM_TCP_ECHO_SRV_SND_READY);
+		pol_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+		}
+	}
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+/*
+ *  TCP ECHO ãµã¼ãåä¿¡ã«ã¼ãã³
+ */
+
+ER
+tcp_echo_srv_rcv (ID cepid, ID repid)
+{
+	ER_UINT		rlen;
+	ER		error;
+	SYSTIM		now;
+	uint16_t	blen, last;
+	char		head, tail;
+
+	if ((error = psnd_dtq(DTQ_TCP_ECHO_SRV_SND, (intptr_t)cepid)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES:%02u RCV] sync error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+	if ((error = TCP_ACP_CEP(cepid, repid, &dst, TMO_FEVR)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES:%02u ACP] accept error = %s", cepid, itron_strerror(error));
+		return error;
+		}
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(repid, true)) != E_OK) {
+		syslog(LOG_NOTICE, "[TES:%02u DEL] REP delete error: %s", cepid, itron_strerror(error));
+		return error;
+		}
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	syscall(get_tim(&now));
+	syslog(LOG_NOTICE, "[TES:%02u ACP] connect: %6lu, from: %s.%d",
+	                   cepid, now / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+	sptr = rptr = buffer;
+	snd_count = snd_total = rcv_count = rcv_total = chars = 0;
+	ena_rcv   = true;
+	while (true) {
+
+		/* åä¿¡ãµã¤ãºãè¨ç®ããã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+		if (sptr > rptr)
+			blen = sptr - rptr;
+		else
+			blen = sizeof(buffer) - (rptr - buffer);
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+		/* åä¿¡ããã*/
+		if ((rlen = tcp_rcv_dat(cepid, rptr, blen, TMO_FEVR)) <= 0) {
+			if (rlen < 0)
+				syslog(LOG_NOTICE, "[TES:%02u RCV] recv error = %s",
+				                   cepid, itron_strerror(rlen));
+			break;
+			}
+		head = *rptr;
+		tail = *(rptr + rlen - 1);
+#ifdef SHOW_RCV_RANGE
+		syslog(LOG_NOTICE, "[TES:%02u RCV] len: %4u, data %02x -> %02x",
+		                   cepid, (uint16_t)rlen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+		rcv_count ++;
+		rcv_total += rlen;
+
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+		/* åä¿¡ãã¤ã³ã¿ãé²ããã*/
+		if (rptr - buffer + rlen >= sizeof(buffer))
+			rptr -= sizeof(buffer) - rlen;
+		else
+			rptr += rlen;
+
+		/* ãããã¡å
+ã®æå­æ°ãå¢ããã*/
+		last   =     chars;
+		chars += (uint16_t)rlen;
+
+ 				/* ãããã¡å
+ã«æå­ãå
+¥ãã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		if (last == 0 && chars > 0)
+			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+ 				/* ãããã¡å
+ã«ç©ºããããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		if (sizeof(buffer) - chars > 0)
+			sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+
+		syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+		/* ãããã¡ã«ç©ºããã§ããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_ECHO_SRV_RCV_READY));
+		}
+
+	/* åä¿¡å®äº */
+	ena_rcv = false;
+
+	/* åä¿¡ãããã¡ã«æå­ãå
+¥ãã®ãå¾
+ã£ã¦ããéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+	if (chars == 0)
+		sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+	/* ã³ãã¯ã·ã§ã³ã®åæ­ãå®äºããã¾ã§å¾
+ã¤ã*/
+	syscall(wai_sem(SEM_TCP_ECHO_SRV_CLS_READY));
+
+	return error;
+	}
+
+/*
+ *  TCP ECHO ãµã¼ãéä¿¡ã¿ã¹ã¯
+ */
+
+void
+tcp_echo_srv_snd_task(intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER		error;
+	ER_UINT		slen;
+	SYSTIM		now;
+	uint16_t	blen, last;
+	char		head, tail;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV SND:%d] started.", tskid);
+	while (true) {
+		if ((error = rcv_dtq(DTQ_TCP_ECHO_SRV_SND, (intptr_t*)&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TES:%02u SND] sync error: %s",
+			                   cepid, itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			/* ãããã¡ã«æå­ãå
+¥ãã¾ã§å¾
+ã¤ã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_SND_READY));
+
+			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			if (!ena_rcv && chars == 0)
+				break;
+
+			/* éä¿¡ãµã¤ãºãè¨ç®ããã*/
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+			if (rptr > sptr)
+				blen = rptr - sptr;
+			else
+				blen = sizeof(buffer) - (sptr - buffer);
+			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+			if ((slen = tcp_snd_dat(cepid, sptr, blen, TMO_FEVR)) <= 0) {
+				syslog(LOG_NOTICE, "[TES:%02u SND] send error = %s", cepid, itron_strerror(slen));
+				break;
+				}
+
+			head = *sptr;
+			tail = *(sptr + slen - 1);
+#ifdef SHOW_RCV_RANGE
+			syslog(LOG_NOTICE, "[TES:%02u SND] len: %4u, data %02x -> %02x",
+			                   cepid, (uint16_t)slen, head, tail);
+#endif	/* of #ifdef SHOW_RCV_RANGE */
+			snd_count ++;
+			snd_total += slen;
+
+			syscall(wai_sem(SEM_TCP_ECHO_SRV_LOCK));
+
+			/* éä¿¡ãã¤ã³ã¿ãé²ããã*/
+			if (sptr - buffer + slen >= sizeof(buffer))
+				sptr -= sizeof(buffer) - slen;
+			else
+				sptr += slen;
+
+			/* ãããã¡å
+ã®æå­æ°ãæ¸ããã*/
+			last   =     chars;
+			chars -= (uint16_t)slen;
+
+			/* åä¿¡å®äºã§ããããã¡ã«æå­ããªããã°çµäºããã*/
+			if (!ena_rcv && chars == 0) {
+				syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+				break;
+				}
+
+ 			/* ãããã¡å
+ã«æå­ãããã°ãéä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (chars > 0)
+				sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+ 			/* åä¿¡å¯è½ã§ããããã¡å
+ã«ç©ºããã§ããã°ãåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+			if (ena_rcv && last == sizeof(buffer) && sizeof(buffer) - chars > 0)
+				sig_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+
+			syscall(sig_sem(SEM_TCP_ECHO_SRV_LOCK));
+			}
+
+		/* åä¿¡ãããã¡ã«ç©ºãã§ãããå¾
+ã£ã¦ããåä¿¡ã¿ã¹ã¯ãèµ·åºããã*/
+		if (chars == sizeof(buffer))
+			sig_sem(SEM_TCP_ECHO_SRV_SND_READY);
+
+#ifdef USE_TCP_SHT_CEP
+		if ((error = tcp_sht_cep(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TES:%02u SND] shtudown error = %s", cepid, itron_strerror(error));
+#endif	/* of #ifdef USE_TCP_SHT_CEP */
+
+		if ((error = tcp_cls_cep(cepid, TMO_FEVR)) != E_OK)
+			syslog(LOG_NOTICE, "[TES:%02u SND] close error = %s", cepid, itron_strerror(error));
+
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[TES:%02u SND] finish:  %6lu, snd: %4u, rcv: %4u, len: %ld",
+		                   cepid, now / SYSTIM_HZ, snd_count, rcv_count, snd_total);
+
+		sig_sem(SEM_TCP_ECHO_SRV_CLS_READY);
+
+		pol_sem(SEM_TCP_ECHO_SRV_SND_READY);
+		pol_sem(SEM_TCP_ECHO_SRV_RCV_READY);
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ */
+
+static ER
+get_tcp_rep (ID *repid)
+{
+	ID		tskid;
+	T_TCP_CREP	crep;
+
+	get_tid(&tskid);
+
+	crep.repatr = UINT_C(0);
+	crep.myaddr.portno = UINT_C(7);
+
+#if defined(SUPPORT_INET4)
+	crep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#if defined(SUPPORT_INET6)
+	memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+#endif
+
+	return ALLOC_TCP_REP(repid, tskid, &crep);
+	}
+
+/*
+ *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ */
+
+static ER
+get_tcp_cep (ID *cepid)
+{
+	ID		tskid;
+	T_TCP_CCEP	ccep;
+
+	get_tid(&tskid);
+
+	ccep.cepatr = UINT_C(0);
+	ccep.sbufsz = TCP_ECHO_SRV_SWBUF_SIZE;
+	ccep.rbufsz = TCP_ECHO_SRV_RWBUF_SIZE;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+	ccep.sbuf = NADR;
+#else
+	ccep.sbuf = tcp_echo_srv_swbuf;
+#endif
+#ifdef TCP_CFG_RWBUF_CSAVE
+	ccep.rbuf = NADR;
+#else
+	ccep.rbuf = tcp_echo_srv_rwbuf;
+#endif
+#ifdef USE_TCP_NON_BLOCKING
+	ccep.callback = (FP)callback_nblk_tcp_echo_srv;
+#else
+	ccep.callback = NULL;
+#endif
+
+	return ALLOC_TCP_CEP(cepid, tskid, &ccep);
+	}
+
+/*
+ *  TCP ECHO ãµã¼ãåä¿¡ã¿ã¹ã¯
+ */
+
+void
+tcp_echo_srv_rcv_task (intptr_t exinf)
+{
+	ID	tskid, cepid, repid;
+	ER	error = E_OK;
+
+	syscall(get_tid(&tskid));
+	syslog(LOG_NOTICE, "[TCP ECHO SRV:%d] started.", tskid);
+	while (true) {
+
+		syscall(slp_tsk());
+		if ((error = get_tcp_cep (&cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[TES:00 EXT] CEP create error: %s", itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			if ((error = get_tcp_rep (&repid)) != E_OK) {
+				syslog(LOG_NOTICE, "[TES:00 EXT] REP create error: %s", itron_strerror(error));
+				break;
+				}
+			else if ((error = tcp_echo_srv_rcv(cepid, repid)) != E_OK) {
+				error = FREE_TCP_REP(repid, error != E_DLT);
+				break;
+				}
+			}
+
+		if ((error = free_tcp_cep(cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[TES:%02u EXT] CEP delete error: %s", cepid, itron_strerror(error));
+
+		}
+	}
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+void
+tcp_echo_srv_rcv_task(intptr_t exinf)
+{
+	ID	tskid;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP ECHO SRV RCV:%d,%d] started.", tskid, (ID)exinf);
+	while (true) {
+		while (tcp_echo_srv_rcv((ID)exinf, TCP_ECHO_SRV_REPID) == E_OK)
+			;
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV2 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.cfg	(revision 313)
@@ -0,0 +1,108 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ã #2ãéåä¿¡ã¿ã¹ã¯åé¢å
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_ECHO_SRV2
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_TCP_EXTENTIONS
+
+CRE_TSK(TCP_ECHO_SRV_TASK,  {
+	TA_HLNG | TA_ACT,
+	0,
+	tcp_echo_srv_rcv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(TCP_ECHO_SRV_SND_TASK,  {
+	TA_HLNG | TA_ACT,
+	0,
+	tcp_echo_srv_snd_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+CRE_TSK(TCP_ECHO_SRV_TASK,  {
+	TA_HLNG | TA_ACT,
+	TCP_ECHO_SRV_CEPID1,
+	tcp_echo_srv_rcv_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+CRE_TSK(TCP_ECHO_SRV_SND_TASK,  {
+	TA_HLNG | TA_ACT,
+	TCP_ECHO_SRV_CEPID1,
+	tcp_echo_srv_snd_task,
+	TCP_ECHO_SRV_MAIN_PRIORITY,
+	TCP_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_TCP_ECHO_SRV_SND,  { TA_TFIFO, 1, NULL });
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_TCP_ECHO_SRV_LOCK,		{ TA_TPRI, 1, 1 });
+CRE_SEM(SEM_TCP_ECHO_SRV_RCV_READY,	{ TA_TPRI, 0, 1 });
+CRE_SEM(SEM_TCP_ECHO_SRV_SND_READY,	{ TA_TPRI, 0, 1 });
+CRE_SEM(SEM_TCP_ECHO_SRV_CLS_READY,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV2 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tcp_echo_srv2.h	(revision 313)
@@ -0,0 +1,127 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifdef USE_TCP_ECHO_SRV2
+
+#ifndef _TCP_ECHO_SRV2_H_
+#define _TCP_ECHO_SRV2_H_
+
+/* 
+ *  TCP ECHO ãµã¼ã #2
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åé¢å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»IPv4/IPv6
+ */
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define TCP_ECHO_SRV_STACK_SIZE		1024		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+
+/* åªå
+åº¦ */
+
+#define TCP_ECHO_SRV_MAIN_PRIORITY	5		/* TCP ECHO ãµã¼ãã¿ã¹ã¯ã®åªå
+åº¦			*/
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(1024)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(1024)
+
+#elif defined(SUPPORT_INET4)
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(512)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(512)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define TCP_ECHO_SRV_SWBUF_SIZE		(1024)
+#define TCP_ECHO_SRV_RWBUF_SIZE		(1024)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+/* ã¿ã¹ã¯æ° */
+
+#if defined(USE_TCP_ECHO_SRV2)
+#if defined(NUM_TCP_ECHO_SRV_TASKS)
+#undef  NUM_TCP_ECHO_SRV_TASKS
+#endif	/* of #if defined(NUM_TCP_ECHO_SRV_TASKS) */
+#define NUM_TCP_ECHO_SRV_TASKS		1
+#endif	/* of #if defined(USE_TCP_ECHO_SRV2) */
+
+/*
+ *  å¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+extern uint8_t tcp_echo_srv_swbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_SWBUF_SIZE];
+extern uint8_t tcp_echo_srv_rwbuf[NUM_TCP_ECHO_SRV_TASKS][TCP_ECHO_SRV_RWBUF_SIZE];
+
+/*
+ *  ã¿ã¹ã¯
+ */
+
+extern void	tcp_echo_srv_rcv_task(intptr_t exinf);
+extern void	tcp_echo_srv_snd_task(intptr_t exinf);
+
+/*
+ *  é¢æ°
+ */
+
+extern ER callback_nblk_tcp_echo_srv (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _TCP_ECHO_SRV2_H_ */
+
+#endif	/* of #ifdef USE_TCP_ECHO_SRV2 */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dbg_cons.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dbg_cons.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dbg_cons.cfg	(revision 313)
@@ -0,0 +1,155 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã°ã³ã³ã½ã¼ã«
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_DBG_CONS
+
+#ifdef USE_TCP_EXTENTIONS
+
+/* TCP åä»å£ */
+
+#ifdef SUPPORT_INET6
+
+#if NUM_VRID_TCP6_REPS >= 1
+VRID_TCP6_REP (TCP6_RSV_REPID1);
+#endif
+
+#if NUM_VRID_TCP6_REPS >= 2
+VRID_TCP6_REP (TCP6_RSV_REPID2);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#if NUM_VRID_TCP4_REPS >= 1
+VRID_TCP_REP (TCP4_RSV_REPID1);
+#endif
+
+#if NUM_VRID_TCP4_REPS >= 2
+VRID_TCP_REP (TCP4_RSV_REPID2);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#if NUM_VRID_TCP6_CEPS >= 1
+VRID_TCP6_CEP (TCP6_RSV_CEPID1);
+#endif
+
+#if NUM_VRID_TCP6_CEPS >= 2
+VRID_TCP6_CEP (TCP6_RSV_CEPID2);
+#endif
+
+#if NUM_VRID_TCP6_CEPS >= 3
+VRID_TCP6_CEP (TCP6_RSV_CEPID3);
+#endif
+
+#if NUM_VRID_TCP6_CEPS >= 4
+VRID_TCP6_CEP (TCP6_RSV_CEPID4);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#if NUM_VRID_TCP4_CEPS >= 1
+VRID_TCP_CEP (TCP4_RSV_CEPID1);
+#endif
+
+#if NUM_VRID_TCP4_CEPS >= 2
+VRID_TCP_CEP (TCP4_RSV_CEPID2);
+#endif
+
+#if NUM_VRID_TCP4_CEPS >= 3
+VRID_TCP_CEP (TCP4_RSV_CEPID3);
+#endif
+
+#if NUM_VRID_TCP4_CEPS >= 4
+VRID_TCP_CEP (TCP4_RSV_CEPID4);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_UDP_EXTENTIONS
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#if NUM_VRID_UDP6_CEPS >= 1
+VRID_UDP6_CEP (UDP6_RSV_CEPID1);
+#endif
+
+#if NUM_VRID_UDP6_CEPS >= 2
+VRID_UDP6_CEP (UDP6_RSV_CEPID2);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#if NUM_VRID_UDP4_CEPS >= 1
+VRID_UDP_CEP (UDP4_RSV_CEPID1);
+#endif
+
+#if NUM_VRID_UDP4_CEPS >= 2
+VRID_UDP_CEP (UDP4_RSV_CEPID2);
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_DBG_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp4_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp4_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp4_cli.cfg	(revision 313)
@@ -0,0 +1,61 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef DHCP4_CLI_CFG
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+UDP_CRE_CEP (UDP4_DHCP_CLI_CEPID, {
+	0,
+	{ IPV4_ADDRANY, DHCP4_CLI_CFG_PORTNO },
+	callback_nblk_dhcp4_cli
+	} );
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp6_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp6_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_dhcp6_cli.cfg	(revision 313)
@@ -0,0 +1,61 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2011 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  DHCP/DHCPv6 ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef DHCP6_CLI_CFG
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+UDP6_CRE_CEP (UDP6_DHCP_CLI_CEPID, {
+	0,
+	{ IPV6_ADDRANY, DHCP6_CLI_CFG_PORTNO },
+	callback_nblk_dhcp6_cli
+	} );
+
+#endif	/* of #ifdef DHCP6_CLI_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_net_cons.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_net_cons.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_net_cons.cfg	(revision 313)
@@ -0,0 +1,136 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯çµç±ã³ã³ã½ã¼ã«å
+¥åºå
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_NET_CONS
+
+/* TCP åä»å£ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_REP (NET_CONS_REPID, {
+	0,
+	{ IPV6_ADDRANY, 23 }
+	} );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_REP (NET_CONS_REPID, {
+	0,
+	{ IPV4_ADDRANY, 23 }
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+TCP6_CRE_CEP (NET_CONS_CEPID, {
+	0,
+	NADR,
+	NET_CONS_SWBUF_SIZE,
+	NADR,
+	NET_CONS_RWBUF_SIZE,
+	callback_nblk_net_cons
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+TCP6_CRE_CEP (NET_CONS_CEPID, {
+	0,
+	net_cons_swbuf,
+	NET_CONS_SWBUF_SIZE,
+	net_cons_rwbuf,
+	NET_CONS_RWBUF_SIZE,
+	callback_nblk_net_cons
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+TCP_CRE_CEP (NET_CONS_CEPID, {
+	0,
+	NADR,
+	NET_CONS_SWBUF_SIZE,
+	NADR,
+	NET_CONS_RWBUF_SIZE,
+	callback_nblk_net_cons
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+TCP_CRE_CEP (NET_CONS_CEPID, {
+	0,
+	net_cons_swbuf,
+	NET_CONS_SWBUF_SIZE,
+	net_cons_rwbuf,
+	NET_CONS_RWBUF_SIZE,
+	callback_nblk_net_cons
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_NET_CONS */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_resolver.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_resolver.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_resolver.cfg	(revision 313)
@@ -0,0 +1,75 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  RESOLVER ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_RESOLVER
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+UDP6_CRE_CEP (UDP6_RESOLVER_CEPID, {
+	0,
+	{ IPV6_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+UDP_CRE_CEP (UDP4_RESOLVER_CEPID, {
+	0,
+	{ IPV4_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef USE_RESOLVER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1.cfg	(revision 313)
@@ -0,0 +1,488 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET4
+ *    USE_TCP_NON_BLOCKING: OFF
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 ä»¥é
+ * 
+ */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 2 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 3 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 4 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 5 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 6 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 7 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1_nblk.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1_nblk.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp4_echo_srv1_nblk.cfg	(revision 313)
@@ -0,0 +1,486 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET4
+ *    USE_TCP_NON_BLOCKING: ON
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 ä»¥é
+ * 
+ */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 2 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 3 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 4 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 5 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 6 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 7 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1.cfg	(revision 313)
@@ -0,0 +1,362 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET6
+ *    SUPPORT_INET4
+ *    USE_TCP_NON_BLOCKING: OFF
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP åä»å£
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS == 1
+ * 
+ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+/*
+ * TCP åä»å£
+ */
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+TCP6_CRE_REP (TCP_ECHO_SRV_REPID, {
+	TA_NULL,
+	{ IPV6_ADDRANY, 7 }
+	} );
+
+#if defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV)
+
+TCP_CRE_REP (TCP4_ECHO_SRV_REPID, {
+	TA_NULL,
+	{ IPV4_ADDRANY, 7 }
+	} );
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP4_ECHO_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+TCP_CRE_REP (TCP_ECHO_SRV_REPID, {
+	TA_NULL,
+	{ IPV4_ADDRANY, 7 }
+	} );
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+/*
+ * TCP éä¿¡ç«¯ç¹
+ *
+ * å®ç¾©ãã TCP éä¿¡ç«¯ç¹ï¼TCP?_ECHO_SRV_CEPID1ï¼ã®é¸æ
+ *
+ *   INET6 INET4 USE_TCP4  TCP6_CRE_CEP TCP_CRE_CEP
+ *     â    â     â          Ã         TCP4
+ *     â    â     Ã          TCP        Ã
+ *     â    Ã     â          TCP        Ã
+ *     â    Ã     Ã          TCP        Ã
+ *     Ã    â     â          Ã         TCP
+ *     Ã    â     Ã          Ã         TCP
+ *     Ã    Ã     â          Ã         Ã
+ *     Ã    Ã     Ã          Ã         Ã
+ *
+ */
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_TCP4_ECHO_SRV)
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #if defined(USE_TCP4_ECHO_SRV) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(USE_TCP4_ECHO_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#elif defined(SUPPORT_INET4)	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1_nblk.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1_nblk.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp64_echo_srv1_nblk.cfg	(revision 313)
@@ -0,0 +1,320 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET6
+ *    SUPPORT_INET4
+ *    USE_TCP_NON_BLOCKING: ON
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS == 1
+ * 
+ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+/*
+ * TCP éä¿¡ç«¯ç¹
+ *
+ * å®ç¾©ãã TCP éä¿¡ç«¯ç¹ï¼TCP?_ECHO_SRV_CEPID1ï¼ã®é¸æ
+ *
+ *   INET6 INET4 USE_TCP4  TCP6_CRE_CEP TCP_CRE_CEP
+ *     â    â     â          Ã         TCP4
+ *     â    â     Ã          TCP        Ã
+ *     â    Ã     â          TCP        Ã
+ *     â    Ã     Ã          TCP        Ã
+ *     Ã    â     â          Ã         TCP
+ *     Ã    â     Ã          Ã         TCP
+ *     Ã    Ã     â          Ã         Ã
+ *     Ã    Ã     Ã          Ã         Ã
+ *
+ */
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_TCP4_ECHO_SRV)
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #if defined(USE_TCP4_ECHO_SRV) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(USE_TCP4_ECHO_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#elif defined(SUPPORT_INET4)	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if !defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1.cfg	(revision 313)
@@ -0,0 +1,482 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET6
+ *    USE_TCP_NON_BLOCKING: OFF
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 ä»¥é
+ * 
+ */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 2 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 3 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 4 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 5 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 6 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 7 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1_nblk.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1_nblk.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp6_echo_srv1_nblk.cfg	(revision 313)
@@ -0,0 +1,482 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET6
+ *    USE_TCP_NON_BLOCKING: ON
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP éä¿¡ç«¯ç¹ãNUM_TCP_ECHO_SRV_TASKS >= 2 ä»¥é
+ * 
+ */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_TCP_ECHO_SRV1)
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID2, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[1],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[1],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 2 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 3
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID3, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[2],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[2],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 3 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 4
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID4, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[3],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[3],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 4 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 5
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID5, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[4],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[4],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 5 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 6
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID6, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[5],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[5],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 6 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 7
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID7, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[6],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[6],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 7 */
+
+#if NUM_TCP_ECHO_SRV_TASKS >= 8
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID8, {
+	TA_NULL,
+	tcp_echo_srv_swbuf[7],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[7],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_TCP_ECHO_SRV_TASKS >= 8 */
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_TCP_ECHO_SRV1) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_cli.cfg	(revision 313)
@@ -0,0 +1,177 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_DISCARD_CLI
+
+#ifndef USE_TCP_EXTENTIONS
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+TCP6_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	NADR,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	callback_nblk_tcp_discard_cli
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+TCP6_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	tcp_discard_cli_swbuf,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	callback_nblk_tcp_discard_cli
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+TCP6_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	NADR,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	NULL
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+TCP6_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	tcp_discard_cli_swbuf,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	NULL
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+TCP_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	NADR,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	callback_nblk_tcp_discard_cli
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+TCP_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	tcp_discard_cli_swbuf,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	callback_nblk_tcp_discard_cli
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+TCP_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	NADR,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	NULL
+	} );
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+TCP_CRE_CEP (TCP_DISCARD_CLI_CEPID, {
+	TA_NULL,
+	tcp_discard_cli_swbuf,
+	TCP_DISCARD_CLI_SWBUF_SIZE,
+	NADR,
+	0,
+	NULL
+	} );
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifndef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_discard_srv.cfg	(revision 313)
@@ -0,0 +1,138 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP DISCARD ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_DISCARD_SRV
+
+#ifndef USE_TCP_EXTENTIONS
+
+/* TCP åä»å£ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_REP (TCP_DISCARD_SRV_REPID, {
+	TA_NULL,
+	{ IPV6_ADDRANY, 9 }
+	} );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_REP (TCP_DISCARD_SRV_REPID, {
+	TA_NULL,
+	{ IPV4_ADDRANY, 9 }
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#ifdef TCP_CFG_RWBUF_CSAVE_ONLY
+
+TCP6_CRE_CEP (TCP_DISCARD_SRV_CEPID, {
+	TA_NULL,
+	NADR,
+	0,
+	NADR,
+	TCP_DISCARD_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+TCP6_CRE_CEP (TCP_DISCARD_SRV_CEPID, {
+	TA_NULL,
+	NADR,
+	0,
+	tcp_discard_srv_rwbuf,
+	TCP_DISCARD_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#ifdef TCP_CFG_RWBUF_CSAVE_ONLY
+
+TCP_CRE_CEP (TCP_DISCARD_SRV_CEPID, {
+	TA_NULL,
+	NADR,
+	0,
+	NADR,
+	TCP_DISCARD_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+TCP_CRE_CEP (TCP_DISCARD_SRV_CEPID, {
+	TA_NULL,
+	NADR,
+	0,
+	tcp_discard_srv_rwbuf,
+	TCP_DISCARD_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifndef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_DISCARD_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_cli.cfg	(revision 313)
@@ -0,0 +1,419 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_TCP_ECHO_CLI
+
+#ifndef USE_TCP_EXTENTIONS
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#ifdef SUPPORT_INET4
+
+#ifdef USE_TCP4_ECHO_CLI
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP4_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef USE_TCP4_ECHO_CLI */
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#ifdef USE_TCP_NON_BLOCKING
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	callback_nblk_tcp_echo_cli
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	NADR,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_CLI_CEPID, {
+	0,
+	tcp_echo_cli_swbuf,
+	TCP_ECHO_CLI_SWBUF_SIZE,
+	tcp_echo_cli_rwbuf,
+	TCP_ECHO_CLI_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #ifdef USE_TCP_NON_BLOCKING */
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifndef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_TCP_ECHO_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_srv2.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_srv2.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_tcp_echo_srv2.cfg	(revision 313)
@@ -0,0 +1,318 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ECHO ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#if defined(USE_TCP_ECHO_SRV2)
+
+#ifndef USE_TCP_EXTENTIONS
+
+/* TCP åä»å£ */
+
+#if defined(SUPPORT_INET6)
+
+TCP6_CRE_REP (TCP_ECHO_SRV_REPID, {
+	0,
+	{ IPV6_ADDRANY, 7 }
+	} );
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+TCP_CRE_REP (TCP_ECHO_SRV_REPID, {
+	0,
+	{ IPV4_ADDRANY, 7 }
+	} );
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_TCP_NON_BLOCKING)
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	callback_nblk_tcp_echo_srv
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	NADR,
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	NADR,
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (TCP_ECHO_SRV_CEPID1, {
+	0,
+	tcp_echo_srv_swbuf[0],
+	TCP_ECHO_SRV_SWBUF_SIZE,
+	tcp_echo_srv_rwbuf[0],
+	TCP_ECHO_SRV_RWBUF_SIZE,
+	NULL 
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(USE_TCP_NON_BLOCKING) */
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #ifndef USE_TCP_EXTENTIONS */
+
+#endif	/* of #defined(USE_TCP_ECHO_SRV2) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_cli.cfg	(revision 313)
@@ -0,0 +1,89 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#if defined(USE_UDP4_ECHO_CLI_TSK)
+
+#if !defined(USE_UDP_EXTENTIONS)
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_UDP_NON_BLOCKING)
+
+UDP_CRE_CEP (UDP4_ECHO_CLI_CEPID, {
+	0,
+	{ IPV4_ADDRANY, UDP_PORTANY },
+	callback_nblk_udp4_echo_cli
+	} );
+
+#else	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#if defined(USE_UDP_CALL_BACK)
+
+UDP_CRE_CEP (UDP4_ECHO_CLI_CEPID, {
+	0,
+	{ IPV4_ADDRANY, UDP_PORTANY },
+	callback_udp4_echo_cli
+	} );
+
+#else	/* of #if defined(USE_UDP_CALL_BACK) */
+
+UDP_CRE_CEP (UDP4_ECHO_CLI_CEPID, {
+	0,
+	{ IPV4_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#endif	/* of #if defined(USE_UDP_CALL_BACK) */
+
+#endif	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#endif	/* of #if !defined(USE_UDP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp4_echo_srv.cfg	(revision 313)
@@ -0,0 +1,91 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ã
+ *  UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    IPv4
+ */
+
+#ifdef USE_UDP4_ECHO_SRV_TSK
+
+#ifndef USE_UDP_EXTENTIONS
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#ifdef USE_UDP_NON_BLOCKING
+
+UDP_CRE_CEP (UDP4_ECHO_SRV_CEPID, {
+	0,
+	{ IPV4_ADDRANY, 7 },
+	callback_nblk_udp4_echo_srv
+	} );
+
+#else	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+#ifdef USE_UDP_CALL_BACK
+
+UDP_CRE_CEP (UDP4_ECHO_SRV_CEPID, {
+	0,
+	{ IPV4_ADDRANY, 7 },
+	callback_udp4_echo_srv
+	} );
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+UDP_CRE_CEP (UDP4_ECHO_SRV_CEPID, {
+	0,
+	{ IPV4_ADDRANY, 7 },
+	NULL
+	} );
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+#endif	/* of #ifndef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP4_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_cli.cfg	(revision 313)
@@ -0,0 +1,89 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ã¯ã©ã¤ã¢ã³ã
+ *  TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#if defined(USE_UDP6_ECHO_CLI_TSK)
+
+#if !defined(USE_UDP_EXTENTIONS)
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#if defined(USE_UDP_NON_BLOCKING)
+
+UDP6_CRE_CEP (UDP6_ECHO_CLI_CEPID, {
+	0,
+	{ IPV6_ADDRANY, UDP_PORTANY },
+	callback_nblk_udp6_echo_cli
+	} );
+
+#else	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#if defined(USE_UDP_CALL_BACK)
+
+UDP6_CRE_CEP (UDP6_ECHO_CLI_CEPID, {
+	0,
+	{ IPV6_ADDRANY, UDP_PORTANY },
+	callback_udp6_echo_cli
+	} );
+
+#else	/* of #if defined(USE_UDP_CALL_BACK) */
+
+UDP6_CRE_CEP (UDP6_ECHO_CLI_CEPID, {
+	0,
+	{ IPV6_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#endif	/* of #if defined(USE_UDP_CALL_BACK) */
+
+#endif	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#endif	/* of #if !defined(USE_UDP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp6_echo_srv.cfg	(revision 313)
@@ -0,0 +1,91 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ã
+ *  UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    IPv6
+ */
+
+#ifdef USE_UDP6_ECHO_SRV_TSK
+
+#ifndef USE_UDP_EXTENTIONS
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#ifdef USE_UDP_NON_BLOCKING
+
+UDP6_CRE_CEP (UDP6_ECHO_SRV_CEPID, {
+	0,
+	{ IPV6_ADDRANY, 7 },
+	callback_nblk_udp6_echo_srv
+	} );
+
+#else	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+#ifdef USE_UDP_CALL_BACK
+
+UDP6_CRE_CEP (UDP6_ECHO_SRV_CEPID, {
+	0,
+	{ IPV6_ADDRANY, 7 },
+	callback_udp6_echo_srv
+	} );
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+UDP6_CRE_CEP (UDP6_ECHO_SRV_CEPID, {
+	0,
+	{ IPV6_ADDRANY, 7 },
+	NULL
+	} );
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+#endif	/* of #ifndef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP6_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp_discard_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp_discard_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_udp_discard_cli.cfg	(revision 313)
@@ -0,0 +1,81 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  UDP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_UDP_DISCARD_CLI
+
+#ifndef USE_UDP_EXTENTIONS
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+UDP6_CRE_CEP (UDP_DISCARD_CLI_CEPID, { 
+	0,
+	{ IPV6_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+UDP_CRE_CEP (UDP_DISCARD_CLI_CEPID, {
+	0,
+	{ IPV4_ADDRANY, UDP_PORTANY },
+	NULL
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifndef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_wwws.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_wwws.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/tinet_wwws.cfg	(revision 313)
@@ -0,0 +1,472 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  WWW ãµã¼ãã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    SUPPORT_INET6
+ *    SUPPORT_INET4
+ *    USE_TCP_NON_BLOCKING: OFF
+ *    USE_TCP_EXTENTIONS:   OFF
+ *    TCP åä»å£
+ *    TCP éä¿¡ç«¯ç¹
+ * 
+ */
+
+#if defined(USE_WWW_SRV)
+
+/*
+ * TCP åä»å£
+ */
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#if defined(SUPPORT_INET6)
+
+TCP6_CRE_REP (WWW_SRV_REPID, {
+	0,
+	{ IPV6_ADDRANY, 80 }
+	} );
+
+#if defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+TCP_CRE_REP (WWW4_SRV_REPID, {
+	0,
+	{ IPV4_ADDRANY, 80 }
+	} );
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET6 */
+
+#if defined(SUPPORT_INET4)
+
+TCP_CRE_REP (WWW_SRV_REPID, {
+	0,
+	{ IPV4_ADDRANY, 80 }
+	} );
+
+#endif	/* of #if defined(SUPPORT_INET4 */
+
+#endif	/* of #if defined(SUPPORT_INET6 */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS */
+
+/*
+ * TCP éä¿¡ç«¯ç¹
+ *
+ * å®ç¾©ãã TCP éä¿¡ç«¯ç¹ï¼WWW?_CEPID1ï¼ã®é¸æ
+ *
+ *   INET6 INET4 USE_TCP4  TCP6_CRE_CEP TCP_CRE_CEP
+ *     â    â     â          Ã         WWW4
+ *     â    â     Ã          WWW        Ã
+ *     â    Ã     â          WWW        Ã
+ *     â    Ã     Ã          WWW        Ã
+ *     Ã    â     â          Ã         WWW
+ *     Ã    â     Ã          Ã         WWW
+ *     Ã    Ã     â          Ã         Ã
+ *     Ã    Ã     Ã          Ã         Ã
+ *
+ */
+
+#if defined(USE_TCP_EXTENTIONS)
+
+#else	/* of #if defined(USE_TCP_EXTENTIONS */
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+#if defined(USE_WWW4_SRV)
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW4_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW4_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW4_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW4_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#else	/* of #if defined(USE_WWW4_SRV) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(USE_WWW4_SRV) */
+
+#else	/* of #if defined(SUPPORT_INET4 */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if defined(SUPPORT_INET4 */
+
+#if NUM_WWW_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[1],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP6_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	www_srv_swbuf[1],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP6_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	www_srv_swbuf[1],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[1],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_WWW_SRV_TASKS >= 2 */
+
+#elif defined(SUPPORT_INET4)	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW_SRV_CEPID1, {
+	0,
+	www_srv_swbuf[0],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[0],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if NUM_WWW_SRV_TASKS >= 2
+
+#if defined(TCP_CFG_SWBUF_CSAVE)
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	NADR,
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[1],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#if defined(TCP_CFG_RWBUF_CSAVE)
+
+TCP_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	www_srv_swbuf[1],
+	WWW_SRV_SWBUF_SIZE,
+	NADR,
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#else	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+TCP_CRE_CEP (WWW_SRV_CEPID2, {
+	0,
+	www_srv_swbuf[1],
+	WWW_SRV_SWBUF_SIZE,
+	www_srv_rwbuf[1],
+	WWW_SRV_RWBUF_SIZE,
+	NULL
+	} );
+
+#endif	/* of #if defined(TCP_CFG_RWBUF_CSAVE) */
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE) */
+
+#endif	/* of #if NUM_WWW_SRV_TASKS >= 2 */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#endif	/* of #if defined(USE_TCP_EXTENTIONS) */
+
+#endif	/* of #if defined(USE_WWW_SRV) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.c	(revision 313)
@@ -0,0 +1,490 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP4 ECHO ã¯ã©ã¤ã¢ã³ã
+ */
+
+#include <string.h>
+
+#if defined(TARGET_KERNEL_ASP)
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #if defined(TARGET_KERNEL_ASP) */
+
+#if defined(TARGET_KERNEL_JSP)
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/udp4_echo_cli.h>
+
+#if defined(USE_UDP4_ECHO_CLI_TSK)
+
+/* echo ãµã¼ãã®ãã¼ãçªå· */
+
+#define ECHO_SRV_PORTNO		UINT_C(7)
+
+/* éä¿¡éé */
+
+#if defined(TOPPERS_S810_CLG3_85)
+
+#define SLP_ITV		(30*SYSTIM_HZ)
+
+#else	/* of #if defined(TOPPERS_S810_CLG3_85) */
+
+#define SLP_ITV		(60*SYSTIM_HZ)
+
+#endif	/* of #if defined(TOPPERS_S810_CLG3_85) */
+
+/* èªåå®è¡ */
+
+#if defined(UDP4_ECHO_CLI_AUTO_RUN_STR)
+#else
+#if 0
+#define UDP4_ECHO_CLI_AUTO_RUN_STR	"172.25.193.140 - 1000"
+#endif
+#endif
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+bool_t udp4_echo_cli_valid;
+
+/*
+ * å¤æ°
+ */
+
+#define BUF_SIZE	2048
+
+static char		udp_buf[BUF_SIZE];
+static T_IPV4EP		dst;
+
+#if defined(USE_UDP_NON_BLOCKING)
+
+static ER_UINT		nblk_len;
+static ID		nblk_tskid;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_udp4_echo_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	nblk_len = *(ER_UINT*)p_parblk;
+	syscall(wup_tsk(nblk_tskid));
+	return E_OK;
+	}
+
+/*
+ *  udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)ã
+ */
+
+ER
+udp4_echo_cli (ID cepid, T_IN4_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	ER_UINT	error;
+	SYSTIM	time;
+	uint_t	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len         = strlen(line);
+	get_tim(&time);
+	get_tid(&nblk_tskid);
+	if ((error = udp_snd_dat(cepid, &dst, line, len, TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[UEC4:%02u SND(NBLK)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return error;
+		}
+	else
+		syslog(LOG_NOTICE, "[UEC4:%02u SND(NBLK)] send:  %7lu,  to: %s.%d\n"
+		                   "                                    msg: %s",
+		                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, line);
+
+	syscall(slp_tsk());
+	get_tim(&time);
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UEC4:%02u CBR(NBLK)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return nblk_len;
+		}
+
+	if ((error = udp_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV(NBLK)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return error;
+		}
+
+	syscall(slp_tsk());
+	get_tim(&time);
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV(NBLK)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return nblk_len;
+		}
+	else {
+		udp_buf[nblk_len] = '\0';
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV(NBLK)] recv:  %7lu,from: %s.%d\n"
+		                   "                                    msg: %s",
+		                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		nblk_len = E_OK;
+		}
+
+	return nblk_len;
+	}
+
+#else	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#if defined(USE_UDP_CALL_BACK)
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_udp4_echo_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	get_tim(&time);
+	if ((len = udp_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), TMO_FEVR)) >= 0) {
+		*(udp_buf + len) = '\0';
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV(CB)] recv:  %7lu,from: %s.%d\n"
+		                   "                                  msg: %s",
+		                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		}
+	else
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV(CB)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+
+	return E_OK;
+	}
+
+/*
+ *  udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã
+ */
+
+ER
+udp4_echo_cli (ID cepid, T_IN4_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len        = strlen(line);
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UEC4:%02u SND(CB)] send:  %7lu,  to: %s.%d\n"
+	                   "                                  msg: %s",
+	                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, line);
+	if ((len = udp_snd_dat(cepid, &dst, line, len, TMO_FEVR)) < 0)
+		syslog(LOG_NOTICE, "[UEC4:%02u SND(CB)] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+
+	return E_OK;
+	}
+
+#else	/* of #if defined(USE_UDP_CALL_BACK) */
+
+/*
+ *  udp4_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã
+ */
+
+ER
+udp4_echo_cli (ID cepid, T_IN4_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len         = strlen(line);
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UEC4:%02u SND] send:  %7lu,  to: %s.%d\n"
+	                   "                              msg: %s",
+	                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, line);
+	if ((len = udp_snd_dat(cepid, &dst, line, len, TMO_FEVR)) < 0) {
+		syslog(LOG_NOTICE, "[UEC4:%02u SND] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+		return len;
+		}
+
+	if ((len = udp_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), 10*1000)) >= 0) {
+		*(udp_buf + len) = '\0';
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, time / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		return E_OK;
+		}
+	else {
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC4:%02u RCV] error: %7lu,%s",
+		       cepid, time / SYSTIM_HZ, itron_strerror(len));
+		return len;
+		}
+	}
+
+#endif	/* of #if defined(USE_UDP_CALL_BACK) */
+
+#endif	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+/*
+ *  getcomd -- ã³ãã³ããå¾ãã
+ */
+
+#if defined(UDP4_ECHO_CLI_AUTO_RUN_STR)
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER		error;
+	char		*line = NULL;
+	static char	auto_run_str[] = UDP4_ECHO_CLI_AUTO_RUN_STR;
+	static int_t	count = 0;
+
+	if (retry || count == 0) {
+		line = auto_run_str;
+		dly_tsk(6 * 1000);
+		}
+	else {
+		while ((error = rcv_dtq(DTQ_UDP4_ECHO_CLI, (intptr_t*)&line)) != E_OK) {
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] error:%s", cepid, itron_strerror(error));
+			dly_tsk(SLP_ITV);
+			}
+		}
+
+	count ++;
+	return line;
+	}
+
+#else	/* of #if defined(UDP4_ECHO_CLI_AUTO_RUN_STR) */
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER	error;
+	char	*line = NULL;
+
+	while ((error = rcv_dtq(DTQ_UDP4_ECHO_CLI, (intptr_t*)&line)) != E_OK) {
+		syslog(LOG_NOTICE, "[UEC4:%02u TSK] error:%s", cepid, itron_strerror(error));
+		dly_tsk(SLP_ITV);
+		}
+	return line;
+	}
+
+#endif	/* of #if defined(UDP4_ECHO_CLI_AUTO_RUN_STR) */
+
+#define MESSAGE_FORMAT	"MSG 1000000"
+
+/*
+ *  UDP4 ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ */
+
+void
+udp4_echo_cli_task (intptr_t exinf)
+{
+	static char msg[sizeof(MESSAGE_FORMAT)] = MESSAGE_FORMAT;
+
+	ID		tskid, cepid;
+	ER		error = E_OK;
+	SYSTIM		time;
+	T_IN4_ADDR	addr;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+	T_IN6_ADDR	addr6;
+#endif
+
+	char		*line, *p;
+	int_t		rep;
+	uint32_t	count, msgno;
+	bool_t		retry = false;
+	uint16_t	portno = ECHO_SRV_PORTNO;
+
+#if defined(USE_UDP_EXTENTIONS)
+	T_UDP_CCEP	ccep;
+#endif
+
+	dly_tsk(10*1000);
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP4 ECHO CLI:%d,%d] started.", tskid, (ID)exinf);
+	while (true) {
+		line = skip_blanks(getcomd((ID)exinf, retry));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+		line = lookup_ipaddr(&addr6, line, API_PROTO_IPV4);
+		if (line == NULL || !in6_is_addr_ipv4mapped(&addr6)) {
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] sleep %d.%03u[s], unknown host.",
+			       (ID)exinf, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ);
+			dly_tsk(SLP_ITV);
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] resume.", (ID)exinf);
+			retry = true;
+			continue;
+			}
+		addr = ntohl(addr6.s6_addr32[3]);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		if ((line = lookup_ipaddr(&addr, line, DEFAULT_API_PROTO)) == NULL) {
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] sleep %d.%03u[s], unknown host.",
+			       (ID)exinf, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ);
+			dly_tsk(SLP_ITV);
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] resume.", (ID)exinf);
+			retry = true;
+			continue;
+			}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {	/* Port No */
+			line = get_int(&rep, line);
+			portno = (uint16_t)rep;
+			}
+		else if (*line == '-')
+			line ++;
+
+#if defined(USE_UDP_EXTENTIONS)
+
+		ccep.cepatr = UINT_C(0);
+		ccep.myaddr.portno = UDP_PORTANY;
+
+#if defined(SUPPORT_INET6)
+
+		memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#else	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+		ccep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+#if defined(USE_UDP_NON_BLOCKING)
+		ccep.callback = (FP)callback_nblk_udp4_echo_cli;
+#else
+		ccep.callback = NULL;
+#endif
+
+		if ((error = alloc_udp4_cep(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] CEP create error:%s", cepid, itron_strerror(error));
+			continue;
+			}
+
+#else/* of #if defined(USE_UDP_EXTENTIONS) */
+
+		cepid = (ID)exinf;
+
+#endif/* of #if defined(USE_UDP_EXTENTIONS) */
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {				/* Repeat */
+			line = get_int(&rep, line);
+#if 0
+			if (rep > 1000000)
+				rep = 1000000;
+#endif
+			udp4_echo_cli_valid = true;
+			count = 0;
+			while (rep == 0 || count < rep) {
+				if (!udp4_echo_cli_valid) {
+					syslog(LOG_NOTICE, "[UEC4:%02u TSK] canceled.", cepid);
+					break;
+					}
+					
+				count ++;
+				p = &msg[sizeof(MESSAGE_FORMAT)] - 1;
+				for (msgno = count; msgno > 0; msgno /= 10)
+					*(-- p) = msgno % 10 + '0';
+				while (*(p - 2) != 'G')
+					*(-- p) = ' ';
+
+				if ((error = udp4_echo_cli(cepid, &addr, portno, msg)) != E_OK)
+					dly_tsk(30 * SYSTIM_HZ);
+
+				dly_tsk(25 * SYSTIM_HZ + netapp_rand() % (10 * SYSTIM_HZ));
+				}
+			}
+
+		else								/* Single Message */
+			error = udp4_echo_cli(cepid, &addr, portno, line);
+
+		if (error != E_OK) {
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[UEC4:%02u SND] error: %7lu,%s",
+			                   cepid, time / SYSTIM_HZ, itron_strerror(error));
+			}
+
+#if defined(USE_UDP_EXTENTIONS)
+
+		if ((error = free_udp4_cep(cepid, !(error == E_NOEXS || error == E_DLT))) != E_OK)
+			syslog(LOG_NOTICE, "[UEC4:%02u TSK] CEP delete error:%s", cepid, itron_strerror(error));
+
+#endif	/* of #if defined(USE_UDP_EXTENTIONS) */
+
+		}
+	}
+
+#endif	/* of #if defined(USE_UDP4_ECHO_CLI_TSK) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.cfg	(revision 313)
@@ -0,0 +1,82 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ECHO ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_UDP4_ECHO_CLI_TSK
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_TSK(UDP4_ECHO_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	udp4_echo_cli_task,
+	UDP4_ECHO_CLI_MAIN_PRIORITY,
+	UDP4_ECHO_CLI_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+CRE_TSK(UDP4_ECHO_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	UDP4_ECHO_CLI_CEPID,
+	udp4_echo_cli_task,
+	UDP4_ECHO_CLI_MAIN_PRIORITY,
+	UDP4_ECHO_CLI_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_UDP4_ECHO_CLI,  { TA_TFIFO, 1, NULL });
+
+#endif	/* of #ifdef USE_UDP4_ECHO_CLI_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_cli.h	(revision 313)
@@ -0,0 +1,76 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _UDP4_ECHO_CLI_H_
+#define _UDP4_ECHO_CLI_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define UDP4_ECHO_CLI_STACK_SIZE	1024		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv4ï¼ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* åªå
+åº¦ */
+
+#define UDP4_ECHO_CLI_MAIN_PRIORITY	5		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv4ï¼ã®åªå
+åº¦		*/
+
+/* å¤æ° */
+
+extern bool_t	udp4_echo_cli_valid;
+
+/* ã¿ã¹ã¯ */
+
+extern void	udp4_echo_cli_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_udp4_echo_cli (ID cepid, FN fncd, void *p_parblk);
+extern ER callback_nblk_udp4_echo_cli (ID cepid, FN fncd, void *p_parblk);
+
+#ifdef T_IN4_ADDR_DEFINED
+extern ER udp4_echo_cli (ID cepid, T_IN4_ADDR *ipaddr, uint16_t portno, char *line);
+#endif
+
+#endif	/* of #ifndef _UDP4_ECHO_CLI_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.c	(revision 313)
@@ -0,0 +1,315 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ *
+ *    IPv4
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/udp4_echo_srv.h>
+
+#ifdef USE_UDP4_ECHO_SRV_TSK
+
+/*
+ *  åä¿¡ã¿ã¤ã ã¢ã¦ã
+ */
+
+#define RCV_TMOUT	TMO_FEVR
+//#define RCV_TMOUT	(30*ULONG_C(1000))
+
+#define BUF_SIZE	2048
+
+static char	echo_rcv_buf[BUF_SIZE];
+static T_IPV4EP	dst;
+
+#ifdef USE_UDP_CALL_BACK
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_udp4_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER_UINT	len;
+	SYSTIM	now;
+
+	if ((len = udp_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), TMO_FEVR)) >= 0) {
+		echo_rcv_buf[len] = '\0';
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES4:%02u UCB] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		if (len > 0) {
+			len = udp_snd_dat(cepid, &dst, echo_rcv_buf, len, TMO_FEVR);
+			get_tim(&now);
+			if (len >= 0)
+				syslog(LOG_NOTICE, "[UES4:%02u UCB] send:  %7lu, len: %d",
+				                   cepid, now / SYSTIM_HZ, len);
+			else
+				syslog(LOG_NOTICE, "[UES4:%02u UCB] error: %7lu,%s",
+				                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+			}
+		len = E_OK;
+		}
+	else {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES4:%02u UCB] error: %7lu,%s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+		}
+
+	return len;
+	}
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+#ifdef USE_UDP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+static ER_UINT		nblk_len;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_udp4_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	SYSTIM	now;
+
+	get_tim(&now);
+	nblk_len = *(ER_UINT*)p_parblk;
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UES4:%02u CBR] error,      %7lu,%s, fncd: %s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd));
+		}
+	else if (fncd == TFN_UDP_RCV_DAT) {
+		echo_rcv_buf[nblk_len] = '\0';
+		syslog(LOG_NOTICE, "[UES4:%02u CBR] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		}
+	syscall(wup_tsk(UDP4_ECHO_SRV_TASK));
+	return E_OK;
+	}
+
+/*
+ *  UDP ECHO ãµã¼ã
+ */
+
+ER
+udp4_echo_srv (ID cepid)
+{
+	ER	error;
+	SYSTIM	now;
+
+	if ((error = udp_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), TMO_NBLK)) != E_WBLK) {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES4:%02u RCV] error: %7lu,%s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(error));
+		return error;
+		}
+
+	syscall(slp_tsk());
+	if (nblk_len < 0)
+		error = nblk_len;
+	else {
+		if ((error = udp_snd_dat(cepid, &dst, echo_rcv_buf, nblk_len, TMO_NBLK)) != E_WBLK) {
+			get_tim(&now);
+			syslog(LOG_NOTICE, "[UES4:%02u SND] error: %7lu,%s",
+			                   cepid, now / SYSTIM_HZ, itron_strerror(error));
+			return error;
+			}
+
+		syscall(slp_tsk());
+		if (nblk_len < 0)
+			error = nblk_len;
+		else {
+			get_tim(&now);
+			syslog(LOG_NOTICE, "[UES4:%02u SND] send:  %7lu, len: %d",
+			                   cepid, now / SYSTIM_HZ, nblk_len);
+			error = E_OK;
+			}
+		}
+
+	return error;
+	}
+
+#else	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+/*
+ *  UDP ECHO ãµã¼ã
+ */
+
+ER
+udp4_echo_srv (ID cepid)
+{
+	ER_UINT	len;
+	SYSTIM	now;
+
+	if ((len = udp_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), RCV_TMOUT)) >= 0) {
+		get_tim(&now);
+		echo_rcv_buf[len] = '\0';
+		syslog(LOG_NOTICE, "[UES4:%02u RCV] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ip2str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		if (len > 0) {
+			len = udp_snd_dat(cepid, &dst, echo_rcv_buf, len, TMO_FEVR);
+			get_tim(&now);
+			if (len >= 0)
+				syslog(LOG_NOTICE, "[UES4:%02u SND] send:  %7lu, len: %d",
+				                   cepid, now / SYSTIM_HZ, (uint16_t)len);
+			else
+				syslog(LOG_NOTICE, "[UES4:%02u SND] error: %7lu,%s",
+				                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+			}
+		}
+	else {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES4:%02u RCV] error: %7lu,%s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+		}
+
+	return len >= 0 || len == E_TMOUT ? E_OK : len;
+	}
+
+#endif	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+/*
+ *  UDP ECHO ãµã¼ãã¿ã¹ã¯
+ */
+
+#ifdef USE_UDP_EXTENTIONS
+
+void
+udp4_echo_srv_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER		error;
+	T_UDP_CCEP	ccep;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP4 ECHO SRV(EXT):%d] started.", tskid);
+	while (true) {
+
+		syscall(slp_tsk());
+		syslog(LOG_NOTICE, "[UDP4 ECHO SRV(EXT):%d] wake up.", tskid);
+
+		ccep.cepatr = UINT_C(0);
+		ccep.myaddr.portno = UINT_C(7);
+		ccep.myaddr.ipaddr = IPV4_ADDRANY;
+
+#ifdef USE_UDP_NON_BLOCKING
+		ccep.callback = (FP)callback_nblk_udp4_echo_srv;
+#else
+		ccep.callback = NULL;
+#endif
+
+		if ((error = alloc_udp4_cep(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[UES4:%02u TSK] CEP create error:%s", cepid, itron_strerror(error));
+			continue;
+			}
+
+		while (error == E_OK) {
+			if ((error = udp4_echo_srv(cepid)) != E_OK) {
+				if ((error = free_udp4_cep(cepid, !(error == E_NOEXS || error == E_DLT))) != E_OK)
+					syslog(LOG_NOTICE, "[UES4:%02u TSK] CEP delete error:%s", cepid, itron_strerror(error));
+				break;
+				}
+			}
+
+		}
+	slp_tsk();
+	}
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+void
+udp4_echo_srv_task (intptr_t exinf)
+{
+	ID	tskid;
+	ER	error = E_OK;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP4 ECHO SRV:%d,%d] started.", tskid, (ID)exinf);
+	while (error == E_OK) {
+		error = udp4_echo_srv((ID)exinf);
+		}
+	slp_tsk();
+	}
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP4_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.cfg	(revision 313)
@@ -0,0 +1,88 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    IPv4
+ */
+
+#ifdef USE_UDP4_ECHO_SRV_TSK
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+#ifdef USE_UDP_CALL_BACK
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_TSK(UDP4_ECHO_SRV_TASK, {
+	TA_HLNG | TA_ACT,
+	0,
+	udp4_echo_srv_task,
+	UDP4_ECHO_SRV_MAIN_PRIORITY,
+	UDP4_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+CRE_TSK(UDP4_ECHO_SRV_TASK, {
+	TA_HLNG | TA_ACT,
+	UDP4_ECHO_SRV_CEPID,
+	udp4_echo_srv_task,
+	UDP4_ECHO_SRV_MAIN_PRIORITY,
+	UDP4_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP4_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp4_echo_srv.h	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _UDP4_ECHO_SRV_H_
+#define _UDP4_ECHO_SRV_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define UDP4_ECHO_SRV_STACK_SIZE	1024		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPV4ï¼ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* åªå
+åº¦ */
+
+#define UDP4_ECHO_SRV_MAIN_PRIORITY	5		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPV4ï¼ã®åªå
+åº¦		*/
+
+/* ã¿ã¹ã¯ */
+
+extern void	udp4_echo_srv_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_udp4_echo_srv (ID cepid, FN fncd, void *p_parblk);
+extern ER callback_nblk_udp4_echo_srv (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _UDP4_ECHO_SRV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.c	(revision 313)
@@ -0,0 +1,460 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP6 ECHO ã¯ã©ã¤ã¢ã³ã
+ */
+
+#include <string.h>
+
+#if defined(TARGET_KERNEL_ASP)
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #if defined(TARGET_KERNEL_ASP) */
+
+#if defined(TARGET_KERNEL_JSP)
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/udp4_echo_cli.h>
+#include <netapp/udp6_echo_cli.h>
+
+#if defined(USE_UDP6_ECHO_CLI_TSK)
+
+/* echo ãµã¼ãã®ãã¼ãçªå· */
+
+#define ECHO_SRV_PORTNO		UINT_C(7)
+
+/* éä¿¡éé */
+
+#if defined(TOPPERS_S810_CLG3_85)
+
+#define SLP_ITV		(30*SYSTIM_HZ)
+
+#else	/* of #if defined(TOPPERS_S810_CLG3_85) */
+
+#define SLP_ITV		(60*SYSTIM_HZ)
+
+#endif	/* of #if defined(TOPPERS_S810_CLG3_85) */
+
+/* èªåå®è¡ */
+
+#if defined(UDP6_ECHO_CLI_AUTO_RUN_STR)
+#else
+#if 0
+#define UDP6_ECHO_CLI_AUTO_RUN_STR	"fe80::211:2fff:fe8a:e8c0 - 1000"
+#endif
+#endif
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+bool_t udp6_echo_cli_valid;
+
+/*
+ * å¤æ°
+ */
+
+#define BUF_SIZE	2048
+
+static char		udp_buf[BUF_SIZE];
+static T_IPV6EP		dst;
+
+#if defined(USE_UDP_NON_BLOCKING)
+
+static ER_UINT		nblk_len;
+static ID		nblk_tskid;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_udp6_echo_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	nblk_len = *(ER_UINT*)p_parblk;
+	syscall(wup_tsk(nblk_tskid));
+	return E_OK;
+	}
+
+/*
+ *  udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ãã³ãã­ãã­ã³ã°ã³ã¼ã«ä½¿ç¨)ã
+ */
+
+static ER
+udp6_echo_cli (ID cepid, T_IN6_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	ER_UINT	error;
+	SYSTIM	time;
+	uint_t	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len         = strlen(line);
+	get_tim(&time);
+	get_tid(&nblk_tskid);
+	if ((error = udp6_snd_dat(cepid, &dst, line, len, TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[UEC6:%02u SDN] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return error;
+		}
+	else
+		syslog(LOG_NOTICE, "[UEC6:%02u SDN] send:  %7lu,  to: %s.%d\n"
+		                   "                                    msg: %s",
+		                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, line);
+
+	syscall(slp_tsk());
+	get_tim(&time);
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UEC6:%02u CBR] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return nblk_len;
+		}
+
+	if ((error = udp6_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), TMO_NBLK)) != E_WBLK) {
+		syslog(LOG_NOTICE, "[UEC6:%02u RVN] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return error;
+		}
+
+	syscall(slp_tsk());
+	get_tim(&time);
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UEC6:%02u RVN] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(nblk_len));
+		return nblk_len;
+		}
+	else {
+		udp_buf[nblk_len] = '\0';
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC6:%02u RVN] recv:  %7lu,from: %s.%d\n"
+		                   "                                    msg: %s",
+		                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		nblk_len = E_OK;
+		}
+
+	return nblk_len;
+	}
+
+#else	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+#if defined(USE_UDP_CALL_BACK)
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_udp6_echo_cli (ID cepid, FN fncd, void *p_parblk)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	get_tim(&time);
+	if ((len = udp6_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), TMO_FEVR)) >= 0) {
+		*(udp_buf + len) = '\0';
+		syslog(LOG_NOTICE, "[UEC6:%02u RVC)] recv:  %7lu,from: %s.%d\n"
+		                   "                                  msg: %s",
+		                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		}
+	else
+		syslog(LOG_NOTICE, "[UEC6:%02u RVC] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+
+	return E_OK;
+	}
+
+/*
+ *  udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°ä½¿ç¨)ã
+ */
+
+static ER
+udp6_echo_cli (ID cepid, T_IN6_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len        = strlen(line);
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UEC6:%02u SDC)] send:  %7lu,  to: %s.%d\n"
+		           "                                  msg: %s",
+	                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, line);
+	if ((len = udp6_snd_dat(cepid, &dst, line, len, TMO_FEVR)) < 0)
+		syslog(LOG_NOTICE, "[UEC6:%02u SDC] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+
+	return E_OK;
+	}
+
+#else	/* of #if defined(USE_UDP_CALL_BACK) */
+
+/*
+ *  udp6_echo_cli -- ECHO/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ãã (ã³ã¼ã«ããã¯é¢æ°æªä½¿ç¨)ã
+ */
+
+static ER
+udp6_echo_cli (ID cepid, T_IN6_ADDR *ipaddr, uint16_t portno, char *line)
+{
+	SYSTIM	time;
+	ER_UINT	len;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+	len         = strlen(line);
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UEC6:%02u SND] send:  %7lu,  to: %s.%d\n"
+		           "                              msg: %s",
+	                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, line);
+	if ((len = udp6_snd_dat(cepid, &dst, line, len, TMO_FEVR)) < 0) {
+		syslog(LOG_NOTICE, "[UEC6:%02u SND] error: %7lu,%s",
+		                   cepid, time / SYSTIM_HZ, itron_strerror(len));
+		return len;
+		}
+
+	if ((len = udp6_rcv_dat(cepid, &dst, udp_buf, sizeof(udp_buf), 10*1000)) >= 0) {
+		*(udp_buf + len) = '\0';
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC6:%02u RCV] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, time / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, udp_buf);
+		return E_OK;
+		}
+	else {
+		get_tim(&time);
+		syslog(LOG_NOTICE, "[UEC6:%02u RCV] error: %7lu,%s",
+		       cepid, time / SYSTIM_HZ, itron_strerror(len));
+		return len;
+		}
+	}
+
+#endif	/* of #if defined(USE_UDP_CALL_BACK) */
+
+#endif	/* of #if defined(USE_UDP_NON_BLOCKING) */
+
+/*
+ *  getcomd -- ã³ãã³ããå¾ãã
+ */
+
+#if defined(UDP6_ECHO_CLI_AUTO_RUN_STR)
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER		error;
+	char		*line = NULL;
+	static char	auto_run_str[] = UDP6_ECHO_CLI_AUTO_RUN_STR;
+	static int_t	count = 0;
+
+	if (retry || count == 0) {
+		line = auto_run_str;
+		dly_tsk(6 * 1000);
+		}
+	else {
+		while ((error = rcv_dtq(DTQ_UDP6_ECHO_CLI, (intptr_t*)&line)) != E_OK) {
+			syslog(LOG_NOTICE, "[UEC6:%02u TSK] error:%s", cepid, itron_strerror(error));
+			dly_tsk(SLP_ITV);
+			}
+		}
+
+	count ++;
+	return line;
+	}
+
+#else	/* of #if defined(UDP6_ECHO_CLI_AUTO_RUN_STR) */
+
+static char *
+getcomd (ID cepid, bool_t retry)
+{
+	ER	error;
+	char	*line = NULL;
+
+	while ((error = rcv_dtq(DTQ_UDP6_ECHO_CLI, (intptr_t*)&line)) != E_OK) {
+		syslog(LOG_NOTICE, "[UEC6:%02u TSK] error:%s", cepid, itron_strerror(error));
+		dly_tsk(SLP_ITV);
+		}
+	return line;
+	}
+
+#endif	/* of #if defined(UDP6_ECHO_CLI_AUTO_RUN_STR) */
+
+#define MESSAGE_FORMAT	"MSG 1000000"
+
+/*
+ *  UDP6 ECHO ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ */
+
+void
+udp6_echo_cli_task (intptr_t exinf)
+{
+	static char msg[sizeof(MESSAGE_FORMAT)] = MESSAGE_FORMAT;
+
+	ID		tskid, cepid;
+	ER		error = E_OK;
+	SYSTIM		time;
+	T_IN6_ADDR	addr;
+	char		*line, *p;
+	int_t		rep;
+	uint32_t	count, msgno;
+	bool_t		retry = false;
+	uint16_t	portno = ECHO_SRV_PORTNO;
+
+#if defined(USE_UDP_EXTENTIONS)
+	T_UDP6_CCEP	ccep;
+#endif
+
+	dly_tsk(10*1000);
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP6 ECHO CLI:%d,%d] started.", tskid, (ID)exinf);
+	while (true) {
+		line = skip_blanks(getcomd((ID)exinf, retry));
+
+		if ((line = lookup_ipaddr(&addr, line, API_PROTO_IPV6)) == NULL) {
+			syslog(LOG_NOTICE, "[UEC6:%02u TSK] sleep %d.%03u[s], unknown host.",
+			       (ID)exinf, SLP_ITV / SYSTIM_HZ, SLP_ITV % SYSTIM_HZ);
+			dly_tsk(SLP_ITV);
+			syslog(LOG_NOTICE, "[UEC6:%02u TSK] resume.", (ID)exinf);
+			retry = true;
+			continue;
+			}
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {	/* Port No */
+			line = get_int(&rep, line);
+			portno = (uint16_t)rep;
+			}
+		else if (*line == '-')
+			line ++;
+
+#if defined(USE_UDP_EXTENTIONS)
+
+		ccep.cepatr = UINT_C(0);
+		ccep.myaddr.portno = UDP_PORTANY;
+		memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#ifdef USE_UDP_NON_BLOCKING
+		ccep.callback = (FP)callback_nblk_udp6_echo_cli;
+#else
+		ccep.callback = NULL;
+#endif
+
+		if ((error = alloc_udp6_cep(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[UEC6:%02u TSK] CEP create error:%s", cepid, itron_strerror(error));
+			continue;
+			}
+
+#else/* of #ifdef USE_UDP_EXTENTIONS */
+
+		cepid = (ID)exinf;
+
+#endif	/* of #if defined(USE_UDP_EXTENTIONS) */
+
+		line = skip_blanks(line);
+		if ('0' <= *line && *line <= '9') {				/* Repeat */
+			line = get_int(&rep, line);
+#if 0
+			if (rep > 1000000)
+				rep = 1000000;
+#endif
+			udp6_echo_cli_valid = true;
+			count = 0;
+			while (rep == 0 || count < rep) {
+				if (!udp6_echo_cli_valid) {
+					syslog(LOG_NOTICE, "[UEC6:%02u TSK] canceled.", cepid);
+					break;
+					}
+					
+				count ++;
+				p = &msg[sizeof(MESSAGE_FORMAT)] - 1;
+				for (msgno = count; msgno > 0; msgno /= 10)
+					*(-- p) = msgno % 10 + '0';
+				while (*(p - 2) != 'G')
+					*(-- p) = ' ';
+
+				if ((error = udp6_echo_cli(cepid, &addr, portno, msg)) != E_OK)
+					dly_tsk(30 * SYSTIM_HZ);
+
+				dly_tsk(25 * SYSTIM_HZ + netapp_rand() % (10 * SYSTIM_HZ));
+				}
+			}
+
+		else								/* Single Message */
+
+			error = udp6_echo_cli(cepid, &addr, portno, line);
+
+		if (error != E_OK) {
+			get_tim(&time);
+			syslog(LOG_NOTICE, "[UEC6:%02u SND] error: %7lu,%s",
+			                   cepid, time / SYSTIM_HZ, itron_strerror(error));
+			}
+
+#if defined(USE_UDP_EXTENTIONS)
+
+		if ((error = free_udp6_cep(cepid, !(error == E_NOEXS || error == E_DLT))) != E_OK)
+			syslog(LOG_NOTICE, "[UEC6:%02u TSK] CEP delete error:%s", cepid, itron_strerror(error));
+
+#endif	/* of #if defined(USE_UDP_EXTENTIONS) */
+
+		}
+	}
+
+#endif	/* of #if defined(USE_UDP6_ECHO_CLI_TSK) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.cfg	(revision 313)
@@ -0,0 +1,82 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ECHO ãµã¼ãè©¦é¨ãã­ã°ã©ã ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_UDP6_ECHO_CLI_TSK
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_TSK(UDP6_ECHO_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	udp6_echo_cli_task,
+	UDP6_ECHO_CLI_MAIN_PRIORITY,
+	UDP6_ECHO_CLI_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+CRE_TSK(UDP6_ECHO_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	UDP6_ECHO_CLI_CEPID,
+	udp6_echo_cli_task,
+	UDP6_ECHO_CLI_MAIN_PRIORITY,
+	UDP6_ECHO_CLI_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_UDP6_ECHO_CLI,  { TA_TFIFO, 1, NULL });
+
+#endif	/* of #ifdef USE_UDP6_ECHO_CLI_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_cli.h	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _UDP6_ECHO_CLI_H_
+#define _UDP6_ECHO_CLI_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define UDP6_ECHO_CLI_STACK_SIZE	1024		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv6ï¼ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* åªå
+åº¦ */
+
+#define UDP6_ECHO_CLI_MAIN_PRIORITY	5		/* UDP ECHO ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ï¼IPv6ï¼ã®åªå
+åº¦		*/
+
+/* å¤æ° */
+
+extern bool_t	udp6_echo_cli_valid;
+
+/* ã¿ã¹ã¯ */
+
+extern void	udp6_echo_cli_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_udp6_echo_cli (ID cepid, FN fncd, void *p_parblk);
+extern ER callback_nblk_udp6_echo_cli (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _UDP6_ECHO_CLI_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.c	(revision 313)
@@ -0,0 +1,314 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP ECHO ãµã¼ã
+ *
+ *    IPv6
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/udp6_echo_srv.h>
+
+#ifdef USE_UDP6_ECHO_SRV_TSK
+
+/*
+ *  åä¿¡ã¿ã¤ã ã¢ã¦ã
+ */
+
+#define RCV_TMOUT	TMO_FEVR
+//#define RCV_TMOUT	(30*ULONG_C(1000))
+
+#define BUF_SIZE	2048
+
+static char	echo_rcv_buf[BUF_SIZE];
+static T_IPV6EP	dst;
+
+#ifdef USE_UDP_CALL_BACK
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_udp6_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	ER_UINT	len;
+	SYSTIM	now;
+
+	if ((len = udp6_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), TMO_FEVR)) >= 0) {
+		echo_rcv_buf[len] = '\0';
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES6:%02u UCB] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		if (len > 0) {
+			len = udp6_snd_dat(cepid, &dst, echo_rcv_buf, len, TMO_FEVR);
+			get_tim(&now);
+			if (len >= 0)
+				syslog(LOG_NOTICE, "[UES6:%02u UCB] send:  %7lu, len: %d",
+				                   cepid, now / SYSTIM_HZ, len);
+			else
+				syslog(LOG_NOTICE, "[UES6:%02u UCB] error: %7lu,%s",
+				                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+			}
+		len = E_OK;
+		}
+	else {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES6:%02u UCB] recv:  %7lu,%s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+		}
+
+	return len;
+	}
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+#ifdef USE_UDP_NON_BLOCKING
+
+/*
+ *  å¤æ°
+ */
+
+static ER_UINT		nblk_len;
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_udp6_echo_srv (ID cepid, FN fncd, void *p_parblk)
+{
+	SYSTIM	now;
+
+	get_tim(&now);
+	nblk_len = *(ER_UINT*)p_parblk;
+	if (nblk_len < 0) {	/* 0 ä»¥ä¸ã®å ´åã¯ãã¨ã©ã¼ã³ã¼ã */
+		syslog(LOG_NOTICE, "[UES6:%02u CBR] error: %7lu,%s, fncd: %s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(nblk_len), in_strtfn(fncd));
+		}
+	else if (fncd == TFN_UDP_RCV_DAT) {
+		echo_rcv_buf[nblk_len] = '\0';
+		syslog(LOG_NOTICE, "[UES6:%02u CBR] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		}
+	syscall(wup_tsk(UDP6_ECHO_SRV_TASK));
+	return E_OK;
+	}
+
+/*
+ *  UDP ECHO ãµã¼ã
+ */
+
+ER
+udp6_echo_srv (ID cepid)
+{
+	ER	error;
+	SYSTIM	now;
+
+	if ((error = udp6_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), TMO_NBLK)) != E_WBLK) {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES6:%02u RCV] error: %7lu,%s", cepid, now / SYSTIM_HZ, itron_strerror(error));
+		return error;
+		}
+
+	syscall(slp_tsk());
+	if (nblk_len < 0)
+		error = nblk_len;
+	else {
+		if ((error = udp6_snd_dat(cepid, &dst, echo_rcv_buf, nblk_len, TMO_NBLK)) != E_WBLK) {
+			get_tim(&now);
+			syslog(LOG_NOTICE, "[UES6:%02u SND] error  %7lu,%s",
+			                   cepid, now / SYSTIM_HZ, itron_strerror(error));
+			return error;
+			}
+
+		syscall(slp_tsk());
+		if (nblk_len < 0)
+			error = nblk_len;
+		else {
+			get_tim(&now);
+			syslog(LOG_NOTICE, "[UES6:%02u SND] send:  %7lu, len: %d",
+			                   cepid, now / SYSTIM_HZ, nblk_len);
+			error = E_OK;
+			}
+		}
+
+	return error;
+	}
+
+#else	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+/*
+ *  UDP ECHO ãµã¼ã
+ */
+
+ER
+udp6_echo_srv (ID cepid)
+{
+	ER_UINT	len;
+	SYSTIM	now;
+
+	if ((len = udp6_rcv_dat(cepid, &dst, echo_rcv_buf, sizeof(echo_rcv_buf), RCV_TMOUT)) >= 0) {
+		get_tim(&now);
+		echo_rcv_buf[len] = '\0';
+		syslog(LOG_NOTICE, "[UES6:%02u RCV] recv:  %7lu,from: %s.%d\n"
+		                   "                              msg: %s",
+		                   cepid, now / SYSTIM_HZ, ipv62str(NULL, &dst.ipaddr), dst.portno, echo_rcv_buf);
+		if (len > 0) {
+			len = udp6_snd_dat(cepid, &dst, echo_rcv_buf, len, TMO_FEVR);
+			get_tim(&now);
+			if (len >= 0)
+				syslog(LOG_NOTICE, "[UES6:%02u SND] send:  %7lu, len: %d",
+				                   cepid, now / SYSTIM_HZ, (uint16_t)len);
+			else
+				syslog(LOG_NOTICE, "[UES6:%02u SND] error: %7lu,%s",
+				                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+			}
+		}
+	else {
+		get_tim(&now);
+		syslog(LOG_NOTICE, "[UES6:%02u RCV] error: %7lu,%s",
+		                   cepid, now / SYSTIM_HZ, itron_strerror(len));
+		}
+
+	return len >= 0 || len == E_TMOUT ? E_OK : len;
+	}
+
+#endif	/* of #ifdef USE_UDP_NON_BLOCKING */
+
+/*
+ *  UDP ECHO ãµã¼ãã¿ã¹ã¯
+ */
+
+#ifdef USE_UDP_EXTENTIONS
+
+void
+udp6_echo_srv_task (intptr_t exinf)
+{
+	ID		tskid, cepid;
+	ER		error;
+	T_UDP6_CCEP	ccep;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP6 ECHO SRV(EXT):%d] started.", tskid);
+	while (true) {
+
+		syscall(slp_tsk());
+		syslog(LOG_NOTICE, "[UDP6 ECHO SRV(EXT):%d] wake up.", tskid);
+
+		ccep.cepatr = UINT_C(0);
+		ccep.myaddr.portno = UINT_C(7);
+		memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#ifdef USE_UDP_NON_BLOCKING
+		ccep.callback = (FP)callback_nblk_udp6_echo_srv;
+#else
+		ccep.callback = NULL;
+#endif
+
+		if ((error = alloc_udp6_cep(&cepid, tskid, &ccep)) != E_OK) {
+			syslog(LOG_NOTICE, "[UES6:%02u TSK] CEP create error:%s", cepid, itron_strerror(error));
+			continue;
+			}
+
+		while (error == E_OK) {
+			if ((error = udp6_echo_srv(cepid)) != E_OK) {
+				if ((error = free_udp6_cep(cepid, !(error == E_NOEXS || error == E_DLT))) != E_OK)
+					syslog(LOG_NOTICE, "[UES6:%02u TSK] CEP delete error:%s", cepid, itron_strerror(error));
+				break;
+				}
+			}
+
+		}
+	slp_tsk();
+	}
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+void
+udp6_echo_srv_task (intptr_t exinf)
+{
+	ID	tskid;
+	ER	error = E_OK;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP6 ECHO SRV:%d,%d] started.", tskid, (ID)exinf);
+	while (error == E_OK) {
+		error = udp6_echo_srv((ID)exinf);
+		}
+	slp_tsk();
+	}
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP6_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.cfg	(revision 313)
@@ -0,0 +1,88 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ECHO ãµã¼ãã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ *
+ *    IPv6
+ */
+
+#ifdef USE_UDP6_ECHO_SRV_TSK
+
+/*
+ * ã¿ã¹ã¯
+ */
+
+#ifdef USE_UDP_CALL_BACK
+
+#else	/* of #ifdef USE_UDP_CALL_BACK */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_TSK(UDP6_ECHO_SRV_TASK, {
+	TA_HLNG | TA_ACT,
+	0,
+	udp6_echo_srv_task,
+	UDP6_ECHO_SRV_MAIN_PRIORITY,
+	UDP6_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+CRE_TSK(UDP6_ECHO_SRV_TASK, {
+	TA_HLNG | TA_ACT,
+	UDP6_ECHO_SRV_CEPID,
+	udp6_echo_srv_task,
+	UDP6_ECHO_SRV_MAIN_PRIORITY,
+	UDP6_ECHO_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_UDP_CALL_BACK */
+
+#endif	/* of #ifdef USE_UDP6_ECHO_SRV_TSK */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp6_echo_srv.h	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _UDP6_ECHO_SRV_H_
+#define _UDP6_ECHO_SRV_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define UDP6_ECHO_SRV_STACK_SIZE	1024		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPv6ï¼ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+
+/* åªå
+åº¦ */
+
+#define UDP6_ECHO_SRV_MAIN_PRIORITY	5		/* UDP ECHO ãµã¼ãã¿ã¹ã¯ï¼IPv6ï¼ã®åªå
+åº¦			*/
+
+/* ã¿ã¹ã¯ */
+
+extern void	udp6_echo_srv_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_udp6_echo_srv (ID cepid, FN fncd, void *p_parblk);
+extern ER callback_nblk_udp6_echo_srv (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _UDP6_ECHO_SRV_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.c	(revision 313)
@@ -0,0 +1,251 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/udp.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/udp_discard_cli.h>
+
+#ifdef USE_UDP_DISCARD_CLI
+
+/* discard ãµã¼ãã®ãã¼ãçªå· */
+
+#define DISCARD_SRV_PORTNO	UINT_C(9)
+
+/*
+ * å¤æ°
+ */
+
+#define PAT_BEGIN	' '
+#define PAT_END		'~'
+
+#if defined(SUPPORT_INET6)
+#define API_PROTO		'6'
+#else
+#define API_PROTO		'4'
+#endif
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+bool_t udp_discard_cli_valid;
+
+/*
+ *  send_udp_discard -- DISCARD/UDP ãµã¼ãã«ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+static ER
+send_udp_discard (ID cepid, T_IN_ADDR *ipaddr, uint16_t portno)
+{
+#if defined(SUPPORT_INET6)
+	static char smsg[IPV6_MMTU - (IP6_HDR_SIZE + UDP_HDR_SIZE)];
+#else
+	static char smsg[IP4_MSS - (IP4_HDR_SIZE + UDP_HDR_SIZE)];
+#endif
+
+	T_IPEP		dst;
+	ER_UINT		len;
+	SYSTIM		time;
+	char		*p;
+	uint32_t	total;
+	uint16_t	pat, slen, scount;
+
+	dst.ipaddr = *ipaddr;
+	dst.portno = portno;
+
+	p = smsg;
+	for (slen = sizeof(smsg); slen > 0; )
+		for (pat = PAT_BEGIN; slen > 0 && pat <= PAT_END; pat ++, slen --)
+			*p ++ = pat;
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UDC%c:%02u SND] send:  %7lu, to:   %s.%d",
+	                   API_PROTO, cepid, time / SYSTIM_HZ, IP2STR(NULL, &dst.ipaddr), dst.portno);
+
+	scount = total = 0;
+	udp_discard_cli_valid = true;
+	for (slen = sizeof(smsg); udp_discard_cli_valid && slen > 0; slen --) {
+		scount ++;
+		if ((len = UDP_SND_DAT(cepid, &dst, smsg, slen, TMO_FEVR)) < 0) {
+			syslog(LOG_NOTICE, "[UDC%c:%02u SND] error: %s", API_PROTO, cepid, itron_strerror(len));
+			return len;
+			}
+		else
+			syslog(LOG_NOTICE, "[UDC%c:%02u SND] send:  %7lu, %4u", API_PROTO, cepid, scount, slen);
+		total += len;
+		dly_tsk(10 * SYSTIM_HZ + netapp_rand() % (10 * SYSTIM_HZ));
+		}
+
+	get_tim(&time);
+	syslog(LOG_NOTICE, "[UDC%c:%02u SND] finsh: %7lu, snd: %4u,            len: %ld",
+		           API_PROTO, cepid, time / SYSTIM_HZ, scount, total);
+	return E_OK;
+	}
+
+/*
+ *  UDP DISCARD ã¯ã©ã¤ã¢ã³ãéä¿¡ã¿ã¹ã¯
+ */
+
+void
+udp_discard_cli_task (intptr_t exinf)
+{
+	T_IN_ADDR	addr;
+	ID		tskid, cepid;
+	ER		error;
+	char		*line;
+	int_t		no;
+	uint16_t	portno;
+	char		apip;
+
+#ifdef USE_UDP_EXTENTIONS
+
+#if defined(SUPPORT_INET6)
+	T_UDP6_CCEP	ccep;
+#else
+	T_UDP_CCEP	ccep;
+#endif
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+#if defined(SUPPORT_INET6)
+	apip = API_PROTO_IPV6;
+#else
+	apip = API_PROTO_IPV4;
+#endif
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP DISCARD CLI:%d,%d] started.", tskid, (ID)exinf);
+	while (true) {
+		if (rcv_dtq(DTQ_UDP_DISCARD_CLI, (intptr_t*)&line) == E_OK) {
+			line = skip_blanks(GET_IPADDR(&addr, skip_blanks(line)));	/* IP Address */
+
+			if ((line = lookup_ipaddr(&addr, line, apip)) == NULL) {
+				syslog(LOG_NOTICE, "[UDC%c:%02u TSK] unknown host.", (ID)exinf);
+				continue;
+				}
+
+			if ('0' <= *line && *line <= '9') {				/* Port No */
+				line = get_int(&no, line);
+				portno = (uint16_t)no;
+				}
+			else {
+				line ++;
+				portno = DISCARD_SRV_PORTNO;
+				}
+
+#ifdef USE_UDP_EXTENTIONS
+
+			ccep.cepatr = UINT_C(0);
+			ccep.callback = NULL;
+			ccep.myaddr.portno = UDP_PORTANY;
+
+#if defined(SUPPORT_INET6)
+
+			memcpy(&ccep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#else	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+			ccep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+			if ((error = ALLOC_UDP_CEP(&cepid, tskid, &ccep)) != E_OK) {
+				syslog(LOG_NOTICE, "[UDC%c:%02u TSK] CEP create error: %s", API_PROTO, cepid, itron_strerror(error));
+				continue;
+				}
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+			cepid = (ID)exinf;
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+			if ((error = send_udp_discard(cepid, &addr, portno)) != E_OK)
+				syslog(LOG_NOTICE, "[UDC%c:%02u TSK] error: %s", API_PROTO, cepid, itron_strerror(error));
+
+#ifdef USE_UDP_EXTENTIONS
+
+			if ((error = FREE_UDP_CEP(cepid, !(error == E_NOEXS || error == E_DLT))) != E_OK)
+				syslog(LOG_NOTICE, "[UDC%c:%02u TSK] CEP delete error: %s", API_PROTO, cepid, itron_strerror(error));
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+			}
+		}
+	}
+
+#endif	/* of #ifdef USE_UDP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.cfg	(revision 313)
@@ -0,0 +1,83 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP DISCARD ã¯ã©ã¤ã¢ã³ã
+ *  ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_UDP_DISCARD_CLI
+
+/* ã¿ã¹ã¯ */
+
+#ifdef USE_UDP_EXTENTIONS
+
+CRE_TSK(UDP_DISCARD_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	0,
+	udp_discard_cli_task,
+	UDP_DISCARD_CLI_MAIN_PRIORITY,
+	UDP_DISCARD_CLI_STACK_SIZE,
+	NULL
+	});
+
+#else	/* of #ifdef USE_UDP_EXTENTIONS */
+
+CRE_TSK(UDP_DISCARD_CLI_TASK, {
+	TA_HLNG|TA_ACT,
+	UDP_DISCARD_CLI_CEPID,
+	udp_discard_cli_task,
+	UDP_DISCARD_CLI_MAIN_PRIORITY,
+	UDP_DISCARD_CLI_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_UDP_EXTENTIONS */
+
+/* ã³ãã³ãã­ã¥ã¼ */
+
+CRE_DTQ(DTQ_UDP_DISCARD_CLI,  { TA_TFIFO, 1, NULL });
+
+#endif	/* of #ifdef USE_UDP_DISCARD_CLI */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/udp_discard_cli.h	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _UDP_DISCARD_CLI_H_
+#define _UDP_DISCARD_CLI_H_
+
+/* ã¹ã¿ãã¯ãµã¤ãº */
+
+#define UDP_DISCARD_CLI_STACK_SIZE	1024		/* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+
+/* åªå
+åº¦ */
+
+#define UDP_DISCARD_CLI_MAIN_PRIORITY	5		/* UDP DISCARD ã¯ã©ã¤ã¢ã³ãã¿ã¹ã¯ã®åªå
+åº¦		*/
+
+/* å¤æ° */
+
+extern bool_t	udp_discard_cli_valid;
+
+/* ã¿ã¹ã¯ */
+
+extern void	udp_discard_cli_task(intptr_t exinf);
+
+/* é¢æ° */
+
+extern ER callback_udp_discard_cli (ID cepid, FN fncd, void *p_parblk);
+extern ER callback_nblk_udp_discard_cli (ID cepid, FN fncd, void *p_parblk);
+
+#endif	/* of #ifndef _UDP_DISCARD_CLI_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.c	(revision 313)
@@ -0,0 +1,2067 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  WWW ãµã¼ã
+ *
+ *    ã»éåä¿¡ã¿ã¹ã¯åä¸å
+ *    ã»ãã³ãã­ãã­ã³ã°ã³ã¼ã«
+ *    ã»çã³ãã¼ API
+ *    ã»IPv4/IPv6
+ */
+
+#include <stdlib.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel/kernel_impl.h"
+#include "target_config.h"
+#include "target_syssvc.h"
+#include "target_stddef.h"
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_itron.h>
+
+#include <netapp/netapp.h>
+#include <netapp/netapp_var.h>
+#include <netapp/wwws.h>
+
+#ifdef USE_WWW_SRV
+
+/*
+ *  éåä¿¡ API ã®é¸æ
+ */
+
+#define EOF		(-1)
+
+typedef struct file {
+	ER		(*func)(ID cepid, T_WWW_RWBUF *srbuf);
+	char		*uri;
+	} T_FILE;
+
+typedef struct status {
+	uint16_t	code;
+	uint8_t		*reason;
+	} T_STATUS;
+
+/*
+ *  é¢æ°
+ */
+
+static ER index_html(ID cepid, T_WWW_RWBUF *srbuf);
+
+#if NET_COUNT_ENABLE
+
+static ER stat_html(ID cepid, T_WWW_RWBUF *srbuf);
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+#ifdef USE_TCP_EXTENTIONS
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+#if NUM_WWW_SRV_TASKS >= 2		/* 2 ãè¶
+ããåæ°ã¯æ³å®ãã¦ããªãã	*/
+
+#define WWW4_SRV_TASK	WWW_SRV_TASK1
+#define WWW6_SRV_TASK	WWW_SRV_TASK2
+
+#else	/* of #if NUM_WWW_SRV_TASKS >= 2 */
+
+#define WWW4_SRV_TASK	WWW_SRV_TASK1
+#define WWW6_SRV_TASK	WWW_SRV_TASK1
+
+#endif	/* of #if NUM_WWW_SRV_TASKS >= 2 */
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+#define WWW4_SRV_TASK	WWW_SRV_TASK1
+#define WWW6_SRV_TASK	WWW_SRV_TASK1
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifndef TCP_CFG_SWBUF_CSAVE
+uint8_t www_srv_swbuf[NUM_WWW_SRV_TASKS][WWW_SRV_SWBUF_SIZE];
+#endif
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+uint8_t www_srv_rwbuf[NUM_WWW_SRV_TASKS][WWW_SRV_RWBUF_SIZE];
+#endif
+
+/*
+ *  å¤æ°
+ */
+
+SYSTIM	srv_start;
+
+static const T_FILE file[] = {
+	{ index_html,	"/"		},
+	{ index_html,	"/index.html"	},
+
+#if NET_COUNT_ENABLE
+
+	{ stat_html,	"/stat.html"	},
+
+#endif	/* of #if NET_COUNT_ENABLE */
+	};
+
+#define NUM_FILES	(sizeof(file) / sizeof(T_FILE))
+
+static const char *status[] = {
+	"200 OK",
+	"404 Not Found",
+	};
+
+#define NUM_STATUS	(sizeof(status) / sizeof(T_STATUS))
+
+#define ST_OK		0
+#define ST_NOT_FOUND	1
+
+/*
+ *  æ¥ç¶ç¸æã®æ
+å ±æ§é ä½
+ */
+
+#ifdef  NUM_WWW4_SRV_TASKS
+#undef  NUM_WWW4_SRV_TASKS
+#endif
+#define NUM_WWW4_SRV_TASKS		1
+
+typedef struct t_www_srv_info {
+	ID	cepid;		/* éä¿¡ç«¯ç¹ ID		*/
+	ID	repid;		/* åä»å£   ID		*/
+	T_IPEP	dst;		/* æ¥ç¶ç¸æã¢ãã¬ã¹æ
+å ±	*/
+	} T_WWW_SRV_INFO;
+
+#define INDEX_SRV_INFO(id)	((id)-1)
+
+#ifdef USE_TCP_EXTENTIONS
+
+static T_WWW_SRV_INFO www_srv_info[NUM_WWW_SRV_TASKS];
+					/* 2 ãè¶
+ããåæ°ã¯æ³å®ãã¦ããªãã	*/
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+static T_WWW_SRV_INFO www_srv_info[] = {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+	{ WWW4_SRV_CEPID1, WWW4_SRV_REPID },
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	{ WWW_SRV_CEPID1, WWW_SRV_REPID },
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+#if NUM_WWW_SRV_TASKS >= 2		/* 2 ãè¶
+ããåæ°ã¯æ³å®ãã¦ããªãã	*/
+	{ WWW_SRV_CEPID2, WWW_SRV_REPID },
+#endif
+
+	};
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#ifdef USE_COPYSAVE_API
+
+/*
+ *  get_char -- ä¸æå­å
+¥åããã
+ */
+
+static int_t
+get_char (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	int_t	len, ch;
+	ER	error;
+
+	if (srbuf->unget) {
+		ch = srbuf->unget;
+		srbuf->unget = 0;
+		}
+	else  {
+		if (srbuf->rbuf.index >= srbuf->rbuf.len) {
+			if ((error = tcp_rel_buf(cepid, srbuf->rbuf.len)) != E_OK)
+				syslog(LOG_WARNING, "[WWWn:%02u REL] tcp_rel_buf error: %s",
+				       cepid, itron_strerror(error));
+			srbuf->rbuf.index = 0;
+			if ((len = tcp_rcv_buf(cepid, (void**)&srbuf->rbuf.buf, TMO_FEVR)) <= 0) {
+				if (len < 0)
+					syslog(LOG_WARNING, "[WWWn:%02u RCV] tcp_rcv_buf error: %s",
+					       cepid, itron_strerror(len));
+				srbuf->rbuf.len = 0;
+				return EOF;
+				}
+			else
+				srbuf->rbuf.len = len;
+			}
+		ch = srbuf->rbuf.buf[srbuf->rbuf.index ++];
+		}
+	return ch;
+	}
+
+/*
+ *  flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã
+ */
+
+static ER
+flush_sbuf (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	ER_UINT	error;
+
+	error = tcp_snd_buf(cepid, srbuf->sbuf.index);
+	srbuf->sbuf.index = srbuf->sbuf.len = 0;
+
+	return error;
+	}
+
+/*
+ *  put_str -- æå­åãåºåããã
+ */
+
+static uint_t
+put_str (ID cepid, T_WWW_RWBUF *srbuf, const char *str)
+{
+	ER		error;
+	ER_UINT		blen;
+	uint16_t	len, off = 0;
+
+	len = strlen(str);
+	while (len > 0) {
+		if (srbuf->sbuf.index >= srbuf->sbuf.len)
+			if ((error = flush_sbuf(cepid, srbuf)) != E_OK) {
+				syslog(LOG_WARNING, "[WWWn:%02u SND] error: %s", cepid, itron_strerror(error));
+			return 0;
+			}
+
+		if (srbuf->sbuf.len == 0) {
+			if ((blen = tcp_get_buf(cepid, (void**)&srbuf->sbuf.buf, TMO_FEVR)) < 0) {
+				syslog(LOG_WARNING, "[WWWn:%02u GET] error: %s", cepid, itron_strerror(srbuf->sbuf.len));
+				return 0;
+				}
+			srbuf->sbuf.len = (uint16_t)blen;
+			}
+
+		if (len > srbuf->sbuf.len - srbuf->sbuf.index)
+			blen = srbuf->sbuf.len - srbuf->sbuf.index;
+		else
+			blen = len;
+		memcpy(&srbuf->sbuf.buf[srbuf->sbuf.index], str + off, blen);
+		srbuf->sbuf.index += (uint16_t)blen;
+		off               += (uint16_t)blen;
+		len               -= (uint16_t)blen;
+		}
+
+	return off;
+	}
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+/*
+ *  get_char -- ä¸æå­å
+¥åããã
+ */
+
+static int_t
+get_char (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	int_t	len, ch;
+
+	if (srbuf->unget) {
+		ch = srbuf->unget;
+		srbuf->unget = 0;
+		}
+	else  {
+		if (srbuf->rbuf.index >= srbuf->rbuf.len) {
+			if ((len = tcp_rcv_dat(cepid, srbuf->rbuf.buf, sizeof(srbuf->rbuf.buf), TMO_FEVR)) <= 0) {
+				if (len < 0) {
+					syslog(LOG_WARNING, "[WWWn:%02u RCV] error: %s",
+					       cepid, itron_strerror(len));
+					}
+				return EOF;
+				}
+			else {
+				srbuf->rbuf.len   = len;
+				srbuf->rbuf.index = 0;
+				}
+			}
+		ch = srbuf->rbuf.buf[srbuf->rbuf.index ++];
+		}
+	return ch;
+	}
+
+/*
+ *  flush_sbuf -- éä¿¡ãããã¡ããã©ãã·ã¥ããã
+ */
+
+static ER
+flush_sbuf (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	ER_UINT		len = E_OK;
+	uint16_t	off = 0;
+
+	while (off < srbuf->sbuf.index) {
+		if ((len = tcp_snd_dat(cepid, srbuf->sbuf.buf + off, srbuf->sbuf.index - off, TMO_FEVR)) < 0)
+			break;
+		off += len;
+		}
+	srbuf->sbuf.index = 0;
+
+	return len < 0 ? len : E_OK;
+	}
+
+/*
+ *  put_str -- æå­åãåºåããã
+ */
+
+static uint16_t
+put_str (ID cepid, T_WWW_RWBUF *srbuf, const char *str)
+{
+	ER		error;
+	uint16_t	blen, len, off = 0;
+
+	len = strlen(str);
+	while (len > 0) {
+		if (srbuf->sbuf.index >= srbuf->sbuf.len)
+			if ((error = flush_sbuf(cepid, srbuf)) != E_OK) {
+				syslog(LOG_WARNING, "[WWWn:%02u SND] error: %s", cepid, itron_strerror(error));
+			return 0;
+			}
+		if (len > srbuf->sbuf.len - srbuf->sbuf.index)
+			blen = srbuf->sbuf.len - srbuf->sbuf.index;
+		else
+			blen = len;
+		memcpy(&srbuf->sbuf.buf[srbuf->sbuf.index], str + off, blen);
+		srbuf->sbuf.index += blen;
+		off               += blen;
+		len               -= blen;
+		}
+
+	return off;
+	}
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+/*
+ *  get_line -- ä¸è¡å
+¥åããã
+ */
+
+static uint16_t
+get_line (ID cepid, T_WWW_LINE *line, T_WWW_RWBUF *srbuf)
+{
+	int_t		ch = 0;
+	uint16_t	len;
+	char		*p, *t;
+
+	p = line->buf;
+	t = line->buf + WWW_LINE_SIZE;
+	while (p < t && (ch = get_char(cepid, srbuf)) != EOF && ch != '\n' && ch != '\r')
+		*p ++ = ch;
+	*p = '\0';
+	len = p - line->buf;
+	if (p >= t) {
+		while ((ch = get_char(cepid, srbuf)) != EOF && ch != '\n' && ch != '\r')
+			len ++;
+		}
+	if (ch == '\r') {
+		len ++;
+		if ((ch = get_char(cepid, srbuf)) != EOF && ch != '\n')
+			srbuf->unget = ch;
+		}
+	if (ch == '\n')
+		len ++;
+	line->len = len;
+	return p - line->buf;
+	}
+
+#if NET_COUNT_ENABLE
+
+#ifdef _int64_
+#define VAL_TYPE	uint64_t
+#else
+#define VAL_TYPE	uint32_t
+#endif
+
+/*
+ *  convert -- æ°å¤å¤æ
+ */
+
+static int_t
+convert (char *buf, VAL_TYPE val, int_t radix, int_t width, bool_t minus, char padchar)
+{
+	static const char radhex[] = "0123456789abcdef";
+
+	char	digits[23], *start;
+	int_t	ix, pad;
+
+	ix = 0;
+	start = buf;
+	do {
+		digits[ix ++] = radhex[val % radix];
+		val /= radix;
+		} while (val != 0);
+	if (minus)
+		digits[ix ++] = '-';
+	for (pad = ix; pad < width; pad ++)
+		*buf ++ = padchar;
+	while (ix -- > 0)
+		*buf ++ = digits[ix];
+	*buf = '\0';
+	return buf - start;
+	}
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+/*
+ * split_fields -- ãã£ã¼ã«ãã«åå²ããã
+ */
+
+static void
+split_fields (T_WWW_LINE *line, char *delim)
+{
+	char	*p, quote;
+	int_t	ix = 0;
+
+	line->off[ix ++] = 0;
+	for (p = line->buf; ix < WWW_NUM_FIELDS && *p; p ++) {
+		if (strchr("\"'`", *p) != NULL) {
+			for (quote = *p ++; *p && *p != quote; p ++)
+				;
+			}
+		else if (strchr(delim, *p) != NULL) {
+			*p = '\0';
+			line->off[ix ++] = (uint8_t)(p - line->buf + 1);
+			}
+		}
+	line->num = ix;
+	}
+
+/*
+ *  put_status -- status line ãåºåããã
+ */
+
+static uint16_t
+put_status (ID cepid, T_WWW_RWBUF *srbuf, int_t index)
+{
+	uint16_t	len = 0;
+
+	len += put_str(cepid, srbuf, "HTTP/1.0 ");
+	len += put_str(cepid, srbuf, status[index]);
+	len += put_str(cepid, srbuf, "\r\n");
+	return len;
+	}
+
+/*
+ *  put_content_length -- Content-length ãåºåããã
+ */
+
+static uint16_t
+put_content_length (ID cepid, T_WWW_RWBUF *srbuf, int_t content_len)
+{
+	uint16_t	len = 0;
+#if 0
+	char		length[TD_DIGITS + 1];
+
+	convert(length, content_len, 10, 0, false, ' ');
+	len += put_str(cepid, srbuf, "Content-length: ");
+	len += put_str(cepid, srbuf, length);
+	len += put_str(cepid, srbuf, "\r\n");
+#endif	/* of #if 0 */
+	return len;
+	}
+
+/*
+ *  get_method -- GET ã¡ã½ããã®å¦ç
+ */
+
+static ER
+get_method (ID cepid, T_WWW_RWBUF *srbuf, T_WWW_LINE *line)
+{
+	int_t	ix;
+
+	for (ix = NUM_FILES; ix -- > 0; ) {
+		if (!strcmp(file[ix].uri, &line->buf[line->off[1]])) {
+			//syslog(LOG_NOTICE, "[WWWn:%02u PTH] '%s'", cepid, &line->buf[line->off[1]]);
+			return (*file[ix].func)(cepid, srbuf);
+			}
+		}
+	put_status(cepid, srbuf, ST_NOT_FOUND);
+	return E_NOEXS;
+	}
+
+/*
+ *  parse_request -- ãªã¯ã¨ã¹ããè§£æããã
+ */
+
+static ER
+parse_request (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	T_WWW_LINE	*method, *line;
+	ER		error = E_OK;
+	int_t		blen = 0;
+
+	if ((error = tget_mpf(MPF_WWW_LINE, (void*)&method, TMO_FEVR)) != E_OK) {
+		syslog(LOG_CRIT, "[WWWn:%02u MPF] get line error: %s.",
+		       cepid, itron_strerror(error));
+		return error;
+		}
+
+	if (get_line(cepid, method, srbuf) == 0) {
+		if ((error = rel_mpf(MPF_WWW_LINE, method)) != E_OK)
+			syslog(LOG_WARNING, "[WWWn:%02u MPF] release line buffer error: %s.",
+			       cepid, itron_strerror(error));
+		return error;
+		}
+
+	if ((error = tget_mpf(MPF_WWW_LINE, (void*)&line, TMO_FEVR)) != E_OK) {
+		syslog(LOG_CRIT, "[WWWn:%02u MPF] get line buffer error: %s.",
+		       cepid, itron_strerror(error));
+		if ((error = rel_mpf(MPF_WWW_LINE, method)) != E_OK)
+			syslog(LOG_WARNING, "[WWWn:%02u MPF] release line buffer error: %s.",
+			       cepid, itron_strerror(error));
+		return error;
+		}
+
+	while (get_line(cepid, line, srbuf) > 0) {	/* ããããã¹ã­ããããã*/
+		split_fields(line, ": ");
+		if (strcmp("Content-Length", &line->buf[line->off[0]]) == 0)
+			blen = atoi(&line->buf[line->off[1]]);
+		}
+	while (blen > 0 && get_line(cepid, line, srbuf) > 0) {
+		/* ã¨ã³ãã£ãã£ã»ããã£ãã¹ã­ããããã*/
+		blen -= line->len;
+		}
+
+	if ((error = rel_mpf(MPF_WWW_LINE, line)) != E_OK)
+		syslog(LOG_WARNING, "[WWWn:%02u MPF] release line buffer error: %s.",
+		       cepid, itron_strerror(error));
+	
+	split_fields(method, ": ");
+	if (!strcmp(&method->buf[method->off[0]], "GET"))
+		error = get_method(cepid, srbuf, method);
+
+	flush_sbuf(cepid, srbuf);
+
+	if ((error = rel_mpf(MPF_WWW_LINE, method)) != E_OK)
+		syslog(LOG_WARNING, "[WWWn:%02u MPF] release line buffer error: %s.",
+		       cepid, itron_strerror(error));
+
+	return error;
+	}
+
+/*
+ *  index_html -- /index.html ãã¡ã¤ã«
+ */
+
+static ER
+index_html (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	static const char response[] =
+		"\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD html 3.2//EN\">\r\n"
+		"<html><head>\r\n"
+
+#ifdef TOPPERS_S810_CLG3_85
+		"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\r\n"
+#else
+		"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\r\n"
+#endif
+
+		"<title>TINET TCP/IP Protocol Stack</title>\r\n"
+		"</head><body bgcolor=\"#ffffbb\">\r\n"
+		"<hr>ãã® WWW ãµã¼ãã¯<br>"
+
+#ifdef TARGET_KERNEL_ASP
+		"ASP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"
+#endif
+
+#ifdef TARGET_KERNEL_JSP
+		"JSP Kernel for " TARGET_NAME " (" __DATE__ "," __TIME__ ") ã¨<br>\r\n"
+#endif
+
+		"TINET TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯ã«ãããµã¼ãã¹ãã¦ãã¾ãã<br><hr>\r\n"
+
+#if NET_COUNT_ENABLE
+
+		"<ul><li type=\"square\"><a href=\"stat.html\">ãããã¯ã¼ã¯çµ±è¨æ
+å ±</a></ul><hr>\r\n"
+
+#else	/* of #if NET_COUNT_ENABLE */
+
+		"<ul><li type=\"square\">ãããã¯ã¼ã¯çµ±è¨æ
+å ±</ul><hr>\r\n"
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+		"FreeBSD: Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995<br>\r\n"
+		"The Regents of the University of California.  All rights reserved.<br><br>\r\n"
+
+#ifdef SUPPORT_PPP
+
+		"pppd: Copyright (c) 1989 Carnegie Mellon University.<br>\r\n"
+		"All rights reserved.<br><br>\r\n"
+		"ppp: Written by Toshiharu OHNO (tony-o@iij.ad.jp)<br>\r\n"
+		"Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd.<br><br>\r\n"
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+ 		"if_ed: Copyright (c) 1995, David Greenman<br>\r\n"
+		"All rights reserved.<br><br>\r\n"
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef TARGET_KERNEL_ASP
+		"TOPPERS/ASP Kernel<br>\r\n"
+		"Toyohashi Open Platform for Embedded Real-Time Systems/<br>\r\n"
+		"Advanced Standard Profile Kernel<br>\r\n"
+		"Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory<br>\r\n"
+		"Toyohashi Univ. of Technology, JAPAN<br>\r\n"
+		"Copyright (C) 2004-2008 by Embedded and Real-Time Systems Laboratory<br>\r\n"
+		"Graduate School of Information Science, Nagoya Univ., JAPAN<br><br>\r\n"
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+		"TOPPERS/JSP Kernel<br>\r\n"
+		"Toyohashi Open Platform for Embedded Real-Time Systems/<br>\r\n"
+		"Just Standard Profile Kernel<br>\r\n"
+		"Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory<br>\r\n"
+		"Toyohashi Univ. of Technology, JAPAN<br>\r\n"
+		"Copyright (C) 2005 by Embedded and Real-Time Systems Laboratory<br>\r\n"
+		"Graduate School of Information Science, Nagoya Univ., JAPAN<br><br>\r\n"
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+		"TINET (TCP/IP Protocol Stack)<br>\r\n"
+		"Copyright (C) 2001-2008 by Dep. of Computer Science and Engineering<br>\r\n"
+		"Tomakomai National College of Technology, JAPAN\r\n"
+		"</body></html>\r\n"
+		;
+
+	SYSTIM		start, finish;
+	uint16_t	len = 0;
+
+	get_tim(&start);
+	len += put_status(cepid, srbuf, ST_OK);
+	len += put_content_length(cepid, srbuf, strlen(response) - 2);	/* 2 ã¯æåã® \r\n */
+	len += put_str(cepid, srbuf, response);
+	get_tim(&finish);
+	syslog(LOG_NOTICE, "[WWWn:%02u SND] send: index.html, len: %4u, time: %lu [ms]",
+	                   cepid, len, (finish - start) * 1000 / SYSTIM_HZ);
+	return E_OK;
+	}
+
+#if NET_COUNT_ENABLE
+
+#define TD_TEMPLATE1	"<tr><td></td><td align=\"right\"></td>\r\n<td align=\"right\"></td>\r\n<td align=\"right\"></td>\r\n<td align=\"right\"></td>\r\n<td align=\"right\"></td>\r\n<td align=\"right\"></td></tr>\r\n"
+#define TD_TEMPLATE2	"<tr><td></td><td align=\"right\"></td><td align=\"right\"></td></tr>\r\n"
+#define TD_TEMPLATE3	"<tr><td></td><td align=\"right\"></td></tr>\r\n"
+#define TD_TEMPLATE4	"<tr><td></td><td align=\"right\"></td><td align=\"right\"></td><td align=\"right\"></td></tr>\r\n"
+
+#define TD_LEN1(i)	(sizeof(i) +  sizeof(TD_TEMPLATE1) + TD_DIGITS  * 6 - 2)
+#define TD_LEN2(i)	(sizeof(i) +  sizeof(TD_TEMPLATE2) + TD_DIGITS  * 2 - 2)
+#define TD_LEN4(i)	(sizeof(i) +  sizeof(TD_TEMPLATE4) + TD_DIGITS  * 3 - 2)
+#define TD_DIGITS	20
+
+static const char time_prefix[] =
+	"çµéæé: "
+	;
+
+static const char time_suffix[] =
+	"<hr>\r\n"
+	;
+
+static const char table_suffix[] = "</table><br><hr>";
+
+#if defined(SUPPORT_INET4)
+
+static const char table_prefix_ip4[] =
+	"<h2>IPv4</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+static const char table_prefix_ip6[] =
+	"<h2>IPv6</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+static const char table_prefix_icmp6[] =
+	"<h2>ICMPv6</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+static const char table_prefix_nd6[] =
+	"<h2>è¿é£æ¢ç´¢</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+static const char table_prefix_tcp[] =
+	"<h2>TCP</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+static const char table_prefix_net_buf[] =
+	"<h2>ãããã¯ã¼ã¯ãããã¡</h2><table border>\r\n"
+	"<tr><th>ãµã¤ãº</th>"
+	"<th>ç¨ææ°</th>"
+	"<th>å²å½è¦æ±æ°</th>"
+	"<th>å²å½æ°</th>"
+	"<th>å²å½ã¦<br>ã¨ã©ã¼æ°</th></tr>\r\n"
+	;
+
+#ifdef SUPPORT_PPP
+
+static const char table_prefix_ppp[] =
+	"<h2>PPP ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+static const char *ppp_item[NC_PPP_SIZE] = {
+	"åä¿¡ãªã¯ãããæ°",
+	"éä¿¡ãªã¯ãããæ°",
+	"åä¿¡ãã¬ã¼ã æ°",
+	"éä¿¡ãã¬ã¼ã æ°",
+	"åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
+	"éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
+	"ãããã¡å²ãå½ã¦å¤±ææ°",
+	};
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+static const char table_prefix_ether_nic[] =
+	"<h2>ã¤ã¼ãµãããã»ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹</h2><table border>\r\n"
+	"<tr><th>é 
+ç®</th><th>ã«ã¦ã³ã</th></tr>\r\n"
+	;
+
+static const char *ether_nic_item[NC_ETHER_NIC_SIZE] = {
+	"ãªã»ããæ°",
+	"éä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",
+	"éä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
+	"è¡çªæ°",
+	"éä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
+	"éä¿¡ãã¬ã¼ã æ°",
+	"éä¿¡ãªã¯ãããæ°",
+	"åä¿¡ã»ããã©è³æºè¿å´ãªã¼ãã¼æ°",
+	"åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
+	"åä¿¡ã¨ã©ã¼ãã¬ã¼ã æ°",
+	"åä¿¡ãã¬ã¼ã æ°",
+	"åä¿¡ãªã¯ãããæ°",
+	};
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if defined(SUPPORT_INET4)
+
+static const char *ip4_item[NC_IP4_SIZE] = {
+	"åå²éä¿¡ããã©ã°ã¡ã³ãæ°",
+	"åå²éä¿¡æ°",
+	"éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
+	"éä¿¡ãã¼ã¿ã°ã©ã æ°",
+	"éä¿¡ãªã¯ãããæ°",
+	"åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
+	"åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
+	"åå²åä¿¡ç ´æ£æ°",
+	"åå²åä¿¡åæ§ææåæ°",
+	"åå²åä¿¡ãã©ã°ã¡ã³ãæ°",
+	"åå²åä¿¡æ°",
+	"ãªãã·ã§ã³å
+¥åæ°",
+	"ãã­ãã³ã«ã¨ã©ã¼æ°",
+	"ã¢ãã¬ã¹ã¨ã©ã¼æ°",
+	"ãã¼ã¸ã§ã³ã¨ã©ã¼æ°",
+	"é·ãã¨ã©ã¼æ°",
+	"ãã§ãã¯ãµã ã¨ã©ã¼æ°",
+	"åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
+	"åä¿¡ãã¼ã¿ã°ã©ã æ°",
+	"åä¿¡ãªã¯ãããæ°",
+	};
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+static const char *ip6_item[NC_IP6_SIZE] = {
+	"åå²éä¿¡ããã©ã°ã¡ã³ãæ°",
+	"åå²éä¿¡æ°",
+	"éä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
+	"éä¿¡ãã¼ã¿ã°ã©ã æ°",
+	"éä¿¡ãªã¯ãããæ°	",
+	"åå²åä¿¡ã¿ã¤ã ã¢ã¦ãæ°",
+	"åå²åä¿¡ãããã¡å²ãå½ã¦å¤±ææ°",
+	"åå²åä¿¡ç ´æ£æ°",
+	"åå²åä¿¡åæ§ææåæ°",
+	"åå²åä¿¡ãã©ã°ã¡ã³ãæ°",
+	"åå²åä¿¡æ°",
+	"ãã­ãã³ã«ã¨ã©ã¼æ°	",
+	"ã¢ãã¬ã¹ã¨ã©ã¼æ°	",
+	"ãã¼ã¸ã§ã³ã¨ã©ã¼æ°	",
+	"é·ãã¨ã©ã¼æ°",
+	"åä¿¡ã¨ã©ã¼ãã¼ã¿ã°ã©ã æ°",
+	"åä¿¡ãã¼ã¿ã°ã©ã æ°",
+	"åä¿¡ãªã¯ãããæ°	",
+	};
+
+static const char *icmp6_item[NC_ICMP6_SIZE] = {
+	"éä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	",
+	"éä¿¡ ICMP ãã¼ã¿æ°",
+	"éä¿¡ ICMP ãªã¯ãããæ°",
+	"é·ãã¨ã©ã¼æ°",
+	"åä¿¡ã¨ã©ã¼ ICMP ãã¼ã¿æ°	",
+	"åä¿¡ ICMP ãã¼ã¿æ°",
+	"åä¿¡ ICMP ãªã¯ãããæ°",
+	};
+
+static const char *nd6_item[NC_ND6_SIZE] = {
+	"éè¤ã¢ãã¬ã¹æ¤åºéä¿¡æ°",
+	"è¿é£è¦è«éä¿¡æ°",
+	"è¿é£è¦è«åä¿¡æ°",
+	"è¿é£éç¥éä¿¡æ°",
+	"è¿é£éç¥åä¿¡æ°",
+	"ã«ã¼ã¿è¦è«åºåæ°",
+	"ã«ã¼ã¿éç¥åä¿¡æ°",
+	};
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+static const char *tcp_item[NC_TCP_SIZE] = {
+	"è½åãªã¼ãã³æ°",
+	"ååãªã¼ãã³æ°",
+	"RTT æ´æ°æ°",
+	"éä¿¡ RST æ°",
+	"éä¿¡ ACK æ°",
+	"éä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",
+	"éä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",
+	"åéã»ã°ã¡ã³ãæ°",
+	"éä¿¡ã»ã°ã¡ã³ãæ°",
+	"éä¿¡å¶å¾¡ã»ã°ã¡ã³ãæ°",
+	"éä¿¡ãã¼ã¿ãªã¯ãããæ°",
+	"åä¿¡ã­ã¥ã¼è§£æ¾æ°",
+	"åä¿¡å¤éæ°",
+	"åä¿¡ç ´æ£æ°",
+	"åä¿¡ RST æ°",
+	"åä¿¡å¤é ACK æ°",
+	"åä¿¡ ACK æ°",
+	"åä¿¡ãã§ãã¯ãµã ä¸æ­£æ°",
+	"åä¿¡ãããä¸æ­£æ°",
+	"åä¿¡ç·æ¥ã»ã°ã¡ã³ãæ°",
+	"åä¿¡ãã¼ã¿ã»ã°ã¡ã³ãæ°",
+	"åä¿¡ã»ã°ã¡ã³ãæ°",
+	"åä¿¡ãã¼ã¿ãªã¯ãããæ°",
+	"åä¿¡ãªã¯ãããæ°",
+	};
+
+/*
+ *  put_count_item1 -- ã«ã¦ã³ã¿ã®å
+å®¹ãåºåãããã°ã«ã¼ã 1
+ */
+
+static uint16_t
+put_count_item1 (ID cepid, T_WWW_RWBUF *srbuf, const char *item, T_NET_COUNT *counter)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, item);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+
+	convert(buf, counter->in_octets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td>\r\n<td align=\"right\">");
+
+	convert(buf, counter->out_octets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td>\r\n<td align=\"right\">");
+
+	convert(buf, counter->in_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td>\r\n<td align=\"right\">");
+
+	convert(buf, counter->out_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td>\r\n<td align=\"right\">");
+
+	convert(buf, counter->in_err_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td>\r\n<td align=\"right\">");
+
+	convert(buf, counter->out_err_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	return len;
+	}
+
+#ifdef SUPPORT_PPP
+
+/*
+ *  put_count_item2 -- ã«ã¦ã³ã¿ã®å
+å®¹ãåºåãããã°ã«ã¼ã 2
+ */
+
+static uint16_t
+put_count_item2 (ID cepid, T_WWW_RWBUF *srbuf, const char *item, uint32_t octets, uint32_t packets)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, item);
+	len += put_str(cepid, srbuf, "</td><td>");
+
+	convert(buf, octets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+
+	convert(buf, packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	return len;
+	}
+
+/*
+ *  td_len_ppp -- put_count_ppp ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_ppp (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_PPP_SIZE; ix -- > 0; )
+		len += strlen(ppp_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_PPP_SIZE;
+	}
+
+/*
+ *  put_count_ppp -- ã«ã¦ã³ã¿ (PPP) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_ppp (ID cepid, T_WWW_RWBUF *srbuf)
+{
+
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+
+	len += put_str(cepid, srbuf, table_prefix_ppp);
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[0]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.in_octets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[1]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.out_octets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[2]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.in_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[3]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.out_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[4]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.in_err_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[5]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp.out_err_packets, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, "<tr><td>");
+	len += put_str(cepid, srbuf, ppp_item[6]);
+	len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+	convert(buf, net_count_ppp_no_bufs, 10, TD_DIGITS, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, "</td></tr>\r\n");
+
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#if defined(SUPPORT_INET4)
+
+/*
+ *  td_len_ip4 -- put_count_ip4 ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_ip4 (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_IP4_SIZE; ix -- > 0; )
+		len += strlen(ip4_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_IP4_SIZE;
+	}
+
+/*
+ *  put_count_ip4 -- ã«ã¦ã³ã¿ (IP4) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_ip4 (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_ip4);
+	for (ix = NC_IP4_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, ip4_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_ip4[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+/*
+ *  td_len_nd6 -- put_count_nd6 ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_nd6 (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_ND6_SIZE; ix -- > 0; )
+		len += strlen(nd6_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_ND6_SIZE;
+	}
+
+/*
+ *  put_count_nd6 -- ã«ã¦ã³ã¿ (ND6) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_nd6 (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_nd6);
+	for (ix = NC_ND6_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, nd6_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_nd6[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+/*
+ *  td_len_icmp6 -- put_count_icmp6 ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_icmp6 (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_ICMP6_SIZE; ix -- > 0; )
+		len += strlen(icmp6_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_ICMP6_SIZE;
+	}
+
+/*
+ *  put_count_icmp6 -- ã«ã¦ã³ã¿ (ICMP6) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_icmp6 (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_icmp6);
+	for (ix = NC_ICMP6_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, icmp6_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_icmp6[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+/*
+ *  td_len_ip6 -- put_count_ip6 ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_ip6 (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_IP6_SIZE; ix -- > 0; )
+		len += strlen(ip6_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_IP6_SIZE;
+	}
+
+/*
+ *  put_count_ip6 -- ã«ã¦ã³ã¿ (IP6) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_ip6 (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_ip6);
+	for (ix = NC_IP6_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, ip6_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_ip6[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/*
+ *  td_len_tcp -- put_count_tcp ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_tcp (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_TCP_SIZE; ix -- > 0; )
+		len += strlen(tcp_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_TCP_SIZE;
+	}
+
+/*
+ *  put_count_tcp -- ã«ã¦ã³ã¿ (TCP) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_tcp (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_tcp);
+	for (ix = NC_TCP_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, tcp_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_tcp[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+/*
+ *  put_elapse_time -- çµéæéãåºåããã
+ */
+
+static uint16_t
+put_elapse_time (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	SYSTIM		now, elapse;
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+
+	get_tim(&now);
+	elapse = now - srv_start;
+
+	len += put_str(cepid, srbuf, time_prefix);
+
+	convert(buf, elapse / (60 * 60 * SYSTIM_HZ), 10, 4, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, ":");
+
+	convert(buf, (elapse / (60 * SYSTIM_HZ)) % 60, 10, 2, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+	len += put_str(cepid, srbuf, ":");
+
+	convert(buf, (elapse / SYSTIM_HZ) % 60, 10, 2, false, ' ');
+	len += put_str(cepid, srbuf, buf);
+
+	len += put_str(cepid, srbuf, time_suffix);
+
+	return len;
+	}
+
+/*
+ *  put_count_net_buf -- ã«ã¦ã³ã¿ (TCP) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_net_buf (ID cepid, T_WWW_RWBUF *srbuf)
+{
+
+	const T_NET_BUF_ENTRY	*tbl;
+	char			buf[TD_DIGITS + 1];
+	uint16_t		len = 0;
+	int_t			ix;
+
+	len += put_str(cepid, srbuf, table_prefix_net_buf);
+	tbl = nbuf_get_tbl();
+	for (ix = nbuf_get_tbl_size(); ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td align=\"right\">");
+		convert(buf, tbl[ix].size, 10, 4, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, tbl[ix].prepares, 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, tbl[ix].requests, 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, tbl[ix].allocs, 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, tbl[ix].errors, 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  td_len_ether_nic -- put_count_ether_nic ã§åºåããæå­æ°ã
+ */
+
+static uint16_t
+td_len_ether_nic (void)
+{
+	int_t		ix;
+	uint16_t	len = 0;
+
+	for (ix = NC_ETHER_NIC_SIZE; ix -- > 0; )
+		len += strlen(ether_nic_item[ix]);
+	return len + (sizeof(TD_TEMPLATE3) + TD_DIGITS - 1) * NC_ETHER_NIC_SIZE;
+	}
+
+/*
+ *  put_count_ether_nic -- ã«ã¦ã³ã¿ (ETHER_NIC) ã®å
+å®¹ãåºåããã
+ */
+
+static uint16_t
+put_count_ether_nic (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	char		buf[TD_DIGITS + 1];
+	uint16_t	len = 0;
+	int_t		ix;
+
+	len += put_str(cepid, srbuf, table_prefix_ether_nic);
+	for (ix = NC_ETHER_NIC_SIZE; ix -- > 0; ) {
+		len += put_str(cepid, srbuf, "<tr><td>");
+		len += put_str(cepid, srbuf, ether_nic_item[ix]);
+		len += put_str(cepid, srbuf, "</td><td align=\"right\">");
+		convert(buf, net_count_ether_nic[ix], 10, TD_DIGITS, false, ' ');
+		len += put_str(cepid, srbuf, buf);
+		len += put_str(cepid, srbuf, "</td></tr>\r\n");
+		}
+	len += put_str(cepid, srbuf, table_suffix);
+
+	return len;
+	}
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  stat_html -- /stat.html ãã¡ã¤ã«
+ */
+
+static ER
+stat_html (ID cepid, T_WWW_RWBUF *srbuf)
+{
+	static const char res_prefix[] =
+		"\r\n<!DOCTYPE html PUBLIC \"-//W3C//DTD html 3.2//EN\">\r\n"
+		"<html><head>\r\n"
+
+#ifdef TOPPERS_S810_CLG3_85
+		"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">\r\n"
+#else
+		"<meta http-equiv=\"Content-Type\" content=\"text/html; charset=EUC-JP\">\r\n"
+#endif
+
+		"<title>ãããã¯ã¼ã¯çµ±è¨æ
+å ±</title>\r\n"
+		"</head><body bgcolor=\"#ffffbb\">\r\n"
+		"<hr><h1 align=\"center\">ãããã¯ã¼ã¯çµ±è¨æ
+å ±</h1><hr>\r\n"
+		;
+
+	static const char res_suffix[] =
+		"</body></html>\r\n"
+		;
+
+	static const char table_prefix1[] =
+		"<h2>ã°ã«ã¼ã 1</h2><table border>\r\n"
+		"<tr><th>é 
+ç®</th>\r\n"
+		"<th>åä¿¡ãªã¯ãããæ°</th>"
+		"<th>éä¿¡ãªã¯ãããæ°</th>\r\n"
+		"<th>åä¿¡ãã±ããæ°</th>"
+		"<th>éä¿¡ãã±ããæ°</th>\r\n"
+		"<th>åä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th>"
+		"<th>éä¿¡ã¨ã©ã¼<br>ãã±ããæ°</th></tr>\r\n"
+		;
+
+#ifdef SUPPORT_PPP
+
+	static const char table_prefix2[] =
+		"<h2>ã°ã«ã¼ã 2</h2><table border>\r\n"
+		"<tr><th>é 
+ç®</th>"
+		"<th>åä¿¡ãªã¯ãããæ°</th>"
+		"<th>åä¿¡ãã¬ã¼ã æ°</th></tr>\r\n"
+		;
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+	uint16_t	content_len, len = 0;
+	SYSTIM		start, finish;
+
+	get_tim(&start);
+	content_len = 0
+
+#ifdef SUPPORT_PPP
+
+	    + TD_LEN1("HDLC")
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_PPP
+
+	    + td_len_ppp()
+	    + TD_LEN2("LCP")
+	    + TD_LEN2("IPCP")
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+	    + TD_LEN1("ARP")
+	    + td_len_ether_nic()
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+	    + TD_LEN1("ICMP")
+	    + TD_LEN1("UDP")
+
+#if defined(SUPPORT_INET4)
+
+	    + td_len_ip4()
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+	    + td_len_ip6()
+	    + td_len_nd6()
+	    + td_len_icmp6()
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+	    + td_len_tcp()
+	    + TD_LEN4("0123") * nbuf_get_tbl_size();
+	    ;
+
+	len += put_status(cepid, srbuf, ST_OK);
+	len += put_content_length(cepid, srbuf, strlen(res_prefix) 
+	                        + strlen(res_suffix)
+	                        + strlen(time_prefix)
+	                        + strlen("1234:12:12")
+	                        + strlen(time_suffix)
+	                        + strlen(table_prefix1)
+	                        + strlen(table_prefix_net_buf)
+
+#if defined(SUPPORT_INET4)
+
+	                        + strlen(table_prefix_ip4)
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+	                        + strlen(table_prefix_ip6)
+	                        + strlen(table_prefix_nd6)
+	                        + strlen(table_prefix_icmp6)
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+	                        + strlen(table_prefix_tcp)
+	                        + strlen(table_suffix) * 3
+
+#ifdef SUPPORT_PPP
+	                        + strlen(table_prefix2)
+	                        + strlen(table_prefix_ppp)
+	                        + strlen(table_suffix) * 2
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+	                        + strlen(table_prefix_ether_nic)
+	                        + strlen(table_suffix) * 1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+	                        + content_len
+	                        - 2);	/* 2 ã¯æåã® \r\n */
+
+	len += put_str(cepid, srbuf, res_prefix);
+	len += put_elapse_time(cepid, srbuf);
+	len += put_str(cepid, srbuf, table_prefix1);
+
+#ifdef SUPPORT_PPP
+
+	len += put_count_item1(cepid, srbuf, "HDLC", &net_count_hdlc);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+	len += put_count_item1(cepid, srbuf, "Ethernet", &net_count_ether);
+
+#if defined(SUPPORT_INET4)
+
+	len += put_count_item1(cepid, srbuf, "ARP", &net_count_arp);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if defined(SUPPORT_INET4)
+
+	len += put_count_item1(cepid, srbuf, "ICMP", &net_count_icmp4);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#ifdef SUPPORT_UDP
+
+	len += put_count_item1(cepid, srbuf, "UDP", &net_count_udp);
+
+#endif	/* of #ifdef SUPPORT_UDP */
+
+	len += put_str(cepid, srbuf, table_suffix);
+
+#ifdef SUPPORT_PPP
+
+	len += put_str(cepid, srbuf, table_prefix2);
+	len += put_count_item2(cepid, srbuf, "LCP", 
+	                       net_count_ppp_lcp_in_octets,
+	                       net_count_ppp_lcp_in_packets);
+	len += put_count_item2(cepid, srbuf, "IPCP", 
+	                       net_count_ppp_ipcp_in_octets,
+	                       net_count_ppp_ipcp_in_packets);
+	len += put_str(cepid, srbuf, table_suffix);
+
+	len += put_count_ppp(cepid, srbuf);
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+	len += put_count_ether_nic(cepid, srbuf);
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#if defined(SUPPORT_INET4)
+
+	len += put_count_ip4(cepid, srbuf);
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#if defined(SUPPORT_INET6)
+
+	len += put_count_ip6(cepid, srbuf);
+	len += put_count_nd6(cepid, srbuf);
+	len += put_count_icmp6(cepid, srbuf);
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+	len += put_count_tcp(cepid, srbuf);
+
+	len += put_count_net_buf(cepid, srbuf);
+
+	len += put_str(cepid, srbuf, res_suffix);
+
+	get_tim(&finish);
+	syslog(LOG_NOTICE, "[WWWn:%02u SND]send: stat.html,  len: %4u, time: %lu [ms]",
+	                   cepid, len, (finish - start) * 1000 / SYSTIM_HZ);
+	return E_OK;
+	}
+
+#endif	/* of #if NET_COUNT_ENABLE */
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  get_tcp_rep -- TCP åä»å£ãç²å¾ããã
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+static ER
+get_tcp_rep (ID *repid)
+{
+	ID		tskid;
+	T_TCP6_CREP	crep6;
+	T_TCP_CREP	crep4;
+
+	get_tid(&tskid);
+	if (tskid == WWW4_SRV_TASK) {
+		crep4.repatr = UINT_C(0);
+		crep4.myaddr.portno = UINT_C(80);
+		crep4.myaddr.ipaddr = IPV4_ADDRANY;
+		return alloc_tcp4_rep(repid, tskid, &crep4);
+		}
+	else {
+		crep6.repatr = UINT_C(0);
+		crep6.myaddr.portno = UINT_C(80);
+		memcpy(&crep6.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+		return alloc_tcp6_rep(repid, tskid, &crep6);
+		}
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+static ER
+get_tcp_rep (ID *repid)
+{
+	ID		tskid;
+	T_TCPN_CREP	crep;
+
+	get_tid(&tskid);
+
+	crep.repatr = UINT_C(0);
+	crep.myaddr.portno = UINT_C(80);
+
+#if defined(SUPPORT_INET6)
+
+	memcpy(&crep.myaddr.ipaddr, &ipv6_addrany, sizeof(T_IN6_ADDR));
+
+#else	/* #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+	crep.myaddr.ipaddr = IPV4_ADDRANY;
+#endif
+
+#endif	/* #if defined(SUPPORT_INET6) */
+
+	return ALLOC_TCP_REP(repid, tskid, &crep);
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  get_tcp_cep -- TCP éä¿¡ç«¯ç¹ãç²å¾ããã
+ */
+
+static ER
+get_tcp_cep (ID *cepid)
+{
+	ID		tskid;
+	T_TCP_CCEP	ccep;
+
+	get_tid(&tskid);
+
+	ccep.cepatr = UINT_C(0);
+	ccep.sbufsz = WWW_SRV_SWBUF_SIZE;
+	ccep.rbufsz = WWW_SRV_RWBUF_SIZE;
+	ccep.callback = NULL;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+	ccep.sbuf = NADR;
+#else
+	ccep.sbuf = www_srv_swbuf[0];
+#endif
+#ifdef TCP_CFG_RWBUF_CSAVE
+	ccep.rbuf = NADR;
+#else
+	ccep.rbuf = www_srv_rwbuf[0];
+#endif
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	if (tskid == WWW4_SRV_TASK)
+		return alloc_tcp4_cep(cepid, tskid, &ccep);
+	else
+		return alloc_tcp6_cep(cepid, tskid, &ccep);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	return ALLOC_TCP_CEP(cepid, tskid, &ccep);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/*
+ *  tcp_passive_open -- ååãªã¼ãã³ãå®è¡ããã
+ *
+ *    USE_TCP_NON_BLOCKING	OFF
+ */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+static ER
+tcp_passive_open (T_WWW_SRV_INFO *info, char apip)
+{
+	ER		error = E_OK;
+	T_IPV4EP	dst4;
+
+	if (apip == API_PROTO_IPV6) {
+		/* åä»å£ã¯ IPv6 */
+		if ((error = tcp6_acp_cep(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK)
+			return error;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp6_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+		}
+	else {
+		/* åä»å£ã¯ IPv4 */
+		if ((error = tcp_acp_cep(info->cepid, info->repid, &dst4, TMO_FEVR)) != E_OK)
+			return error;
+		in6_make_ipv4mapped (&info->dst.ipaddr, dst4.ipaddr);
+		info->dst.portno = dst4.portno;
+
+#ifdef USE_TCP_EXTENTIONS
+		if ((error = free_tcp4_rep(info->repid, true)) != E_OK)
+			return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+		}
+
+	return error;
+	}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+static ER
+tcp_passive_open (T_WWW_SRV_INFO *info, char apip)
+{
+	ER		error = E_OK;
+
+	if ((error = TCP_ACP_CEP(info->cepid, info->repid, &info->dst, TMO_FEVR)) != E_OK)
+		return error;
+
+#ifdef USE_TCP_EXTENTIONS
+	if ((error = FREE_TCP_REP(info->repid, true)) != E_OK)
+		return error;
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+	return error;
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+/*
+ *  WWW ãµã¼ã
+ */
+
+static ER
+www_srv (uint_t six, char apip)
+{
+	T_WWW_RWBUF	*srbuf;
+	ER		error;
+	SYSTIM		now;
+
+	if ((error = tcp_passive_open(&www_srv_info[six], apip)) != E_OK)
+		return error;
+
+	syscall(get_tim(&now));
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+	if (apip == API_PROTO_IPV6)
+		syslog(LOG_NOTICE, "[WWW6:%02u ACP] conct:  %6lu,from: %s.%u",
+		                   www_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ipv62str(NULL, &www_srv_info[six].dst.ipaddr),
+		                   www_srv_info[six].dst.portno);
+	else
+		syslog(LOG_NOTICE, "[WWW4:%02u ACP] conct:  %6lu,from: %s.%u",
+		                   www_srv_info[six].cepid, now / SYSTIM_HZ,
+		                   ip2str(NULL, &www_srv_info[six].dst.ipaddr.s6_addr32[3]),
+		                   www_srv_info[six].dst.portno);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	syslog(LOG_NOTICE, "[WWWn:%02u ACP] conct:  %6lu,from: %s.%u",
+	                   www_srv_info[six].cepid, now / SYSTIM_HZ,
+	                   IP2STR(NULL, &www_srv_info[six].dst.ipaddr),
+	                   www_srv_info[six].dst.portno);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	if ((error = tget_mpf(MPF_WWW_RWBUF, (void*)&srbuf, TMO_FEVR)) != E_OK) {
+		syslog(LOG_CRIT, "[WWWn:%02u MPF] get buffer error: %s.",
+		                 www_srv_info[six].cepid, itron_strerror(error));
+		srbuf = NULL;
+		}
+	else {
+		srbuf->rbuf.len = srbuf->rbuf.index = srbuf->sbuf.index = srbuf->unget = 0;
+
+#ifdef USE_COPYSAVE_API
+
+		srbuf->sbuf.len = 0;
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+		srbuf->sbuf.len = sizeof(srbuf->sbuf.buf);
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+		if ((error = parse_request(www_srv_info[six].cepid, srbuf)) != E_OK)
+			syslog(LOG_WARNING, "[WWWn:%02u RCV] parse request error: %s",
+			                    www_srv_info[six].cepid, itron_strerror(error));
+		}
+
+	if ((error = tcp_sht_cep(www_srv_info[six].cepid)) != E_OK)
+		syslog(LOG_WARNING, "[WWWn:%02u SHD] shutdown error: %s", 
+		                    www_srv_info[six].cepid, itron_strerror(error));
+
+	if (srbuf != NULL) {
+		while (get_char(www_srv_info[six].cepid, srbuf) != EOF)
+			;
+		if (srbuf != NULL && (error = rel_mpf(MPF_WWW_RWBUF, srbuf)) != E_OK)
+			syslog(LOG_WARNING, "[WWWn:%02u REL] release buffer error: %s.",
+			                    www_srv_info[six].cepid, itron_strerror(error));
+		}
+
+	if ((error = tcp_cls_cep(www_srv_info[six].cepid, TMO_FEVR)) != E_OK)
+		syslog(LOG_WARNING, "[WWWn:%02u CLS] close error: %s",
+ 		                    www_srv_info[six].cepid, itron_strerror(error));
+
+	get_tim(&now);
+	syslog(LOG_NOTICE, "[WWWn:%02u FIN] finsh:  %6lu",
+	                   www_srv_info[six].cepid, now / SYSTIM_HZ);
+
+	return error;
+	}
+
+#ifdef USE_TCP_EXTENTIONS
+
+/*
+ *  WWW ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+www_srv_task(intptr_t exinf)
+{
+	ID	tskid;
+	ER	error = E_OK;
+	uint_t	six;
+	char	apip;
+
+	syscall(get_tid(&tskid));
+	six = INDEX_SRV_INFO((ID)exinf);
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+	if (six >= NUM_WWW4_SRV_TASKS)
+		apip = API_PROTO_IPV6;
+	else
+		apip = API_PROTO_IPV4;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	apip = API_PROTO_IPVn;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	syslog(LOG_NOTICE, "[WWW%c:%d] started.", apip, tskid);
+	while (true) {
+
+		syscall(slp_tsk());
+		if ((error = get_tcp_cep(&www_srv_info[six].cepid)) != E_OK) {
+			syslog(LOG_NOTICE, "[WWW%c:%02u EXT] create CEP error: %s",
+				           apip, www_srv_info[six].cepid, itron_strerror(error));
+			continue;
+			}
+
+		while (true) {
+
+			if ((error = get_tcp_rep(&www_srv_info[six].repid)) != E_OK) {
+				syslog(LOG_NOTICE, "[WWW%c:%02u EXT] create REP error: %02u, %s",
+				                   apip, www_srv_info[six].cepid, www_srv_info[six].repid, itron_strerror(error));
+				break;
+				}
+			else if ((error = www_srv(six, apip)) != E_OK) {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+				if (tskid == WWW4_SRV_TASK)
+					error = free_tcp4_rep(www_srv_info[six].repid, error != E_DLT);
+				else
+					error = free_tcp6_rep(www_srv_info[six].repid, error != E_DLT);
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+				error = FREE_TCP_REP(www_srv_info[six].repid, error != E_DLT);
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+				if (error != E_OK) {
+					syslog(LOG_NOTICE, "[WWW%c:%02u EXT] delete REP error: %02u, %s",
+				                           apip, www_srv_info[six].cepid,
+				                                              www_srv_info[six].repid, itron_strerror(error));
+
+					}
+				break;
+				}
+			}
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+		if (tskid == WWW4_SRV_TASK) {
+			if ((error = free_tcp4_cep(www_srv_info[six].cepid)) != E_OK)
+				syslog(LOG_NOTICE, "[WWW%c:%02u EXT] delete CEP error: %s",
+					           apip, www_srv_info[six].cepid, itron_strerror(error));
+			}
+		else {
+			if ((error = free_tcp6_cep(www_srv_info[six].cepid)) != E_OK)
+				syslog(LOG_NOTICE, "[WWW%c:%02u EXT] delete CEP error: %s",
+					           apip, www_srv_info[six].cepid, itron_strerror(error));
+			}
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		if ((error = FREE_TCP_CEP(www_srv_info[six].cepid)) != E_OK)
+			syslog(LOG_NOTICE, "[WWW%c:%02u EXT] delete CEP error: %s",
+				           apip, www_srv_info[six].cepid, itron_strerror(error));
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		}
+	}
+
+/*
+ *  wakeup_www_srv -- WWW ãµã¼ãã¿ã¹ã¯ã®ä¼æ­¢è§£é¤
+ */
+
+ER
+wakeup_www_srv (char apip)
+{
+	ID	taskid;
+
+	if (apip == API_PROTO_IPV6)
+		taskid = WWW6_SRV_TASK;
+	else
+		taskid = WWW4_SRV_TASK;
+	syslog(LOG_NOTICE, "[WWW%c(EXT):%d] wake up.", apip, taskid);
+	return wup_tsk(taskid);
+	}
+
+#else	/* of #ifdef USE_TCP_EXTENTIONS */
+
+/*
+ *  WWW ãµã¼ãã¿ã¹ã¯
+ */
+
+void
+www_srv_task(intptr_t exinf)
+{
+	ID	tskid, cepid;
+	uint_t	six;
+	char	apip;
+
+	get_tim(&srv_start);
+	get_tid(&tskid);
+	six = INDEX_SRV_INFO((ID)exinf);
+	cepid = www_srv_info[INDEX_SRV_INFO((ID)exinf)].cepid;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV)
+
+	if (six >= NUM_WWW4_SRV_TASKS)
+		apip = API_PROTO_IPV6;
+	else
+		apip = API_PROTO_IPV4;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	apip = API_PROTO_IPVn;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && defined(USE_WWW4_SRV) */
+
+	syslog(LOG_NOTICE, "[WWW%c SRV:%d,%d] started.", apip, tskid, cepid);
+
+	while (true) {
+		while (www_srv(six, apip) == E_OK)
+			;
+		}
+	}
+
+#endif	/* of #ifdef USE_TCP_EXTENTIONS */
+
+#endif	/* of #ifdef USE_WWW_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.cfg	(revision 313)
@@ -0,0 +1,76 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef USE_WWW_SRV
+
+/* ã¿ã¹ã¯ */
+
+CRE_TSK(WWW_SRV_TASK1,  {
+	TA_HLNG | TA_ACT,
+	1,
+	www_srv_task,
+	WWW_SRV_MAIN_PRIORITY,
+	WWW_SRV_STACK_SIZE,
+	NULL
+	});
+
+#if NUM_WWW_SRV_TASKS >= 2
+
+CRE_TSK(WWW_SRV_TASK2,  {
+	TA_HLNG | TA_ACT,
+	2,
+	www_srv_task,
+	WWW_SRV_MAIN_PRIORITY,
+	WWW_SRV_STACK_SIZE,
+	NULL
+	});
+
+#endif	/* of #if NUM_WWW_SRV_TASKS >= 2 */
+
+#endif	/* of #ifdef USE_WWW_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws.h	(revision 313)
@@ -0,0 +1,151 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _WWWS_H_
+#define _WWWS_H_
+
+/* 
+ *  WWW ãµã¼ã
+ */
+
+#ifdef TOPPERS_S810_CLG3_85
+#define	WWW_SRV_STACK_SIZE		768		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#else	/* of #ifdef TOPPERS_S810_CLG3_85 */
+#define	WWW_SRV_STACK_SIZE		1024		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#endif	/* of #ifdef TOPPERS_S810_CLG3_85 */
+#define WWW_SRV_MAIN_PRIORITY		5		/* ã¿ã¹ã¯ã®åªå
+åº¦		*/
+
+/*
+ *  TCP éåä¿¡ã¦ã¤ã³ããããã¡ãµã¤ãº
+ */
+
+#if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)
+
+#if defined(SUPPORT_INET6)
+#define WWW_SRV_SWBUF_SIZE	(1024)
+#elif defined(SUPPORT_INET4)
+#define WWW_SRV_SWBUF_SIZE	(512)
+#endif
+
+#else	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#define WWW_SRV_SWBUF_SIZE	(2048)
+
+#endif	/* of #if defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU) */
+
+#if defined(SUPPORT_INET6)
+#define WWW_SRV_RWBUF_SIZE	(1024)
+#elif defined(SUPPORT_INET4)
+#define WWW_SRV_RWBUF_SIZE	(512)
+#endif
+
+#define WWW_RBUFF_SIZE		(WWW_SRV_RWBUF_SIZE)
+#define WWW_LINE_SIZE		80
+#define WWW_NUM_FIELDS		4
+
+/*
+ *  ã¿ã¹ã¯æ°
+ */
+
+#ifndef _MACRO_ONLY
+
+typedef struct line {
+	uint8_t		len;
+	uint8_t		num;
+	uint8_t		off[WWW_NUM_FIELDS];
+	char		buf[WWW_LINE_SIZE + 1];
+	} T_WWW_LINE;
+
+#ifdef USE_COPYSAVE_API
+
+typedef struct www_buffer {
+	char		*buf;
+	uint16_t	len;
+	uint16_t	index;
+	} T_WWW_BUFFER;
+
+#else	/* of #ifdef USE_COPYSAVE_API */
+
+typedef struct www_buffer {
+	uint16_t	len;
+	uint16_t	index;
+	char		buf[WWW_RBUFF_SIZE];
+	} T_WWW_BUFFER;
+
+#endif	/* of #ifdef USE_COPYSAVE_API */
+
+typedef struct www_rwbuf {
+	T_WWW_BUFFER	sbuf;
+	T_WWW_BUFFER	rbuf;
+	char		unget;
+	} T_WWW_RWBUF;
+
+/* ã¿ã¹ã¯ */
+
+extern void	www_srv_task (intptr_t exinf);
+
+/*
+ *  å¤æ°
+ */
+
+/* TCP éåä¿¡ã¦ã£ã³ããããã¡ */
+
+#ifdef NUM_WWW_SRV_TASKS
+
+extern uint8_t www_srv_swbuf[NUM_WWW_SRV_TASKS][WWW_SRV_SWBUF_SIZE];
+extern uint8_t www_srv_rwbuf[NUM_WWW_SRV_TASKS][WWW_SRV_RWBUF_SIZE];
+
+#endif	/* of #ifdef NUM_WWW_SRV_TASKS */
+
+/*
+ *  é¢æ°
+ */
+
+extern ER	wakeup_www_srv (char apip);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _WWWS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_asp.cfg	(revision 313)
@@ -0,0 +1,83 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ASP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+INCLUDE("netapp/wwws.cfg");
+
+#ifdef USE_WWW_SRV
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* åä¿¡ãããã¡ */
+
+CRE_MPF(MPF_WWW_RWBUF, {
+	TA_TFIFO,
+	1,
+	sizeof(T_WWW_RWBUF),
+	NULL,
+	NULL
+	});
+
+/* è¡ãããã¡ */
+
+CRE_MPF(MPF_WWW_LINE, {
+	TA_TFIFO,
+	2,
+	sizeof(T_WWW_LINE),
+	NULL,
+	NULL
+	});
+
+#endif	/* of #ifdef USE_WWW_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_jsp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_jsp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netapp/wwws_jsp.cfg	(revision 313)
@@ -0,0 +1,81 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  JSP ç¨ WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+/*
+ *  å
+±é WWW ãµã¼ãã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«ã®ã¤ã³ã¯ã«ã¼ã
+ */
+
+#include "netapp/wwws.cfg"
+
+#ifdef USE_WWW_SRV
+
+/*
+ * åºå®ã¡ã¢ãªãã¼ã«
+ */
+
+/* åä¿¡ãããã¡ */
+
+CRE_MPF(MPF_WWW_RWBUF, {
+	TA_TFIFO,
+	1,
+	sizeof(T_WWW_RWBUF),
+	NULL
+	});
+
+/* è¡ãããã¡ */
+
+CRE_MPF(MPF_WWW_LINE, {
+	TA_TFIFO,
+	2,
+	sizeof(T_WWW_LINE),
+	NULL
+	});
+
+#endif	/* of #ifdef USE_WWW_SRV */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/MANIFEST
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/MANIFEST	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/MANIFEST	(revision 313)
@@ -0,0 +1,15 @@
+PACKAGE asp_tinet_netdev_if_rx62n
+
+MANIFEST
+Makefile.tinet
+ether_phy.c
+ether_phy.h
+if_rx62n.c
+if_rx62n.cfg
+if_rx62n.h
+if_rx62nreg.h
+nic.cfg
+nic_asp.cfg
+nic_rename.h
+tinet_nic_config.h
+tinet_nic_defs.h
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/Makefile.tinet
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/Makefile.tinet	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/Makefile.tinet	(revision 313)
@@ -0,0 +1,60 @@
+#
+#   TINET (TCP/IP Protocol Stack)
+#  
+#   Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+# 
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#     (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#         å ±åãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+#  
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+#  
+#   @(#) $Id: Makefile.tinet 521 2014-10-07 00:49:40Z coas-nagasima $
+#
+
+#
+#  ã³ã³ãã¤ã«ãªãã·ã§ã³
+#
+INCLUDES	:= $(INCLUDES) -I$(TINET_ROOT)/netdev/$(NET_DEV)
+TINET_DIR	:= $(TINET_DIR):$(TINET_ROOT)/netdev/$(NET_DEV)
+TINET_COBJS	:= $(TINET_COBJS) ether_phy.o if_rx62n.o
+TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netdev/$(NET_DEV)/if_ed.cfg
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.c	(revision 313)
@@ -0,0 +1,363 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#include "ether_phy.h"
+#include <kernel.h>
+#include <tinet_config.h>
+#include <sil.h>
+
+#define PHY_CONTROL_REGISTER	0x00
+
+#define PHY_CONTROL_RESET			0x8000
+#define PHY_CONTROL_LOOPBACK		0x4000
+#define PHY_CONTROL_SPEED_SELECT	0x2000
+#define PHY_CONTROL_A_N_ENABLE		0x1000
+#define PHY_CONTROL_POWER_DOWN		0x0800
+#define PHY_CONTROL_ISOLATE			0x0400
+#define PHY_CONTROL_RESTART_A_N		0x0200
+#define PHY_CONTROL_DUPLEX_MODE		0x0100
+#define PHY_CONTROL_COLLISION_TEST	0x0080
+
+#define PHY_STATUS_REGISTER		0x01
+
+#define PHY_STATUS_100BASE_T4				0x8000
+#define PHY_STATUS_100BASE_TX_FULL_DUPLEX	0x4000
+#define PHY_STATUS_100BASE_TX_HALF_DUPLEX	0x2000
+#define PHY_STATUS_10BASE_T_FULL_DUPLEX		0x1000
+#define PHY_STATUS_10BASE_T_HALF_DUPLEX		0x0800
+#define PHY_STATUS_A_N_COMPLETE				0x0020
+#define PHY_STATUS_REMOTE_FAULT				0x0010
+#define PHY_STATUS_A_N_ABILITY				0x0008
+#define PHY_STATUS_LINK_STATUS				0x0004
+#define PHY_STATUS_JABBER_DETECT			0x0002
+#define PHY_STATUS_EXTENDED_CAPABILITY		0x0001
+
+#define PHY_AN_ADVERTISEMENT_REGISTER	0x04
+
+#define PHY_AN_AD_100BASE_T4				0x0200
+#define PHY_AN_AD_100BASE_TX_FULL_DUPLEX	0x0100
+#define PHY_AN_AD_100BASE_TX_HALF_DUPLEX	0x0080
+#define PHY_AN_AD_10BASE_T_FULL_DUPLEX		0x0040
+#define PHY_AN_AD_10BASE_T_HALF_DUPLEX		0x0020
+#define PHY_AN_AD_SELECTOR_FIELD			0x0001
+
+#define PHY_AN_STATUS_REGISTER	0x05
+
+#define PHY_AN_STATUS_100BASE_T4				0x0200
+#define PHY_AN_STATUS_100BASE_TX_FULL_DUPLEX	0x0100
+#define PHY_AN_STATUS_100BASE_TX_HALF_DUPLEX	0x0080
+#define PHY_AN_STATUS_10BASE_T_FULL_DUPLEX		0x0040
+#define PHY_AN_STATUS_10BASE_T_HALF_DUPLEX		0x0020
+
+static void phy_write_bit(bool_t bit);
+static void phy_release_bus();
+static bool_t phy_read_bit();
+static void phy_single_rel_bus();
+
+void phy_reset(uint8_t phy_addr)
+{
+#ifndef _MSC_VER
+	/* PHYã®ãªã»ãã */
+	phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_RESET);
+
+	/* 500mså¾
+ã¤ */
+	/* tslp_tsk(500); ä¸è¦ï¼ */
+
+	/* ãªã»ããå®äºã®ç¢ºèª */
+	while((phy_read_reg(phy_addr, PHY_CONTROL_REGISTER) & PHY_CONTROL_RESET) != 0)
+		tslp_tsk(1);
+#endif
+}
+
+enum phy_mode_t phy_initialize(uint8_t phy_addr)
+{
+	uint_t result = 0;
+	uint16_t status;
+#ifndef _MSC_VER
+	/* ãªã³ã¯å®äºã®ç¢ºèª */
+	while((phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_LINK_STATUS) == 0)
+		tslp_tsk(1);
+
+	/* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³ã®ãç¥ãããæå¹ã«è¨­å® */
+	phy_write_reg(phy_addr, PHY_AN_ADVERTISEMENT_REGISTER, 
+		PHY_AN_AD_100BASE_T4 | PHY_AN_AD_100BASE_TX_FULL_DUPLEX | PHY_AN_AD_100BASE_TX_HALF_DUPLEX
+		| PHY_AN_AD_10BASE_T_FULL_DUPLEX | PHY_AN_AD_10BASE_T_HALF_DUPLEX | PHY_AN_AD_SELECTOR_FIELD);
+
+	/* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³ãæå¹ã«è¨­å® */
+	phy_write_reg(phy_addr, PHY_CONTROL_REGISTER, PHY_CONTROL_SPEED_SELECT | PHY_CONTROL_A_N_ENABLE);
+
+	/* ãªã¼ããã´ã·ã¨ã¼ã·ã§ã³å®äºã®ç¢ºèª */
+	while((phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_A_N_COMPLETE) == 0)
+		tslp_tsk(1);
+
+	status = phy_read_reg(phy_addr, PHY_AN_STATUS_REGISTER);
+
+	if ((status & (PHY_AN_STATUS_10BASE_T_FULL_DUPLEX | PHY_AN_STATUS_100BASE_TX_FULL_DUPLEX)) != 0)
+		result |= 0x01;
+
+	if ((status & (PHY_AN_STATUS_100BASE_TX_FULL_DUPLEX | PHY_AN_STATUS_100BASE_TX_HALF_DUPLEX)) != 0)
+		result |= 0x02;
+#endif
+	return (enum phy_mode_t)result;
+}
+
+bool_t phy_is_link(uint8_t phy_addr)
+{
+#ifndef _MSC_VER
+	/* ãªã³ã¯ã®ç¢ºèª */
+	return (phy_read_reg(phy_addr, PHY_STATUS_REGISTER) & PHY_STATUS_LINK_STATUS) == 0;
+#else
+	return true;
+#endif
+}
+
+uint16_t phy_read_reg(uint8_t phy_addr, uint8_t reg_addr)
+{
+	uint16_t result = 0, bit;
+	int i;
+
+	/* PRE ï¼32åã®é£ç¶ãã1b */
+	for (i = 0; i < 32; i++)
+		phy_write_bit(true);
+
+	/* ST ï¼ãã¬ã¼ã ã®å
+é ­ãç¤ºã01bã®ã©ã¤ã */
+	phy_write_bit(false);
+	phy_write_bit(true);
+
+	/* OP ï¼ã¢ã¯ã»ã¹ç¨®å¥ãç¤ºãã³ã¼ãã®ã©ã¤ã */
+	phy_write_bit(true);
+	phy_write_bit(false);
+
+	/* PHYAD ï¼PHY-LSIã®ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSB ããé æ¬¡ã©ã¤ãï¼ã */
+	phy_write_bit((phy_addr & 0x10) != 0);
+	phy_write_bit((phy_addr & 0x08) != 0);
+	phy_write_bit((phy_addr & 0x04) != 0);
+	phy_write_bit((phy_addr & 0x02) != 0);
+	phy_write_bit((phy_addr & 0x01) != 0);
+
+	/* REGAD ï¼ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSBããé æ¬¡ã©ã¤ãï¼ã */
+	phy_write_bit((reg_addr & 0x10) != 0);
+	phy_write_bit((reg_addr & 0x08) != 0);
+	phy_write_bit((reg_addr & 0x04) != 0);
+	phy_write_bit((reg_addr & 0x02) != 0);
+	phy_write_bit((reg_addr & 0x01) != 0);
+
+	/* TA ï¼MII/RMIIã¤ã³ã¿ãã§ã¼ã¹ä¸ã§ãã¼ã¿ã®éä¿¡å
+ãåãæ¿ããæé */
+	/* ããã¹è§£æ¾ãï¼Z0ã¨è¡¨è¨ï¼ãè¡ã */
+	phy_release_bus();
+
+	/* DATA ï¼16ãããã®ãã¼ã¿ãMSBããé æ¬¡ãªã¼ã */
+	for (bit = 0x8000; bit != 0; bit >>= 1) {
+		if(phy_read_bit())
+			result |= bit;
+	}
+
+	/* IDLE ï¼æ¬¡ã®MIIç®¡çãã©ã¼ãããå
+¥åã¾ã§ã®å¾
+æ©æé */
+	/* ãã§ã«TAæã«ãã¹è§£æ¾æ¸ã¿ã§ããå¶å¾¡ä¸è¦ */
+	phy_release_bus();
+
+	return result;
+}
+
+void phy_write_reg(uint8_t phy_addr, uint8_t reg_addr, uint16_t reg_data)
+{
+	int i;
+	uint16_t bit;
+
+	/* PRE ï¼32åã®é£ç¶ãã1b */
+	for (i = 0; i < 32; i++)
+		phy_write_bit(true);
+
+	/* ST ï¼ãã¬ã¼ã ã®å
+é ­ãç¤ºã01bã®ã©ã¤ã */
+	phy_write_bit(false);
+	phy_write_bit(true);
+
+	/* OP ï¼ã¢ã¯ã»ã¹ç¨®å¥ãç¤ºãã³ã¼ãã®ã©ã¤ã */
+	phy_write_bit(false);
+	phy_write_bit(true);
+
+	/* PHYAD ï¼PHY-LSIã®ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSB ããé æ¬¡ã©ã¤ãï¼ã */
+	phy_write_bit((phy_addr & 0x10) != 0);
+	phy_write_bit((phy_addr & 0x08) != 0);
+	phy_write_bit((phy_addr & 0x04) != 0);
+	phy_write_bit((phy_addr & 0x02) != 0);
+	phy_write_bit((phy_addr & 0x01) != 0);
+
+	/* REGAD ï¼ã¬ã¸ã¹ã¿ã¢ãã¬ã¹ã1çªã®å ´åã00001bãã©ã¤ãï¼MSBããé æ¬¡ã©ã¤ãï¼ã */
+	phy_write_bit((reg_addr & 0x10) != 0);
+	phy_write_bit((reg_addr & 0x08) != 0);
+	phy_write_bit((reg_addr & 0x04) != 0);
+	phy_write_bit((reg_addr & 0x02) != 0);
+	phy_write_bit((reg_addr & 0x01) != 0);
+
+	/* TA ï¼MII/RMIIã¤ã³ã¿ãã§ã¼ã¹ä¸ã§ãã¼ã¿ã®éä¿¡å
+ãåãæ¿ããæé */
+	/* 10bãã©ã¤ã */
+	phy_write_bit(true);
+	phy_write_bit(false);
+
+	/* DATA ï¼16ãããã®ãã¼ã¿ãMSBããé æ¬¡ã©ã¤ã */
+	for (bit = 0x8000; bit != 0; bit >>= 1) {
+		phy_write_bit((reg_data & bit) != 0);
+	}
+
+	/* IDLE ï¼æ¬¡ã®MIIç®¡çãã©ã¼ãããå
+¥åã¾ã§ã®å¾
+æ©æé */
+	/* ãåç¬ãã¹è§£æ¾ãï¼Xã¨è¡¨è¨ï¼ãè¡ã */
+	phy_single_rel_bus();
+}
+
+#define ETHERC_PIR_WAIT 4
+
+/*
+ * 1 ããããã¼ã¿ã®ã©ã¤ã
+ */
+static void phy_write_bit(bool_t bit)
+{
+	int i;
+	uint32_t data = bit ? ETHERC_PIR_MDO : 0;
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | ETHERC_PIR_MDC);
+
+	for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, data | ETHERC_PIR_MMD | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+}
+
+/*
+ * ãã¹è§£æ¾
+ */
+static void phy_release_bus()
+{
+	int i;
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
+
+	for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+}
+
+/*
+ * 1 ããããã¼ã¿ã®ãªã¼ã
+ */
+static bool_t phy_read_bit()
+{
+	bool_t bit;
+	int i;
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | ETHERC_PIR_MDC);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	bit = (sil_rew_mem(ETHERC_PIR) & ETHERC_PIR_MDI) != 0;
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	return bit;
+}
+
+/*
+ * åç¬ãã¹è§£æ¾
+ */
+static void phy_single_rel_bus()
+{
+	int i;
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, ETHERC_PIR_MMD | ETHERC_PIR_MDC);
+
+	for(i = 2 * ETHERC_PIR_WAIT; i > 0; i--);
+
+	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ã¸ã®ã©ã¤ã */
+	sil_wrw_mem(ETHERC_PIR, 0/*ETHERC_PIR_MMD*/ | 0/*ETHERC_PIR_MDC*/);
+
+	for(i = ETHERC_PIR_WAIT; i > 0; i--);
+}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/ether_phy.h	(revision 313)
@@ -0,0 +1,73 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef ETHER_PHY
+#define ETHER_PHY
+
+#include "if_rx62nreg.h"
+
+enum phy_mode_t{
+	PHY_MODE_10BASE_HALF	= 0x00,
+	PHY_MODE_10BASE_FULL	= 0x01,
+	PHY_MODE_100BASE_HALF	= 0x02,
+	PHY_MODE_100BASE_FULL	= 0x03,
+};
+
+extern void phy_reset(uint8_t phy_addr);
+extern enum phy_mode_t phy_initialize(uint8_t phy_addr);
+extern bool_t phy_is_link(uint8_t phy_addr);
+extern uint16_t phy_read_reg(uint8_t phy_addr, uint8_t rReg);
+extern void phy_write_reg(uint8_t phy_addr, uint8_t wReg, uint16_t wdata);
+
+#endif
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.c	(revision 313)
@@ -0,0 +1,716 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014-2015 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1995, David Greenman
+ * All rights reserved.
+ * 
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice unmodified, this list of conditions, and the following
+ *    disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ * 
+ * $FreeBSD: src/sys/i386/isa/if_ed.c,v 1.148.2.4 1999/09/25 13:08:18 nyan Exp $
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#define CAST(type, val)		((type)(val))
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "kernel/kernel_impl.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+#include <net/net_buf.h>
+
+#include "if_rx62nreg.h"
+#include <string.h>
+#include "ether_phy.h"
+
+#ifdef _MSC_VER
+#include <stdlib.h>
+#endif
+
+uint8_t mac_addr[ETHER_ADDR_LEN];
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããã½ããã¦ã§ã¢æ
+å ± 
+ */
+
+typedef struct t_rx62n_softc {
+	T_RX62N_TX_DESC *tx_write;
+	T_RX62N_RX_DESC *rx_read;
+	bool_t link_pre;
+	bool_t link_now;
+	bool_t over_flow;
+} T_RX62N_SOFTC;
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±
+ */
+
+/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããã½ããã¦ã§ã¢æ
+å ± */
+
+static T_RX62N_SOFTC rx62n_softc;
+
+typedef struct t_rx62n_buf {
+	uint8_t rx_buff[NUM_IF_RX62N_RXBUF][32 * (((int)&((T_NET_BUF *)0)->buf + IF_RX62N_BUF_PAGE_SIZE + 31) / 32)];
+	uint8_t tx_buff[NUM_IF_RX62N_TXBUF][32 * ((IF_RX62N_BUF_PAGE_SIZE + 31) / 32)];
+	T_RX62N_RX_DESC rx_desc[NUM_IF_RX62N_RXBUF];
+	T_RX62N_TX_DESC tx_desc[NUM_IF_RX62N_TXBUF];
+} T_RX62N_BUF;
+
+#if defined(__RX)
+#pragma	section	ETH_MEMORY
+#define __attribute__(x)
+#endif
+T_RX62N_BUF __attribute__((section("ETH_MEMORY"),aligned(16))) rx62n_buf;
+#if defined(__RX)
+#pragma	section
+#endif
+
+/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«ä¾å­ããªãã½ããã¦ã§ã¢æ
+å ± */
+
+T_IF_SOFTC if_softc = {
+	{0,},						/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+	0,							/* éä¿¡ã¿ã¤ã ã¢ã¦ã			*/
+	&rx62n_softc,				/* ãã£ãã¤ã¹ä¾å­ã®ã½ããã¦ã§ã¢æ
+å ±	*/
+	SEM_IF_RX62N_SBUF_READY,	/* éä¿¡ã»ããã©			*/
+	SEM_IF_RX62N_RBUF_READY,	/* åä¿¡ã»ããã©			*/
+
+#ifdef SUPPORT_INET6
+
+	IF_MADDR_INIT,				/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªã¹ã	*/
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+};
+
+/*
+ *  å±æå¤æ°
+ */
+
+static void rx62n_stop (T_RX62N_SOFTC *sc);
+static void rx62n_init_sub (T_IF_SOFTC *ic);
+static void rx62n_set_ecmr (T_IF_SOFTC *ic, enum phy_mode_t mode);
+
+#ifdef SUPPORT_INET6
+
+static uint32_t ds_crc (uint8_t *addr);
+static void ds_getmcaf (T_IF_SOFTC *ic, uint32_t *mcaf);
+
+/*
+ *  ds_crc -- ã¤ã¼ãµãããã¢ãã¬ã¹ã® CRC ãè¨ç®ããã
+ */
+
+#define POLYNOMIAL	0x04c11db6
+
+static uint32_t
+ds_crc (uint8_t *addr)
+{
+	uint32_t	crc = ULONG_C(0xffffffff);
+	int_t		carry, len, bit;
+	uint8_t		byte;
+
+	for (len = ETHER_ADDR_LEN; len -- > 0; ) {
+		byte = *addr ++;
+		for (bit = 8; bit -- > 0; ) {
+			carry   = ((crc & ULONG_C(0x80000000)) ? 1 : 0) ^ (byte & UINT_C(0x01));
+			crc   <<= 1;
+			byte   >>= 1;
+			if (carry)
+				crc = (crc ^ POLYNOMIAL) | carry;
+		}
+	}
+	return crc;
+}
+
+#undef POLYNOMIAL
+
+/*
+ *  ds_getmcaf -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ãªã¹ããããã«ãã­ã£ã¹ãã¢ãã¬ã¹
+ *                ãã£ã«ã¿ãè¨ç®ããã
+ */
+
+static void
+ds_getmcaf (T_IF_SOFTC *ic, uint32_t *mcaf)
+{
+	uint32_t	count, index;
+	uint8_t		*af = (uint8_t*)mcaf;
+
+	mcaf[0] = mcaf[1] = 0;
+
+	for (count = MAX_IF_MADDR_CNT; count -- > 0; ) {
+		index = ds_crc(ic->maddrs[count].lladdr) >> 26;
+		af[index >> 3] |= 1 << (index & 7);
+	}
+}
+
+/*
+ * rx62n_setrcr -- åä¿¡æ§æã¬ã¸ã¹ã¿ (RCR) ãè¨­å®ããã
+ */
+
+static void
+rx62n_setrcr (T_IF_SOFTC *ic)
+{
+	T_RX62N_SOFTC	*sc = ic->sc;
+}
+
+/*
+ * rx62n_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¿½å ããã
+ */
+
+ER
+rx62n_addmulti (T_IF_SOFTC *ic)
+{
+	rx62n_setrcr(ic);
+	return E_OK;
+}
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/*
+ *  rx62n_stop -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãåæ­¢ããã
+ * 
+ *    æ³¨æ: NIC å²ãè¾¼ã¿ç¦æ­¢ç¶æ
+ã§å¼ã³åºããã¨ã
+ */
+
+static void
+rx62n_stop (T_RX62N_SOFTC *sc)
+{
+	/* åä½ã¢ã¼ãã¯ãªã¢ */
+	sil_wrw_mem(ETHERC_ECMR, 0x00000000);
+}
+
+/*
+ *  rx62n_init_sub -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+ * 
+ *    æ³¨æ: NIC å²ãè¾¼ã¿ç¦æ­¢ç¶æ
+ã§å¼ã³åºããã¨ã
+ */
+
+static void
+rx62n_init_sub (T_IF_SOFTC *ic)
+{
+	enum phy_mode_t mode;
+
+	/* MACé¨ã½ããã¦ã¨ã¢ã»ãªã»ãã */
+	sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_SWR_BIT);
+
+	dly_tsk(1);
+
+	sil_wrw_mem(ETHERC_MAHR, ((uint32_t)mac_addr[0] << 24)
+		| ((uint32_t)mac_addr[1] << 16) | ((uint32_t)mac_addr[2] << 8 )
+		|  (uint32_t)mac_addr[3]);
+	sil_wrw_mem(ETHERC_MALR, ((uint32_t)mac_addr[4] << 8 )
+		| (uint32_t)mac_addr[5]);
+
+	/* PHYãªã»ãã */
+	phy_reset(0);
+
+	/* Clear all ETHERC status BFR, PSRTO, LCHNG, MPD, ICD */
+	sil_wrw_mem(ETHERC_ECSR, 0x00000037);
+
+	/* ãªã³ã¯å¤åå²ãè¾¼ã¿æå¹ */
+	sil_wrw_mem(ETHERC_ECSIPR, sil_rew_mem(ETHERC_ECSIPR) | ETHERC_ECSIPR_LCHNGIP);
+
+	/* Clear all ETHERC and EDMAC status bits */
+	sil_wrw_mem(EDMAC_EESR, 0x47FF0F9F);
+
+	/* éåä¿¡å²ãè¾¼ã¿æå¹ */
+	sil_wrw_mem(EDMAC_EESIPR, (EDMAC_EESIPR_TCIP | EDMAC_EESIPR_FRIP | EDMAC_EESIPR_RDEIP | EDMAC_EESIPR_FROFIP));
+
+	/* åä¿¡ãã¬ã¼ã é·ä¸éï¼ãããã¡ãµã¤ãºï¼ */
+	sil_wrw_mem(ETHERC_RFLR, IF_RX62N_BUF_PAGE_SIZE);
+
+	/* 96ãããæéï¼åæå¤ï¼ */
+	sil_wrw_mem(ETHERC_IPGR, 0x00000014);
+
+	/* Set little endian mode */
+	sil_wrw_mem(EDMAC_EDMR, sil_rew_mem(EDMAC_EDMR) | EDMAC_EDMR_DE_BIT);
+
+	/* Initialize Rx descriptor list address */
+	sil_wrw_mem(EDMAC_RDLAR, (uint32_t)rx62n_buf.rx_desc);
+	/* Initialize Tx descriptor list address */
+	sil_wrw_mem(EDMAC_TDLAR, (uint32_t)rx62n_buf.tx_desc);
+	/* Copy-back status is RFE & TFE only */
+	sil_wrw_mem(EDMAC_TRSCER, 0x00000000);
+	/* Threshold of Tx_FIFO */
+	sil_wrw_mem(EDMAC_TFTR, 0x00000000);
+	/* Transmit fifo & receive fifo is 2048 bytes */
+	sil_wrw_mem(EDMAC_FDR, 0x00000707);
+	/* RR in EDRRR is under driver control */
+	sil_wrw_mem(EDMAC_RMCR, 0x00000001);
+
+	/* PHYã®åæå */
+	mode = phy_initialize(0);
+
+	/* ECMRã¬ã¸ã¹ã¿ã®è¨­å® */
+	rx62n_set_ecmr(ic, mode);
+
+#if defined(TARGET_KERNEL_ASP)
+
+	/* ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿åæå */
+	rx62n_inter_init();
+
+#endif	/* of #if defined(TARGET_KERNEL_ASP) */
+
+#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u	/* JSP-1.4.2 ä»¥é */
+
+	/* ã¿ã¼ã²ããä¾å­é¨ã®å²è¾¼ã¿åæå */
+	rx62n_inter_init();
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u */
+}
+
+
+/*
+ *  rx62n_set_ecmr -- ECMRã¬ã¸ã¹ã¿ã®è¨­å®
+ */
+
+static void
+rx62n_set_ecmr (T_IF_SOFTC *ic, enum phy_mode_t mode)
+{
+	uint32_t ecmr;
+
+	ecmr = ETHERC_ECMR_RE | ETHERC_ECMR_TE/* | ETHERC_ECMR_PRM*/;
+
+	if ((mode & 0x01) != 0)
+		ecmr |= ETHERC_ECMR_DM;
+	if ((mode & 0x02) != 0)
+		ecmr |= ETHERC_ECMR_RTM;
+
+	/* åä½ã¢ã¼ãè¨­å® */
+	sil_wrw_mem(ETHERC_ECMR, ecmr);
+}
+
+/*
+ * rx62n_reset -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããªã»ããããã
+ */
+
+void
+rx62n_reset (T_IF_SOFTC *ic)
+{
+#ifdef TARGET_KERNEL_JSP
+	IPM	ipm;
+#endif
+
+	/* NIC ããã®å²ãè¾¼ã¿ãç¦æ­¢ããã*/
+#ifdef TARGET_KERNEL_JSP
+	ipm = rx62n_dis_inter();
+#endif
+#ifdef TARGET_KERNEL_ASP
+	syscall(dis_int(INTNO_IF_RX62N_TRX));
+#endif
+
+	NET_COUNT_ETHER_NIC(net_count_ether_nic[NC_ETHER_NIC_RESETS], 1);
+	rx62n_stop(ic->sc);
+	rx62n_init_sub(ic);
+
+	/* NIC ããã®å²ãè¾¼ã¿ãè¨±å¯ããã*/
+#ifdef TARGET_KERNEL_JSP
+	rx62n_ena_inter(ipm);
+#endif
+#ifdef TARGET_KERNEL_ASP
+	syscall(ena_int(INTNO_IF_RX62N_TRX));
+#endif
+}
+
+/*
+ *  get_rx62n_softc -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã½ããã¦ã§ã¢æ
+å ±ãè¿ãã
+ */
+
+T_IF_SOFTC *
+rx62n_get_softc (void)
+{
+	return &if_softc;
+}
+
+/*
+ * rx62n_watchdog -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¯ããããã°ã¿ã¤ã ã¢ã¦ã
+ */
+
+void
+rx62n_watchdog (T_IF_SOFTC *ic)
+{
+	rx62n_reset(ic);
+}
+
+/*
+ * rx62n_probe -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®æ¤åº
+ */
+
+void
+rx62n_probe (T_IF_SOFTC *ic)
+{
+	int i;
+#if defined(TARGET_KERNEL_ASP)
+
+	/* ã¿ã¼ã²ããä¾å­é¨ã®ãã¹ã®åæå */
+	rx62n_bus_init();
+
+#endif	/* of #if defined(TARGET_KERNEL_ASP) */
+#if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u	/* JSP-1.4.2 ä»¥é */
+
+	/* ã¿ã¼ã²ããä¾å­é¨ã®ãã¹ã®åæå */
+	rx62n_bus_init();
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) && TKERNEL_PRVER >= 0x1042u */
+
+	for(i = 0; i < ETHER_ADDR_LEN; i++){
+		ic->ifaddr.lladdr[i] = mac_addr[i];
+	}
+}
+
+/*
+ * rx62n_init -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®åæå
+ */
+
+void
+rx62n_init (T_IF_SOFTC *ic)
+{
+#ifdef TARGET_KERNEL_JSP
+	IPM	ipm;
+#endif
+	T_RX62N_SOFTC *sc = ic->sc;
+	T_RX62N_TX_DESC *tdsc;
+	T_RX62N_RX_DESC *rdsc;
+	int i;
+
+	/* NIC ããã®å²ãè¾¼ã¿ãç¦æ­¢ããã*/
+#ifdef TARGET_KERNEL_JSP
+	ipm = rx62n_dis_inter();
+#endif
+#ifdef TARGET_KERNEL_ASP
+	syscall(dis_int(INTNO_IF_RX62N_TRX));
+#endif
+
+	tdsc = (T_RX62N_TX_DESC *)rx62n_buf.tx_desc;
+	sc->tx_write = tdsc;
+	for ( i=0 ; i < NUM_IF_RX62N_TXBUF ; i++ ) {
+		memset(tdsc, 0, sizeof(*tdsc));
+		tdsc->tbl = 0;
+		tdsc->tba = (uint32_t)&rx62n_buf.tx_buff[i];
+		tdsc++;
+	}
+	tdsc--;
+	tdsc->tdle = 1;
+
+	rdsc = (T_RX62N_RX_DESC *)rx62n_buf.rx_desc;
+	sc->rx_read = rdsc;
+	for ( i=0 ; i < NUM_IF_RX62N_RXBUF ; i++ ) {
+		memset(rdsc, 0, sizeof(*rdsc));
+		rdsc->rbl = IF_RX62N_BUF_PAGE_SIZE;
+		rdsc->rba = (uint32_t)&rx62n_buf.rx_buff[i] + (uint32_t)&((T_NET_BUF *)0)->buf;
+		rdsc->rfl = 0;
+		rdsc->ract = 1;
+		rdsc++;
+	}
+	rdsc--;
+	rdsc->rdle = 1;
+
+	/* rx62n_init æ¬ä½ãå¼ã³åºãã*/
+	rx62n_init_sub(ic);
+
+	if (sil_rew_mem(EDMAC_EDRRR) == 0) {
+		sil_wrw_mem(EDMAC_EDRRR, EDMAC_EDRRR_RR);
+	}
+
+	/* NIC ããã®å²ãè¾¼ã¿ãè¨±å¯ããã*/
+#ifdef TARGET_KERNEL_JSP
+	rx62n_ena_inter(ipm);
+#endif
+#ifdef TARGET_KERNEL_ASP
+	syscall(ena_int(INTNO_IF_RX62N_TRX));
+#endif
+}
+
+/*
+ * rx62n_read -- ãã¬ã¼ã ã®èª­ã¿è¾¼ã¿
+ */
+
+T_NET_BUF *
+rx62n_read (T_IF_SOFTC *ic)
+{
+	T_RX62N_SOFTC *sc = ic->sc;
+	T_RX62N_RX_DESC *desc;
+	uint16_t len;
+	T_NET_BUF *input = NULL;
+	uint16_t align;
+	uint8_t *dst;
+	ER error;
+	enum phy_mode_t mode;
+
+	/* ãªã³ã¯ç¶æ
+ã«å¤åãã */
+	if (sc->link_pre != sc->link_now) {
+		sc->link_pre = sc->link_now;
+
+		if (!phy_is_link(0)) {
+			/* PHYã®åæå */
+			mode = phy_initialize(0);
+
+			/* ECMRã¬ã¸ã¹ã¿ã®è¨­å® */
+			rx62n_set_ecmr(ic, mode);
+		}
+	}
+
+	if (sc->over_flow) {
+		sc->over_flow = false;
+	}
+
+	desc = sc->rx_read;
+
+	if (desc->ract != 0) {
+		return NULL;
+	}
+
+	len = desc->rfl;
+	/*
+	 *  +-----------+--------+---------+---------+
+	 *  | Ehter HDR | IP HDR | TCP HDR | TCP SDU |
+	 *  +-----------+--------+---------+---------+
+	 *        14        20        20        n
+	 *   <----------------- len ---------------->
+	 *              ^
+	 *              t_net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+	 *
+	 *  tcp_input ã¨ udp_input ã§ã¯ãæ¬ä¼¼ãããã¨ SDU ã§ãã§ãã¯ãµã ã
+	 *  è¨ç®ããããn ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
+	 *  ãããã£ã³ã°ããããã®åãèæ
+®ãã¦ net_buf ãç²å¾ããªããã°ãªããªãã
+	 */
+	align = ((((len - sizeof(T_IF_HDR)) + 3) >> 2) << 2) + sizeof(T_IF_HDR);
+
+	if ((error = tget_net_buf(&input, align, TMO_IF_RX62N_GET_NET_BUF)) == E_OK && input != NULL) {
+		dst = input->buf + IF_ETHER_NIC_HDR_ALIGN;
+		memcpy(dst, (void *)desc->rba, len);
+	}
+	else {
+		NET_COUNT_ETHER_NIC(net_count_ether_nic[NC_ETHER_NIC_IN_ERR_PACKETS], 1);
+		NET_COUNT_ETHER_NIC(net_count_ether_nic[NC_ETHER_NIC_NO_BUFS], 1);
+	}
+
+	desc->rfp = 0;
+	desc->ract = 1;
+
+	desc++;
+	if (desc == &rx62n_buf.rx_desc[NUM_IF_RX62N_RXBUF]) {
+		desc = rx62n_buf.rx_desc;
+	}
+	sc->rx_read = desc;
+
+	if (sil_rew_mem(EDMAC_EDRRR) == 0) {
+		sil_wrw_mem(EDMAC_EDRRR, EDMAC_EDRRR_RR);
+	}
+
+	return input;
+}
+
+/*
+ * rx62n_start -- éä¿¡ãã¬ã¼ã ããããã¡ãªã³ã°ããã
+ */
+
+void
+rx62n_start (T_IF_SOFTC *ic, T_NET_BUF *output)
+{
+	T_RX62N_SOFTC *sc = ic->sc;
+	T_RX62N_TX_DESC *desc, *next;
+	uint8_t *buf = NULL;
+	int32_t len, res, pos;
+	uint32_t tfp;
+
+	for ( res = output->len, pos = 0; res > 0; res -= len, pos += len ) {
+		desc = sc->tx_write;
+
+		while (desc->tact != 0) {
+			tslp_tsk(1);
+		}
+
+		buf = (uint8_t *)desc->tba + IF_ETHER_NIC_HDR_ALIGN;
+
+		next = desc + 1;
+		if (next == &rx62n_buf.tx_desc[NUM_IF_RX62N_TXBUF]) {
+			next = rx62n_buf.tx_desc;
+		}
+		sc->tx_write = next;
+
+		len = res;
+		if ( len > IF_RX62N_BUF_PAGE_SIZE ) {
+			len = IF_RX62N_BUF_PAGE_SIZE;
+			tfp = 0x0;
+		}
+		else
+			tfp = 0x1;
+
+		if (pos == 0)
+			tfp |= 0x2;
+
+		memcpy(buf, (uint8_t *)output->buf + pos, len);
+
+		desc->tbl = len;
+		desc->tfp = tfp;
+		desc->tact = 1;
+	}
+
+	if (sil_rew_mem(EDMAC_EDTRR) == 0) {
+		sil_wrw_mem(EDMAC_EDTRR, EDMAC_EDTRR_TR);
+	}
+}
+
+/*
+ *  RX62N Ethernet Controler éåä¿¡å²ãè¾¼ã¿ãã³ãã©
+ */
+
+void
+if_rx62n_trx_handler (void)
+{
+	T_IF_SOFTC *ic;
+	T_RX62N_SOFTC *sc;
+	uint32_t ecsr, eesr, psr;
+
+	i_begin_int(INTNO_IF_RX62N_TRX);
+
+	ic = &if_softc;
+	sc = ic->sc;
+
+	ecsr = sil_rew_mem(ETHERC_ECSR);
+
+	if (ecsr & ETHERC_ECSR_LCHNG) {
+		/* ETHERCé¨å²ãè¾¼ã¿è¦å ã¯ãªã¢ */
+		sil_wrw_mem(ETHERC_ECSR, ETHERC_ECSR_LCHNG);
+
+		psr = sil_rew_mem(ETHERC_PSR);
+		sc->link_now = (psr & ETHERC_PSR_LMON) != 0;
+
+		/* ãªã³ã¯ç¶æ
+ã«å¤åãã */
+		if (sc->link_pre != sc->link_now) {
+			/* åä¿¡å²ãè¾¼ã¿å¦ç */
+			isig_sem(ic->semid_rxb_ready);
+		}
+	}
+
+	eesr = sil_rew_mem(EDMAC_EESR);
+
+	if (eesr & EDMAC_EESR_FR) {
+		/* DMAé¨å²ãè¾¼ã¿è¦å ã¯ãªã¢ */
+		sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FR);
+
+		/* åä¿¡å²ãè¾¼ã¿å¦ç */
+		isig_sem(ic->semid_rxb_ready);
+	}
+	if (eesr & EDMAC_EESR_TC) {
+		/* DMAé¨å²ãè¾¼ã¿è¦å ã¯ãªã¢ */
+		sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_TC);
+
+		/* éä¿¡å²ãè¾¼ã¿å¦ç */
+		isig_sem(ic->semid_txb_ready);
+	}
+	if (eesr & (EDMAC_EESR_FROF | EDMAC_EESR_RDE)) {
+		/* DMAé¨å²ãè¾¼ã¿è¦å ã¯ãªã¢ */
+		sil_wrw_mem(EDMAC_EESR, EDMAC_EESR_FROF | EDMAC_EESR_RDE);
+
+		sc->over_flow = true;
+
+		/* åä¿¡å²ãè¾¼ã¿å¦ç */
+		isig_sem(ic->semid_rxb_ready);
+	}
+
+	i_end_int(INTNO_IF_RX62N_TRX);
+}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.cfg	(revision 313)
@@ -0,0 +1,73 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  if_rx62n ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef SUPPORT_ETHER
+
+INCLUDE("<if_rx62nreg.h>");
+
+/* å²ãè¾¼ã¿ãã³ãã© */
+
+DEF_INH(INHNO_IF_RX62N_TRX, { TA_HLNG, if_rx62n_trx_handler });
+
+/* å
+¥åºååæç¨ã»ããã© */
+
+CRE_SEM(SEM_IF_RX62N_SBUF_READY,	{ TA_TPRI, NUM_IF_RX62N_TXBUF, NUM_IF_RX62N_TXBUF });
+CRE_SEM(SEM_IF_RX62N_RBUF_READY,	{ TA_TPRI, 0,                  NUM_IF_RX62N_RXBUF });
+
+#endif	/* of #ifdef SUPPORT_ETHER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n.h	(revision 313)
@@ -0,0 +1,125 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (C) 1993, David Greenman. This software may be used, modified,
+ *   copied, distributed, and sold, in both source and binary form provided
+ *   that the above copyright and these terms are retained. Under no
+ *   circumstances is the author responsible for the proper functioning
+ *   of this software, nor does the author assume any responsibility
+ *   for damages incurred with its use.
+ */
+
+#ifndef _IF_RX62N_H_
+#define _IF_RX62N_H_
+
+/*
+ *  NIC ã®é¸æãã¯ã­
+ */
+
+#define IF_ETHER_NIC_GET_SOFTC()	rx62n_get_softc()
+#define IF_ETHER_NIC_WATCHDOG(i)	rx62n_watchdog(i)
+#define IF_ETHER_NIC_PROBE(i)		rx62n_probe(i)
+#define IF_ETHER_NIC_INIT(i)		rx62n_init(i)
+#define IF_ETHER_NIC_READ(i)		rx62n_read(i)
+#define IF_ETHER_NIC_RESET(i)		rx62n_reset(i)
+#define IF_ETHER_NIC_START(i,o)		rx62n_start(i,o)
+
+#define T_IF_ETHER_NIC_SOFTC		struct t_rx62n_softc
+
+/* IPv6 é¢ä¿ */
+
+#define IF_ETHER_NIC_IN6_IFID(i,a)	get_mac6_ifid(i,a)	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ã®è¨­å®		*/
+#define IF_ETHER_NIC_ADDMULTI(s)	rx62n_addmulti(s)		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ç»é²		*/
+
+#if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY)
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IF_SOFTC_DEFINED
+
+typedef struct t_if_softc T_IF_SOFTC;
+
+#define T_IF_SOFTC_DEFINED
+
+#endif	/* of #ifndef T_IF_SOFTC_DEFINED */
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+/*
+ *  é¢æ°
+ */
+
+extern T_IF_SOFTC *rx62n_get_softc(void);
+extern void rx62n_watchdog(T_IF_SOFTC *ic);
+extern void rx62n_probe(T_IF_SOFTC *ic);
+extern void rx62n_init(T_IF_SOFTC *ic);
+extern void rx62n_reset(T_IF_SOFTC *ic);
+extern T_NET_BUF *rx62n_read(T_IF_SOFTC *ic);
+extern void rx62n_start(T_IF_SOFTC *ic, T_NET_BUF *output);
+extern ER rx62n_addmulti(T_IF_SOFTC *ic);
+extern void if_rx62n_trx_handler(void);
+
+#endif /* #if !defined(TOPPERS_MACRO_ONLY) && !defined(_MACRO_ONLY) */
+
+#endif	/* of #ifndef _IF_RX62N_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62n_sym.def	(revision 313)
@@ -0,0 +1,4 @@
+INHNO_IF_RX62N_TRX
+INTNO_IF_RX62N_TRX
+INTATR_IF_RX62N_TRX
+INTPRI_IF_RX62N_TRX
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62nreg.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62nreg.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/if_rx62nreg.h	(revision 313)
@@ -0,0 +1,178 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014-2015 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef RX62NRegH
+#define RX62NRegH
+
+#include "t_stddef.h"
+
+#define EDMAC_EDMR			((uint32_t *)0x000C0000)	/* EDMACã¢ã¼ãã¬ã¸ã¹ã¿ */
+#define EDMAC_EDMR_SWR_BIT	0x00000001
+#define EDMAC_EDMR_DE_BIT	0x00000040
+
+#define EDMAC_EDTRR			((uint32_t *)0x000C0008)	/* EDMACéä¿¡è¦æ±ã¬ã¸ã¹ã¿ */
+#define EDMAC_EDTRR_TR		0x00000001
+
+#define EDMAC_EDRRR			((uint32_t *)0x000C0010)	/* EDMACåä¿¡è¦æ±ã¬ã¸ã¹ã¿ */
+#define EDMAC_EDRRR_RR		0x00000001
+
+#define EDMAC_TDLAR			((uint32_t *)0x000C0018)	/* éä¿¡ãã£ã¹ã¯ãªãã¿ãªã¹ãå
+é ­ã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+#define EDMAC_RDLAR			((uint32_t *)0x000C0020)	/* åä¿¡ãã£ã¹ã¯ãªãã¿ãªã¹ãå
+é ­ã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+
+#define EDMAC_EESR			((uint32_t *)0x000C0028)	/* ETHERC/EDMACã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ */
+#define EDMAC_EESR_FROF		0x00010000
+#define EDMAC_EESR_RDE		0x00020000
+#define EDMAC_EESR_FR		0x00040000
+#define EDMAC_EESR_TC		0x00200000
+#define EDMAC_EESR_TWB		0x40000000
+
+#define EDMAC_EESIPR		((uint32_t *)0x000C0030)	/* ETHERC/EDMACã¹ãã¼ã¿ã¹å²ãè¾¼ã¿è¨±å¯ã¬ã¸ã¹ã¿ */
+#define EDMAC_EESIPR_RMAFIP	0x00000080
+#define EDMAC_EESIPR_FROFIP	0x00010000
+#define EDMAC_EESIPR_RDEIP	0x00020000
+#define EDMAC_EESIPR_FRIP	0x00040000
+#define EDMAC_EESIPR_TCIP	0x00200000
+#define EDMAC_EESIPR_TWBIP	0x40000000
+
+#define EDMAC_TRSCER		((uint32_t *)0x000C0038)	/* éåä¿¡ã¹ãã¼ã¿ã¹ã³ãã¼æç¤ºã¬ã¸ã¹ã¿ */
+#define EDMAC_RMFCR			((uint32_t *)0x000C0040)	/* ãã¹ããã¬ã¼ã ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define EDMAC_TFTR			((uint32_t *)0x000C0048)	/* éä¿¡FIFOãããå¤æå®ã¬ã¸ã¹ã¿ */
+#define EDMAC_FDR			((uint32_t *)0x000C0050)	/* FIFOå®¹éæå®ã¬ã¸ã¹ã¿ */
+#define EDMAC_RMCR			((uint32_t *)0x000C0058)	/* åä¿¡æ¹å¼å¶å¾¡ã¬ã¸ã¹ã¿ */
+#define EDMAC_TFUCR			((uint32_t *)0x000C0064)	/* éä¿¡FIFOã¢ã³ãã©ã³ã«ã¦ã³ã */
+#define EDMAC_RFOCR			((uint32_t *)0x000C0068)	/* åä¿¡FIFOãªã¼ããã­ã¼ã«ã¦ã³ã */
+#define EDMAC_IOSR			((uint32_t *)0x000C006C)	/* åå¥åºåä¿¡å·è¨­å®ã¬ã¸ã¹ã¿ */
+#define EDMAC_FCFTR			((uint32_t *)0x000C0070)	/* ãã­ã¼å¶å¾¡éå§FIFOãããå¤è¨­å®ã¬ã¸ã¹ã¿ */
+#define EDMAC_RPADIR		((uint32_t *)0x000C0078)	/* åä¿¡ãã¼ã¿ããã£ã³ã°æ¿å
+¥è¨­å®ã¬ã¸ã¹ã¿ */
+#define EDMAC_TRIMD			((uint32_t *)0x000C007C)	/* éä¿¡å²ãè¾¼ã¿è¨­å®ã¬ã¸ã¹ã¿ */
+#define EDMAC_RBWAR			((uint32_t *)0x000C00C8)	/* åä¿¡ãããã¡ã©ã¤ãã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+#define EDMAC_RDFAR			((uint32_t *)0x000C00CC)	/* åä¿¡ãã£ã¹ã¯ãªãã¿ãã§ããã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+#define EDMAC_TBRAR			((uint32_t *)0x000C00D4)	/* éä¿¡ãããã¡ãªã¼ãã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+#define EDMAC_TDFAR			((uint32_t *)0x000C00D8)	/* éä¿¡ãã£ã¹ã¯ãªãã¿ãã§ããã¢ãã¬ã¹ã¬ã¸ã¹ã¿ */
+
+#define ETHERC_ECMR			((uint32_t *)0x000C0100)	/* ETHERCã¢ã¼ãã¬ã¸ã¹ã¿ */
+#define ETHERC_ECMR_PRM		0x00000001
+#define ETHERC_ECMR_DM		0x00000002
+#define ETHERC_ECMR_RTM		0x00000004
+#define ETHERC_ECMR_TE		0x00000020
+#define ETHERC_ECMR_RE		0x00000040
+
+#define ETHERC_RFLR			((uint32_t *)0x000C0108)	/* åä¿¡ãã¬ã¼ã é·ä¸éã¬ã¸ã¹ã¿ */
+#define ETHERC_ECSR			((uint32_t *)0x000C0110)	/* ETHERCã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ */
+#define ETHERC_ECSR_LCHNG	0x00000004
+#define ETHERC_ECSIPR		((uint32_t *)0x000C0118)	/* ETHERCå²ãè¾¼ã¿è¨±å¯ã¬ã¸ã¹ã¿ */
+#define ETHERC_ECSIPR_LCHNGIP	0x00000004
+#define ETHERC_PIR			((uint32_t *)0x000C0120)	/* PHYé¨ã¤ã³ã¿ãã§ã¼ã¹ã¬ã¸ã¹ã¿ */
+#define ETHERC_PIR_MDC		0x00000001
+#define ETHERC_PIR_MMD		0x00000002
+#define ETHERC_PIR_MDO		0x00000004
+#define ETHERC_PIR_MDI		0x00000008
+
+#define ETHERC_PSR			((uint32_t *)0x000C0128)	/* PHYé¨ã¹ãã¼ã¿ã¹ã¬ã¸ã¹ã¿ */
+#define ETHERC_PSR_LMON		0x00000001
+
+#define ETHERC_RDMLR		((uint32_t *)0x000C0140)	/* ä¹±æ°çæã«ã¦ã³ã¿ä¸éå¤è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_IPGR			((uint32_t *)0x000C0150)	/* IPGè¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_APR			((uint32_t *)0x000C0154)	/* èªåPAUSEãã¬ã¼ã è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_MPR			((uint32_t *)0x000C0158)	/* æåPAUSEãã¬ã¼ã è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_RFCF			((uint32_t *)0x000C0160)	/* åä¿¡PAUSEãã¬ã¼ã ã«ã¦ã³ã¿ */
+#define ETHERC_TPAUSER		((uint32_t *)0x000C0164)	/* èªåPAUSEãã¬ã¼ã åéåæ°è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_TPAUSECR		((uint32_t *)0x000C0168)	/* PAUSEãã¬ã¼ã åéåæ°ã«ã¦ã³ã¿ */
+#define ETHERC_BCFRR		((uint32_t *)0x000C016C)	/* Broadcastãã¬ã¼ã åä¿¡åæ°è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_MAHR			((uint32_t *)0x000C01C0)	/* MACã¢ãã¬ã¹ä¸ä½è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_MALR			((uint32_t *)0x000C01C8)	/* MACã¢ãã¬ã¹ä¸ä½è¨­å®ã¬ã¸ã¹ã¿ */
+#define ETHERC_TROCR		((uint32_t *)0x000C01D0)	/* éä¿¡ãªãã©ã¤ãªã¼ãã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_CDCR			((uint32_t *)0x000C01D4)	/* é
+å»¶è¡çªæ¤åºã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_LCCR			((uint32_t *)0x000C01D8)	/* ã­ã£ãªã¢æ¶å¤±ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_CNDCR		((uint32_t *)0x000C01DC)	/* ã­ã£ãªã¢æªæ¤åºã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_CEFCR		((uint32_t *)0x000C01E4)	/* CRCã¨ã©ã¼ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_FRECR		((uint32_t *)0x000C01E8)	/* ãã¬ã¼ã åä¿¡ã¨ã©ã¼ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_TSFRCR		((uint32_t *)0x000C01EC)	/* 64ãã¤ãæªæºãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_TLFRCR		((uint32_t *)0x000C01F0)	/* æå®ãã¤ãè¶
+ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_RFCR			((uint32_t *)0x000C01F4)	/* ç«¯æ°ããããã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+#define ETHERC_MAFCR		((uint32_t *)0x000C01F8)	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãã¬ã¼ã åä¿¡ã«ã¦ã³ã¿ã¬ã¸ã¹ã¿ */
+
+/* éä¿¡ãã£ã¹ã¯ãªãã¿ */
+typedef struct t_rx62n_tx_desc {
+	uint32_t	tfs : 26;
+	uint32_t	twbi : 1;
+	uint32_t	tfe : 1;
+	uint32_t	tfp : 2;
+	uint32_t	tdle : 1;
+	uint32_t	tact : 1;
+	uint32_t	: 16;
+	uint32_t	tbl : 16;
+	uint32_t	tba;
+	uint32_t	binding;
+} T_RX62N_TX_DESC;
+
+/* åä¿¡ãã£ã¹ã¯ãªãã¿ */
+typedef struct t_rx62n_rx_desc {
+	uint32_t	rfs : 27;
+	uint32_t	rfe : 1;
+	uint32_t	rfp : 2;
+	uint32_t	rdle : 1;
+	uint32_t	ract : 1;
+	uint32_t	rfl : 16;
+	uint32_t	rbl : 16;
+	uint32_t	rba;
+	uint32_t	binding;
+} T_RX62N_RX_DESC;
+
+#endif /* RX62NRegH */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/net_dev.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/net_dev.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/net_dev.py	(revision 313)
@@ -0,0 +1,4 @@
+INCLUDES	= INCLUDES + [TINET_ROOT + '/netdev/' + NET_DEV]
+TINET_DIR	= TINET_DIR + [TINET_ROOT + '/netdev/' + NET_DEV]
+TINET_COBJS	= TINET_COBJS + ['ether_phy.c', 'if_rx62n.c']
+TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/netdev/' + NET_DEV + '/if_ed.cfg']
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic.cfg	(revision 313)
@@ -0,0 +1,55 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#include "if_rx62n.cfg"
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_asp.cfg	(revision 313)
@@ -0,0 +1,74 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  if_rx62n ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#ifdef SUPPORT_ETHER
+
+#include "if_rx62nreg.h"
+
+/* å²ãè¾¼ã¿ãã³ãã© */
+
+DEF_INH(INHNO_IF_RX62N_TRX, { TA_NULL, if_rx62n_trx_handler });
+CFG_INT(INTNO_IF_RX62N_TRX, { INTATR_IF_RX62N_TRX, INTPRI_IF_RX62N_TRX });
+
+/* å
+¥åºååæç¨ã»ããã© */
+
+CRE_SEM(SEM_IF_RX62N_SBUF_READY,	{ TA_TPRI, NUM_IF_RX62N_TXBUF, NUM_IF_RX62N_TXBUF });
+CRE_SEM(SEM_IF_RX62N_RBUF_READY,	{ TA_TPRI, 0,                  NUM_IF_RX62N_RXBUF });
+
+#endif	/* of #ifdef SUPPORT_ETHER */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/nic_rename.h	(revision 313)
@@ -0,0 +1,84 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _NIF_RENAME_H_
+#define _NIF_RENAME_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹å
+é¨åã®ãªãã¼ã 
+ */
+
+/* if_rx62n.c */
+
+#define rx62n_get_softc		_tinet_rx62n_get_softc
+#define rx62n_watchdog		_tinet_rx62n_watchdog
+#define rx62n_probe		_tinet_rx62n_probe
+#define rx62n_init			_tinet_rx62n_init
+#define rx62n_read			_tinet_rx62n_read
+#define rx62n_reset		_tinet_rx62n_reset
+#define rx62n_start		_tinet_rx62n_start
+#define if_softc		_tinet_if_softc
+
+/* config/<cpu>/tinet_cpu_config.c */
+
+#define rx62n_inter_clear	_tinet_rx62n_inter_clear
+
+#ifdef SUPPORT_INET6
+
+#define rx62n_addmulti		_tinet_rx62n_addmulti
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifndef _NIF_RENAME_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_config.h	(revision 313)
@@ -0,0 +1,67 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_NIC_CONFIG_H_
+#define _TINET_NIC_CONFIG_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®å
+é¨è­å¥åã®ãªãã¼ã 
+ */
+
+#include "nic_rename.h"
+
+#include "if_rx62n.h"
+
+#endif	/* of #ifndef _TINET_NIC_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_defs.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_defs.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netdev/if_rx62n/tinet_nic_defs.h	(revision 313)
@@ -0,0 +1,64 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2014 Cores Co., Ltd. Japan
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_NIC_DEFS_H_
+#define _TINET_NIC_DEFS_H_
+
+/* 
+ *  T_ETHER_HDR ã§ãã¢ã©ã¤ã³ãèª¿æ´ããå ´åã¯ãèª¿æ´éãæå®ããã
+ *  èª¿æ´ããªãå ´åã¯ã0 ãæå®ããã
+ */
+#define IF_ETHER_NIC_HDR_ALIGN		0
+
+#endif	/* of #ifndef _TINET_NIC_DEFS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp6.h	(revision 313)
@@ -0,0 +1,535 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet/icmp6.h,v 1.2.2.3 2001/07/06 05:36:35 sumikawa Exp $	*/
+/*	$KAME: icmp6.h,v 1.46 2001/04/27 15:09:48 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_icmp.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _IP_ICMP6_H_
+#define _IP_ICMP6_H_
+
+/*
+ *  ICMPv6 ããã
+ */
+
+typedef struct t_icmp6_hdr {
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		code;		/* ãµãå		*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	union {
+		uint32_t	data32;
+		uint16_t	data16[2];
+		uint8_t		data8[4];
+		} data;
+	} T_ICMP6_HDR;
+
+#define icmp6_data32			data.data32
+#define icmp6_data16			data.data16
+#define icmp6_data8			data.data8
+#define icmp6_pptr			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
+#define icmp6_mtu			data.data32		/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
+#define icmp6_id			data.data16[0]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
+#define icmp6_seq			data.data16[1]		/* ã¨ã³ã¼è¦æ±ã¨å¿ç­	*/
+
+#define ICMP6_HDR_SIZE			(sizeof(T_ICMP6_HDR))
+#define IF_IP6_ICMP6_HDR_OFFSET		(IF_IP6_HDR_SIZE)
+
+#define GET_ICMP6_HDR(nbuf,ihoff)	((T_ICMP6_HDR*)((uint8_t*)((nbuf)->buf) + ihoff))
+#define GET_ICMP6_SDU(nbuf,ihoff)	((uint8_t*)((nbuf)->buf) + ihoff + ICMP6_HDR_SIZE)
+
+#define GET_IP6_ICMP6_HDR_SIZE(nbuf)	(GET_IP6_HDR_SIZE(nbuf) + ICMP6_HDR_SIZE)
+#define GET_IF_IP6_ICMP6_HDR_SIZE(nbuf)	(IF_HDR_SIZE + GET_IP6_ICMP6_HDR_SIZE(nbuf))
+
+/*
+ *  ICMP6 ã¿ã¤ã
+ */
+
+#define ICMP6_DST_UNREACH		UINT_C(1)	/* å®å
+å°éä¸å¯è½		*/
+#define ICMP6_PACKET_TOO_BIG		UINT_C(2)	/* ãã±ãããå¤§ããããã	*/
+#define ICMP6_TIME_EXCEEDED		UINT_C(3)	/* TTL ãè¶
+éããã		*/
+#define ICMP6_PARAM_PROB		UINT_C(4)	/* IPv6 ããããä¸æ­£ã		*/
+
+#define ICMP6_ECHO_REQUEST		UINT_C(128)	/* ã¨ã³ã¼è¦æ±			*/
+#define ICMP6_ECHO_REPLY		UINT_C(129)	/* ã¨ã³ã¼å¿ç­			*/
+
+#define ICMP6_MEMBERSHIP_QUERY		UINT_C(130)	/* ã°ã«ã¼ãã¡ã³ãç
+§ä¼		*/
+#define ICMP6_MEMBERSHIP_REPORT		UINT_C(131)	/* ã°ã«ã¼ãã¡ã³ãå ±å		*/
+#define ICMP6_MEMBERSHIP_REDUCTION	UINT_C(132)	/* ã°ã«ã¼ãã¡ã³ãçµäº		*/
+
+#define MLD_LISTENER_QUERY		UINT_C(130)	/* ãã«ãã­ã£ã¹ãåä¿¡è
+ç
+§ä¼	*/
+#define MLD_LISTENER_REPORT		UINT_C(131)	/* ãã«ãã­ã£ã¹ãåä¿¡è
+å ±å	*/
+#define MLD_LISTENER_DONE		UINT_C(132)	/* ãã«ãã­ã£ã¹ãåä¿¡è
+çµäº	*/
+
+#define ND_ROUTER_SOLICIT		UINT_C(133)	/* ã«ã¼ã¿è¦è«			*/
+#define ND_ROUTER_ADVERT		UINT_C(134)	/* ã«ã¼ã¿éç¥			*/
+#define ND_NEIGHBOR_SOLICIT		UINT_C(135)	/* è¿é£è¦è«			*/
+#define ND_NEIGHBOR_ADVERT		UINT_C(136)	/* è¿é£éç¥			*/
+#define ND_REDIRECT			UINT_C(137)	/* åãç´ã			*/
+
+#define ICMP6_ROUTER_RENUMBERING	UINT_C(138)	/* ã«ã¼ã¿çªå·åè¨­å®		*/
+
+#define ICMP6_WRU_REQUEST		UINT_C(139)	/* è¦æ±ãã¼ãæ¢ç´¢		*/
+#define ICMP6_WRU_REPLY			UINT_C(140)	/* å¿ç­ãã¼ãæ¢ç´¢		*/
+
+#define ICMP6_FQDN_QUERY		UINT_C(139)	/* FQDN ç
+§ä¼			*/
+#define ICMP6_FQDN_REPLY		UINT_C(140)	/* FQDN å¿ç­			*/
+
+#define ICMP6_NI_QUERY			UINT_C(139)	/* ãã¼ãæ
+å ±ç
+§ä¼		*/
+#define ICMP6_NI_REPLY			UINT_C(140)	/* ãã¼ãæ
+å ±å¿ç­		*/
+
+#define ICMP6_MAX_TYPE			UINT_C(203)	/* ICMP6 ã¿ã¤ãã®æå¤§å¤		*/
+
+/*
+ *  ICMP6 ã³ã¼ã
+ */
+
+/* å®å
+å°éä¸å¯è½ */
+
+#define ICMP6_DST_UNREACH_NOROUTE	UINT_C(0)	/* å°éã«ã¼ããªãã		*/
+#define ICMP6_DST_UNREACH_ADMIN		UINT_C(1)	/* ç®¡çè
+ã«ããç¡å¹åä¸­ã	*/
+#define ICMP6_DST_UNREACH_NOTEIGHBOR	UINT_C(2)	/* è¿é£è
+ã§ã¯ãªããªã£ãã	*/
+#define ICMP6_DST_UNREACH_BEYOND_SCOPE	UINT_C(2)	/* ã¹ã³ã¼ããè¶
+ãã¦ããã	*/
+#define ICMP6_DST_UNREACH_ADDR		UINT_C(3)	/* å®å
+ã¢ãã¬ã¹ã«å°éä¸å¯è½ã	*/
+#define ICMP6_DST_UNREACH_NOPORT	UINT_C(4)	/* å®å
+ãã¼ãã«å°éä¸å¯è½ã	*/
+
+/* TTL è¶
+é */
+
+#define ICMP6_TIME_EXCEED_TRANSIT	UINT_C(0)	/* è»¢éæã« TTL==0 ã«ãªã£ãã	*/
+#define ICMP6_TIME_EXCEED_REASSEMBLY	UINT_C(1)	/* IP åæ§æã§ã¿ã¤ã ã¢ã¦ãããã*/
+
+/* ãããä¸æ­£ */
+
+#define ICMP6_PARAMPROB_HEADER		UINT_C(0)	/* ãããã«ä¸æ­£ããã£ãã	*/
+#define ICMP6_PARAMPROB_NEXT_HEADER	UINT_C(1)	/* æ¬¡ããããèªè­ã§ããªãã	*/
+#define ICMP6_PARAMPROB_OPTION		UINT_C(2)	/* ãªãã·ã§ã³ãèªè­ã§ããªãã	*/
+
+/* å
+é¨ä½¿ç¨ */
+#define ND_REDIRECT_ONLINK		UINT_C(0)	/* ãªã³ãªã³ã¯ã¸ã®åãç´ã	*/
+#define ND_REDIRECT_ROUTER		UINT_C(1)	/* ã«ã¼ã¿ã¸ã®åãç´ã		*/
+
+/*
+ *  å¶éå¤
+ */
+
+							/* ICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·	*/
+#define ICMPV6_PAYLOAD_MAXLEN		(IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
+
+/*
+ *  è¿é£è¦è«
+ */
+
+typedef struct t_neighbor_solicit_hdr {
+	T_ICMP6_HDR	hdr;
+	T_IN6_ADDR	target;
+	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	} T_NEIGHBOR_SOLICIT_HDR;
+
+#define NEIGHBOR_SOLICIT_HDR_SIZE	(sizeof(T_NEIGHBOR_SOLICIT_HDR))
+#define IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET	\
+					(IF_IP6_HDR_SIZE)
+
+#define GET_NEIGHBOR_SOLICIT_HDR(nbuf,nhoff)	\
+					((T_NEIGHBOR_SOLICIT_HDR*)((uint8_t*)((nbuf)->buf) + nhoff))
+#define GET_NEIGHBOR_SOLICIT_SDU(nbuf,nhoff)	\
+					((uint8_t*)((nbuf)->buf) + nhoff + NEIGHBOR_SOLICIT_HDR_SIZE)
+
+#define GET_IP6_NEIGHBOR_SOLICIT_HDR_SIZE(nbuf)		\
+					(GET_IP6_HDR_SIZE(nbuf) + NEIGHBOR_SOLICIT_HDR_SIZE)
+#define GET_IF_IP6_NEIGHBOR_SOLICIT_HDR_SIZE(nbuf)	\
+					(GET_IP6_NEIGHBOR_SOLICIT_HDR_SIZE(nbuf) + IF_HDR_SIZE)
+
+/*
+ *  è¿é£éç¥
+ */
+
+typedef struct t_neighbor_advert_hdr {
+	T_ICMP6_HDR	hdr;
+	T_IN6_ADDR	target;
+	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	} T_NEIGHBOR_ADVERT_HDR;
+
+/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+
+#define nd_na_flags_reserved		hdr.data.data32
+
+#define NEIGHBOR_ADVERT_HDR_SIZE	(sizeof(T_NEIGHBOR_ADVERT_HDR))
+#define IP6_NEIGHBOR_ADVERT_HDR_SIZE	(IP6_HDR_SIZE + NEIGHBOR_ADVERT_HDR_SIZE)
+#define IF_IP6_NEIGHBOR_ADVERT_HDR_SIZE	\
+					(IF_IP6_HDR_SIZE + NEIGHBOR_ADVERT_HDR_SIZE)
+#define IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET	\
+					(IF_IP6_HDR_SIZE)
+
+#define GET_NEIGHBOR_ADVERT_HDR(nbuf,nhoff)	\
+					((T_NEIGHBOR_ADVERT_HDR*)((uint8_t*)((nbuf)->buf) + nhoff))
+#define GET_NEIGHBOR_ADVERT_SDU(nbuf,nhoff)	\
+					((uint8_t*)((nbuf)->buf) + nhoff + NEIGHBOR_ADVERT_HDR_SIZE)
+
+#define GET_IP6_NEIGHBOR_ADVERT_HDR_SIZE(nbuf)		\
+					(GET_IP6_HDR_SIZE(nbuf) + NEIGHBOR_ADVERT_HDR_SIZE)
+#define GET_IF_IP6_NEIGHBOR_ADVERT_HDR_SIZE(nbuf)	\
+					(GET_IP6_NEIGHBOR_ADVERT_HDR_SIZE(nbuf) + IF_HDR_SIZE)
+
+/*
+ *  è¿é£éç¥ãã©ã°ãnd_na_flags_reserved (hdr.data32) ã«è¨­å®ããã
+ */
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x20000000)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x40000000)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x80000000)	/* ã«ã¼ã¿éç¥		*/
+
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
+
+#define ND_NA_FLG_OVERRIDE		ULONG_C(0x00000020)	/* è¿é£ã­ã£ãã·ã¥ä¸æ¸ã	*/
+#define ND_NA_FLG_SOLICITED		ULONG_C(0x00000040)	/* è¿é£è¦è«ã¸ã®å¿ç­	*/
+#define ND_NA_FLG_ROUTER		ULONG_C(0x00000080)	/* ã«ã¼ã¿éç¥		*/
+
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+/*
+ *  ã«ã¼ã¿éç¥
+ *
+ *    RFC4291: IP Version 6 Addressing Architecture
+ *    RFC4941: Privacy Extensions for Stateless Address Autoconfiguration in IPv6
+ *    RFC6106: IPv6 Router Advertisement Options for DNS Configuration
+ */
+
+typedef struct t_router_advert_hdr {
+	T_ICMP6_HDR	hdr;
+	uint32_t	reachable;		/* [ms] å°éå¯è½æé	*/
+	uint32_t	retransmit;		/* [ms] è¿é£è¦è«éä¿¡éé	*/
+	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	} T_ROUTER_ADVERT_HDR;
+
+/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+
+#define nd_ra_current_hoplimit		hdr.data.data8[0]
+#define nd_ra_flags			hdr.data.data8[1]
+#define nd_ra_router_lifetime		hdr.data.data16[1]	/* [s] ã«ã¼ã¿æå¹æé	*/
+
+#define ROUTER_ADVERT_HDR_SIZE		(sizeof(T_ROUTER_ADVERT_HDR))
+#define IP6_ROUTER_ADVERT_HDR_SIZE	(IP6_HDR_SIZE + ROUTER_ADVERT_HDR_SIZE)
+#define IF_IP6_ROUTER_ADVERT_HDR_SIZE	(IF_IP6_HDR_SIZE + ROUTER_ADVERT_HDR_SIZE)
+#define IF_IP6_ROUTER_ADVERT_HDR_OFFSET	(IF_IP6_HDR_SIZE)
+
+#define GET_ROUTER_ADVERT_HDR(nbuf,nhoff)	\
+					((T_ROUTER_ADVERT_HDR*)((uint8_t*)((nbuf)->buf) + nhoff))
+#define GET_ROUTER_ADVERT_SDU(nbuf,nhoff)	\
+					((uint8_t*)((nbuf)->buf) + nhoff + ROUTER_ADVERT_HDR_SIZE)
+
+#define GET_IP6_ROUTER_ADVERT_HDR_SIZE(nbuf)	\
+					(GET_IP6_HDR_SIZE(nbuf) + ROUTER_ADVERT_HDR_SIZE)
+#define GET_IF_IP6_ROUTER_ADVERT_HDR_SIZE(nbuf)	\
+					(GET_IP6_ROUTER_ADVERT_HDR_SIZE(nbuf) + IF_HDR_SIZE)
+
+/*
+ *  ã«ã¼ã¿éç¥ãããã®ãã©ã°
+ */
+
+#define ND_RA_FLAG_MANAGED		UINT_C(0x80)
+#define ND_RA_FLAG_OTHER		UINT_C(0x40)
+#define ND_RA_FLAG_HA			UINT_C(0x20)
+
+/*
+ *  M: RAä»¥å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ãè¨­å®ãããã¨ãè¨±å¯ããã
+ *  O: RAä»¥å¤ã®æ¹æ³ã§èªåçã«ã¢ãã¬ã¹ä»¥å¤ã®æ
+å ±ãè¨­å®ãããã¨ããè¨±å¯ããã
+ *
+ *   M   O
+ *  ON  ON	ã¢ãã¬ã¹ã¨ããä»¥å¤ã®æ
+å ±ãDHCPv6ã§è¨­å®ããï¼statefullï¼
+ *  ON  OFF	ã¢ãã¬ã¹ã¯DHCPv6ã§è¨­å®ããããããä»¥å¤ã¯æåã§è¨­å®ããã
+ *  OFF ON	ã¢ãã¬ã¹ã¯ RA ã§è¨­å®ããããããä»¥å¤ã®æ
+å ±ãDHCPv6ã§è¨­å®ããï¼statelessï¼
+ *  OFF OFF	DHCPv6 ã¯ä½¿ç¨ããªãã
+ */
+
+/*
+ *  ã«ã¼ã¿è¦è«
+ */
+
+typedef struct t_router_solicit_hdr {
+	T_ICMP6_HDR	hdr;
+	} T_ROUTER_SOLICIT_HDR;
+
+/* ICMP6 ãããã®ãã¼ã¿é¨ã®å®ç¾© */
+
+#define nd_rs_reserved			hdr.data.data32
+
+#define ROUTER_SOLICIT_HDR_SIZE		(sizeof(T_ROUTER_SOLICIT_HDR))
+#define IP6_ROUTER_SOLICIT_HDR_SIZE	(IP6_HDR_SIZE + ROUTER_SOLICIT_HDR_SIZE)
+#define IF_IP6_ROUTER_SOLICIT_HDR_SIZE	(IF_IP6_HDR_SIZE + ROUTER_SOLICIT_HDR_SIZE)
+#define IF_IP6_ROUTER_SOLICIT_HDR_OFFSET	\
+					(IF_IP6_HDR_SIZE)
+
+#define GET_ROUTER_SOLICIT_HDR(nbuf,nhoff)	\
+					((T_ROUTER_SOLICIT_HDR*)((uint8_t*)((nbuf)->buf) + nhoff))
+#define GET_ROUTER_SOLICIT_SDU(nbuf,nhoff)	\
+					((uint8_t*)((nbuf)->buf) + nhoff + ROUTER_SOLICIT_HDR_SIZE)
+
+#define GET_IP6_ROUTER_SOLICIT_HDR_SIZE(nbuf)		\
+					(GET_IP6_HDR_SIZE(nbuf) + ROUTER_SOLICIT_HDR_SIZE)
+#define GET_IF_IP6_ROUTER_SOLICIT_HDR_SIZE(nbuf)	\
+					(GET_IP6_ROUTER_SOLICIT_HDR_SIZE(nbuf) + IF_HDR_SIZE)
+
+/*
+ *  è¿é£æ¢ç´¢ãªãã·ã§ã³
+ */
+
+/* è¿é£æ¢ç´¢ããã */
+
+typedef struct t_neighbor_hdr {
+	T_ICMP6_HDR	hdr;
+	T_IN6_ADDR	target;
+	} T_NEIGHBOR_HDR;
+
+/* è¿é£æ¢ç´¢ãªãã·ã§ã³ããã */
+
+typedef struct t_nd_opt_hdr {
+	uint8_t		type;			/* ãªãã·ã§ã³ã¿ã¤ã			*/
+	uint8_t		len;			/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã	*/
+	} T_ND_OPT_HDR;
+
+#define ND_OPT_HDR_SIZE			(sizeof(T_ND_OPT_HDR))
+
+#define ND_OPT_SOURCE_LINKADDR		UINT_C(1)	/* éä¿¡å
+ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+#define ND_OPT_TARGET_LINKADDR		UINT_C(2)	/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+#define ND_OPT_PREFIX_INFORMATION	UINT_C(3)	/* ãã¬ãã£ãã¯ã¹æ
+å ±				*/
+#define ND_OPT_REDIRECTED_HEADER	UINT_C(4)	/* ãªãã¤ã¬ã¯ãã»ããã				*/
+#define ND_OPT_MTU			UINT_C(5)	/* MTU						*/
+
+#define ND_OPT_PREFIX_INFO_COUNT	UINT_C(6)	/* ãã¬ãã£ãã¯ã¹æ
+å ±ã®åæ°			*/
+#define ND_OPT_OFF_ARRAY_SIZE		UINT_C(7)	/* ND ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããé
+åãµã¤ãº*/
+
+#define ND_OPT_OFF_ARRAY_IX(t)		((t)-1)		/* ãªãã»ããé
+åã®ã¤ã³ããã¯ã¹			*/
+
+/* ãã¬ãã£ãã¯ã¹ãªãã·ã§ã³ */
+
+typedef struct t_nd_opt_prefix_info {
+	uint8_t		type;		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¿ã¤ã = 3	*/
+	uint8_t		len;		/* ãªãã·ã§ã³é· = 8Ã4=32	*/
+	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	uint8_t		flags;		/* ãã©ã°			*/
+	uint32_t	valid;		/* [s] æå¹æé			*/
+	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æé		*/
+	uint32_t	reserved;
+	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
+	} T_ND_OPT_PREFIX_INFO;
+
+#define ND_OPT_PI_FLAG_ONLINK	UINT_C(0x80)		/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
+#define ND_OPT_PI_FLAG_AUTO	UINT_C(0x40)		/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
+
+/* MTU ãªãã·ã§ã³ããã */
+
+typedef struct t_nd_opt_mtu_hdr {
+	uint8_t		type;		/* ãªãã·ã§ã³ã¿ã¤ã		*/
+	uint8_t		len;		/* ãªãã·ã§ã³é·ãåä½ã¯ 8 ãã¤ã*/
+	uint16_t	reserved;
+	uint32_t	mtu;		/* MTU				*/
+	} T_ND_OPT_MTU_HDR;
+
+/*
+ *  åãç´ã
+ */
+
+typedef struct t_nd_redirect_hdr {
+	T_ICMP6_HDR	hdr;
+	T_IN6_ADDR	target;		/* ã«ã¼ã¿ã®ã¢ãã¬ã¹		*/
+	T_IN6_ADDR	dst;		/* åãç´ãã®çµç¹ã¢ãã¬ã¹		*/
+	/* ãã®å¾ã«ãªãã·ã§ã³ãç¶ã */
+	} T_ND_REDIRECT_HDR;
+
+#define ND_REDIRECT_HDR_SIZE		(sizeof(T_ND_REDIRECT_HDR))
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_icmp6_ifstat {
+	uint32_t	ipv6IfIcmpInMsgs;
+	uint32_t	ipv6IfIcmpInErrors;
+	uint32_t	ipv6IfIcmpInDestUnreachs;
+/*	uint32_t	ipv6IfIcmpInAdminProhibs;*/
+	uint32_t	ipv6IfIcmpInTimeExcds;
+	uint32_t	ipv6IfIcmpInParmProblems;
+	uint32_t	ipv6IfIcmpInPktTooBigs;
+	uint32_t	ipv6IfIcmpInEchos;
+	uint32_t	ipv6IfIcmpInEchoReplies;
+/*	uint32_t	ipv6IfIcmpInRouterSolicits;*/
+	uint32_t	ipv6IfIcmpInRouterAdvertisements;
+	uint32_t	ipv6IfIcmpInNeighborSolicits;
+	uint32_t	ipv6IfIcmpInNeighborAdvertisements;
+	uint32_t	ipv6IfIcmpInRedirects;
+/*	uint32_t	ipv6IfIcmpInGroupMembQueries;*/
+/*	uint32_t	ipv6IfIcmpInGroupMembResponses;*/
+/*	uint32_t	ipv6IfIcmpInGroupMembReductions;*/
+	uint32_t	ipv6IfIcmpOutMsgs;
+	uint32_t	ipv6IfIcmpOutErrors;
+	uint32_t	ipv6IfIcmpOutDestUnreachs;
+/*	uint32_t	ipv6IfIcmpOutAdminProhibs;*/
+/*	uint32_t	ipv6IfIcmpOutTimeExcds;*/
+	uint32_t	ipv6IfIcmpOutParmProblems;
+	uint32_t	ipv6IfIcmpOutPktTooBigs;
+	uint32_t	ipv6IfIcmpOutEchos;
+	uint32_t	ipv6IfIcmpOutEchoReplies;
+	uint32_t	ipv6IfIcmpOutRouterSolicits;
+/*	uint32_t	ipv6IfIcmpOutRouterAdvertisements;*/
+	uint32_t	ipv6IfIcmpOutNeighborSolicits;
+	uint32_t	ipv6IfIcmpOutNeighborAdvertisements;
+/*	uint32_t	ipv6IfIcmpOutRedirects;*/
+/*	uint32_t	ipv6IfIcmpOutGroupMembQueries;*/
+/*	uint32_t	ipv6IfIcmpOutGroupMembResponses;*/
+/*	uint32_t	ipv6IfIcmpOutGroupMembReductions;*/
+} T_ICMP6_IFSTAT;
+
+extern T_ICMP6_IFSTAT icmp6_ifstat;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  é¢æ°
+ */
+
+extern uint_t icmp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern void icmp6_error (T_NET_BUF *input, uint8_t type, uint8_t code, uint32_t param);
+
+#ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
+
+extern void icmp6_echo_reply (T_NET_BUF *input, uint_t ihoff);
+
+#endif	/* of #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY */
+
+#endif	/* of #ifndef _IP_ICMP6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/icmp_var.h	(revision 313)
@@ -0,0 +1,125 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)icmp_var.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/icmp_var.h,v 1.15.2.2 2001/12/07 09:23:11 ru Exp $
+ */
+
+#ifndef _ICMP_VAR_H_
+#define _ICMP_VAR_H_
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_icmp_stats {
+/*	uint32_t	icmpInMsgs;*/
+	uint32_t	icmpInErrors;
+	uint32_t	icmpInDestUnreachs;
+/*	uint32_t	icmpInTimeExcds;*/
+/*	uint32_t	icmpInParmProbs;*/
+/*	uint32_t	icmpInSrcQuenchs;*/
+	uint32_t	icmpInRedirects;
+	uint32_t	icmpInEchos;
+	uint32_t	icmpInEchoReps;
+/*	uint32_t	icmpInTimestamps;*/
+/*	uint32_t	icmpInTimestampReps;*/
+/*	uint32_t	icmpInAddrMasks;*/
+/*	uint32_t	icmpInAddrMaskReps;*/
+	uint32_t	icmpOutMsgs;
+	uint32_t	icmpOutErrors;
+	uint32_t	icmpOutDestUnreachs;
+/*	uint32_t	icmpOutTimeExcds;*/
+/*	uint32_t	icmpOutParmProbs;*/
+/*	uint32_t	icmpOutSrcQuenchs;*/
+/*	uint32_t	icmpOutRedirects;*/
+	uint32_t	icmpOutEchos;
+	uint32_t	icmpOutEchoReps;
+/*	uint32_t	icmpOutTimestamps;*/
+/*	uint32_t	icmpOutTimestampReps;*/
+/*	uint32_t	icmpOutAddrMasks;*/
+/*	uint32_t	icmpOutAddrMaskReps;*/
+} T_ICMP_STATS;
+
+extern T_ICMP_STATS icmp_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#endif	/* of #ifndef _ICMP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.c	(revision 313)
@@ -0,0 +1,523 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_ether.c	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/if_ether.c,v 1.52.2.6 1999/10/18 11:59:31 sheldonh Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_var.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/if_ether.h>
+
+#include <net/if_var.h>
+
+#if defined(_IP4_CFG) && defined(SUPPORT_ETHER)
+
+/*
+ *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ */
+
+static T_ARP_ENTRY arp_cache[NUM_ARP_ENTRY];
+
+/*
+ *  é¢æ°
+ */
+
+static void in_arpinput (T_IF_ADDR *ifaddr, T_NET_BUF *input);
+static void arp_timer (void *ignore);
+
+/*
+ *  in_arpinput -- TCP/IP ç¨ ARP ã®å
+¥åé¢æ°
+ */
+
+static void
+in_arpinput (T_IF_ADDR *ifaddr, T_NET_BUF *input)
+{
+	T_NET_BUF	*pending;
+	T_ETHER_HDR	*eth;
+	T_ARP_HDR	*arph;
+	T_ETHER_ARP_HDR	*et_arph;
+	T_ARP_ENTRY	*ent;
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN4_ADDR	saddr, taddr;
+
+	et_arph = GET_ETHER_ARP_HDR(input);
+
+	ntoahl(saddr, et_arph->sproto);		/* éä¿¡å
+ IP ã¢ãã¬ã¹	*/
+	ntoahl(taddr, et_arph->tproto);		/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹	*/
+
+	/*
+	 *  ä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
+	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ãèªå
+	 *    ã»éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+	 */
+	if (memcmp(et_arph->shost, ifaddr->lladdr,        ETHER_ADDR_LEN) == 0 ||
+	    memcmp(et_arph->shost, ether_broad_cast_addr, ETHER_ADDR_LEN) == 0)
+		goto err_ret;
+
+	/*
+	 *  éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹ãèªåã®å ´åã¯ãéè¤ãã¦ããã®ã§
+	 *  ç¸æã«ãç¥ãããã
+	 *  ãã ããèªåã¨ç¸æã®ã¢ãã¬ã¹ãæªå®ç¾©ï¼IPV4_ADDRANYï¼ã®æã¯ä½ãããªãã
+	 */
+	if ((saddr == ifp->in4_ifaddr.addr) && (saddr != IPV4_ADDRANY)) {
+
+#ifdef ARP_CFG_CALLBACK_DUPLICATED
+
+		if (arp_callback_duplicated(et_arph->shost)) {
+			syslog(LOG_ERROR, "[ARP] IP address duplicated: %s",
+			                  ip2str(NULL, &ifp->in4_ifaddr.addr),
+			                  mac2str(NULL, et_arph->shost));
+			taddr = saddr;
+			goto reply;
+			}
+		else
+			goto buf_rel;
+
+#else	/* of #ifdef ARP_CFG_CALLBACK_DUPLICATED */
+
+		syslog(LOG_ERROR, "[ARP] IP address duplicated: %s",
+			          ip2str(NULL, &ifp->in4_ifaddr.addr),
+			          mac2str(NULL, et_arph->shost));
+		taddr = saddr;
+		goto reply;
+
+#endif	/* of #ifdef ARP_CFG_CALLBACK_DUPLICATED */
+
+		}
+
+	/*
+	 *  ä»¥ä¸ã®å ´åã¯ä½ãããªãã
+	 *    ã»è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹ãèªåã§ã¯ãªããæ³¨: å
+ã® FreeBSD ã®
+	 *      å®è£
+ã§ã¯ãARP PROXY ç­ã®ãããèªåä»¥å¤ã® IP ã¢ãã¬ã¹ã®
+	 *      è§£æ±ºãè¡ã£ã¦ããããæ¬å®è£
+ã§ã¯ãèªåä»¥å¤ã® IP
+	 *      ã¢ãã¬ã¹ã®è§£æ±ºã¯è¡ããªãã
+	 */
+	if (taddr != ifp->in4_ifaddr.addr)
+		goto buf_rel;
+
+	/*
+	 *  éä¿¡å
+ IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã
+	 *  ã­ã£ãã·ã¥ã«ãªããã°ãæ°ãã«ã¨ã³ããªãç»é²ããã
+	 */
+	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
+	ent = arp_lookup(saddr, true);
+
+	memcpy(ent->mac_addr, et_arph->shost, ETHER_ADDR_LEN);
+	ent->expire = ARP_CACHE_KEEP;
+
+	/*
+	 *  éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°éä¿¡ããã
+	 */
+	if (ent->hold) {
+
+		/* ãã¬ã¼ã ã® Ethernet ããããè¨­å®ããã*/
+		memcpy(GET_ETHER_HDR(ent->hold)->dhost, ent->mac_addr, ETHER_ADDR_LEN);
+
+		pending = ent->hold;
+		ent->hold = NULL;
+		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
+
+		/* ãã³ãã£ã³ã°ããã¦ãããã¬ã¼ã ãéä¿¡ããã*/
+		IF_RAW_OUTPUT(pending, TMO_FEVR);
+
+		}
+	else
+		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
+
+reply:
+
+	arph = GET_ARP_HDR(input);
+
+	/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ã§ãªããã°çµäº */
+	if (ntohs(arph->opcode) != ARPOP_REQUEST)
+		goto buf_rel;
+
+	/* Ethernet ARP ããããè¨­å®ããã*/
+	memcpy(et_arph->thost, et_arph->shost, ETHER_ADDR_LEN);
+	memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
+	memcpy(et_arph->tproto, (uint8_t*)&et_arph->sproto, sizeof(T_IN_ADDR));
+	ahtonl(et_arph->sproto, taddr);
+
+	/* Ethernet ARP ããããè¨­å®ããã*/
+	arph->opcode = htons(ARPOP_REPLY);
+
+	/* Ethernet ããããè¨­å®ããã*/
+	eth = GET_ETHER_HDR(input);
+	memcpy(eth->dhost, eth->shost,     ETHER_ADDR_LEN);
+	memcpy(eth->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
+
+	/* ARP å¿ç­ãéä¿¡ããã*/
+	IF_RAW_OUTPUT(input, TMO_FEVR);
+	return;
+
+err_ret:
+	NET_COUNT_ARP(net_count_arp.in_err_packets, 1);
+buf_rel:
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  arp_timer -- ARP ã­ã£ãã·ã¥ã®æ´æ°
+ */
+
+static void
+arp_timer (void *ignore)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
+
+	for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
+		if (arp_cache[ix].expire) {
+			arp_cache[ix].expire -= ARP_TIMER_TMO;
+			if (arp_cache[ix].expire == 0) {
+				/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+				if (arp_cache[ix].hold) {
+					NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+					syscall(rel_net_buf(arp_cache[ix].hold));
+					}
+				memset(&arp_cache[ix], 0, sizeof(T_ARP_ENTRY));
+				}
+			}
+		}
+
+	syscall(sig_sem(SEM_ARP_CACHE_LOCK));
+	timeout(arp_timer, NULL, ARP_TIMER_TMO);
+	}
+
+/*
+ *  arp_lookup -- ARP ã­ã£ãã·ã¥ã®æ¢ç´¢ã¨ç»é²
+ *
+ *    æ³¨æ: SEM_ARP_CACHE_LOCK ãç²å¾ããç¶æ
+ã§å¼åºããã¨
+ */
+
+T_ARP_ENTRY *
+arp_lookup (T_IN4_ADDR addr, bool_t create)
+{
+	int_t		ix, six;
+	uint16_t	min;
+
+	for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
+		if (arp_cache[ix].expire && arp_cache[ix].ip_addr == addr)
+			return &arp_cache[ix];
+		}
+
+	/* create ãçãªããæ°ããªã¨ã³ããªãç»é²ããã*/
+	if (create) {
+
+		/* ã¾ããç©ºããããã°ããã®ç©ºããå©ç¨ããã*/
+		for (ix = NUM_ARP_ENTRY; ix -- > 0; ) {
+			if (arp_cache[ix].expire == 0) {
+				arp_cache[ix].ip_addr = addr;
+				return &arp_cache[ix];
+				}
+			}
+
+		/*
+		 *  ç©ºãããªããã°ãã¿ã¤ã ã¢ã¦ãã¾ã§æéãæç­ã®
+		 *  ã¨ã³ããªã¼ãç ´æ£ãã¦å©ç¨ããã
+		 */
+		syslog(LOG_NOTICE, "[ARP] cache busy, size=%d", NUM_ARP_ENTRY);
+		min = 0xffff;
+		for (six = ix = NUM_ARP_ENTRY; ix -- > 0; )
+			if (arp_cache[ix].expire < min) {
+				six = ix;
+				min = arp_cache[ix].expire;
+				}
+		arp_cache[six].expire  = 0;
+		arp_cache[six].ip_addr = addr;
+		return &arp_cache[six];
+		}
+	else
+		return NULL;
+	}
+
+/*
+ *  arp_request -- MAC ã¢ãã¬ã¹è§£æ±ºè¦æ±
+ */
+
+ER
+arp_request (T_IF_ADDR *ifaddr, T_IN4_ADDR dst)
+{
+	ER		error;
+	T_IN4_ADDR	src;
+	T_ETHER_HDR	*eth;
+	T_ARP_HDR	*arph;
+	T_ETHER_ARP_HDR	*et_arph;
+	T_NET_BUF	*arp_req;
+
+	NET_COUNT_ARP(net_count_arp.out_octets , IF_ARP_ETHER_HDR_SIZE - IF_HDR_SIZE);
+	NET_COUNT_ARP(net_count_arp.out_packets, 1);
+
+	if ((error = tget_net_buf(&arp_req, IF_ARP_ETHER_HDR_SIZE, TMO_ARP_GET_NET_BUF)) == E_OK) {
+
+		/* ã¤ã¼ãµãããããããè¨­å®ããã*/
+		eth     = GET_ETHER_HDR(arp_req);
+		memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN);
+		memcpy(eth->shost, ifaddr->lladdr,        ETHER_ADDR_LEN);
+		eth->type = htons(ETHER_TYPE_ARP);
+
+		/* ARP ããããè¨­å®ããã*/
+		arph    = GET_ARP_HDR(arp_req);
+		arph->hrd_addr  = htons(ARPHRD_ETHER);
+		arph->proto     = htons(ETHER_TYPE_IP);
+		arph->hdr_len   = sizeof(et_arph->shost);
+		arph->proto_len = sizeof(et_arph->sproto);
+		arph->opcode    = htons(ARPOP_REQUEST);
+
+		/* ã¤ã¼ãµããã ARP ããããè¨­å®ããã*/
+		et_arph = GET_ETHER_ARP_HDR(arp_req);
+		src     = IF_GET_IFNET()->in4_ifaddr.addr;
+		memcpy(et_arph->shost, ifaddr->lladdr, ETHER_ADDR_LEN);
+		memset(et_arph->thost, 0,              ETHER_ADDR_LEN);
+		ahtonl(et_arph->sproto, src);
+		ahtonl(et_arph->tproto, dst);
+
+		/* éä¿¡ããã*/
+		error = IF_RAW_OUTPUT(arp_req, TMO_ARP_OUTPUT);
+		}
+	if (error != E_OK)
+		NET_COUNT_ARP(net_count_arp.out_err_packets, 1);
+	return error;
+	}
+
+/*
+ *  arp_get_cache -- ARP ã­ã£ãã·ã¥ãç²å¾ããã
+ */
+
+const T_ARP_ENTRY *
+arp_get_cache (void)
+{
+	return arp_cache;
+	}
+
+/*
+ *  arp_input -- ARP ã®å
+¥åé¢æ°
+ */
+
+void
+arp_input (T_IF_ADDR *ifaddr, T_NET_BUF *input)
+{
+	T_ARP_HDR	*arph;
+
+	NET_COUNT_ARP(net_count_arp.in_octets , input->len - IF_HDR_SIZE);
+	NET_COUNT_ARP(net_count_arp.in_packets, 1);
+
+	/* ARP ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < IF_ARP_HDR_SIZE)
+		goto buf_rel;
+
+	arph = GET_ARP_HDR(input);
+
+	/*
+	 *  ç©çã¢ãã¬ã¹ãã©ã¼ãããã Ehternet ä»¥å¤
+	 *  ã¾ãã¯ããã­ãã³ã«ã IP ä»¥å¤ã¯ã¨ã©ã¼ã
+	 */
+	if (ntohs(arph->hrd_addr) != ARPHRD_ETHER ||
+	    ntohs(arph->proto)    != ETHER_TYPE_IP)
+		goto buf_rel;
+
+	/* ARP ããã + Ether ARP ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < IF_ARP_ETHER_HDR_SIZE)
+		goto buf_rel;
+
+	in_arpinput(ifaddr, input);
+	return;
+
+buf_rel:
+	NET_COUNT_ARP(net_count_arp.in_err_packets, 1);
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  arp_resolve -- MAC ã¢ãã¬ã¹è§£æ±º
+ *
+ *    ã¢ãã¬ã¹è§£æ±ºãã§ããã°ãæ»ãå¤ã¯ true ãè¿ããã§ããªããã°
+ *    éä¿¡ããã³ãã£ã³ã°ãã¦ãæ»ãå¤ã¯ false ãè¿ãã
+ */
+
+bool_t
+arp_resolve (T_IF_ADDR *ifaddr, T_NET_BUF *output, T_IN4_ADDR gw)
+{
+	T_ARP_ENTRY	*ent;
+	T_ETHER_HDR	*eth;
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	eth = GET_ETHER_HDR(output);
+
+	/*
+	 *  æ¬¡ã®å ´åã¯ãã¤ã¼ãµãããã®ãã­ã¼ãã­ã£ã¹ãã¢ãã¬ã¹ãè¿ãã
+	 *
+	 *    ã»å
+¨ãããã 1
+	 *    ã»ãã¹ãé¨ã®å
+¨ãããã 1 ã§ããããã¯ã¼ã¯é¨ãã­ã¼ã«ã«ã¢ãã¬ã¹
+	 */
+	if (gw == IPV4_ADDR_BROADCAST ||
+	    gw == ((ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask)) {
+		memcpy(eth->dhost, ether_broad_cast_addr, ETHER_ADDR_LEN);
+		return true;
+		}
+
+	/* éä¿¡å
+ GW ã® IP ã¢ãã¬ã¹ã ARP ã­ã£ãã·ã¥ã«ãããèª¿ã¹ãã*/
+	syscall(wai_sem(SEM_ARP_CACHE_LOCK));
+	ent = arp_lookup(gw, true);
+	if (ent->expire) {
+		memcpy(eth->dhost, ent->mac_addr, ETHER_ADDR_LEN);
+		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
+		return true;
+		}
+	else {
+	 	/* éä¿¡ããã³ãã³ã°ããã¦ãããã¬ã¼ã ãããã°æ¨ã¦ãã*/
+		if (ent->hold) {
+			NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+			syscall(rel_net_buf(ent->hold));
+			}
+
+		/*
+		 *  éä¿¡ããã³ãã£ã³ã°ããã
+		 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
+		 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+		 */
+		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0)
+			ent->hold = output;
+		else {
+			output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+			ent->hold = NULL;
+			}
+		syscall(sig_sem(SEM_ARP_CACHE_LOCK));
+
+		/* ã¢ãã¬ã¹è§£æ±ºè¦æ±ãéä¿¡ããã*/
+		arp_request(ifaddr, gw);
+		return false;
+		}
+	}
+
+/*
+ *  arp_init -- ARP åæå
+ */
+
+void
+arp_init (void)
+{
+	timeout(arp_timer, NULL, ARP_TIMER_TMO);
+	}
+
+#endif	/* of #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.cfg	(revision 313)
@@ -0,0 +1,56 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  Ethernet ARP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#if defined(_IP4_CFG) && defined(SUPPORT_ETHER)
+
+/* ARP ã­ã£ãã·ã¥æ´æ°ç¨ã»ããã© */
+
+CRE_SEM(SEM_ARP_CACHE_LOCK, { TA_TPRI, 1, 1 });
+
+#endif	/* of #if defined(_IP4_CFG) && defined(SUPPORT_ETHER) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/if_ether.h	(revision 313)
@@ -0,0 +1,141 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)if_ether.h	8.3 (Berkeley) 5/2/95
+ * $FreeBSD: src/sys/netinet/if_ether.h,v 1.21.2.1 1999/08/29 16:29:31 peter Exp $
+ */
+
+#ifndef _IF_ETHER_H_
+#define _IF_ETHER_H_
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  Ethernet Address Resolution Protocol.
+ *
+ *  RFC 826 åç
+§
+ */
+
+typedef struct t_ether_arp_hdr {
+	uint8_t		shost[ETHER_ADDR_LEN];	/* éä¿¡ãã¹ãã®ç©çã¢ãã¬ã¹	*/
+	uint8_t		sproto[IPV4_ADDR_LEN];	/* éä¿¡ãã¹ãã® IP ã¢ãã¬ã¹	*/
+	uint8_t		thost[ETHER_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ç©çã¢ãã¬ã¹		*/
+	uint8_t		tproto[IPV4_ADDR_LEN];	/* è§£æ±ºå¯¾è±¡ IP ã¢ãã¬ã¹		*/
+	} T_ETHER_ARP_HDR;
+
+#define ETHER_ARP_HDR_SIZE		(sizeof(T_ETHER_ARP_HDR))
+#define IF_ARP_ETHER_HDR_SIZE		(IF_HDR_SIZE + ARP_HDR_SIZE + ETHER_ARP_HDR_SIZE)
+
+#define GET_ETHER_ARP_HDR(nbuf)		((T_ETHER_ARP_HDR*)((nbuf)->buf + GET_IF_ARP_HDR_SIZE(nbuf)))
+
+/*
+ *  ARP ã­ã£ãã·ã¥ã¨ã³ããª
+ */
+
+typedef struct arp_entry {
+	T_NET_BUF	*hold;		/* ARP ã®è§£æ±ºå¾
+ã¡åºåãã¬ã¼ã 	*/
+	T_IN4_ADDR	ip_addr;	/* IP ã¢ãã¬ã¹			*/
+	uint16_t	expire;		/* ç ´æ£ã¾ã§ã®æéã0 ãªãæªä½¿ç¨	*/
+	uint8_t		mac_addr[ETHER_ADDR_LEN];	/* MAC ã¢ãã¬ã¹	*/
+	} T_ARP_ENTRY;
+
+/*
+ *  é¢æ°
+ */
+
+extern T_ARP_ENTRY *arp_lookup (T_IN4_ADDR addr, bool_t create);
+extern ER arp_request (T_IF_ADDR *ifaddr, T_IN4_ADDR dst);
+extern void arp_input (T_IF_ADDR *ifaddr, T_NET_BUF *input);
+extern bool_t arp_resolve (T_IF_ADDR *ifaddr, T_NET_BUF *output, T_IN4_ADDR gw);
+extern void arp_init (void);
+extern const T_ARP_ENTRY *arp_get_cache (void);
+
+/*
+ *  TINET ç¬èª API
+ */
+
+#ifdef ARP_CFG_CALLBACK_DUPLICATED
+
+extern bool_t arp_callback_duplicated(uint8_t *shost);
+
+#endif	/* of #ifdef ARP_CFG_CALLBACK_DUPLICATED */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifndef _IF_ETHER_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in.h	(revision 313)
@@ -0,0 +1,192 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/in.h,v 1.38.2.3 1999/08/29 16:29:34 peter Exp $
+ */
+ 
+#ifndef _IN_H_
+#define _IN_H_
+
+#include <tinet_kernel_defs.h>
+
+#include <netinet/in4.h>
+#include <netinet6/in6.h>
+
+/*
+ *  TINET ã®ãã¼ã¸ã§ã³æ
+å ±
+ */
+
+#define TINET_PRVER		UINT_C(0x1070)	/* TINET ã®ãã¼ã¸ã§ã³çªå· */
+
+/*
+ *  ã¤ã³ã¿ã¼ãããã·ã¹ãã ã®å®ç¾©ãRFC790 åç
+§
+ */
+
+/*
+ *  ãã­ãã³ã« (RFC1700)
+ */
+
+#define IPPROTO_IP		UINT_C(0)	/* IP ã®ããã¼				*/
+#define IPPROTO_HOPOPTS		UINT_C(0)	/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
+#define IPPROTO_ICMP		UINT_C(1)	/* ICMP					*/
+#define IPPROTO_TCP		UINT_C(6)	/* TCP					*/
+#define IPPROTO_UDP		UINT_C(17)	/* UDP					*/
+#define IPPROTO_IPV6		UINT_C(41)	/* IPv6					*/
+#define IPPROTO_ROUTING		UINT_C(43)	/* çµè·¯å¶å¾¡ãªãã·ã§ã³			*/
+#define IPPROTO_FRAGMENT	UINT_C(44)	/* æ­çåãªãã·ã§ã³			*/
+#define IPPROTO_RSVP		UINT_C(46)	/* RSVP					*/
+#define IPPROTO_ESP		UINT_C(50)	/* IPv6 æå·åãªãã·ã§ã³		*/
+#define IPPROTO_AH		UINT_C(51)	/* IPv6 èªè¨¼ãªãã·ã§ã³			*/
+#define IPPROTO_ICMPV6		UINT_C(58)	/* ICMPv6				*/
+#define IPPROTO_NONE		UINT_C(59)	/* IPv6 æ¬¡ãããç¡ã			*/
+#define IPPROTO_DSTOPTS		UINT_C(60)	/* IPv6 çµç¹ãªãã·ã§ã³			*/
+#define IPPROTO_IPCOMP		UINT_C(108)	/* ãã¤ã­ã¼ãå§ç¸®			*/
+#define IPPROTO_DONE		UINT_C(257)	/* IPv6 ã§ä¸ä½ãã­ãã³ã«å
+¥åçµäº	*/
+
+/*
+ *  ãã¼ãã®é·ã
+ */
+
+#define PORT_NUM_LEN		2
+
+/*
+ *  ãã¼ãçªå·ã®å®ç¾©
+ */
+
+#define TCP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
+#define UDP_PORTANY			UINT_C(0x0000)	/* ITRON TCP/IP æ¨æº	*/
+
+#define TCP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
+#define TCP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
+#define TCP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
+
+#define UDP_PORT_LAST_WELL_KNOWN	UINT_C(1023)	/* Well Known çµäºçªå·	*/
+#define UDP_PORT_FIRST_AUTO		UINT_C(1024)	/* èªåå²ãå½ã¦éå§çªå·	*/
+#define UDP_PORT_LAST_AUTO		UINT_C(4999)	/* èªåå²ãå½ã¦çµäºçªå·	*/
+
+/*
+ *  API IPãã­ãã³ã«ã®æå®
+ */
+
+#define API_PROTO_IPVn			'n'
+#define API_PROTO_IPV6			'6'
+#define API_PROTO_IPV4			'4'
+
+/*
+ *  åççæç¨ TCP/IPv6 éä¿¡ç«¯ç¹
+ */
+
+#define T_TCP6_CCEP			T_TCP_CCEP
+
+/*
+ *  ãã¤ããªã¼ãé¢æ°ã®å®ç¾©
+ *
+ *    tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã
+ *    tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã
+ *    ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ç¨ã«
+ *    ã¿ã¼ã²ããä¾å­ããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã
+ */
+
+#if defined(_NET_CFG_BYTE_ORDER)
+
+/*  tinet/net/net.h ãã¤ã³ã¯ã«ã¼ããã¦ããã*/
+
+#else	/* of #if defined(_NET_CFG_BYTE_ORDER) */
+
+extern uint16_t ntohs (uint16_t net);
+extern uint16_t htons (uint16_t host);
+extern uint32_t ntohl (uint32_t net);
+extern uint32_t htonl (uint32_t host);
+
+#define NTOHS(n)	(n=ntohs(n))
+#define HTONS(h)	(h=htons(h))
+#define NTOHL(n)	(n=ntohl(n))
+#define HTONL(h)	(h=htonl(h))
+
+#endif	/* of #if defined(_NET_CFG_BYTE_ORDER) */
+
+/*
+ *  TINET ç¬èª API
+ */
+
+extern const char *in_strtfn (FN fncd);
+
+#endif	/* of #ifndef _IN_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4.h	(revision 313)
@@ -0,0 +1,220 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/in.h,v 1.38.2.3 1999/08/29 16:29:34 peter Exp $
+ */
+ 
+#ifndef _IN4_H_
+#define _IN4_H_
+
+/*
+ *  IPv4 ã¢ãã¬ã¹
+ */
+
+/* åæ¹åç
+§ */
+
+#ifndef T_IN4_ADDR_DEFINED
+
+typedef uint32_t T_IN4_ADDR;
+
+#define T_IN4_ADDR_DEFINED
+
+#endif	/* of #ifndef T_IN4_ADDR_DEFINED */
+
+/*
+ *  ITRON TCP/IPv4 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ */
+
+typedef struct t_ipv4ep {
+	uint32_t	ipaddr;		/* IPv4 ã¢ãã¬ã¹	*/
+	uint16_t	portno;		/* ãã¼ãçªå·		*/
+	} T_IPV4EP;
+
+#define T_IPV4EP_DEFINED
+
+/*
+ *  ã¢ãã¬ã¹ã®é·ã
+ */
+
+#define IPV4_ADDR_LEN		4
+
+/*
+ *  IPv4 ã¢ãã¬ã¹ã®å®ç¾©
+ */
+
+#define IPV4_ADDRANY		ULONG_C(0x00000000)	/* ITRON TCP/IP æ¨æº	*/
+#define IPV4_ADDRBROADCAST	ULONG_C(0xffffffff)
+
+#define IPV4_ADDR_LOOPBACK	ULONG_C(0x7f000001)
+#define IPV4_ADDR_LOOPBACK_MASK	IPV4_CLASS_A_MASK
+#define IPV4_ADDR_BROADCAST	ULONG_C(0xffffffff)
+
+#define IPV4_CLASS_A(i)		(((i) & ULONG_C(0x80000000)) == 0)
+#define IPV4_CLASS_A_NET	ULONG_C(0xff000000)
+#define IPV4_CLASS_A_MASK	ULONG_C(0xff000000)
+#define IPV4_CLASS_A_HOST	ULONG_C(0x00ffffff)
+
+#define IPV4_CLASS_B(i)		(((i) & ULONG_C(0xc0000000)) == ULONG_C(0x80000000))
+#define IPV4_CLASS_B_NET	ULONG_C(0xffff0000)
+#define IPV4_CLASS_B_MASK	ULONG_C(0xffff0000)
+#define IPV4_CLASS_B_HOST	ULONG_C(0x0000ffff)
+
+#define IPV4_CLASS_C(i)		(((i) & ULONG_C(0xe0000000)) == ULONG_C(0xc0000000))
+#define IPV4_CLASS_C_NET	ULONG_C(0xffffff00)
+#define IPV4_CLASS_C_MASK	ULONG_C(0xffffff00)
+#define IPV4_CLASS_C_HOST	ULONG_C(0x000000ff)
+
+#define IPV4_CLASS_D(i)		(((i) & ULONG_C(0xf0000000)) == ULONG_C(0xe0000000))
+
+#define IN4_IS_ADDR_MULTICAST(i)	IPV4_CLASS_D(i)
+
+#define MAKE_IPV4_LOCAL_BROADCAST(i)	(IPV4_CLASS_A(i)?((i)|IPV4_CLASS_A_HOST):\
+					 IPV4_CLASS_B(i)?((i)|IPV4_CLASS_B_HOST):\
+					 IPV4_CLASS_C(i)?((i)|IPV4_CLASS_C_HOST):\
+					 IPV4_ADDR_BROADCAST)
+
+#define MAKE_IPV4_LOCAL_MASK(i)		(IPV4_CLASS_A(i)?IPV4_CLASS_A_MASK:\
+					 IPV4_CLASS_B(i)?IPV4_CLASS_B_MASK:\
+					 IPV4_CLASS_C(i)?IPV4_CLASS_C_MASK:\
+					 IPV4_ADDRANY)
+
+#define MAKE_IPV4_ADDR(a,b,c,d)		((T_IN4_ADDR)(((uint32_t)(a)<<24)|((uint32_t)(b)<<16)|((uint32_t)(c)<<8)|(d)))
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define IN4_ARE_ADDR_EQUAL(dst,src)	(*(dst)==*(src))
+#define IN4_IS_ADDR_ANY(addr)		(*(addr)==IPV4_ADDRANY)
+#define IN4_IS_ADDR_BROADCAST(addr)	(*(addr)==IPV4_ADDRBROADCAST)
+#define ip2str(buf,p_ipaddr)		(ipv42str(buf,p_ipaddr))
+
+/*
+ *  åççæç¨ TCP éä¿¡ç«¯ç¹
+ */
+
+typedef struct t_tcp_ccep {
+	/* æ¨æº */
+	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
+	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+	FP		callback;	/* ã³ã¼ã«ããã¯			*/
+	/* å®è£
+ä¾å­ */
+	} T_TCP_CCEP;
+
+/*
+ *  åççæç¨ TCP åä»å£
+ */
+
+typedef struct t_tcp_crep {
+	/* æ¨æº */
+	ATR		repatr;		/* åä»å£å±æ§		*/
+	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	/* å®è£
+ä¾å­ */
+	} T_TCP_CREP;
+
+/*
+ *  åççæç¨ UDP éä¿¡ç«¯ç¹
+ */
+
+typedef struct t_udp_ccep {
+	/* æ¨æº */
+	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
+	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	/* å®è£
+ä¾å­ */
+	} T_UDP_CCEP;
+
+/*
+ *  TINET ç¬èª API
+ */
+
+extern char *ipv42str (char *buf, const T_IN4_ADDR *p_ipaddr);
+extern uint_t in4_get_maxnum_ifaddr (void);
+extern const T_IN4_ADDR *in4_get_ifaddr (int_t index);
+extern ER in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask);
+extern ER in4_add_route (int_t index, T_IN4_ADDR target,
+                                      T_IN4_ADDR mask, T_IN4_ADDR gateway);
+
+#endif	/* of #ifndef _IN4_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_subr.c	(revision 313)
@@ -0,0 +1,528 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+//#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+
+#include <net/if_var.h>
+
+#if defined(_IP4_CFG)
+
+#if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  in_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã
+ */
+
+void
+in_rtinit (void)
+{
+	int_t ix;
+
+	for (ix = 0; ix < NUM_IN4_STATIC_ROUTE_ENTRY; ix ++)
+		routing4_tbl[ix].flags = IN_RTF_DEFINED;
+
+	for ( ; ix < NUM_IN4_ROUTE_ENTRY; ix ++)
+		routing4_tbl[ix].flags = 0;
+	}
+
+/*
+ *  in_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã
+ */
+
+T_IN4_RTENTRY *
+in_rtnewentry (uint8_t flags, uint32_t tmo)
+{
+	SYSTIM		now;
+	T_IN4_RTENTRY	*rt, *frt = NULL;
+	int_t		ix;
+
+	/* ç©ºãã¨ã³ããªãæ¢ãã*/
+	for (ix = NUM_IN4_STATIC_ROUTE_ENTRY; ix < NUM_IN4_ROUTE_ENTRY; ix ++) {
+		rt = &routing4_tbl[ix];
+		if ((routing4_tbl[ix].flags & IN_RTF_DEFINED) == 0) {
+			frt = rt;
+			break;
+			}
+		}
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	if (frt == NULL) {
+		/* ç©ºãããªããã°ãæå¹æéããã£ã¨ãç­ãã¨ã³ããªãç©ºãã«ããã*/
+		T_IN4_RTENTRY	*srt = NULL;
+		int_t		diff, sdiff = INT_MAX;
+
+		syscall(wai_sem(SEM_IN4_ROUTING_TBL));
+		for (ix = NUM_IN4_STATIC_ROUTE_ENTRY; ix < NUM_IN4_ROUTE_ENTRY; ix ++) {
+			rt = &routing4_tbl[ix];
+			diff = (int_t)(rt->expire - now);
+			if (diff <= 0) {	/* rt->expire <= now */
+				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				frt = rt;
+				break;
+				}
+			else if (diff < sdiff) {
+				srt = rt;
+				sdiff = diff;
+				}
+			}
+		if (frt == NULL)
+			frt = srt;
+		frt->flags = 0;
+		syscall(sig_sem(SEM_IN4_ROUTING_TBL));
+		}
+
+	frt->flags  = (uint8_t)(flags | IN_RTF_DEFINED);
+	frt->expire = now + tmo / SYSTIM_HZ;
+	return frt;
+	}
+
+/*
+ *  in_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼
+ */
+
+void
+in_rttimer (void)
+{
+	SYSTIM	now;
+	int_t	ix;
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	syscall(wai_sem(SEM_IN4_ROUTING_TBL));
+	for (ix = NUM_IN4_STATIC_ROUTE_ENTRY; ix < NUM_IN4_ROUTE_ENTRY; ix ++)
+		if ((routing4_tbl[ix].flags & IN_RTF_DEFINED) &&
+		    (int_t)(routing4_tbl[ix].expire - now) <= 0)
+			routing4_tbl[ix].flags = 0;
+	syscall(sig_sem(SEM_IN4_ROUTING_TBL));
+	}
+
+#endif	/* of #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0 */
+
+/*
+ *  in4_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ã¢ãã¬ã¹æ°ãè¿ãã
+ */
+
+uint_t
+in4_get_maxnum_ifaddr (void)
+{
+	return 1;
+	}
+
+/*
+ *  in4_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ */
+
+const T_IN4_ADDR *
+in4_get_ifaddr (int_t index)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	return &ifp->in4_ifaddr.addr;
+	}
+
+/*
+ *  in4_set_header -- IPv4 ããããè¨­å®ããã
+ */
+
+ER
+in4_set_header (T_NET_BUF *nbuf, uint_t len,
+                T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr, uint8_t proto, uint8_t ttl)
+{
+	T_IP4_HDR	*ip4h = GET_IP4_HDR(nbuf);
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	/* IP ããããè¨­å®ããã*/
+	ip4h->vhl	= IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
+	ip4h->len	= htons(IP4_HDR_SIZE + len);
+	ip4h->proto	= proto;
+	ip4h->ttl	= ttl;
+	ip4h->type	= 0;
+	ip4h->id	= ip4h->flg_off = ip4h->sum = 0;
+
+	/* IP ã¢ãã¬ã¹ãè¨­å®ããã*/
+	ip4h->dst	= htonl(*dstaddr);
+
+	if (srcaddr == NULL || *srcaddr == IPV4_ADDRANY)
+		ip4h->src = htonl(ifp->in4_ifaddr.addr);
+	else
+		ip4h->src = htonl(*srcaddr);
+
+	return E_OK;
+	}
+
+/*
+ *  in4_get_datagram -- IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ */
+
+ER
+in4_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+                  T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr,
+                  uint8_t proto, uint8_t ttl, ATR nbatr, TMO tmout)
+{
+	ER	error;
+	uint_t	align;
+
+	/* ãã¼ã¿é·ã 4 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+	align = (len + 3) >> 2 << 2;
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	if ((error = tget_net_buf_ex(nbuf, (uint_t)(IF_IP4_HDR_SIZE + align),
+	                                   (uint_t)(IF_IP4_HDR_SIZE + maxlen), nbatr, tmout)) != E_OK)
+		return error;
+
+	/*
+	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
+	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
+	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 */
+	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
+		(*nbuf)->len = (uint16_t)(IF_IP4_HDR_SIZE + len);
+
+	/* IP ããããè¨­å®ããã*/
+	if ((error = in4_set_header(*nbuf, len, dstaddr, srcaddr, proto, ttl)) != E_OK)
+		return error;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset((GET_IP4_SDU(*nbuf) + len), 0, (size_t)(align - len));
+
+	return E_OK;
+	}
+
+/*
+ *  in4_cksum -- IPv4 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
+ *
+ *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ */
+
+uint16_t
+in4_cksum (T_NET_BUF *nbuf, uint8_t proto, uint_t off, uint_t len)
+{
+	uint32_t	sum;
+	uint_t		align;
+
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	align = (len + 3) >> 2 << 2;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset((uint8_t*)nbuf->buf + off + len, 0, (size_t)(align - len));
+
+	sum = in_cksum_sum(nbuf->buf + off, align)
+	    + in_cksum_sum(&GET_IP4_HDR(nbuf)->src, sizeof(T_IN4_ADDR) * 2)
+	    + len + proto;
+	sum = in_cksum_carry(sum);
+
+	return (uint16_t)(~htons((uint16_t)sum));
+	}
+
+/*
+ *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *
+ *        æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ */
+
+uint16_t
+in_cksum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+{
+	uint16_t	sum;
+
+	sum = (uint16_t)in_cksum_carry(in_cksum_sum(data, len));
+	return (uint16_t)(~htons(sum));
+	}
+
+/*
+ *  in4_is_dstaddr_accept -- å®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *
+ *    æ³¨æ: dstaddr ã¯ã
+ *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
+ *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ */
+
+bool_t
+in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr)
+{
+	if (*myaddr == IPV4_ADDRANY)
+		return ntohl(*dstaddr) == IF_GET_IFNET()->in4_ifaddr.addr;
+	else
+		return ntohl(*dstaddr) == *myaddr;
+	}
+
+/*
+ *  inn4_is_dstaddr_accept -- å®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *
+ *    æ³¨æ: dstaddr ã¯ã
+ *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
+ *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ */
+
+bool_t
+inn4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_NET_BUF *nbuf)
+{
+	T_IP4_HDR	*iph;
+
+	iph  = GET_IP4_HDR(nbuf);
+	if (*myaddr == IPV4_ADDRANY)
+		return ntohl(iph->dst) == IF_GET_IFNET()->in4_ifaddr.addr;
+	else
+		return ntohl(iph->dst) == *myaddr;
+	}
+
+/*
+ * in4_addrwithifp -- å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+ *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ *                   in6_addrwithifp ãã·ãã¥ã¬ã¼ãããã ãã§ã
+ *                   ã¨ã©ã¼ãè¿ããã¨ã¯ãªãã
+ */
+
+T_IN4_ADDR *
+in4_addrwithifp (T_IFNET *ifp, T_IN4_ADDR *src, T_IN4_ADDR *dst)
+{
+	*src = ifp->in4_ifaddr.addr;
+	return src;
+	}
+
+/*
+ *  in4_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv4 ã¢ãã¬ã¹ãè¨­å®ããã
+ */
+
+ER
+in4_add_ifaddr (T_IN4_ADDR addr, T_IN4_ADDR mask)
+{
+	T_IFNET	*ifp = IF_GET_IFNET();
+
+	ifp->in4_ifaddr.addr = addr;
+	ifp->in4_ifaddr.mask = mask;
+	return E_OK;
+	}
+
+#if NUM_IN4_ROUTE_ENTRY > 0
+
+/*
+ *  in4_add_route -- çµè·¯è¡¨ã«ã¨ã³ããªãè¨­å®ããã
+ */
+
+ER
+in4_add_route (int_t index, T_IN4_ADDR target, T_IN4_ADDR mask, T_IN4_ADDR gateway)
+{
+
+	if (0 <= index && index < NUM_IN4_STATIC_ROUTE_ENTRY) {
+		routing4_tbl[index].target  = target;
+		routing4_tbl[index].mask    = mask;
+		routing4_tbl[index].gateway = gateway;
+		return E_OK;
+		}
+	else
+		return E_PAR;
+	}
+
+#endif	/* of #if NUM_IN4_ROUTE_ENTRY > 0 */
+
+/*
+ *  in4_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ */
+
+T_IN4_ADDR
+in4_rtalloc (T_IN4_ADDR dst)
+{
+	int_t ix;
+
+	for (ix = NUM_IN4_ROUTE_ENTRY; ix --; )
+		if ((routing4_tbl[ix].flags & IN_RTF_DEFINED) &&
+		    (dst & routing4_tbl[ix].mask) == routing4_tbl[ix].target) {
+			if (routing4_tbl[ix].gateway == 0)
+				return dst;
+			else {
+				return routing4_tbl[ix].gateway;
+				}
+			}
+	return dst;
+	}
+
+#if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  in4_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
+ *
+ *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [ms]ã
+ */
+
+void
+in4_rtredirect (T_IN4_ADDR gateway, T_IN4_ADDR target, uint8_t flags, uint32_t tmo)
+{
+	T_IN4_RTENTRY	*frt;
+
+	frt = in_rtnewentry(flags, tmo);
+	frt->gateway    = gateway;
+	frt->target     = target;
+	frt->mask       = 0xffffffff;
+	}
+
+#endif	/* of #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0 */
+
+/*
+ *  in4_timer -- IPv4 å
+±éã¿ã¤ãã¼
+ *
+ *    1ç§å¨æã§èµ·åãããã
+ */
+
+static void
+in4_timer (void *ignore)
+{
+#if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
+
+	in_rttimer();
+
+#endif	/* of #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0 */
+
+#ifdef IP4_CFG_FRAGMENT
+
+	ip_frag_timer();
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+	timeout(in4_timer, NULL, IN_TIMER_TMO);
+	}
+
+/*
+ *  in4_init -- IPv4 å
+±éæ©è½ãåæåããã
+ */
+
+void
+in4_init (void)
+{
+#if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
+
+	in_rtinit();
+
+#endif	/* of #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0 */
+
+	timeout(in4_timer, NULL, IN_TIMER_TMO);
+	}
+
+#endif	/* of #if defined(_IP4_CFG) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in4_var.h	(revision 313)
@@ -0,0 +1,215 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1985, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in_var.h	8.2 (Berkeley) 1/9/95
+ * $FreeBSD: src/sys/netinet/in_var.h,v 1.29.2.1 1999/08/29 16:29:38 peter Exp $
+ */
+ 
+#ifndef _IN4_VAR_H_
+#define _IN4_VAR_H_
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ */
+
+typedef struct t_in4_ifaddr {
+	T_IN4_ADDR		addr;		/* IPv4 ã¢ãã¬ã¹	*/
+	T_IN4_ADDR		mask;		/* ãµãããããã¹ã¯	*/
+	} T_IN4_IFADDR;
+
+/*
+ *  ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½
+ */
+
+typedef struct t_in4_rtentry {
+	T_IN4_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹			*/
+	T_IN4_ADDR	mask;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹ã®ãµãããããã¹ã¯	*/
+	T_IN4_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹			*/
+	uint32_t	expire;		/* æå¹æéãåããæå» [s]			*/
+	uint8_t		flags;		/* ãã©ã°					*/
+	} T_IN4_RTENTRY;
+/*
+ *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ *
+ *  TINET 1.5 ã¨ã®äºææ§ã®ããã«å®ç¾©ãç¡å¹ã«ããã
+ */
+
+#if 0
+#ifdef NUM_ROUTE_ENTRY
+
+#define NUM_IN4_ROUTE_ENTRY		NUM_ROUTE_ENTRY
+#define NUM_IN4_STATIC_ROUTE_ENTRY	NUM_ROUTE_ENTRY
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+#define T_RT_ENTRY			T_IN4_RTENTRY
+
+#endif	/* of #ifdef NUM_ROUTE_ENTRY */
+#endif
+
+/*
+ *  ã«ã¼ãã£ã³ã°è¡¨
+ */
+
+#ifdef SUPPORT_INET4
+
+extern T_IN4_RTENTRY routing4_tbl[];
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_NET_BUF_DEFINED
+typedef struct t_net_buf T_NET_BUF;
+#define T_NET_BUF_DEFINED
+#endif
+
+#ifndef T_IFNET_DEFINED
+typedef struct t_ifnet T_IFNET;
+#define T_IFNET_DEFINED
+#endif
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define IN4_COPY_TO_HOST(dst,nbuf)	(*(dst)=ntohl(GET_IP4_HDR(nbuf)->src))
+
+/*
+ *  é¢æ°
+ */
+
+extern void ip_input (T_NET_BUF *data);
+extern ER in4_set_header (T_NET_BUF *nbuf, uint_t len,
+                          T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr, uint8_t proto, uint8_t ttl);
+extern ER in4_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+                            T_IN4_ADDR *dstaddr, T_IN4_ADDR *srcaddr,
+                            uint8_t proto, uint8_t ttl, ATR nbatr, TMO tmout);
+extern uint16_t in4_cksum (T_NET_BUF *nbuf, uint8_t proto, uint_t off, uint_t len);
+extern T_IN4_ADDR in4_rtalloc (T_IN4_ADDR dst);
+extern void in4_rtredirect (T_IN4_ADDR gateway, T_IN4_ADDR target, uint8_t flags, uint32_t tmo);
+extern void in4_init (void);
+extern T_IN4_ADDR *in4_addrwithifp (T_IFNET *ifp, T_IN4_ADDR *src, T_IN4_ADDR *dst);
+extern const T_NET_BUF**ip_get_frag_queue (void);
+
+/*
+ *  in4_is_dstaddr_accept -- å®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ *
+ *    æ³¨æ: dstaddr ã¯ã
+ *          TINET-1.2 ãããããã¯ã¼ã¯ãã¤ããªã¼ãã
+ *          TINET-1.1 ã¾ã§ã¯ããã¹ããã¤ããªã¼ã
+ */
+extern bool_t in4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_IN4_ADDR *dstaddr);
+extern bool_t inn4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_NET_BUF *input);
+
+/*
+ *  in_cksum -- ãã§ãã¯ãµã è¨ç®é¢æ°ãIPv4ãICMPv4 ç¨
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ */
+extern uint16_t in_cksum(void *data, uint_t len /*ãªã¯ãããåä½*/);
+
+/*
+ *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ */
+extern uint32_t in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/);
+
+/*
+ *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ */
+extern uint32_t in_cksum_carry (uint32_t sum);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _IN4_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_itron.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_itron.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_itron.h	(revision 313)
@@ -0,0 +1,155 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+ 
+#ifndef _IN_ITRON_H_
+#define _IN_ITRON_H_
+
+/*
+ *  API æ©è½ã»äºè±¡ã³ã¼ã
+ */
+
+/* TCP é¢ä¿ */
+
+#define TFN_TCP_CRE_REP		(-0x201)
+#define TFN_TCP_DEL_REP		(-0x202)
+#define TFN_TCP_CRE_CEP		(-0x203)
+#define TFN_TCP_DEL_CEP		(-0x204)
+#define TFN_TCP_ACP_CEP		(-0x205)
+#define TFN_TCP_CON_CEP		(-0x206)
+#define TFN_TCP_SHT_CEP		(-0x207)
+#define TFN_TCP_CLS_CEP		(-0x208)
+#define TFN_TCP_SND_DAT		(-0x209)
+#define TFN_TCP_RCV_DAT		(-0x20a)
+#define TFN_TCP_GET_BUF		(-0x20b)
+#define TFN_TCP_SND_BUF		(-0x20c)
+#define TFN_TCP_RCV_BUF		(-0x20d)
+#define TFN_TCP_REL_BUF		(-0x20e)
+#define TFN_TCP_SND_OOB		(-0x20f)
+#define TFN_TCP_RCV_OOB		(-0x210)
+#define TFN_TCP_CAN_CEP		(-0x211)
+#define TFN_TCP_SET_OPT		(-0x212)
+#define TFN_TCP_GET_OPT		(-0x213)
+#define TFN_TCP_ALL		(0)
+
+#define TEV_TCP_RCV_OOB		(-0x201)
+
+/* UDP é¢ä¿ */
+
+#define TFN_UDP_CRE_CEP		(-0x221)
+#define TFN_UDP_DEL_CEP		(-0x222)
+#define TFN_UDP_SND_DAT		(-0x223)
+#define TFN_UDP_RCV_DAT		(-0x224)
+#define TFN_UDP_CAN_CEP		(-0x225)
+#define TFN_UDP_SET_OPT		(-0x226)
+#define TFN_UDP_GET_OPT		(-0x227)
+#define TFN_UDP_ALL		(0)
+
+#define TEV_UDP_RCV_DAT		(-0x221)
+
+/* ä¸è¬ */
+
+#define NADR			((void*)(-1))	/* ç¡å¹ã¢ãã¬ã¹ */
+#define IS_PTR_DEFINED(a)	((void*)(a)!=NADR&&(void*)(a)!=NULL)
+#define TCP_REP_NONE		UINT_C(0)
+#define TCP_CEP_NONE		UINT_C(0)
+#define UDP_CEP_NONE		UINT_C(0)
+
+/*
+ *  é¢æ°
+ */
+
+/* TCP é¢ä¿ */
+
+/* ãæ¨æºæ©è½ã */
+
+extern ER	tcp_acp_cep (ID cepid, ID repid, T_IPV4EP *p_dstaddr, TMO tmout);
+extern ER	tcp_con_cep (ID cepid, T_IPV4EP *p_myaddr, T_IPV4EP *p_dstaddr, TMO tmout);
+extern ER	tcp_sht_cep (ID cepid);
+extern ER	tcp_cls_cep (ID cepid, TMO tmout);
+extern ER_UINT	tcp_snd_dat (ID cepid, void *data, int_t len, TMO tmout);
+extern ER_UINT	tcp_rcv_dat (ID cepid, void *data, int_t len, TMO tmout);
+extern ER_UINT	tcp_get_buf (ID cepid, void **p_buf, TMO tmout);
+extern ER	tcp_snd_buf (ID cepid, int_t len);
+extern ER_UINT	tcp_rcv_buf (ID cepid, void **p_buf, TMO tmout);
+extern ER	tcp_rel_buf (ID cepid, int_t len);
+extern ER	tcp_can_cep (ID cepid, FN fncd);
+
+extern ER	tcp6_acp_cep (ID cepid, ID repid, T_IPV6EP *p_dstaddr, TMO tmout);
+extern ER	tcp6_con_cep (ID cepid, T_IPV6EP *p_myaddr, T_IPV6EP *p_dstaddr, TMO tmout);
+
+/* ãæ¡å¼µæ©è½ã */
+
+extern ER	tcp_del_rep (ID cepid);
+extern ER	tcp_cre_cep (ID cepid, T_TCP_CCEP *pk_crep);
+extern ER	tcp_del_cep (ID cepid);
+extern ER_UINT	tcp_snd_oob (ID cepid, void *data, int_t len, TMO tmout);
+extern ER_UINT	tcp_rcv_oob (ID cepid, void *data, int_t len);
+extern ER	tcp_set_opt (ID cepid, int_t optname, void *optval, int_t optlen);
+extern ER	tcp_get_opt (ID cepid, int_t optname, void *optval, int_t optlen);
+extern ER	tcp_cre_rep (ID repid, T_TCP_CREP *pk_crep);
+
+extern ER	tcp6_cre_rep (ID repid, T_TCP6_CREP *pk_crep);
+
+/* UDP é¢ä¿ */
+
+/* ãæ¨æºæ©è½ã */
+
+extern ER_UINT	udp_snd_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout);
+extern ER_UINT	udp_rcv_dat (ID cepid, T_IPV4EP *p_dstaddr, void *data, int_t len, TMO tmout);
+extern ER	udp_can_cep (ID cepid, FN fncd);
+
+extern ER_UINT	udp6_snd_dat (ID cepid, T_IPV6EP *p_dstaddr, void *data, int_t len, TMO tmout);
+extern ER_UINT	udp6_rcv_dat (ID cepid, T_IPV6EP *p_dstaddr, void *data, int_t len, TMO tmout);
+
+/* ãæ¡å¼µæ©è½ã */
+
+extern ER	udp_del_cep (ID cepid);
+extern ER	udp_set_opt (ID cepid, int_t optname, void *optval, int_t optlen);
+extern ER	udp_get_opt (ID cepid, int_t optname, void *optval, int_t optlen);
+extern ER	udp_cre_cep (ID cepid, T_UDP_CCEP *pk_ccep);
+
+extern ER	udp6_cre_cep (ID cepid, T_UDP6_CCEP *pk_ccep);
+
+#endif	/* of #ifndef _IN_ITRON_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_rename.h	(revision 313)
@@ -0,0 +1,261 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _IN_RENAME_H_
+#define _IN_RENAME_H_
+
+/*
+ *  TCP/IP ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨åã®ãªãã¼ã 
+ */
+
+/* netinet/tcp_input.c */
+
+#define tcp_input		_tinet_tcp_input
+#define tcp_move_twcep		_tinet_tcp_move_twcep
+
+/* netinet/tcp_output.c */
+
+/* netinet/tcp_timer.c */
+
+#define	tcp_cancel_timers	_tinet_tcp_cancel_timers
+#define tcp_slow_timo		_tinet_tcp_slow_timo
+#define tcp_fast_timo		_tinet_tcp_fast_timo
+#define tcp_range_set		_tinet_tcp_range_set
+#define tcp_set_persist_timer	_tinet_tcp_set_persist_timer
+
+/* netinet/tcp_usrrq.c */
+
+#define tcp_user_closed		_tinet_tcp_user_closed
+
+/* netinet/tcp_subr.c */
+
+#define tcp_iss			_tinet_tcp_iss
+#define tcp_init		_tinet_tcp_init
+#define tcp_init_iss		_tinet_tcp_init_iss
+#define tcp_close		_tinet_tcp_close
+#define tcp_drop		_tinet_tcp_drop
+#define tcp_respond		_tinet_tcp_respond
+#define	tcp_get_segment		_tinet_tcp_get_segment
+#define tcp_rexmt_val		_tinet_tcp_rexmt_val
+#define tcp_init_cep		_tinet_tcp_init_cep
+#define tcp_notify		_tinet_tcp_notify
+#define tcp_alloc_auto_port	_tinet_tcp_alloc_auto_port
+#define tcp_alloc_port		_tinet_tcp_alloc_port
+#define tcp_free_reassq		_tinet_tcp_free_reassq
+#define tcp_move_ra2rw		_tinet_tcp_move_ra2rw
+#define tcp_wait_rwbuf		_tinet_tcp_wait_rwbuf
+#define tcp_write_raque		_tinet_tcp_write_raque
+#define tcp_lock_cep		_tinet_tcp_lock_cep
+#define tcp_can_send_more	_tinet_tcp_can_send_more
+#define tcp_can_recv_more	_tinet_tcp_can_recv_more
+#define tcp_output_trace	_tinet_tcp_output_trace
+#define tcp_input_trace		_tinet_tcp_input_trace
+#define tcp_find_cep		_tinet_tcp_find_cep
+#define tcp_find_twcep		_tinet_tcp_find_twcep
+#define tcp_is_addr_accept	_tinet_tcp_is_addr_accept
+#define tcp_move_twcep		_tinet_tcp_move_twcep
+#define tcpn_get_segment	_tinet_tcpn_get_segment
+
+/* netinet/tcp_subr_cs.c */
+
+#define tcp_read_rwbuf		_tinet_tcp_read_rwbuf
+#define tcp_write_rwbuf		_tinet_tcp_write_rwbuf
+#define tcp_drop_rwbuf		_tinet_tcp_drop_rwbuf
+#define tcp_free_rwbufq		_tinet_tcp_free_rwbufq
+#define tcp_get_rwbuf_addr	_tinet_tcp_get_rwbuf_addr
+
+#define tcp_free_rwbufq_cs	_tinet_tcp_free_rwbufq_cs
+#define tcp_get_rwbuf_addr_cs	_tinet_tcp_get_rwbuf_addr_cs
+#define tcp_read_rwbuf_cs	_tinet_tcp_read_rwbuf_cs
+#define tcp_write_rwbuf_cs	_tinet_tcp_write_rwbuf_cs
+#define tcp_drop_rwbuf_cs	_tinet_tcp_drop_rwbuf_cs
+
+#define tcp_wait_swbuf		_tinet_tcp_wait_swbuf
+#define tcp_init_swbuf		_tinet_tcp_init_swbuf
+#define tcp_alloc_swbuf		_tinet_tcp_alloc_swbuf
+#define tcp_is_swbuf_full	_tinet_tcp_is_swbuf_full
+#define tcp_drop_swbuf		_tinet_tcp_drop_swbuf
+#define tcp_free_swbufq		_tinet_tcp_free_swbufq
+#define tcp_read_swbuf		_tinet_tcp_read_swbuf
+#define tcp_write_swbuf		_tinet_tcp_write_swbuf
+#define tcp_pull_res_nbuf	_tinet_tcp_pull_res_nbuf
+#define tcp_push_res_nbuf	_tinet_tcp_push_res_nbuf
+#define tcp_get_swbuf_addr	_tinet_tcp_get_swbuf_addr
+#define tcp_send_swbuf		_tinet_tcp_send_swbuf
+
+#define tcp_get_swbuf_addr_cs	_tinet_tcp_get_swbuf_addr_cs
+#define tcp_wait_swbuf_cs	_tinet_tcp_wait_swbuf_cs
+#define tcp_is_swbuf_full_cs	_tinet_tcp_is_swbuf_full_cs
+#define tcp_alloc_swbuf_cs	_tinet_tcp_alloc_swbuf_cs
+#define tcp_send_swbuf_cs	_tinet_tcp_send_swbuf_cs
+#define tcp_free_swbufq_cs	_tinet_tcp_free_swbufq_cs
+#define tcp_drop_swbuf_cs	_tinet_tcp_drop_swbuf_cs
+#define tcp_write_swbuf_cs	_tinet_tcp_write_swbuf_cs
+
+/* netinet/tcp_subr_ncs.c */
+
+#define tcp_drop_rwbuf_ncs	_tinet_tcp_drop_rwbuf_ncs
+#define tcp_read_rwbuf_ncs	_tinet_tcp_read_rwbuf_ncs
+#define tcp_is_swbuf_full_ncs	_tinet_tcp_is_swbuf_full_ncs
+#define tcp_drop_swbuf_ncs	_tinet_tcp_drop_swbuf_ncs
+#define tcp_read_swbuf_ncs	_tinet_tcp_read_swbuf_ncs
+#define tcp_wait_swbuf_ncs	_tinet_tcp_wait_swbuf_ncs
+#define tcp_write_swbuf_ncs	_tinet_tcp_write_swbuf_ncs
+#define tcp_write_rwbuf_ncs	_tinet_tcp_write_rwbuf_ncs
+#define tcp_get_swbuf_addr_ncs	_tinet_tcp_get_swbuf_addr_ncs
+#define tcp_send_swbuf_ncs	_tinet_tcp_send_swbuf_ncs
+#define tcp_get_rwbuf_addr_ncs	_tinet_tcp_get_rwbuf_addr_ncs
+
+/* tcp_cfg.c */
+
+#define tcp6_rep		_tinet_tcp6_rep
+#define tcp4_rep		_tinet_tcp4_rep
+#define tcp_cep			_tinet_tcp_cep
+#define tcp_twcep		_tinet_tcp_twcep
+#define tmax_tcp_repid		_tinet_tmax_tcp_repid
+#define tmax_tcp_cepid		_tinet_tmax_tcp_cepid
+#define tmax_tcp_crepid		_tinet_tmax_tcp_repid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+#define tmax_tcp_ccepid		_tinet_tmax_tcp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+
+/* netinet/udp_input.c */
+
+#define udp6_reply_no_port	_tinet_udp6_reply_no_port
+#define udp6_input_select	_tinet_udp6_input_select
+#define udp6_input		_tinet_udp6_input
+#define udp4_reply_no_port	_tinet_udp4_reply_no_port
+#define udp4_input_select	_tinet_udp4_input_select
+#define udp4_input		_tinet_udp4_input
+
+/* netinet/udp_subr.c */
+
+#define udp6_alloc_port		_tinet_udp6_alloc_port
+#define udp6_alloc_auto_port	_tinet_udp6_alloc_auto_port
+#define udp6_notify		_tinet_udp6_notify
+#define udp6_find_cep		_tinet_udp6_find_cep
+#define udp4_alloc_port		_tinet_udp4_alloc_port
+#define udp4_alloc_auto_port	_tinet_udp4_alloc_auto_port
+#define udp4_notify		_tinet_udp4_notify
+#define udp4_find_cep		_tinet_udp4_find_cep
+
+/* netinet/udp_usrreq.c */
+
+#define udp_send_data		_tinet_udp_send_data
+
+/* netinet/udp_usrreq_nblk.c */
+
+#define udp_can_rcv		_tinet_udp_can_rcv
+#define udp_can_snd		_tinet_udp_can_snd
+
+/* udp_cfg.c */
+
+#define udp6_cep		_tinet_udp6_cep
+#define udp4_cep		_tinet_udp4_cep
+#define tmax_udp_cepid		_tinet_tmax_udp_cepid
+#define tmax_udp_ccepid		_tinet_tmax_udp_cepid	/* TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾© */
+
+/* netinet/ip_icmp.c */
+
+#define icmp_input		_tinet_icmp_input
+#define icmp_error		_tinet_icmp_error
+#define icmp_echo_reply		_tinet_icmp_echo_reply
+
+/* netinet/ip_input.c */
+
+#define ip_input		_tinet_ip_input
+#define ip_init			_tinet_ip_init
+#define ip_frag_timer		_tinet_ip_frag_timer
+#define ip_get_frag_queue	_tinet_ip_get_frag_queue
+#define ip_remove_options	_tinet_ip_remove_options
+
+/* netinet/ip_output.c */
+
+#define ip_output		_tinet_ip_output
+
+/* netinet/in_subr.c */
+
+#define inn_addrwithifp		_tinet_inn_addrwithifp
+#define in_cksum_carry		_tinet_in_cksum_carry
+#define inn_is_addr_multicast	_tinet_inn_is_addr_multicast
+#define inn_get_datagram	_tinet_inn_get_datagram
+#define inn_is_dstaddr_accept	_tinet_inn_is_dstaddr_accept
+#define ip_exchg_addr		_tinet_ip_exchg_addr
+#define inn_copy_to_host	_tinet_inn_copy_to_host
+#define in_cksum_sum		_tinet_in_cksum_sum
+#define inn_are_net_srcaddr_equal	\
+				_tinet_inn_are_net_srcaddr_equal
+
+/* netinet/in4_subr.c */
+
+#define in4_add_ifaddr		_tinet_in4_add_ifaddr
+#define in4_set_header		_tinet_in4_set_header
+#define inn4_is_dstaddr_accept	_tinet_inn4_is_dstaddr_accept
+#define in4_rtredirect		_tinet_in4_rtredirect
+#define in_rtnewentry		_tinet_in_rtnewentry
+#define in_cksum		_tinet_in_cksum
+#define	in4_addrwithifp		_tinet_in4_addrwithifp
+#define in4_rtalloc		_tinet_in4_rtalloc
+#define in4_init		_tinet_in4_init
+#define in_rttimer		_tinet_in_rttimer
+#define in4_get_ifaddr		_tinet_in4_get_ifaddr
+#define in4_get_datagram	_tinet_in4_get_datagram
+#define in4_is_dstaddr_accept	_tinet_in4_is_dstaddr_accept
+#define in4_cksum		_tinet_in4_cksum
+#define in_rtinit		_tinet_in_rtinit
+#define in4_ifawithifp		_tinet_in4_ifawithifp
+
+/* netinet/if_ether.c */
+
+#define arp_request		_tinet_arp_request
+#define arp_input		_tinet_arp_input
+#define arp_resolve		_tinet_arp_resolve
+#define arp_init		_tinet_arp_init
+#define arp_get_cache		_tinet_arp_get_cache
+
+/* netinet6/icmp6.c */
+
+#define icmp6_input		_tinet_icmp6_input
+
+#endif	/* of #ifndef _IN_RENAME_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_subr.c	(revision 313)
@@ -0,0 +1,526 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/in_itron.h>
+
+#include <net/if_var.h>
+
+/*
+ *  in_cksum_sum -- ãã§ãã¯ãµã ã®åè¨è¨ç®é¢æ°
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ *
+ *        æ»ãå¤ã¯ãã¹ããã¤ããªã¼ã
+ */
+
+uint32_t
+in_cksum_sum (void *data, uint_t len /*ãªã¯ãããåä½*/)
+{
+	uint32_t sum = 0;
+
+	for ( ; len > 0; len -= 2) {
+		sum += *((uint16_t*)data);
+		data = (uint8_t*)data + 2;
+		}
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+	return sum;
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
+	return ((sum >> 8) & 0xffff) + ((sum & 0xff) << 8) + ((sum >> 24) & 0xff);
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+	}
+
+/*
+ *  in_cksum_carry -- ãã§ãã¯ãµã ã®æ¡ä¸ãè¨ç®é¢æ°
+ *
+ *  æ³¨æ: data ã¯ 4 ãªã¯ãããåä½ã§ããã£ã³ã°ãããã¨ã
+ *        data ã 2 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ããªãã¨
+ *        ä¾å¤ãçºçããå¯è½æ§ãããã
+ *        len  ã¯ 4 ãªã¯ãããåä½ã«ã¢ã©ã¤ã³ããã¦ãããã¨ã
+ */
+
+uint32_t
+in_cksum_carry (uint32_t sum)
+{
+	uint32_t	carry;
+
+	while (sum >= 0x00010000) {
+		carry = sum >> 16;
+		sum   = (sum & 0xffff) + carry;
+		}
+
+	return sum;
+	}
+
+/*
+ *  in_strtfn -- API æ©è½ã³ã¼ãã®æå­è¡¨ç¾ãè¿ãã
+ */
+
+typedef struct t_strtfn {
+	FN		fncd;	/* API æ©è½ã³ã¼ã	*/
+	const char	*str;	/* æå­è¡¨ç¾		*/
+	} T_STRTFN;
+
+const T_STRTFN strtfn[] = {
+	{ TEV_TCP_RCV_OOB,	"TEV_TCP_RCV_OOB" },
+	{ TFN_TCP_DEL_REP,	"TFN_TCP_DEL_REP" },
+	{ TFN_TCP_CRE_CEP,	"TFN_TCP_CRE_CEP" },
+	{ TFN_TCP_DEL_CEP,	"TFN_TCP_DEL_CEP" },
+	{ TFN_TCP_ACP_CEP,	"TFN_TCP_ACP_CEP" },
+	{ TFN_TCP_CON_CEP,	"TFN_TCP_CON_CEP" },
+	{ TFN_TCP_SHT_CEP,	"TFN_TCP_SHT_CEP" },
+	{ TFN_TCP_CLS_CEP,	"TFN_TCP_CLS_CEP" },
+	{ TFN_TCP_SND_DAT,	"TFN_TCP_SND_DAT" },
+	{ TFN_TCP_RCV_DAT,	"TFN_TCP_RCV_DAT" },
+	{ TFN_TCP_GET_BUF,	"TFN_TCP_GET_BUF" },
+	{ TFN_TCP_SND_BUF,	"TFN_TCP_SND_BUF" },
+	{ TFN_TCP_RCV_BUF,	"TFN_TCP_RCV_BUF" },
+	{ TFN_TCP_REL_BUF,	"TFN_TCP_REL_BUF" },
+	{ TFN_TCP_SND_OOB,	"TFN_TCP_SND_OOB" },
+	{ TFN_TCP_RCV_OOB,	"TFN_TCP_RCV_OOB" },
+	{ TFN_TCP_CAN_CEP,	"TFN_TCP_CAN_CEP" },
+	{ TFN_TCP_SET_OPT,	"TFN_TCP_SET_OPT" },
+	{ TFN_TCP_GET_OPT,	"TFN_TCP_GET_OPT" },
+	{ TFN_TCP_ALL,		"TFN_TCP_ALL"     },
+
+	{ TEV_UDP_RCV_DAT,	"TEV_UDP_RCV_DAT" },
+	{ TFN_UDP_DEL_CEP,	"TFN_UDP_DEL_CEP" },
+	{ TFN_UDP_SND_DAT,	"TFN_UDP_SND_DAT" },
+	{ TFN_UDP_RCV_DAT,	"TFN_UDP_RCV_DAT" },
+	{ TFN_UDP_CAN_CEP,	"TFN_UDP_CAN_CEP" },
+	{ TFN_UDP_SET_OPT,	"TFN_UDP_SET_OPT" },
+	{ TFN_UDP_GET_OPT,	"TFN_UDP_GET_OPT" },
+	};
+
+const char *
+in_strtfn (FN fncd)
+{
+	int_t	ix;
+
+	for (ix = sizeof(strtfn) / sizeof(T_STRTFN); ix -- > 0; )
+		if (strtfn[ix].fncd == fncd)
+			return strtfn[ix].str;
+
+	return "unknown TFN";
+	}
+
+#if defined(_IP4_CFG)
+
+/*
+ *  ipv42str -- IPv4 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ */
+
+char *
+ipv42str (char *buf, const T_IN4_ADDR *ipaddr)
+{
+	static char	addr_sbuf[NUM_IPV4ADDR_STR_BUFF][sizeof("123.123.123.123")];
+	static int_t	bix = NUM_IPV4ADDR_STR_BUFF;
+
+	char *start;
+
+	if (buf == NULL) {
+		syscall(wai_sem(SEM_IP2STR_BUFF_LOCK));
+		buf = addr_sbuf[-- bix];
+		if (bix <= 0)
+			bix = NUM_IPV4ADDR_STR_BUFF;
+		syscall(sig_sem(SEM_IP2STR_BUFF_LOCK));
+		}
+
+	start = buf;
+	buf += convert_hexdigit(buf, (uint_t)((*ipaddr >> 24) & 0xff), 10, 0, ' ');
+	*(buf ++) = '.';
+	buf += convert_hexdigit(buf, (uint_t)((*ipaddr >> 16) & 0xff), 10, 0, ' ');
+	*(buf ++) = '.';
+	buf += convert_hexdigit(buf, (uint_t)((*ipaddr >>  8) & 0xff), 10, 0, ' ');
+	*(buf ++) = '.';
+	buf += convert_hexdigit(buf, (uint_t)((*ipaddr      ) & 0xff), 10, 0, ' ');
+	*buf = '\0';
+	return start;
+	}
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+/*
+ *  in6_is_addr_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ã§ããäºãæ¤æ»ããã
+ */
+
+bool_t
+in6_is_addr_ipv4mapped (const T_IN6_ADDR *addr)
+{
+	return IN6_IS_ADDR_V4MAPPED(addr);
+	}
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+
+/*
+ *  ip_exchg_addr -- IP ã¢ãã¬ã¹ãäº¤æããã
+ */
+
+static void
+ip6_exchg_addr (T_NET_BUF *nbuf)
+{
+	T_IP6_HDR	*iph;
+	T_IN6_ADDR	ipaddr;
+
+	iph  = GET_IP6_HDR(nbuf);
+
+	/* IPv6 ã¢ãã¬ã¹ãäº¤æããã*/
+	ipaddr = iph->src;
+	iph->src = iph->dst;
+	iph->dst = ipaddr;
+	}
+
+static void
+ip4_exchg_addr (T_NET_BUF *nbuf)
+{
+	T_IP4_HDR	*iph;
+	T_IN4_ADDR	ipaddr;
+
+	iph  = GET_IP4_HDR(nbuf);
+
+	/* IPv4 ã¢ãã¬ã¹ãäº¤æããã*/
+	ipaddr = iph->src;
+	iph->src = iph->dst;
+	iph->dst = ipaddr;
+	}
+
+void
+ip_exchg_addr (T_NET_BUF *nbuf)
+{
+	if (GET_IP_VER(nbuf) == 6)
+		ip6_exchg_addr(nbuf);
+	else
+		ip4_exchg_addr(nbuf);
+	}
+
+#else	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+/*
+ *  ip_exchg_addr -- IP ã¢ãã¬ã¹ãäº¤æããã
+ */
+
+void
+ip_exchg_addr (T_NET_BUF *nbuf)
+{
+	T_IP_HDR	*iph;
+	T_IN_ADDR	ipaddr;
+
+	iph  = GET_IP_HDR(nbuf);
+
+	/* IP ã¢ãã¬ã¹ãäº¤æããã*/
+	ipaddr = iph->src;
+	iph->src = iph->dst;
+	iph->dst = ipaddr;
+	}
+
+#endif	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+
+/*
+ *  inn_is_dstaddr_accept -- å®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ */
+
+bool_t
+inn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *nbuf)
+{
+	if        (GET_IP_VER(nbuf)==IPV6_VERSION)
+		return INN6_IS_DSTADDR_ACCEPT(myaddr, nbuf);
+	else /*if (GET_IP_VER(nbuf)==IPV4_VERSION)*/ {
+		T_IP4_HDR	*ip4h;
+
+		ip4h  = GET_IP4_HDR(nbuf);
+		if (IN6_IS_ADDR_UNSPECIFIED(myaddr))
+			return ntohl(ip4h->dst) == IF_GET_IFNET()->in4_ifaddr.addr;
+		else {
+			T_IN6_ADDR	dstaddr;
+
+			return IN6_ARE_ADDR_EQUAL(myaddr, in6_make_ipv4mapped(&dstaddr, ntohl(ip4h->dst)));
+			}
+		}
+	}
+
+/*
+ *  inn_are_net_srcaddr_equal -- ã¢ãã¬ã¹ãåä¸ããã§ãã¯ããã
+ */
+
+bool_t
+inn_are_net_srcaddr_equal (T_IN6_ADDR *ipaddr, T_NET_BUF *nbuf)
+{
+	if        (GET_IP_VER(nbuf)==IPV6_VERSION)
+		return IN6_ARE_ADDR_EQUAL(ipaddr, &GET_IP6_HDR(nbuf)->src);
+	else /*if (GET_IP_VER(nbuf)==IPV4_VERSION)*/ {
+
+
+		T_IN6_ADDR	srcaddr;
+
+		return IN6_ARE_ADDR_EQUAL(ipaddr, in6_make_ipv4mapped(&srcaddr, ntohl(GET_IP4_HDR(nbuf)->src)));
+		}
+	}
+
+/*
+ *  inn_copy_to_host -- IP ããããããã¹ãè¡¨ç¾å¤æãã¦ãIP ã¢ãã¬ã¹ãã³ãã¼ããã
+ */
+
+void
+inn_copy_to_host (T_IN6_ADDR *dst, T_NET_BUF *nbuf)
+{
+	if        (GET_IP_VER(nbuf)==IPV6_VERSION)
+		memcpy(dst, &GET_IP6_HDR(nbuf)->src, sizeof(T_IN6_ADDR));
+	else /*if (GET_IP_VER(nbuf)==IPV4_VERSION)*/
+		in6_make_ipv4mapped(dst, ntohl(GET_IP4_HDR(nbuf)->src));
+
+	}
+
+/*
+ *  inn_get_datagram -- IPv6/IPv4 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ */
+
+ER
+inn_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+                  T_IN6_ADDR *dstaddr, T_IN6_ADDR *srcaddr,
+                  uint8_t next, uint8_t hlim, ATR nbatr, TMO tmout)
+{
+	if (IN6_IS_ADDR_V4MAPPED(dstaddr)) {
+		T_IN4_ADDR ip4dstaddr, ip4srcaddr;
+
+		ip4dstaddr = ntohl(dstaddr->s6_addr32[3]);
+		if (IN6_IS_ADDR_UNSPECIFIED(srcaddr))
+			ip4srcaddr = IF_GET_IFNET()->in4_ifaddr.addr;
+		else
+			ip4srcaddr = ntohl(srcaddr->s6_addr32[3]);
+
+		return in4_get_datagram(nbuf, len, maxlen, &ip4dstaddr, &ip4srcaddr, next, hlim, nbatr, tmout);
+		}
+	else
+		return in6_get_datagram(nbuf, len, maxlen, dstaddr, srcaddr, next, hlim, nbatr, tmout);
+	}
+
+/*
+ * inn_addrwithifp -- å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+ *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ */
+
+T_IN6_ADDR *
+inn_addrwithifp (T_IFNET *ifp, T_IN6_ADDR *src, T_IN6_ADDR *dst)
+{
+	T_IN6_IFADDR *ifaddr;
+
+	if (IN6_IS_ADDR_V4MAPPED(dst))
+		return in6_make_ipv4mapped (src, ifp->in4_ifaddr.addr);
+	else if ((ifaddr = in6_ifawithifp(ifp, dst)) == NULL)
+		return NULL;
+	else {
+		*src = ifaddr->addr;
+		return src;
+		}
+	}
+
+/*
+ *  inn_is_addr_multicast -- ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã§ãã¯ããã
+ */
+
+bool_t
+inn_is_addr_multicast (T_IN6_ADDR *addr)
+{
+
+	if (IN6_IS_ADDR_V4MAPPED(addr))
+		return IN4_IS_ADDR_MULTICAST(ntohl(addr->s6_addr32[3]));
+	else
+		return IN6_IS_ADDR_MULTICAST(addr);
+	}
+
+#endif	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+/*
+ *  ãã¤ããªã¼ãé¢æ°ã®å®ç¾©
+ *
+ *    tinet/net/net.h ã§ããã¤ããªã¼ãã®å®ç¾©ãè¡ã£ã¦ãããã
+ *    tinet/net/net.h ãã¤ã³ã¯ã«ã¼ãããªã
+ *    ã¢ããªã±ã¼ã·ã§ã³ãã­ã°ã©ã ç¨ã«
+ *    ã¿ã¼ã²ããä¾å­ããªããã¤ããªã¼ãé¢æ°ãå®ç¾©ããã
+ */
+
+#if defined(_NET_CFG_BYTE_ORDER)
+
+#undef ntohs
+#undef htons
+#undef ntohl
+#undef htonl
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+uint16_t
+ntohs (uint16_t net)
+{
+	return net;
+	}
+
+uint16_t
+htons (uint16_t host)
+{
+	return host;
+	}
+
+uint32_t
+ntohl (uint32_t net)
+{
+	return net;
+	}
+
+uint32_t
+htonl (uint32_t host)
+{
+	return host;
+	}
+
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+uint16_t
+ntohs (uint16_t net)
+{
+	return NET_REV_ENDIAN_HWORD(net);
+	}
+
+uint16_t
+htons (uint16_t host)
+{
+	return NET_REV_ENDIAN_HWORD(host);
+	}
+
+uint32_t
+ntohl (uint32_t net)
+{
+	return NET_REV_ENDIAN_WORD(net);
+	}
+
+uint32_t
+htonl (uint32_t host)
+{
+	return NET_REV_ENDIAN_WORD(host);
+	}
+
+#else	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#error "_NET_CFG_BYTE_ORDER expected."
+
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#endif	/* of #if defined(_NET_CFG_BYTE_ORDER) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/in_var.h	(revision 313)
@@ -0,0 +1,222 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1985, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in_var.h	8.2 (Berkeley) 1/9/95
+ * $FreeBSD: src/sys/netinet/in_var.h,v 1.29.2.1 1999/08/29 16:29:38 peter Exp $
+ */
+ 
+#ifndef _IN_VAR_H_
+#define _IN_VAR_H_
+
+#include <netinet/in4_var.h>
+#include <netinet6/in6_var.h>
+
+/*
+ *  ç¬èªã®ã¨ã©ã¼ã³ã¼ã
+ */
+
+#define EV_NOPND		(-97)		/* ãã³ãã£ã³ã°ãã¦ããªã */
+
+/*
+ *  ãããã¯ã¼ã¯ã¨ã©ã¼ã³ã¼ã
+ */
+
+#define EV_MSIZE		(-98)		/* ãã¼ã¿ã°ã©ã é·è¶
+é	*/
+#define EV_NURCH		(-99)		/* ãããã¯ã¼ã¯å°éä¸è½	*/
+#define EV_HDOWN		(-100)		/* ãã¹ããã¦ã³		*/
+#define EV_HURCH		(-101)		/* ãã¹ãå°éä¸è½	*/
+#define EV_CNNRF		(-102)		/* æ¥ç¶ä¸è½		*/
+#define EV_CNRST		(-103)		/* æ¥ç¶ãªã»ãã		*/
+#define EV_REXMTMO		(-104)		/* åéã¿ã¤ã ã¢ã¦ã	*/
+
+/*
+ *  å
+±éã¿ã¤ãã®èµ·åå¨æã®å®ç¾©
+ */
+
+#define IN_TIMER_TMO		(SYSTIM_HZ/NET_TIMER_CYCLE)
+
+/*
+ *  ã«ã¼ãã£ã³ã°ã¨ã³ããªç¶æ
+ãã©ã°
+ */
+
+#define IN_RTF_DEFINED		UINT_C(0x01)	/* å®ç¾©æ¸ã¿			*/
+#define IN_RTF_REDIRECT		UINT_C(0x10)	/* åãç´ãã«ããèªåè¨­å®ããã	*/
+
+/*
+ *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ */
+
+#if defined(_IP6_CFG)
+
+#define T_IN_ADDR			T_IN6_ADDR
+#define T_IPEP				T_IPV6EP
+#define IP_ADDRANY			IPV6_ADDRANY
+
+#elif defined(_IP4_CFG)	/* of #if defined(_IP6_CFG) */
+
+#define T_IN_ADDR			T_IN4_ADDR
+#define T_IPEP				T_IPV4EP
+#define IP_ADDRANY			IPV4_ADDRANY
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP6_CFG)
+
+#if defined(_IP4_CFG)
+
+#define IN_CKSUM(nbuf,proto,off,len)	(GET_IP_VER(nbuf)==IPV6_VERSION	\
+					?in6_cksum(nbuf,proto,off,len)	\
+					:in4_cksum(nbuf,proto,off,len))
+#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)	\
+					inn_is_dstaddr_accept(myaddr,nbuf)
+#define IN_ARE_HDR_ADDR_EQUAL(nbuf)	(GET_IP_VER(nbuf)==IPV6_VERSION	\
+					?IN6_ARE_ADDR_EQUAL(&GET_IP6_HDR(nbuf)->dst,&GET_IP6_HDR(nbuf)->src)	\
+					:IN4_ARE_ADDR_EQUAL(&GET_IP4_HDR(nbuf)->dst,&GET_IP4_HDR(nbuf)->src))
+#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)	\
+		    			inn_are_net_srcaddr_equal(ipaddr,nbuf)
+#define IN_COPY_TO_HOST(dst,nbuf)	inn_copy_to_host(dst,nbuf)
+#define IN_GET_DATAGRAM(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)	\
+					inn_get_datagram(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)
+#define IN_IS_ADDR_MULTICAST(addr)	inn_is_addr_multicast(addr)
+#define IN_IS_NET_ADDR_MULTICAST(nbuf)	IN_IS_ADDR_MULTICAST(&GET_IP6_HDR(nbuf)->dst)
+#define IN_ADDRWITHIFP(ifp,src,dst)	inn_addrwithifp(ifp,src,dst)
+#define IN_IS_ADDR_ANY(addr)		IN6_IS_ADDR_UNSPECIFIED(addr)
+
+#else	/* of #if defined(_IP4_CFG) */
+
+#define IN_CKSUM(nbuf,proto,off,len)	in6_cksum(nbuf,proto,off,len)
+#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)	\
+					INN6_IS_DSTADDR_ACCEPT(myaddr,nbuf)
+#define IN_ARE_HDR_ADDR_EQUAL(nbuf)	IN6_ARE_ADDR_EQUAL(&GET_IP6_HDR(nbuf)->dst,&GET_IP6_HDR(nbuf)->src)
+#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)	\
+		    			IN6_ARE_ADDR_EQUAL(ipaddr,&GET_IP6_HDR(nbuf)->src)
+#define IN_COPY_TO_HOST(dst,nbuf)	IN6_COPY_TO_HOST(dst, nbuf)
+#define IN_GET_DATAGRAM(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)	\
+					in6_get_datagram(nbuf,len,maxlen,dst,src,next,hlim,nbatr,tmout)
+#define IN_IS_ADDR_MULTICAST(addr)	IN6_IS_ADDR_MULTICAST(addr)
+#define IN_IS_NET_ADDR_MULTICAST(nbuf)	IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(nbuf)->dst)
+#define IN_ADDRWITHIFP(ifp,src,dst)	in6_addrwithifp(ifp,src,dst)
+#define IN_IS_ADDR_ANY(addr)		IN6_IS_ADDR_UNSPECIFIED(addr)
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+#define IN_CKSUM(nbuf,proto,off,len)	in4_cksum(nbuf,proto,off,len)
+#define IN_IS_DSTADDR_ACCEPT(myaddr,nbuf)	\
+					inn4_is_dstaddr_accept(myaddr,nbuf)
+#define IN_ARE_HDR_ADDR_EQUAL(nbuf)	IN4_ARE_ADDR_EQUAL(&GET_IP4_HDR(nbuf)->dst,&GET_IP4_HDR(nbuf)->src)
+#define IN_ARE_NET_SRCADDR_EQUAL(ipaddr,nbuf)	\
+					(*(ipaddr)==ntohl(GET_IP4_HDR(nbuf)->src))
+#define IN_COPY_TO_HOST(dst,nbuf)	IN4_COPY_TO_HOST(dst, nbuf)
+#define IN_GET_DATAGRAM(nbuf,len,maxlen, dst,src,proto,ttl,nbatr,tmout)	\
+					in4_get_datagram(nbuf,len,maxlen, dst,src,proto,ttl,nbatr,tmout)
+#define IN_IS_ADDR_MULTICAST(addr)	IN4_IS_ADDR_MULTICAST(*(addr))
+#define IN_IS_NET_ADDR_MULTICAST(nbuf)	IN4_IS_ADDR_MULTICAST(ntohl(GET_IP4_HDR(nbuf)->dst))
+#define IN_ADDRWITHIFP(ifp,src,dst)	in4_addrwithifp(ifp,src,dst)
+#define IN_IS_ADDR_ANY(addr)		IN4_IS_ADDR_ANY(addr)
+
+#else	/* of #if defined(_IP4_CFG) */
+
+#error "not implemented."
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  é¢æ°
+ */
+extern bool_t	inn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *nbuf);
+extern bool_t	inn_is_addr_multicast (T_IN6_ADDR *addr);
+extern bool_t	inn_are_net_srcaddr_equal (T_IN6_ADDR *ipaddr, T_NET_BUF *nbuf);
+extern void	inn_copy_to_host (T_IN6_ADDR *dst, T_NET_BUF *nbuf);
+extern ER	inn_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+		                  T_IN6_ADDR *dstaddr, T_IN6_ADDR *srcaddr,
+		                  uint8_t next, uint8_t hlim, ATR nbatr, TMO tmout);
+extern T_IN6_ADDR *inn_addrwithifp (T_IFNET *ifp, T_IN6_ADDR *src, T_IN6_ADDR *dst);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _IN_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.cfg	(revision 313)
@@ -0,0 +1,68 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  IPv4 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ */
+
+#if defined(_IP4_CFG)
+
+#ifdef IP4_CFG_FRAGMENT
+
+/* ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æ */
+
+CRE_SEM(SEM_IP4_FRAG_QUEUE, { TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+#if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0
+
+/* ã«ã¼ãã£ã³ã°è¡¨ï¼åãç´ãï¼*/
+
+CRE_SEM(SEM_IN4_ROUTING_TBL, { TA_TPRI, 1, 1 });
+
+#endif	/* of #if NUM_IN4_REDIRECT_ROUTE_ENTRY > 0 */
+
+#endif	/* of #if defined(_IP4_CFG) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip.h	(revision 313)
@@ -0,0 +1,159 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip.h	8.2 (Berkeley) 6/1/94
+ * $FreeBSD: src/sys/netinet/ip.h,v 1.15.2.1 1999/08/29 16:29:38 peter Exp $
+ */
+ 
+#ifndef _IP4_H_
+#define _IP4_H_
+
+#include <netinet/ip6.h>
+
+/*
+ *  IPv4 ã®å®ç¾©ãRFC791 åç
+§
+ */
+
+#define IPV4_VERSION		4
+
+/*
+ *  IPv4 ãããã®å®ç¾©
+ */
+
+typedef struct t_ip4_hdr {
+	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
+					/* length ã¯ 4 octets åä½		*/
+	uint8_t		type;		/* type of services			*/
+	uint16_t	len;		/* total length				*/
+
+	uint16_t	id;		/* identification			*/
+	uint16_t	flg_off;	/* fragment flag & offset		*/
+
+	uint8_t		ttl;		/* time to live				*/
+	uint8_t		proto;		/* protocol				*/
+	uint16_t	sum;		/* checksum				*/
+
+	T_IN4_ADDR	src;		/* source address			*/
+	T_IN4_ADDR	dst;		/* destination address			*/
+	} T_IP4_HDR;
+
+#define IP4_HDR_SIZE		(sizeof(T_IP4_HDR))
+
+/*
+ *  IPv4 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define IP4_MAKE_VHL(v,hl)	((uint8_t)(((uint8_t)(v)<<4)|(hl)))
+#define IP4_VHL_V(vhl)		((uint8_t)((uint8_t)(vhl)>>4))
+#define IP4_VHL_HL(vhl)		((uint8_t)((vhl)&0x0f))
+
+#define IP4_MAKE_FLGOFF(f,o)	((uint16_t)((f)|(o)))
+#define IP4_FLGOFF_FLG(f)	((uint16_t)((f)&~IP4_OFFMASK))
+#define IP4_FLGOFF_OFF(o)	((uint16_t)((o)&IP4_OFFMASK))
+
+/*
+ *  IPv4 ãããã®ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ */
+
+#define IP4_VHL_BORING	UINT_C(0x45)	/* ãªãã·ã§ã³ããªã VHL å¤	*/
+#define IP4_RF		UINT_C(0x8000)	/* off: äºç´			*/
+#define IP4_DF		UINT_C(0x4000)	/* off: åå²ç¦æ­¢			*/
+#define IP4_MF		UINT_C(0x2000)	/* off: åå²ãã			*/
+#define IP4_OFFMASK	UINT_C(0x1fff)	/* ãªãã»ããé¨ã®ãã¹ã¯å¤		*/
+
+/*
+ *  å¶éå¤
+ */
+
+#define IP4_MAXPACKET	UINT_C(65535)	/* æå¤§ãã±ãããµã¤ãº		*/
+#define IP4_MAXTTL	UINT_C(255)	/* TTL æå¤§å¤			*/
+#define IP4_DEFTTL	UINT_C(64)	/* TTL è¦å®å¤ (RFC1340)		*/
+#define IP4_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼*/
+#define IP4_MSS		UINT_C(576)	/* æå¤§ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤	*/
+
+/* IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­ */
+
+#if !defined(_IP6_CFG) && defined(_IP4_CFG)
+
+#define IP_HDR_SIZE	IP4_HDR_SIZE
+#define T_IP_HDR	T_IP4_HDR
+#define IP_DEFTTL	IP4_DEFTTL
+
+#endif	/* of #if !defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+#endif	/* of #ifndef _IP4_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip4_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip4_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip4_var.h	(revision 313)
@@ -0,0 +1,268 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_var.h	8.2 (Berkeley) 1/9/95
+ * $FreeBSD: src/sys/netinet/ip_var.h,v 1.45.2.1 1999/08/29 16:29:51 peter Exp $
+ */
+ 
+#ifndef _IP4_VAR_H_
+#define _IP4_VAR_H_
+
+/*
+ *  IPv4 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define IF_IP4_HDR_SIZE			(IF_HDR_SIZE + IP4_HDR_SIZE)
+
+#define GET_IP4_HDR(nbuf)		((T_IP4_HDR*)((nbuf)->buf + IF_HDR_SIZE))
+#define GET_IP4_SDU(nbuf)		((uint8_t*)((nbuf)->buf) + GET_IF_IP4_HDR_SIZE(nbuf))
+
+#define GET_IP4_HDR_SIZE(nbuf)		((uint8_t)IP4_VHL_HL(GET_IP4_HDR(nbuf)->vhl) << 2)
+#define GET_IP4_SDU_SIZE(nbuf)		(ntohs(GET_IP4_HDR(nbuf)->len) - GET_IP4_HDR_SIZE(nbuf))
+#define GET_IF_IP4_HDR_SIZE(nbuf)	(IF_HDR_SIZE + (GET_IP4_HDR_SIZE(nbuf)))
+
+#define SET_IP4_SDU_SIZE(nbuf,slen)	(GET_IP4_HDR(nbuf)->len=(uint16_t)htons((slen) + IP4_HDR_SIZE))
+
+/*
+ *  IP ã® MSS ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ */
+
+typedef struct t_net_buf_ip_mss {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_HDR_SIZE + IP4_MSS];
+				/* ãããã¡æ¬ä½		*/
+	} T_NET_BUF_IP_MSS;
+
+/*
+ *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ */
+
+typedef struct t_net_buf4_65536 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_IP4_HDR_SIZE + 65536];
+				/* ãããã¡æ¬ä½		*/
+#if defined(IF_PDU_HDR_PADDING)
+	uint8_t		padding[IF_PDU_HDR_PADDING];
+#endif				/* ãããã®ä½å		*/
+	} T_NET_BUF4_65536;
+
+#ifdef IP4_CFG_FRAGMENT
+
+/*
+ *  åæ§æã­ã¥ã¼ç¨ IPv4 ãããã®å®ç¾©
+ */
+
+typedef struct t_qip4_hdr {
+	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
+					/* length ã¯ 4 octets åä½		*/
+	uint8_t		type;		/* type of services			*/
+	uint16_t	len;		/* total length				*/
+
+	uint16_t	id;		/* identification			*/
+	uint16_t	flg_off;	/* fragment flag & offset		*/
+
+	uint8_t		ttl;		/* time to live				*/
+	uint8_t		proto;		/* protocol				*/
+	uint16_t	sum;		/* checksum				*/
+
+	uint32_t	src;		/* source address			*/
+
+	T_NET_BUF	*next;		/* æ¬¡ã® IPv4 ãã©ã°ã¡ã³ã			*/
+	} T_QIP4_HDR;
+
+#define QIP4_HDR_SIZE			(sizeof(T_QIP4_HDR))
+#define IF_QIP4_HDR_SIZE		(IF_HDR_SIZE + QIP4_HDR_SIZE)
+
+#define GET_QIP4_HDR(nbuf)		((T_QIP4_HDR*)((nbuf)->buf + IF_HDR_SIZE))
+#define GET_QIP4_SDU(nbuf)		((uint8_t*)(nbuf)->buf + GET_IF_QIP4_HDR_SIZE(nbuf))
+
+#define GET_QIP4_HDR_SIZE(iph)		((uint8_t)IP4_VHL_HL((iph)->vhl) << 2)
+#define GET_IF_QIP4_HDR_SIZE(nbuf)	(IF_HDR_SIZE + (GET_QIP4_HDR_SIZE(GET_QIP4_HDR(nbuf))))
+
+/*
+ *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ */
+
+typedef struct t_net_buf4_reassm {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		align[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IP4_CFG_FRAG_REASSM_SIZE];
+				/* ãããã¡æ¬ä½		*/
+	} T_NET_BUF4_REASSM;
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+/*
+ *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv4 ãããã®å®ç¾©
+ */
+
+typedef struct t_ip4_tcp_q_hdr {
+	uint8_t		vhl;		/* version << 4 | header length >> 2	*/
+					/* length ã¯ 4 octets åä½		*/
+	uint8_t		type;		/* type of services			*/
+	uint16_t	len;		/* total length				*/
+
+	uint16_t	id;		/* identification			*/
+	uint16_t	flg_off;	/* fragment flag & offset		*/
+
+	uint8_t		ttl;		/* time to live				*/
+	uint8_t		proto;		/* protocol				*/
+	uint16_t	thoff;		/* TCP ãããã®ãªãã»ãã		*/
+
+	T_IN4_ADDR	src;		/* source address			*/
+	T_IN4_ADDR	dst;		/* destination address			*/
+	} T_IP4_TCP_Q_HDR;
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_ip_stats {
+	uint32_t	ipInReceives;
+	uint32_t	ipInHdrErrors;
+	uint32_t	ipInAddrErrors;
+/*	uint32_t	ipForwDatagrams;*/
+	uint32_t	ipInUnknownProtos;
+/*	uint32_t	ipInDiscards;*/
+	uint32_t	ipInDelivers;
+	uint32_t	ipOutRequests;
+	uint32_t	ipOutDiscards;
+/*	uint32_t	ipOutNoRoutes;*/
+
+#ifdef IP4_CFG_FRAGMENT
+
+	uint32_t	ipReasmReqds;
+	uint32_t	ipReasmOKs;
+	uint32_t	ipReasmFails;
+	uint32_t	ipFragOKs;
+	uint32_t	ipFragFails;
+	uint32_t	ipFragCreates;
+
+#else	/* of #ifdef IP4_CFG_FRAGMENT */
+
+	uint32_t	ipReasmReqds;
+/*	uint32_t	ipReasmOKs;*/
+	uint32_t	ipReasmFails;
+/*	uint32_t	ipFragOKs;*/
+/*	uint32_t	ipFragFails;*/
+/*	uint32_t	ipFragCreates;*/
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+} T_IP_STATS;
+
+extern T_IP_STATS ip_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  é¢æ°
+ */
+
+extern void ip_frag_timer (void);
+extern void ip_init (void);
+extern ER ip_remove_options (T_NET_BUF *nbuf);
+extern ER ip_output (T_NET_BUF *nbuf, TMO tmout);
+extern void ip_exchg_addr (T_NET_BUF *nbuf);
+
+#endif	/* of #ifndef _IP4_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip6.h	(revision 313)
@@ -0,0 +1,314 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet/ip6.h,v 1.2.2.2 2001/07/03 11:01:46 ume Exp $	*/
+/*	$KAME: ip6.h,v 1.18 2001/03/29 05:34:30 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip.h	8.1 (Berkeley) 6/10/93
+ */
+ 
+#ifndef _IP6_H_
+#define _IP6_H_
+
+/*
+ *  IPv6 ã®å®ç¾©ãRFC2460 åç
+§
+ */
+
+#define IPV6_VERSION	6
+
+/*
+ *  IPv6 ãããã®å®ç¾©
+ */
+
+typedef struct t_ip6_hdr {
+	uint32_t	vcf;		/* Version:        4 bit		*/
+					/* Traffic Class:  8 bit		*/
+					/* Flow Label:    20 bit		*/
+	uint16_t	plen;		/* Payload Length			*/
+	uint8_t		next;		/* Next Header				*/
+	uint8_t		hlim;		/* Hop Limit				*/
+	T_IN6_ADDR 	src;		/* Source Address			*/
+	T_IN6_ADDR 	dst;		/* Destination Address			*/
+	} T_IP6_HDR;
+
+#define IP6_HDR_SIZE		(sizeof(T_IP6_HDR))
+
+/*
+ *  IPv6 ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define IP6_MAKE_VCF(v,cf)	(((uint32_t)(v)<<28)|(cf))
+#define IP6_VCF_V(vcf)		((uint32_t)(vcf)>>28)
+#define IP6_VCF_C(vcf)		(((uint32_t)(vcf)>>20)&ULONG_C(0xff))
+#define IP6_VCF_F(vcf)		((uint32_t)(vcf)&ULONG_C(0x000fffff))
+#define IP6_VCF_CF(vcf)		((uint32_t)(vcf)&ULONG_C(0x0fffffff))
+
+/*
+ *  æ¡å¼µããã
+ */
+
+typedef struct t_ip6_ext_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ã	*/
+	} T_IP6_EXT_HDR;
+
+/*
+ *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ããã
+ */
+
+typedef struct t_ip6_hbh_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
+					 * ãã®ãªãã·ã§ã³ãããå
+¨ä½ã®ãªã¯ãããæ°ã
+					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
+¥ãã
+					 */
+	} T_IP6_HBH_HDR;
+
+/*
+ *  çµç¹ (Destination) ãªãã·ã§ã³ããã
+ */
+
+typedef struct t_ip6_dest_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
+					 * ãã®ãªãã·ã§ã³ãããå
+¨ä½ã®ãªã¯ãããæ°ã
+					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
+¥ãã
+					 */
+	} T_IP6_DEST_HDR;
+
+/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ */
+
+#define IP6OPT_PAD1		UINT_C(0x00)	/* 00 0 00000 */
+#define IP6OPT_PADN		UINT_C(0x01)	/* 00 0 00001 */
+#define IP6OPT_JUMBO		UINT_C(0xc2)	/* 11 0 00010 */
+#define IP6OPT_NSAP_ADDR	UINT_C(0xc3)	/* 11 0 00011 */
+#define IP6OPT_TUNNEL_LIMIT	UINT_C(0x04)	/* 00 0 00100 */
+#define IP6OPT_RTR_ALERT	UINT_C(0x05)	/* 00 0 00101 */
+
+#define IP6OPT_MINLEN		2	/* ãªãã·ã§ã³ã®æç­é·		*/
+
+/* æªç¥ã®ãªãã·ã§ã³ã®å¦çã®æå® */
+
+#define IP6OPT_TYPE_SKIP	UINT_C(0x00)	/* ç¡è¦ããã			*/
+#define IP6OPT_TYPE_DISCARD	UINT_C(0x40)	/* ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
+#define IP6OPT_TYPE_FORCEICMP	UINT_C(0x80)	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+#define IP6OPT_TYPE_ICMP	UINT_C(0xc0)
+		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+
+#define IP6OPT_TYPE(o)		((o)&UINT_C(0xc0))
+
+/*
+ *  çµè·¯å¶å¾¡ããã
+ */
+
+typedef struct t_ip6_rt_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
+					 * ãã®ãªãã·ã§ã³ãããå
+¨ä½ã®ãªã¯ãããæ°ã
+					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
+¥ãã
+					 */
+	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
+	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
+	} T_IP6_RT_HDR;
+
+/*
+ *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ããã
+ */
+
+typedef struct t_ip6_rt0_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		len;		/* 8 ãªã¯ãããåä½ã®é·ãããã ãã
+					 * ãã®ãªãã·ã§ã³ãããå
+¨ä½ã®ãªã¯ãããæ°ã
+					 * 8 ã§å²ã£ãå¤ã® - 1 ãå
+¥ãã
+					 */
+	uint8_t		type;		/* çµè·¯å¶å¾¡ã¿ã¤ã		*/
+	uint8_t		segleft;	/* ã»ã°ã¡ã³ãã®æ®ã		*/
+	uint32_t	reserved;	/* äºç´				*/
+	} T_IP6_RT0_HDR;
+
+/*
+ *  æ­çããã
+ */
+
+typedef struct t_ip6_frag_hdr {
+	uint8_t		next;		/* Next Header			*/
+	uint8_t		reserved;
+	uint16_t	off_flag;	/* ãªãã»ããã¨ãã©ã°		*/
+	uint32_t	ident;		/* åå²è­å¥å­			*/
+	} T_IP6_FRAG_HDR;
+
+/* æ­çãããã®ãªãã»ããã¨ãã©ã° */
+
+#ifdef _NET_CFG_BYTE_ORDER
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+#define IP6F_OFF_MASK		UINT_C(0xfff8)		/* ãªãã»ãããååºããã¹ã¯	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0006)		/* äºç´ãååºããã¹ã¯		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0001)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
+
+#define IP6F_OFF_MASK		UINT_C(0xf8ff)		/* ãªãã»ãããååºããã¹ã¯	*/
+#define IP6F_RESERVED_MASK	UINT_C(0x0600)		/* äºç´ãååºããã¹ã¯		*/
+#define IP6F_MORE_FRAG		UINT_C(0x0100)		/* ä¸­éãã©ã°ã¡ã³ã		*/
+
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#endif	/* of #ifdef _NET_CFG_BYTE_ORDER */
+
+/*
+ *  å¶éå¤
+ */
+
+#define IPV6_MAXHLIM	UINT_C(255)	/* ããããªãããã®æå¤§å¤				*/
+#define IPV6_DEFHLIM	UINT_C(64)	/* ããããªãããã®è¦å®å¤				*/
+#define IPV6_FRAGTTL	UINT_C(60)	/* åå²ããããã¼ã¿ã°ã©ã ã®çå­æéï¼ç§ï¼	*/
+#define IPV6_MMTU	UINT_C(1280)	/* æå° MTUããã¤ã­ã¼ã (1024) + ããã (256)	*/
+#define IPV6_MAXPACKET	UINT_C(65535)	/* ã¸ã£ã³ããã¤ã­ã¼ããé¤ãæå¤§ãã±ãããµã¤ãº	*/
+
+/*
+ *  IPv6 ã¨ IPv4 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ */
+
+/*
+ *  ããããªãããã®è¦å®å¤ã¯ãã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ããã
+ */
+
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+
+#define IP6_DEFTTL	ip6_defhlim
+
+#else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+
+#define IP6_DEFTTL	IPV6_DEFHLIM
+
+#endif	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+/* IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­ */
+
+#ifdef _IP6_CFG
+
+#define IP_HDR_SIZE	IP6_HDR_SIZE
+#define T_IP_HDR	T_IP6_HDR
+#define IP_DEFTTL	IP6_DEFTTL
+
+#endif	/* of #ifdef _IP6_CFG */
+
+#endif	/* of #ifndef _IP6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.c	(revision 313)
@@ -0,0 +1,475 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_icmp.c	8.2 (Berkeley) 1/4/94
+ * $FreeBSD: src/sys/netinet/ip_icmp.c,v 1.33.2.3 1999/10/14 11:49:38 des Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/icmp_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp_var.h>
+
+#include <net/if_var.h>
+
+#if defined(_IP4_CFG)
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+T_ICMP_STATS icmp_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  é¢æ°
+ */
+
+static void icmp_echo (T_NET_BUF *input, uint_t ihoff);
+static void icmp_unreach (T_NET_BUF *input, uint_t ihoff);
+
+#if defined(NUM_REDIRECT_ROUTE_ENTRY)
+#if NUM_REDIRECT_ROUTE_ENTRY > 0
+
+static void icmp_redirect (T_NET_BUF *input, uint_t ihoff);
+
+#endif	/* of #if NUM_REDIRECT_ROUTE_ENTRY > 0 */
+#endif	/* of #if defined(NUM_REDIRECT_ROUTE_ENTRY) */
+
+/*
+ *  icmp_echo -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ */
+
+static void
+icmp_echo (T_NET_BUF *input, uint_t ihoff)
+{
+	T_IP4_HDR	*ip4h;
+	T_ICMP4_HDR	*icmp4h;
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	NET_COUNT_MIB(icmp_stats.icmpInEchos, 1);
+
+	/* IPv4 ã¢ãã¬ã¹ãæªå®ç¾©ã®æã¯å¿ç­ããªãã*/
+	if (!IN4_IS_ADDR_ANY(&ifp->in4_ifaddr.addr)) {
+
+		/*
+		 *  ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (8) ãã
+		 *  ã¨ã³ã¼å¿ç­ (0) ã«å¤æ´ãã¦éãè¿ãã
+		 */
+
+		icmp4h = GET_ICMP4_HDR(input, ihoff);
+		icmp4h->type = ICMP4_ECHO_REPLY;
+
+		/*
+		 *  å®å
+ã¢ãã¬ã¹ã¯åä¿¡ããã¡ãã»ã¼ã¸ã®éä¿¡å
+ã¢ãã¬ã¹ã
+		 *  éä¿¡å
+ã¢ãã¬ã¹ã¯èª IPv4 ã¢ãã¬ã¹ã
+		 */
+		ip4h      = GET_IP4_HDR(input);
+		ip4h->dst = ip4h->src;
+		ip4h->src = htonl(ifp->in4_ifaddr.addr);
+
+		/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+		icmp4h->sum = 0;
+		icmp4h->sum = in_cksum(icmp4h,
+		                       (uint_t)(((input->len - GET_IF_IP4_HDR_SIZE(input)) + 3) >> 2 << 2));
+
+		/* éä¿¡ããã*/
+		NET_COUNT_ICMP4(net_count_icmp4.out_octets,
+		               input->len - GET_IF_IP4_HDR_SIZE(input));
+		NET_COUNT_ICMP4(net_count_icmp4.out_packets, 1);
+		NET_COUNT_MIB(icmp_stats.icmpOutMsgs, 1);
+		NET_COUNT_MIB(icmp_stats.icmpOutEchoReps, 1);
+		ip_output(input, TMO_ICMP_OUTPUT);
+		}
+	}
+
+/*
+ *  icmp_unreach -- ICMP4_UNREACH ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static const int8_t code2error[] = {
+	EV_HURCH,	/* ICMP4_UNREACH_NET			 0 */
+	EV_HURCH,	/* ICMP4_UNREACH_HOST			 1 */
+	EV_CNNRF,	/* ICMP4_UNREACH_PROTOCOL		 2 */
+	EV_CNNRF,	/* ICMP4_UNREACH_PORT			 3 */
+	EV_MSIZE,	/* ICMP4_UNREACH_FLAG			 4 */
+	EV_HURCH,	/* ICMP4_UNREACH_SRC_FAIL		 5 */
+	EV_HURCH,	/* ICMP4_UNREACH_NET_UNKNOWN		 6 */
+	EV_HURCH,	/* ICMP4_UNREACH_HOST_UNKNOWN		 7 */
+	EV_HURCH,	/* ICMP4_UNREACH_ISOLATED		 8 */
+	EV_HURCH,	/* ICMP4_UNREACH_NET_PROHIB		 9 */
+	EV_HURCH,	/* ICMP4_UNREACH_HOST_PROHIB		10 */
+	EV_HURCH,	/* ICMP4_UNREACH_TOS_NET		11 */
+	EV_HURCH,	/* ICMP4_UNREACH_TOS_HOST		12 */
+	EV_HURCH,	/* ICMP4_UNREACH_FILTER_PROHIB		13 */
+	EV_HURCH,	/* ICMP4_UNREACH_HOST_PRECEDENCE	14 */
+	EV_HURCH,	/* ICMP4_UNREACH_PRECEDENCE_CUTOFF	15 */
+	};
+
+static void
+icmp_unreach (T_NET_BUF *input, uint_t ihoff)
+{
+	T_IP4_HDR	*ip4h;
+	uint8_t		code;
+	ER		error;
+
+	NET_COUNT_MIB(icmp_stats.icmpInDestUnreachs, 1);
+
+	ip4h   = (T_IP4_HDR*)GET_ICMP4_SDU(input, ihoff);
+	code  = GET_ICMP4_HDR(input, ihoff)->code;
+	error = code2error[code];
+
+	/* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/
+	if (ip4h->proto == IPPROTO_TCP || ip4h->proto == IPPROTO_UDP) {
+
+		memcpy(GET_IP4_HDR(input), ip4h, input->len - (IP4_HDR_SIZE + ICMP4_HDR_SIZE));
+		input->len -= IP4_HDR_SIZE + ICMP4_HDR_SIZE;
+
+#if defined(SUPPORT_TCP)
+
+		if (ip4h->proto == IPPROTO_TCP)
+			tcp_notify(input, error);
+
+#endif	/* of #if defined(SUPPORT_TCP) */
+
+#if defined(SUPPORT_UDP) && TNUM_UDP4_CEPID > 0
+
+		if (ip4h->proto == IPPROTO_UDP)
+			udp4_notify(input, error);
+
+#endif	/* of #if defined(SUPPORT_UDP) && TNUM_UDP4_CEPID > 0 */
+
+		}
+	else
+		syslog(LOG_NOTICE, "[ICMP] error, code: %d.", code);
+	}
+
+#if defined(NUM_REDIRECT_ROUTE_ENTRY)
+#if NUM_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  icmp_redirect -- åãç´ãã¡ãã»ã¼ã¸ãåä¿¡ããã¨ãã®å¦ç
+ *
+ *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ */
+
+static void
+icmp_redirect (T_NET_BUF *input, uint_t ihoff)
+{
+	T_IP4_HDR	*ip4h, *sip4h;
+	T_ICMP4_HDR	*icmp4h;
+
+	ip4h   = GET_IP4_HDR(input);
+	icmp4h = GET_ICMP4_HDR(input, ihoff);
+	sip4h  = (T_IP4_HDR *)GET_ICMP4_SDU(input, ihoff);
+
+	/*
+	 *  å
+å®¹ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
+	 *
+	 *    ã»ICMP ã³ã¼ãããICMP4_REDIRECT_PORT_AND_HOST (3) ä»¥ä¸
+	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå°é·ããç­ã (IP ããã + ICMP ããã + IP ããã + 8)
+	 *    ã»ãã¼ã¿ã°ã©ã é·ããICMP ã®æå¤§é·ããç­ã
+	 *    ã»
+	 */
+	if (icmp4h->code > ICMP4_REDIRECT_PORT_AND_HOST ||
+	    ip4h->len < GET_IP4_ICMP4_HDR_SIZE(input) + 8 + IP4_HDR_SIZE ||
+	    ip4h->len < GET_IP4_ICMP4_HDR_SIZE(input) + 8 + (IP4_VHL_HL(sip4h->vhl) << 2)) {
+		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
+		return;
+		}
+
+	in4_rtredirect(icmp4h->data.addr, sip4h->dst, IN_RTF_REDIRECT, TMO_IN_REDIRECT);
+	}
+
+#endif	/* of #if NUM_REDIRECT_ROUTE_ENTRY > 0 */
+#endif	/* of #if defined(NUM_REDIRECT_ROUTE_ENTRY) */
+
+/*
+ *  icmp_input -- ICMP ã®å
+¥åé¢æ°
+ *
+ *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ */
+
+uint_t
+icmp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_ICMP4_HDR	*icmp4h;
+	T_IN4_ADDR	addr;
+	uint_t		len, align;
+
+	NET_COUNT_ICMP4(net_count_icmp4.in_octets,
+	               input->len - GET_IF_IP4_HDR_SIZE(input));
+	NET_COUNT_ICMP4(net_count_icmp4.in_packets, 1);
+
+	/* ICMP ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < IF_IP4_ICMP4_HDR_SIZE) {
+		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
+		NET_COUNT_MIB(icmp_stats.icmpInErrors, 1);
+		goto buf_rel;
+		}
+
+	icmp4h = (T_ICMP4_HDR *)(input->buf + *offp);
+
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	len   = input->len - *offp;
+	align = (len + 3) >> 2 << 2;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset((uint8_t*)input->buf + input->len, 0, (size_t)(align - len));
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	if (in_cksum(icmp4h, align) != 0) {
+		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
+		goto buf_rel;
+		}
+
+	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	switch (icmp4h->type) {
+	case ICMP4_ECHO_REQUEST:
+		icmp_echo(input, *offp);
+		return IPPROTO_DONE;
+		break;
+	case ICMP4_ECHO_REPLY:
+
+#if defined(SUPPORT_INET4) && defined(ICMP_CFG_CALLBACK_ECHO_REPLY)
+
+		icmp_echo_reply(input, *offp);
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(ICMP_CFG_CALLBACK_ECHO_REPLY) */
+
+		break;
+	case ICMP4_UNREACH:
+		icmp_unreach(input, *offp);
+		break;
+	case ICMP4_REDIRECT:
+
+#if defined(NUM_REDIRECT_ROUTE_ENTRY)
+#if NUM_REDIRECT_ROUTE_ENTRY > 0
+
+		addr = ntohl(icmp4h->data.addr);
+		syslog(LOG_INFO, "[ICMP] redirect, addr: %s.", ip2str(NULL, &addr));
+		icmp_redirect(input, *offp);
+
+#else	/* of #if NUM_REDIRECT_ROUTE_ENTRY > 0 */
+
+		addr = ntohl(icmp4h->data.addr);
+		syslog(LOG_INFO, "[ICMP] redirect ignored, addr: %s.", ip2str(NULL, &addr));
+
+#endif	/* of #if NUM_REDIRECT_ROUTE_ENTRY > 0 */
+#else	/* of #if defined(NUM_REDIRECT_ROUTE_ENTRY) */
+
+		addr = ntohl(icmp4h->data.addr);
+		syslog(LOG_INFO, "[ICMP] redirect ignored, addr: %s.", ip2str(NULL, &addr));
+
+#endif	/* of #if defined(NUM_REDIRECT_ROUTE_ENTRY) */
+
+		break;
+	default:
+		syslog(LOG_INFO, "[ICMP] unknown type: %d.", icmp4h->type);
+		NET_COUNT_ICMP4(net_count_icmp4.in_err_packets, 1);
+		break;
+		}
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+#ifdef ICMP_REPLY_ERROR
+
+/*
+ *  icmp_error -- ICMP ã¨ã©ã¼éä¿¡é¢æ°ã
+ *
+ *    input ã«ã¯ IF ãããã¨ IP ããããå«ã¾ãã¦ããã
+ *    icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ã
+ *    å¼åºãå´ã§ãéæ¾ãã¦ããçµäºããã	
+ */
+
+void
+icmp_error (uint8_t code, T_NET_BUF *input)
+{
+	T_IP4_HDR	*ip4h;
+	T_ICMP4_HDR	*icmp4h;
+	T_NET_BUF	*output;
+	T_IN4_ADDR	saddr;
+	uint_t		len, ip4hl, align;
+
+	ip4h  = GET_IP4_HDR(input);
+	ip4hl = GET_IP4_HDR_SIZE(input);
+
+	/* éä¿¡ç¨ã® IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	if (input->len - ip4hl < 8)
+		len = input->len - ip4hl;
+	else
+		len = 8;
+	
+	saddr = ntohl(ip4h->src);
+	if (in4_get_datagram(&output, (uint_t)(ICMP4_HDR_SIZE + ip4hl + len), 0,
+	                     &saddr, NULL, IPPROTO_ICMP, IP4_DEFTTL, 
+	                     NBA_SEARCH_ASCENT, TMO_ICMP_OUTPUT) != E_OK)
+		return;
+
+	/* ICMP ããããè¨­å®ããã*/
+	icmp4h		= GET_ICMP4_HDR(output, IF_IP4_ICMP4_HDR_OFFSET);
+	icmp4h->type	= ICMP4_UNREACH;
+	icmp4h->code	= code;
+	icmp4h->data.addr= 0;
+
+	/* ã¨ã©ã¼ãçºçãã IP ãããã¨ ãã¼ã¿ 8 ãªã¯ããããã³ãã¼ããã*/
+	memcpy(GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET),
+	       GET_IP4_HDR(input), (size_t)(ip4hl + len));
+
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	align = (len + 3) >> 2 << 2;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset((uint8_t*)GET_ICMP4_SDU(output, IF_IP4_ICMP4_HDR_OFFSET) + ip4hl + len,
+		       0, (size_t)(align - len));
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	icmp4h->sum = 0;
+	icmp4h->sum = in_cksum(icmp4h, (uint_t)(ICMP4_HDR_SIZE + ip4hl + align));
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP4(net_count_icmp4.out_octets,
+	               output->len - GET_IF_IP4_HDR_SIZE(output));
+	NET_COUNT_ICMP4(net_count_icmp4.out_packets, 1);
+	NET_COUNT_MIB(icmp_stats.icmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp_stats.icmpOutDestUnreachs, 1);
+	ip_output(output, TMO_ICMP_OUTPUT);
+	}
+
+#endif	/* of #ifdef ICMP_REPLY_ERROR */
+
+#endif	/* of #if defined(_IP4_CFG) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_icmp.h	(revision 313)
@@ -0,0 +1,200 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_icmp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/ip_icmp.h,v 1.12.2.2 1999/11/18 08:51:44 peter Exp $
+ */
+ 
+#ifndef _IP_ICMP_H_
+#define _IP_ICMP_H_
+
+#include <netinet/icmp6.h>
+
+/*
+ *  ICMP ãããã®å®ç¾©ãRFC 792
+ */
+
+typedef struct t_icmp_hdr {
+	uint8_t		type;		/* ã¡ãã»ã¼ã¸ã®å	*/
+	uint8_t		code;		/* ãµãå		*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	union {
+		struct id_seq {
+			uint16_t	id;
+			uint16_t	seq;
+			} id_seq;
+		T_IN4_ADDR	addr;
+		} data;
+	} T_ICMP4_HDR;
+
+#define ICMP4_HDR_SIZE			(sizeof(T_ICMP4_HDR))
+#define IP4_ICMP4_HDR_SIZE		(IP4_HDR_SIZE + ICMP4_HDR_SIZE)
+#define IF_IP4_ICMP4_HDR_SIZE		(IF_IP4_HDR_SIZE + ICMP4_HDR_SIZE)
+#define IF_IP4_ICMP4_HDR_OFFSET		(IF_IP4_HDR_SIZE)
+
+#define GET_ICMP4_HDR(nbuf,ihoff)	((T_ICMP4_HDR*)((uint8_t*)((nbuf)->buf) + ihoff))
+#define GET_ICMP4_SDU(nbuf,ihoff)	((uint8_t*)((nbuf)->buf) + ihoff + ICMP4_HDR_SIZE)
+
+#define GET_ICMP4_HDR_OFFSET(nbuf)	(GET_IF_IP4_HDR_SIZE(nbuf))
+
+#define GET_IP4_ICMP4_HDR_SIZE(nbuf)	(GET_IP4_HDR_SIZE(nbuf) + ICMP4_HDR_SIZE)
+#define GET_IF_IP4_ICMP4_HDR_SIZE(nbuf)	(IF_HDR_SIZE + GET_IP4_ICMP4_HDR_SIZE(nbuf))
+
+/*
+ *  ã¡ãã»ã¼ã¸ã®å
+ */
+
+#define ICMP4_ECHO_REPLY	UINT_C(0)	/* ã¨ã³ã¼å¿ç­		*/
+#define ICMP4_UNREACH		UINT_C(3)	/* ã¨ã©ã¼		*/
+#define ICMP4_SOURCE_QUENCH	UINT_C(4)	/* çºä¿¡å¶é		*/
+#define ICMP4_REDIRECT		UINT_C(5)	/* æ¹åå¤æ´		*/
+#define ICMP4_ECHO_REQUEST	UINT_C(8)	/* ã¨ã³ã¼è¦æ±		*/
+#define ICMP4_TIME_EXCEEDED	UINT_C(11)	/* çºä¿¡å¶é		*/
+#define ICMP4_PARAMETER		UINT_C(12)	/* ãã©ã¡ã¼ã¿ç°å¸¸	*/
+#define ICMP4_TIME_REQUEST	UINT_C(13)	/* ã¿ã¤ã ã¹ã¿ã³ãè¦æ±	*/
+#define ICMP4_TIME_REPLY	UINT_C(14)	/* ã¿ã¤ã ã¹ã¿ã³ãå¿ç­	*/
+#define ICMP4_MASK_REQUEST	UINT_C(17)	/* ã¢ãã¬ã¹ãã¹ã¯è¦æ±	*/
+#define ICMP4_MASK_REPLY	UINT_C(18)	/* ã¢ãã¬ã¹ãã¹ã¯å¿ç­	*/
+
+/*
+ *  ãµãå
+ */
+
+/* ICMP4_UNREACH (3)	*/
+
+#define ICMP4_UNREACH_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
+#define ICMP4_UNREACH_HOST		UINT_C(1)	/* ãã¹ã		*/
+#define ICMP4_UNREACH_PROTOCOL		UINT_C(2)	/* ãã­ãã³ã«		*/
+#define ICMP4_UNREACH_PORT		UINT_C(3)	/* ãã¼ã		*/
+#define ICMP4_UNREACH_FLAG		UINT_C(4)	/* åå²			*/
+#define ICMP4_UNREACH_SRC_FAIL		UINT_C(5)	/* ã½ã¼ã¹çµè·¯		*/
+#define ICMP4_UNREACH_NET_UNKNOWN	UINT_C(6)	/* ãããã¯ã¼ã¯ä¸æ	*/
+#define ICMP4_UNREACH_HOST_UNKNOWN	UINT_C(7)	/* ãã¹ãä¸æ		*/
+#define ICMP4_UNREACH_ISOLATED		UINT_C(8)	/* åé¢			*/
+#define ICMP4_UNREACH_NET_PROHIB	UINT_C(9)	/* 			*/
+#define ICMP4_UNREACH_HOST_PROHIB	UINT_C(10)	/* 			*/
+#define ICMP4_UNREACH_TOS_NET		UINT_C(11)	/* ãããã¯ã¼ã¯ã¸ã®ä¸æ­£TOS*/
+#define ICMP4_UNREACH_TOS_HOST		UINT_C(12)	/* ãã¹ãã¸ã®ä¸æ­£TOS	*/
+#define ICMP4_UNREACH_FILTER_PROHIB	UINT_C(13)	/* 			*/
+#define ICMP4_UNREACH_HOST_PRECEDENCE	UINT_C(14)	/* 			*/
+#define ICMP4_UNREACH_PRECEDENCE_CUTOFF	UINT_C(15)	/* 			*/
+
+/* ICMP4_REDIRECT (5)	*/
+
+#define ICMP4_REDIRECT_NET		UINT_C(0)	/* ãããã¯ã¼ã¯		*/
+#define ICMP4_REDIRECT_HOST		UINT_C(1)	/* ãã¹ã		*/
+#define ICMP4_REDIRECT_PORT_AND_NET	UINT_C(2)	/* ãã¼ãçªå·ã¨ããã	*/
+#define ICMP4_REDIRECT_PORT_AND_HOST	UINT_C(3)	/* ãã¼ãçªå·ã¨ãã¹ã	*/
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#ifndef ICMP_REPLY_ERROR
+
+#define _tinet_icmp_error(code,data)
+
+#endif	/* of #ifdef ICMP_REPLY_ERROR */
+
+/*
+ *  é¢æ°
+ */
+
+extern uint_t icmp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+
+#ifdef ICMP_REPLY_ERROR
+
+extern void icmp_error (uint8_t code, T_NET_BUF *data);
+
+#endif	/* of #ifdef ICMP_REPLY_ERROR */
+
+/*
+ *  TINET ç¬èª API
+ */
+
+#ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
+
+extern void icmp_echo_reply (T_NET_BUF *input, uint_t ihoff);
+
+#endif	/* of #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY */
+
+#endif	/* of #ifndef _IP_ICMP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_input.c	(revision 313)
@@ -0,0 +1,599 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)input.c	8.2 (Berkeley) 1/4/94
+ * $FreeBSD: src/sys/netinet/input.c,v 1.111.2.4 1999/11/01 22:23:53 des Exp $
+ *	$ANA: input.c,v 1.5 1996/09/18 14:34:59 wollman Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#if defined(SUPPORT_IPSEC)
+//#include <stdio.h>
+#include <sys/types.h>
+#include <netinet6/ipsec.h>
+#include <netinet6/esp.h>
+#include <netkey/key.h>
+#include <netkey/key_debug.h>
+#endif /* of defined(SUPPORT_IPSEC) */
+
+#include <net/if_var.h>
+
+#if defined(_IP4_CFG)
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+T_IP_STATS ip_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+#ifdef IP4_CFG_FRAGMENT
+
+/*
+ *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼
+ */
+
+static T_NET_BUF	*ip_frag_queue[NUM_IP4_FRAG_QUEUE];
+static T_IN4_ADDR	    frag_dst  [NUM_IP4_FRAG_QUEUE];
+
+/*
+ *  é¢æ°
+ */
+
+static void ip_freef (int_t ix);
+static T_NET_BUF *ip_reass (T_IP4_HDR *ip4h, T_NET_BUF *input);
+
+/*
+ *  ip_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ */
+
+const T_NET_BUF **
+ip_get_frag_queue (void)
+{
+	return (const T_NET_BUF **)ip_frag_queue;
+	}
+
+/*
+ *  ip_freef -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ */
+
+static void
+ip_freef (int_t ix)
+{
+	T_NET_BUF	*frag, *next;
+
+	frag = ip_frag_queue[ix];
+	while (frag != NULL) {
+		next = GET_QIP4_HDR(frag)->next;
+		syscall(rel_net_buf(frag));
+		frag = next;
+		}
+	ip_frag_queue[ix] = NULL;
+	}
+
+/*
+ *  ip_frag_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ */
+
+void
+ip_frag_timer (void)
+{
+	T_NET_BUF	*frag;
+	int_t		ix;
+
+	syscall(wai_sem(SEM_IP4_FRAG_QUEUE));
+	for (ix = NUM_IP4_FRAG_QUEUE; ix -- > 0; ) {
+		frag = ip_frag_queue[ix];
+		if (frag != NULL && GET_QIP4_HDR(frag)->ttl > 0 &&
+		    -- GET_QIP4_HDR(frag)->ttl == 0) {
+			NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_TMOUT], 1);
+			NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_DROP], 1);
+			ip_freef(ix);
+			}
+		}
+	syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
+	}
+
+/*
+ *  ip_reass -- ãã¼ã¿ã°ã©ã ãåæ§æããã
+ */
+
+static T_NET_BUF *
+ip_reass (T_IP4_HDR *ip4h, T_NET_BUF *input)
+{
+	T_NET_BUF	*frag, *prev;
+	T_IN4_ADDR	dst, src;
+	int_t		ix;
+	uint_t		id, off, len;
+
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_FRAGS], 1);
+	NET_COUNT_MIB(ip_stats.ipReasmReqds, 1);
+
+	src = ntohl(ip4h->src);
+	dst = ntohl(ip4h->dst);
+	NTOHS(ip4h->id);
+	NTOHS(ip4h->flg_off);
+	id = ip4h->id;
+	ix = id % NUM_IP4_FRAG_QUEUE;
+
+	syscall(wai_sem(SEM_IP4_FRAG_QUEUE));
+
+	/*
+	 *  IDãIPã¢ãã¬ã¹ãä¸ä½ãã­ãã³ã«ãç°ãªããã©ã°ã¡ã³ããã­ã¥ã¼ã«æãã°ç ´æ£ããã
+	 */
+	frag = ip_frag_queue[ix];
+	if (frag != NULL &&
+	    (id  != GET_IP4_HDR(frag)->id  ||
+	     dst != frag_dst[ix] ||
+	     src != ntohl(GET_IP4_HDR(frag)->src) ||
+	     ip4h->proto != GET_IP4_HDR(frag)->proto)) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_DROP], 1);
+		NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
+		ip_freef(ix);
+		}
+
+	frag = ip_frag_queue[ix];
+	if (frag == NULL) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN], 1);
+
+		/* æ°è¦ã® ID ãªããå®å
+ã¢ãã¬ã¹ãä¿å­ãã¦ãã­ã¥ã¼ã«ã¤ãªãã*/
+		frag_dst  [ix] = dst;
+		ip_frag_queue[ix] = input;
+		((T_QIP4_HDR *)ip4h)->next = NULL;
+		input = NULL;
+
+		/* åæ§æã¿ã¤ã ã¢ã¦ããè¨­å®ããã*/
+		ip4h->ttl = IP4_FRAGTTL;
+		}
+	else {
+
+		/* æ­£ããä½ç½®ã«æ¿å
+¥ããã*/
+		prev = NULL;
+		while (frag != NULL &&
+		       IP4_FLGOFF_OFF(ip4h->flg_off) >
+		       IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off)) {
+			prev = frag;
+			frag = GET_QIP4_HDR(frag)->next;
+			}
+		((T_QIP4_HDR *)ip4h)->next = frag;
+		if (prev == NULL) {
+			ip4h->ttl      = GET_QIP4_HDR(frag)->ttl;
+			ip_frag_queue[ix] = input;
+			}
+		else
+			GET_QIP4_HDR(prev)->next = input;
+		input = NULL;
+
+		/* å
+¨ã¦ã®ãã©ã°ã¡ã³ããæã£ã¦ãããèª¿ã¹ãã*/
+		off = 0;
+		for (frag = ip_frag_queue[ix]; frag != NULL; frag = GET_QIP4_HDR(frag)->next) {
+			if ((IP4_FLGOFF_OFF(GET_QIP4_HDR(frag)->flg_off) << 3) != off) {
+				/* éä¸­ãæãã¦ãããçµäºããã*/
+				syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
+				return NULL;
+				}
+			off += ntohs(GET_QIP4_HDR(frag)->len) - (IP4_VHL_HL(GET_QIP4_HDR(frag)->vhl) << 2);
+			prev = frag;				
+			}
+
+		/* å
+¨ã¦ã®ãã©ã°ã¡ã³ããæã£ããåæ§æããã*/
+		if ((GET_QIP4_HDR(prev)->flg_off & IP4_MF) == 0) {
+
+			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			if (tget_net_buf(&input, IF_IP4_HDR_SIZE + off, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_OK], 1);
+				NET_COUNT_MIB(ip_stats.ipReasmOKs, 1);
+
+				/* IPv4 ããããè¨­å®ããã*/
+				frag  = ip_frag_queue[ix];
+				ip4h  = GET_IP4_HDR(input);
+				*ip4h = *GET_IP4_HDR(frag);
+				ip4h->dst     = htonl(frag_dst[ix]);
+				ip4h->len     = htons(IP4_HDR_SIZE + off);
+				ip4h->vhl     = IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
+				ip4h->ttl     = GET_QIP4_HDR(prev)->ttl;
+				ip4h->flg_off = ip4h->id = 0;
+
+				/* ãã¼ã¿ã°ã©ã ãåæ§æããã*/
+				off = IP4_HDR_SIZE;
+				while (frag != NULL) {
+					len = ntohs(GET_QIP4_HDR(frag)->len) - (IP4_VHL_HL(GET_QIP4_HDR(frag)->vhl) << 2);
+					memcpy((uint8_t *)ip4h + off, GET_QIP4_SDU(frag), len);
+					off += len;
+					frag = GET_QIP4_HDR(frag)->next;
+					}
+				}
+			else {
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_NO_BUF], 1);
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_IN_DROP], 1);
+				NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
+				}
+			/* ã­ã¥ã¼ãç©ºã«ããã*/
+			ip_freef(ix);
+			}
+		}
+	syscall(sig_sem(SEM_IP4_FRAG_QUEUE));
+	return input;
+	}
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+/*
+ *  ip_init -- IP ã®åæå
+ */
+
+void
+ip_init (void)
+{
+	in4_init();
+	}
+
+/*
+ *  ip_remove_options -- IPv4 ãããã®ãªãã·ã§ã³ãåé¤ããä»¥éãåã«è©°ããã
+ */
+
+ER
+ip_remove_options (T_NET_BUF *nbuf)
+{
+	T_IP4_HDR	*iph;
+	uint_t		hdr_size;
+
+	iph  = GET_IP4_HDR(nbuf);
+	hdr_size = GET_IP4_HDR_SIZE(nbuf);
+
+	if (hdr_size > IP4_HDR_SIZE) {
+		memmove((char *)iph + IP4_HDR_SIZE, GET_IP4_SDU(nbuf),
+		        (size_t)(iph->len - hdr_size));
+		iph->vhl   = IP4_MAKE_VHL(IPV4_VERSION, IP4_HDR_SIZE >> 2);
+		iph->len  -= (uint16_t)(hdr_size - IP4_HDR_SIZE);
+		nbuf->len -= (uint16_t)(hdr_size - IP4_HDR_SIZE);
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  ip_input -- IP ã®å
+¥åé¢æ°
+ */
+
+#if defined(SUPPORT_IPSEC)
+/*
+ * TODO: IPsec SPãæ¤ç´¢ãããã±ããããªã¸ã§ã¯ããããã©ããå¤å®ããå¦çãå®è£
+ãã
+ */
+#endif /* of defined(SUPPORT_IPSEC) */
+
+void
+ip_input (T_NET_BUF *input)
+{
+	T_IP4_HDR	*ip4h;
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN4_ADDR	dst, src, bc;
+	uint_t		hlen, off;
+
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_OCTETS], input->len - IF_HDR_SIZE);
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_PACKETS], 1);
+	NET_COUNT_MIB(ip_stats.ipInReceives, 1);
+
+	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < IF_IP4_HDR_SIZE) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
+		NET_COUNT_MIB(ip_stats.ipInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	ip4h = GET_IP4_HDR(input);
+	hlen = GET_IP4_HDR_SIZE(input);
+
+	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	if (IP4_VHL_V(ip4h->vhl) != IPV4_VERSION) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_VER], 1);
+		NET_COUNT_MIB(ip_stats.ipInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	/* IP ãããã®é·ãããã§ãã¯ãããªãã·ã§ã³ãè§£æããã*/
+	if (hlen > IP4_HDR_SIZE) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_OPTS], 1);
+		/* %%% ãªãã·ã§ã³ã®è§£æ %%% */
+		}
+
+	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+	if (ntohs(ip4h->len) > input->len - IF_HDR_SIZE) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_SHORT], 1);
+		NET_COUNT_MIB(ip_stats.ipInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	/* ãããã¯ã¼ã¯ãããã¡ã®é·ãããã¼ã¿ã°ã©ã é·ã«èª¿æ´ããã*/
+	input->len = (uint16_t)(ntohs(ip4h->len) + IF_HDR_SIZE);
+
+	/* ãã§ãã¯ãµã ããã§ãã¯ããã*/
+	if (in_cksum(ip4h, hlen) != 0) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_CKSUM], 1);
+		NET_COUNT_MIB(ip_stats.ipInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	/* IP ãããã®é·ãããã§ãã¯ããä¸ä½ã ICMP ä»¥å¤ã¯ãªãã·ã§ã³ãæ¶å»ããã*/
+	if (hlen > IP4_HDR_SIZE && ip4h->proto != IPPROTO_ICMP) {
+		memset((uint8_t*)ip4h + IP4_HDR_SIZE, 0, hlen - IP4_HDR_SIZE);
+		}
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	src = ntohl(ip4h->src);
+	bc  = (ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask;
+
+#ifdef SUPPORT_LOOP
+
+	if (src == bc || src == IPV4_ADDR_BROADCAST || src == IPV4_ADDRANY) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(ip_stats.ipInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#else	/* of #ifdef SUPPORT_LOOP */
+
+	if (src == ifp->in4_ifaddr.addr || src == bc || src == IPV4_ADDR_BROADCAST || src == IPV4_ADDRANY) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(ip_stats.ipInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+	/* ãã¦å
+ã¢ãã¬ã¹ããã§ãã¯ããã*/
+	dst = ntohl(ip4h->dst);
+
+#ifdef DHCP_CFG
+
+	/*
+	 *  DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©ã®
+	 *  å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+	 */
+
+	if ((ifp->in4_ifaddr.addr != IPV4_ADDRANY) &&
+	    (!(dst == ifp->in4_ifaddr.addr || dst == bc ||
+	       dst == IPV4_ADDR_BROADCAST  || dst == IPV4_ADDRANY))) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(ip_stats.ipInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#else	/* of #ifdef DHCP_CFG */
+
+	if (!(dst == ifp->in4_ifaddr.addr || dst == bc ||
+	      dst == IPV4_ADDR_BROADCAST  || dst == IPV4_ADDRANY)) {
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(ip_stats.ipInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#endif	/* of #ifdef DHCP_CFG */
+
+#ifdef IP4_CFG_FRAGMENT
+
+	/* åå²ããã¦ããããã§ãã¯ããã*/
+	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
+		if ((input = ip_reass(ip4h, input)) == NULL)
+			return;
+		}
+
+#else	/* of #ifdef IP4_CFG_FRAGMENT */
+
+	/* åå²ããã¦ããããã§ãã¯ããã*/
+	if (ntohs(ip4h->flg_off) & (IP4_MF | IP4_OFFMASK)) {
+		T_IN4_ADDR	src;
+
+		NET_COUNT_MIB(ip_stats.ipReasmReqds, 1);
+		if ((ntohs(ip4h->flg_off) & IP4_OFFMASK) == 0) {
+			NET_COUNT_MIB(ip_stats.ipReasmFails, 1);
+			}
+		src = ntohl(ip4h->src);
+		syslog(LOG_WARNING, "[IP] flaged src: %s.", ip2str(NULL, &src));
+		goto buf_rel;
+		}
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+	off  = (uint_t)(GET_IP4_SDU(input) - input->buf);
+
+#if defined(SUPPORT_IPSEC)
+	/* ããã§ipsec4_in_rejectãå®è¡ãã */
+	if ((ip4h->proto != IPPROTO_ESP) && ipsec4_in_reject (input)) {
+		goto buf_rel;
+	}
+#endif /* of #if defined(SUPPORT_IPSEC) */
+
+	/* ãã­ãã³ã«ãé¸æãã */
+	switch (ip4h->proto) {
+
+#if defined(SUPPORT_TCP)
+	case IPPROTO_TCP:
+		NET_COUNT_MIB(ip_stats.ipInDelivers, 1);
+		tcp_input(&input, &off, NULL);
+		return;
+		break;
+#endif	/* of #if defined(SUPPORT_TCP) */
+
+#if defined(SUPPORT_UDP) && ( (TNUM_UDP4_CEPID > 0) || \
+                             ((TNUM_UDP6_CEPID > 0) && defined(API_CFG_IP4MAPPED_ADDR)))
+	case IPPROTO_UDP:
+		NET_COUNT_MIB(ip_stats.ipInDelivers, 1);
+		udp4_input(&input, &off, NULL);
+		return;
+		break;
+#endif	/* of #if defined(SUPPORT_UDP) && TNUM_UDP4_CEPID > 0 */
+
+	case IPPROTO_ICMP:
+		NET_COUNT_MIB(ip_stats.ipInDelivers, 1);
+		icmp_input(&input, &off, NULL);
+		return;
+		break;
+
+#if defined(SUPPORT_IPSEC)
+	case IPPROTO_ESP:
+		NET_COUNT_MIB(ip_stats.ipInDelivers, 1);
+		esp4_input(input, &off);
+		return;
+		break;
+#endif /* of #if defined(SUPPORT_IPSEC) */
+
+	default:
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_PROTO], 1);
+		NET_COUNT_MIB(ip_stats.ipInUnknownProtos, 1);
+
+		/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+		if (dst == ifp->in4_ifaddr.addr) {
+			T_IN4_ADDR	src;
+
+			src = ntohl(ip4h->src);
+			syslog(LOG_INFO, "[IP] unexp proto: %d, src=%s.", ip4h->proto, ip2str(NULL, &src));
+			icmp_error(ICMP4_UNREACH_PROTOCOL, input);
+			}
+		/*
+		 *  icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§
+		 *  éæ¾ãã¦ããçµäºããã
+		 */
+		break;
+		}
+
+buf_rel:
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+	}
+
+#endif	/* of #if defined(_IP4_CFG) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_output.c	(revision 313)
@@ -0,0 +1,343 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)output.c	8.3 (Berkeley) 1/21/94
+ * $FreeBSD: src/sys/netinet/output.c,v 1.85.2.4 1999/08/29 16:29:49 peter Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/ppp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+
+#if defined(SUPPORT_IPSEC)
+#include <netinet6/ipsec.h>
+#endif
+
+#if defined(_IP4_CFG)
+
+static uint16_t frag_id = 0;
+
+/*
+ *  IP output -- IP ã®åºåé¢æ°
+ *
+ *    æ³¨æ: ãã¼ã¸ã§ã³ã¨ãããé·ã¯ä¸ä½å±¤ã§è¨­å®ããã
+ */
+
+ER
+ip_output (T_NET_BUF *output, TMO tmout)
+{
+	T_IP4_HDR	*ip4h;
+	ER		error = E_OK;
+	T_IN4_ADDR	gw;
+
+#ifdef SUPPORT_IPSEC
+	T_SECPOLICY* sp;
+	int ipsec_error;
+        int policy;
+#endif /* SUPPORT_IPSEC */
+
+	NET_COUNT_MIB(ip_stats.ipOutRequests, 1);
+
+#ifdef SUPPORT_IPSEC
+        /* XXX: IPsecã®å¦çã¯ãã±ããæ­çåã®åã«è¡ããã */
+
+	/* SPDãåå¾ãã */
+	sp = ipsec4_getpolicybyaddr(output, IPSEC_DIR_OUTBOUND, &ipsec_error);
+	if (sp==NULL) {
+                error = ipsec_error;
+                return error;
+        }
+
+        /* ããªã·ããã§ãã¯ãã*/
+#if 0
+        switch (sp->policy) {
+
+        case IPSEC_POLICY_BYPASS:
+        case IPSEC_POLICY_NONE:
+        case IPSEC_POLICY_TCP:
+                goto skip_ipsec;
+
+                break; /* NOTREACHED */
+
+        case  IPSEC_POLICY_IPSEC:
+                /* XXX: SH2ã§ã¯ããã§illegal Instructionãçºçãããã³ã³ãã¤ã©ã®ãã°? */
+                if (sp->req == NULL) {
+                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        goto bad;
+                }
+                break;
+
+        default:
+                /* ä¸æ­£ãªããªã· */
+                goto bad;
+                break;
+        }
+#else /* 0 */
+        /* XXX: ã³ã³ãã¤ã©ã®ä¸å
+·ååé¿ã®ãã switchãããifæã§æ¸ãç´ãã */
+        policy = sp->spinitb->policy;
+
+        if (policy == IPSEC_POLICY_BYPASS ||
+            policy == IPSEC_POLICY_NONE ||
+            policy == IPSEC_POLICY_TCP)
+                goto skip_ipsec;
+        else if (policy == IPSEC_POLICY_IPSEC) {
+                if (sp->req == NULL)
+                        /* éµäº¤æãã¼ã¢ã³ã«å¯¾ãã¦SAã®åå¾ãè¦æ±ãã */
+                        goto bad;
+        } else
+                goto bad;
+
+#endif /* 0 */
+
+		{
+			T_IPSEC_OUTPUT_STATE state;
+
+			state.m = output;
+			/* XXX: ipsec4_output()å
+ã§ã¯ãip->{len,off}ããããã¯ã¼ã¯ãã¤ããªã¼ãã¨ãã */
+			error = ipsec4_output (&state, sp, 0 /* flags */ );
+			output = state.m;
+
+			if (error) {
+				/* net_buf ã¯ipsec4_outputã«ãã£ã¦æ¢ã«è§£æ¾ããã¦ãã */
+				switch (error) {
+				default:
+					syslog (LOG_NOTICE, "ip_output:%d error", __LINE__);
+				}
+			}
+		}
+
+        /* ipsec4_outputã«å½±é¿ãåããå¤ãæ´æ°ãã */
+        /* XXX: å¿
+è¦ã? */
+
+skip_ipsec:
+#endif /* SUPPORT_IPSEC */
+
+#ifdef IP4_CFG_FRAGMENT
+
+	ip4h = GET_IP4_HDR(output);
+
+	gw = in4_rtalloc(ntohl(ip4h->dst));
+
+	/*
+	 *  ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
+ãã¦ããã°ã
+	 *  åå²ãã¦éä¿¡ããã
+	 */
+	if (ntohs(ip4h->len) > IF_MTU) {
+		T_NET_BUF	*frag;
+		T_IP4_HDR	*fip4h;
+		uint_t		off, hlen, len, flen, align;
+
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_OUT], 1);
+		NET_COUNT_MIB(ip_stats.ipFragCreates, 1);
+
+		len  = ntohs(ip4h->len);
+		off  = hlen = GET_IP4_HDR_SIZE(output);
+		while (off < len) {
+			if (off + (IF_MTU - IP4_HDR_SIZE) < len)
+				flen = IF_MTU - IP4_HDR_SIZE;
+			else
+				flen = len - off;
+
+			/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+			align = (flen + 3) >> 2 << 2;
+
+			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			if (tget_net_buf(&frag, align + IF_IP4_HDR_SIZE, TMO_IP4_FRAG_GET_NET_BUF) == E_OK) {
+
+				/* ãã©ã°ã¡ã³ããã³ãã¼ããã*/
+				memcpy(GET_IP4_SDU(frag), (uint8_t *)ip4h + off, flen);
+
+				/* ããããåããã*/
+				fip4h		= GET_IP4_HDR(frag);
+				*fip4h		= *ip4h;
+				fip4h->flg_off	= htons(IP4_MAKE_FLGOFF(off + flen == len ? 0 : IP4_MF,
+						                       (off - hlen) >> 3));
+				fip4h->len	= htons(flen + IP4_HDR_SIZE);
+				fip4h->id	= htons(frag_id);
+				fip4h->sum	= 0;
+				fip4h->sum	= in_cksum(fip4h, GET_IP4_HDR_SIZE(frag));
+
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_OCTETS], ntohs(fip4h->len));
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_PACKETS], 1);
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_FRAG_OUT_FRAGS], 1);
+
+				IF_SET_PROTO(frag, IF_PROTO_IP);
+				if ((error = IF_OUTPUT(frag, &gw, NULL, tmout)) != E_OK) {
+					syscall(rel_net_buf(output));
+					NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+					NET_COUNT_MIB(ip_stats.ipFragFails, 1);
+					return error;
+					}
+				}
+			else {
+				/* ç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				syscall(rel_net_buf(output));
+				NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+				NET_COUNT_MIB(ip_stats.ipFragFails, 1);
+				return E_NOMEM;
+				}
+
+			off += IF_MTU - IP4_HDR_SIZE;
+			}
+		syscall(rel_net_buf(output));
+		frag_id ++;
+		NET_COUNT_MIB(ip_stats.ipFragOKs, 1);
+		}
+	else {
+
+		/* ããããåããã*/
+		ip4h->id  = htons(frag_id);
+		frag_id ++;
+		ip4h->sum = 0;
+		ip4h->sum = in_cksum(ip4h, GET_IP4_HDR_SIZE(output));
+
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_OCTETS], ntohs(ip4h->len));
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_PACKETS], 1);
+
+		IF_SET_PROTO(output, IF_PROTO_IP);
+		if ((error = IF_OUTPUT(output, &gw, NULL, tmout)) != E_OK)
+			NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+		}
+
+#else	/* of #ifdef IP4_CFG_FRAGMENT */
+
+	ip4h = GET_IP4_HDR(output);
+
+	/* ãã¼ã¿ã°ã©ã ãµã¤ãºããããã¯ã¼ã¯ã® MTU ãè¶
+ãã¦ããã°ã¨ã©ã¼ */
+	if (ntohs(ip4h->len) > IF_MTU)
+		return E_PAR;
+
+	/* ããããåããã*/
+	ip4h->id  = htons(frag_id);
+	frag_id ++;
+	ip4h->sum = 0;
+	ip4h->sum = in_cksum(ip4h, (uint_t)GET_IP4_HDR_SIZE(output));
+
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_OCTETS], ntohs(ip4h->len));
+	NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_PACKETS], 1);
+
+	gw = in4_rtalloc(ntohl(ip4h->dst));
+	IF_SET_PROTO(output, IF_PROTO_IP);
+	if ((error = IF_OUTPUT(output, &gw, NULL, tmout)) != E_OK)
+		NET_COUNT_IP4(net_count_ip4[NC_IP4_OUT_ERR_PACKETS], 1);
+		NET_COUNT_MIB(ip_stats.ipOutDiscards, 1);
+
+#endif	/* of #ifdef IP4_CFG_FRAGMENT */
+
+#ifdef SUPPORT_IPSEC
+	bad:
+#endif /* SUPPORT_IPSEC */
+
+	return error;
+	}
+
+#endif	/* of #if defined(_IP4_CFG) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/ip_var.h	(revision 313)
@@ -0,0 +1,167 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_var.h	8.2 (Berkeley) 1/9/95
+ * $FreeBSD: src/sys/netinet/ip_var.h,v 1.45.2.1 1999/08/29 16:29:51 peter Exp $
+ */
+ 
+#ifndef _IP_VAR_H_
+#define _IP_VAR_H_
+
+#include <netinet/ip4_var.h>
+#include <netinet6/ip6_var.h>
+
+/*
+ *  IPv4 ã¨ IPv6 ãã³ã³ãã¤ã«æã«é¸æããããã®ãã¯ã­
+ */
+
+#define GET_IP_VER(nbuf)		(*(uint8_t*)((nbuf)->buf+IF_HDR_SIZE)>>4)
+
+#if defined(_IP6_CFG)
+
+#if defined(_IP4_CFG)
+
+#define IF_IP_HDR_SIZE(nbuf)		(GET_IP_VER(nbuf)==IPV6_VERSION?IF_IP6_HDR_SIZE:IF_IP4_HDR_SIZE)
+#define IF_IP_NET_HDR_SIZE(addr)	(IN6_IS_ADDR_V4MAPPED(addr)?IF_IP4_HDR_SIZE:IF_IP6_HDR_SIZE)
+
+#define IP_OUTPUT(nbuf,tmout)		(GET_IP_VER(nbuf)==IPV6_VERSION?ip6_output(nbuf,0,tmout):ip_output(nbuf,tmout))
+#define IP_REMOVE_OPTIONS(nbuf)		(GET_IP_VER(nbuf)==IPV6_VERSION?ip6_remove_exthdrs(nbuf):ip_remove_options(nbuf))
+
+#define GET_IP_HDR(nbuf)		(GET_IP_VER(nbuf)==IPV6_VERSION?GET_IP6_HDR(nbuf):GET_IP4_HDR(nbuf))
+#define GET_IP_HDR_SIZE(nbuf)		(GET_IP_VER(nbuf)==IPV6_VERSION?GET_IP6_HDR_SIZE(nbuf):GET_IP4_HDR_SIZE(nbuf))
+#define GET_IP_SDU_SIZE(nbuf)		(GET_IP_VER(nbuf)==IPV6_VERSION?GET_IP6_SDU_SIZE(nbuf):GET_IP4_SDU_SIZE(nbuf))
+#define GET_IF_IP_HDR_SIZE(nbuf)	(GET_IP_VER(nbuf)==IPV6_VERSION?GET_IF_IP6_HDR_SIZE(nbuf):GET_IF_IP4_HDR_SIZE(nbuf))
+#define GET_IP_TCP_Q_HDR_OFFSET(nbuf)	(GET_IP_VER(nbuf)==IPV6_VERSION?\
+					((T_IP6_TCP_Q_HDR*)GET_IP6_HDR(nbuf))->thoff:((T_IP4_TCP_Q_HDR*)GET_IP4_HDR(nbuf))->thoff)
+
+#define SET_IP_CF(nbuf,cf)		(GET_IP_VER(nbuf)==IPV6_VERSION?SET_IP6_CF(nbuf,cf):(0))
+#define SET_IP_SDU_SIZE(nbuf,len)	(GET_IP_VER(nbuf)==IPV6_VERSION?SET_IP6_SDU_SIZE(nbuf,len):SET_IP4_SDU_SIZE(nbuf,len))
+#define SET_IP_TCP_Q_HDR_OFFSET(nbuf,thoff)	\
+					(GET_IP_VER(nbuf)==IPV6_VERSION\
+						?(((T_IP6_TCP_Q_HDR*)GET_IP6_HDR(nbuf))->thoff=thoff)\
+						:(((T_IP4_TCP_Q_HDR*)GET_IP4_HDR(nbuf))->thoff=thoff))
+
+#else	/* of #if defined(_IP4_CFG) */
+
+#define IF_IP_HDR_SIZE(nbuf)		IF_IP6_HDR_SIZE
+#define IF_IP_NET_HDR_SIZE(addr)	IF_IP6_HDR_SIZE
+
+#define IP_OUTPUT(nbuf,tmout)		ip6_output(nbuf,0,tmout)
+#define IP_REMOVE_OPTIONS(nbuf)		ip6_remove_exthdrs(nbuf)
+
+#define GET_IP_HDR(nbuf)		GET_IP6_HDR(nbuf)
+#define GET_IP_HDR_SIZE(nbuf)		GET_IP6_HDR_SIZE(nbuf)
+#define GET_IP_SDU_SIZE(nbuf)		GET_IP6_SDU_SIZE(nbuf)
+#define GET_IF_IP_HDR_SIZE(nbuf)	GET_IF_IP6_HDR_SIZE(nbuf)
+#define GET_IP_TCP_Q_HDR_OFFSET(nbuf)	(((T_IP6_TCP_Q_HDR*)GET_IP6_HDR(nbuf))->thoff)
+
+#define SET_IP_CF(nbuf,cf)		SET_IP6_CF(nbuf,cf)
+#define SET_IP_SDU_SIZE(nbuf,len)	SET_IP6_SDU_SIZE(nbuf,len)
+#define SET_IP_TCP_Q_HDR_OFFSET(nbuf,thoff)	\
+					(((T_IP6_TCP_Q_HDR*)GET_IP6_HDR(nbuf))->thoff=thoff)
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+#define IF_IP_HDR_SIZE(nbuf)		IF_IP4_HDR_SIZE
+#define IF_IP_NET_HDR_SIZE(addr)	IF_IP4_HDR_SIZE
+
+#define IP_OUTPUT(nbuf,tmout)		ip_output(nbuf,tmout)
+#define IP_REMOVE_OPTIONS(nbuf)		ip_remove_options(nbuf)
+
+#define GET_IP_HDR(nbuf)		GET_IP4_HDR(nbuf)
+#define GET_IP_HDR_SIZE(nbuf)		GET_IP4_HDR_SIZE(nbuf)
+#define GET_IP_SDU_SIZE(nbuf)		GET_IP4_SDU_SIZE(nbuf)
+#define GET_IF_IP_HDR_SIZE(nbuf)	GET_IF_IP4_HDR_SIZE(nbuf)
+#define GET_IP_TCP_Q_HDR_OFFSET(nbuf)	(((T_IP4_TCP_Q_HDR*)GET_IP4_HDR(nbuf))->thoff)
+
+#define SET_IP_SDU_SIZE(nbuf,len)	SET_IP4_SDU_SIZE(nbuf,len)
+#define SET_IP_TCP_Q_HDR_OFFSET(nbuf,thoff)	\
+					(((T_IP4_TCP_Q_HDR*)GET_IP4_HDR(nbuf))->thoff=thoff)
+
+#else	/* of #if defined(_IP4_CFG) */
+
+#error "not implemented."
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#endif	/* of #ifndef _IP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.cfg	(revision 313)
@@ -0,0 +1,72 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TCP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ */
+
+#ifdef SUPPORT_TCP
+
+/* åºåã¿ã¹ã¯ */
+
+CRE_TSK(TCP_OUTPUT_TASK, {
+	TA_HLNG,
+	0,
+	tcp_output_task,
+	TCP_OUT_TASK_PRIORITY,
+	TCP_OUT_TASK_STACK_SIZE,
+	NULL
+	});
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_TCP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
+CRE_SEM(SEM_TCP_CEP,		{ TA_TPRI, 1, 1 });
+
+#ifdef TCP_CFG_TRACE
+CRE_SEM(SEM_TCP_TRACE,		{ TA_TPRI, 1, 1 });
+#endif	/* of #ifdef TCP_CFG_TRACE */
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp.h	(revision 313)
@@ -0,0 +1,192 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp.h,v 1.10.2.1 1999/08/29 16:29:52 peter Exp $
+ */
+ 
+#ifndef _TCP_H_
+#define _TCP_H_
+
+/*
+ *  TCP ããããRFC 793 åç
+§
+ */
+
+typedef struct t_tcp_hdr {
+	uint16_t	sport;		/* éä¿¡å
+ãã¼ãçªå·			*/
+	uint16_t	dport;		/* å®å
+ãã¼ãçªå·			*/
+
+	uint32_t	seq;		/* SEQ çªå·				*/
+
+	uint32_t	ack;		/* ACK çªå·				*/
+
+	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
+	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
+	uint16_t	win;		/* ã¦ã£ã³ããµã¤ãº			*/
+
+	uint16_t	sum;		/* ãã§ãã¯ãµã 				*/
+	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿				*/
+	} T_TCP_HDR;
+
+#define TCP_HDR_SIZE			(sizeof(T_TCP_HDR))
+
+/*
+ *  TCP ãããæ§é ä½ã¡ã³ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define TCP_MAKE_DATA_OFF(o)	((uint8_t)(((uint8_t)(o) << 2) & 0xf0))
+#define TCP_DATA_OFF(o)		(((uint8_t)(o) & UINT_C(0xf0)) >> 2)
+#define TCP_HDR_LEN(o)		(TCP_DATA_OFF(o))
+
+/*
+ *  TCP ãããã®ãã©ã°ãã£ã¼ã«ãã®å¤ã®å®ç¾©
+ */
+
+#define TCP_FLG_FIN		UINT_C(0x01)	/* FIN:	æçµ			*/
+#define TCP_FLG_SYN		UINT_C(0x02)	/* SYN:	åæ			*/
+#define TCP_FLG_RST		UINT_C(0x04)	/* RST:	ã³ãã¯ã·ã§ã³ã®ãªã»ãã	*/
+#define TCP_FLG_PUSH		UINT_C(0x08)	/* PUSH:ããã·ã¥æ©è½		*/
+#define TCP_FLG_ACK		UINT_C(0x10)	/* ACK:	è¯å®å¿ç­		*/
+#define TCP_FLG_URG		UINT_C(0x20)	/* URG:	ç·æ¥æ
+å ±		*/
+
+/*
+ *  TCP ãªãã·ã§ã³ã®å®ç¾©
+ */
+
+/* ãªãã·ã§ã³ã®å */
+
+#define TCP_OPT_EOL		UINT_C(0)	/* æçµ				*/
+#define TCP_OPT_NOP		UINT_C(1)	/* ä½ãããªã			*/
+#define TCP_OPT_MAXSEG		UINT_C(2)	/* æå¤§ã»ã°ã¡ã³ãé·		*/
+#define TCP_OPT_WINDOW		UINT_C(3)	/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
+#define TCP_OPT_SACK_PERM	UINT_C(4)	/* é¸æ ACK è¨±å¯		*/
+#define TCP_OPT_SACK		UINT_C(5)	/* é¸æ ACK			*/
+#define TCP_OPT_TIMESTAMP	UINT_C(8)	/* ã¿ã¤ã ã¹ã¿ã³ã		*/
+#define TCP_OPT_CC		UINT_C(11)	/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_CCNEW		UINT_C(12)	/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_CCECHO		UINT_C(13)	/* æ¥ç¶ã«ã¦ã³ã			*/
+
+/* ãªãã·ã§ã³ã®é·ã */
+
+#define TCP_OPT_LEN_MAXSEG	4		/* æå¤§ã»ã°ã¡ã³ãé·		*/
+#define TCP_OPT_LEN_WINDOW	3		/* ã¦ã£ã³ãã¹ã±ã¼ãªã³ã°		*/
+#define TCP_OPT_LEN_SACK_PERM	4		/* é¸æ ACK è¨±å¯		*/
+#define TCP_OPT_LEN_SACK	5		/* é¸æ ACK			*/
+#define TCP_OPT_LEN_TIMESTAMP	10		/* ã¿ã¤ã ã¹ã¿ã³ã		*/
+#define TCP_OPT_LEN_CC		6		/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_LEN_CCNEW	6		/* æ¥ç¶ã«ã¦ã³ã			*/
+#define TCP_OPT_LEN_CCECHO	6		/* æ¥ç¶ã«ã¦ã³ã			*/
+
+/*
+ *  TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
+ */
+
+/*
+ *  IPv4 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
+ *  IP4_MSS ã¯ 576 ã§ãæ¨æºã® IPv4 ãããé· (20) ã¨
+ *  TCP ãããé· (20) ãå¼ããå¤ 536 ã§ãããã512 ãæ¨æºã¨ããã
+ */
+
+#define TCP_MSS			UINT_C(512)
+
+/*
+ *  IPv6 ã® TCP æå¤§ã»ã°ã¡ã³ããµã¤ãº
+ *  IPV6_MMTU ã¯ 1280 ã§ãæ¨æºã® IPv6 ãããé· (40) ã¨
+ *  TCP ãããé· (20) ãå¼ããå¤ 1220 ã§ãããã1024 ãæ¨æºã¨ããã
+ */
+
+#define TCP6_MSS		UINT_C(1024)
+
+/*
+ *  TCP æå°ã»ã°ã¡ã³ããµã¤ãº
+ *
+ *  256ï¼æå°ãªã³ã¯ MTUï¼- 40 = 216
+ */
+
+#define TCP_MINMSS		UINT_C(216)
+
+/*
+ *  TCP æå¤§ã¦ã£ã³ãã¦ãµã¤ãº
+ */
+
+#define MAX_TCP_WIN_SIZE	UINT_C(65535)
+
+#endif	/* of #ifndef _TCP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_fsm.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_fsm.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_fsm.h	(revision 313)
@@ -0,0 +1,123 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_fsm.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp_fsm.h,v 1.10.2.3 1999/11/15 02:52:54 green Exp $
+ */
+ 
+#ifndef _TCP_FSM_H_
+#define _TCP_FSM_H_
+
+/*
+ *  TCP FSM ç¶æ
+ã®å®ç¾©ãRFC 793 åç
+§
+ */
+
+#define TCP_FSM_CLOSED		0	/* ã¯ã­ã¼ãº				*/
+#define TCP_FSM_LISTEN		1	/* ååãªã¼ãã³				*/
+#define TCP_FSM_SYN_SENT	2	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿		*/
+#define TCP_FSM_SYN_RECVD	3	/* ååãªã¼ãã³ãSYN åä¿¡æ¸ã¿		*/
+#define TCP_FSM_ESTABLISHED	4	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
+#define TCP_FSM_CLOSE_WAIT	5	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
+ã¡	*/
+#define TCP_FSM_FIN_WAIT_1	6	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
+ã¡	*/
+#define TCP_FSM_CLOSING		7	/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡	*/
+#define TCP_FSM_LAST_ACK	8	/* APP ãçµäºãACK å¾
+ã¡			*/
+#define TCP_FSM_FIN_WAIT_2	9	/* ç¸æããã® FIN å¾
+ã¡			*/
+#define TCP_FSM_TIME_WAIT	10	/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
+ã¡	*/
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define TCP_FSM_HAVE_RCVD_SYN(s)	((s) >= TCP_FSM_SYN_RECVD)
+#define TCP_FSM_HAVE_ESTABLISHED(s)	((s) >= TCP_FSM_ESTABLISHED)
+#define TCP_FSM_HAVE_RCVD_FIN(s)	((s) >= TCP_FSM_TIME_WAIT)
+
+#define TCP_FSM_CAN_SEND_MORE(s)	((s) == TCP_FSM_ESTABLISHED || \
+					 (s) == TCP_FSM_CLOSE_WAIT)
+#define TCP_FSM_CAN_RECV_MORE(s)	((s) == TCP_FSM_ESTABLISHED || \
+					 (s) == TCP_FSM_FIN_WAIT_1  || \
+					 (s) == TCP_FSM_FIN_WAIT_2)
+
+#endif	/* of #ifndef _TCP_FSM_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_input.c	(revision 313)
@@ -0,0 +1,1888 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_input.c	8.12 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_input.c,v 1.82.2.3 1999/10/14 11:49:38 des Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  æ»ãå¤
+ *
+ *      RET_OK		æ­£å¸¸
+ *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ */
+
+#define RET_OK		(0)
+#define RET_NEED_OUTPUT	(1)
+#define RET_RETURN	(2)
+#define RET_DROP	(-1)
+#define RET_RST_DROP	(-2)
+
+/*
+ *  é¢æ°
+ */
+
+static void close_connection	(T_TCP_CEP *cep, bool_t *needoutput);
+static void set_rexmt_timer	(T_TCP_CEP *cep,  T_TCP_TIME rtt);
+static uint8_t reassemble	(T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, uint8_t flags);
+static ER drop_after_ack	(T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff);
+static ER listening		(T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, T_TCP_SEQ iss);
+static ER proc_ack1		(T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, bool_t *needoutput);
+static ER proc_ack2		(T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, bool_t *needoutput);
+static ER syn_sent		(T_TCP_HDR *tcph,  T_TCP_CEP *cep);
+static void trim_length		(T_TCP_HDR *tcph,  T_TCP_CEP *cep);
+static void parse_option	(T_TCP_HDR *tcph,  T_TCP_CEP *cep);
+static bool_t update_wnd	(T_TCP_HDR *tcph,  T_TCP_CEP *cep);
+static void proc_urg		(T_TCP_HDR *tcph,  T_TCP_CEP *cep);
+
+/*
+ *  parse_option -- TCP ãããã®ãªãã·ã§ã³ãè§£æããã
+ */
+
+static void
+parse_option (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+	uint8_t	*opt, type = 0;
+	uint_t	len, ol, ssize;
+
+	opt = (uint8_t*)tcph + TCP_HDR_SIZE;
+	len = (uint_t)(TCP_HDR_LEN(tcph->doff) - TCP_HDR_SIZE);
+	while (len > 0 && (type = *opt) != TCP_OPT_EOL) {
+		if (type == TCP_OPT_NOP)
+			ol = 1u;
+		else {
+			if (len < 2)
+				break;
+			ol = *(opt + 1);
+			if (ol < 2 || ol > len)
+				break;
+			}
+		switch (type) {
+		case TCP_OPT_NOP:
+			break;
+		case TCP_OPT_MAXSEG:
+			if ((ol == TCP_OPT_LEN_MAXSEG) && (tcph->flags & TCP_FLG_SYN)) {
+				ssize = ntohs(*(uint16_t*)(opt + 2));
+				if (ssize > MAX_TCP_SND_SEG)
+					cep->maxseg = MAX_TCP_SND_SEG;
+				else if (ssize < TCP_MINMSS)
+					cep->maxseg = TCP_MINMSS;
+				else
+					cep->maxseg = ssize;
+				}
+			break;
+
+		case TCP_OPT_WINDOW:
+		case TCP_OPT_SACK_PERM:
+		case TCP_OPT_TIMESTAMP:
+		case TCP_OPT_CC:
+		case TCP_OPT_CCNEW:
+		case TCP_OPT_CCECHO:
+			syslog(LOG_INFO, "[TCP] unsup opt: %d.", type);
+			break;
+
+		default:
+			syslog(LOG_NOTICE, "[TCP] unexp opt: %d.", type);
+			break;
+			}
+		opt += ol;
+		len -= ol;
+		}
+	}
+
+/*
+ *  set_rexmt_timer -- æ°ããå¾å¾©æéãåéããåéã¿ã¤ããæ´æ°ããã
+ */
+
+static void
+set_rexmt_timer (T_TCP_CEP *cep, T_TCP_TIME rtt)
+{
+	T_TCP_TIME delta;
+
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_RTT_UPDATES], 1);
+	if (cep->srtt != 0) {
+		/*
+		 *  srtt: å¹³æ»åããã RTT
+		 *
+		 *  è¨æ¸¬ããã RTT (rtt) ã¨ç¾å¨ã®å¹³æ»åããã RTT (srtt) ã®å·® (delta) ãæ±ããã
+		 *
+		 *  delta ã¯ 2 ãããå·¦ã·ãã ( 4 å) ããå¤ã§ä¿æããã
+		 *  srtt  ã¯ 5 ãããå·¦ã·ãã (32 å) ããå¤ã§ä¿æããã¦ããã
+		 *
+		 *    delta = rtt / 8 - srtt / 8
+		 *
+		 *  æ°ãã srtt ã¯
+		 *
+		 *    srtt = rtt / 8 + srtt * 7 / 8
+		 *         = srtt + (rtt / 8 - srtt / 8)
+		 *
+		 *  ã§è¨ç®ããã
+		 *  ãã®ãããrtt ã 2 ãããå·¦ã·ããããsrtt ã (5 - 2) ãããå³ã·ãããã¦ delta ãæ±ããã
+		 */
+		delta = ((rtt - 1) << TCP_DELTA_SHIFT) - (cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT));
+		cep->srtt += delta;
+		if (cep->srtt <= 0)
+			cep->srtt = 1;
+
+		/*
+		 *  delta ã®çµ¶å¯¾å¤ | delta | ãæ±ããã
+		 */
+		if (delta < 0)
+			delta = - delta;
+
+		/*
+		 *  rttvar: å¹³æ»åãããåæ£
+		 *
+		 *  rttvar ã¯ 4 ãããå·¦ã·ãã (16 å) ããå¤ã§ä¿æããã¦ããã
+		 *
+		 *    delta = |delta| / 4 - rttvar / 4
+		 *
+		 *  æ°ãã rttvar ã¯
+		 *
+		 *    rttvar = |delta|/ 4 + rttvar * 3 /4
+		 *           = rttvar + (|delta| / 4 - rttvar / 4)
+		 *
+		 *  ã§è¨ç®ããã
+		 */
+		delta -= cep->rttvar >> (TCP_RTTVAR_SHIFT - TCP_DELTA_SHIFT);
+		cep->rttvar += delta;
+		if (cep->rttvar <= 0)
+			cep->rttvar = 1;
+		}
+	else {
+		/*
+		 *  ã¾ã  srtt ã®è¨­å®ãè¡ããã¦ããªãã¨ãã¯ãä»åè¨æ¸¬ããã RTT ãä½¿ç¨ããã
+		 *  å¹³æ»åããã RTT (srtt) ã«ã¯ãRTT ã 5 ãããå·¦ã·ãã (32å) ããå¤ã
+		 *  å¹³æ»åãããåæ£ (rttvar) ã«ã¯ãRTT ã® 1/2 ã 4 ãããå·¦ã·ãã (16å) ããå¤ã
+		 */
+		cep->srtt   = rtt <<  TCP_SRTT_SHIFT;
+		cep->rttvar = rtt << (TCP_RTTVAR_SHIFT - 1);
+		}
+
+	/*
+	 *  rtt ã®æ¸¬å®ãçµäºããåéåæ°ããªã»ããããã
+	 */
+	cep->rtt = cep->rxtshift = 0;
+
+	/*
+	 *  RTT ã«è¨±ãããæå°å¤ ã¨ rtt + 2 ã®å¤§ããªå¤ã®æ¹ãåéã¿ã¤ã ã¢ã¦ãã®æå°å¤ã«ããã
+	 */
+	if (rtt + 2 < TCP_TVAL_MIN)
+		cep->rxtcur = tcp_range_set(tcp_rexmt_val(cep),
+		                            (T_TCP_TIME)TCP_TVAL_MIN,
+		                            (T_TCP_TIME)TCP_TVAL_MAX_REXMT);
+	else
+		cep->rxtcur = tcp_range_set(tcp_rexmt_val(cep),
+		                            (T_TCP_TIME)(rtt + 2),
+		                            (T_TCP_TIME)TCP_TVAL_MAX_REXMT);
+	}
+
+/*
+ *  reassemble -- åä¿¡ã»ã°ã¡ã³ããåæ§æãããé çªéãã«åä¿¡ããã¨ãã®å¦ç
+ */
+
+static uint8_t
+reassemble (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, uint8_t flags)
+{
+	T_TCP_Q_HDR 	*qhdr;
+	T_TCP_HDR	*tcph;
+
+	tcph = GET_TCP_HDR(input, thoff);
+	if (tcph->sum > cep->rbufsz - cep->rwbuf_count) {
+		/*
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ç©ºãããªãã¨ãã¯ç ´æ£ããã
+		 */
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1);
+		syscall(rel_net_buf(input));
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+		flags &= ~TCP_FLG_FIN;
+		}
+	else if (tcph->seq == cep->rcv_nxt &&
+	         cep->reassq == NULL &&
+	         cep->fsm_state == TCP_FSM_ESTABLISHED) {
+		/*
+		 *  é çªéãã«ã»ã°ã¡ã³ããåä¿¡ããæã®å¦ç
+		 *  åä¿¡ã»ã°ã¡ã³ãã®ä¸¦ã¹æ¿ãã¯ä¸è¦ãªã®ã§
+		 *  ãã®ã¾ã¾åä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+		 */
+
+#ifdef TCP_CFG_DELAY_ACK
+
+		cep->flags |= TCP_CEP_FLG_DEL_ACK;
+
+#else/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+
+#endif/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		qhdr = GET_TCP_Q_HDR(input, thoff);
+
+		/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+		SET_IP_TCP_Q_HDR_OFFSET(input, thoff);
+
+		/* SDU ã®ãªãã»ããï¼å
+ã¯ã¦ã£ã³ããµã¤ãºï¼ããªã»ããããã*/
+		qhdr->soff = 0;
+
+		/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+		TCP_WRITE_RWBUF(cep, input, thoff);
+		}
+	else {
+		flags = tcp_write_raque(input, cep, thoff, flags);
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+		}
+	return flags;
+	}
+
+/*
+ *  listening -- ååãªã¼ãã³ãã¦ï¼ç¶æ
+ã LISTEN ã®å¦ç
+ *
+ *    æ»ãå¤:
+ *      RET_OK		æ­£å¸¸
+ *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ */
+
+static ER
+listening (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, T_TCP_SEQ iss)
+{
+	T_TCP_HDR	*tcph;
+
+	tcph = GET_TCP_HDR(input, thoff);
+
+	/* 
+	 *  ãã©ã°ã« RST ãã»ããããã¦ããã°ç ´æ£ããã
+	 */
+	if (tcph->flags & TCP_FLG_RST)
+		return RET_DROP;
+
+	/*  
+	 *  ãã©ã°ã« ACK ãã»ãããã¦ãããã°ã
+	 *  ãªã»ãããéã£ã¦ç ´æ£ããã
+	 */
+	if (tcph->flags & TCP_FLG_ACK)
+		return RET_RST_DROP;
+
+	/* 
+	 *  ãã©ã°ã« SYN ãã»ããããã¦ããªããã°ãã°ç ´æ£ããã
+	 */
+	if ((tcph->flags & TCP_FLG_SYN) == 0)
+		return RET_DROP;
+
+	/*
+	 *  åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ãç¢ºèªããã
+	 */
+	if (!tcp_is_addr_accept(input, thoff))
+		return RET_DROP;
+
+	/* ç¸æã®ã¢ãã¬ã¹ãè¨é²ããã*/
+	IN_COPY_TO_HOST(&cep->dstaddr.ipaddr, input);
+	cep->dstaddr.portno = tcph->sport;
+
+	/* ãªãã·ã§ã³ãå¦çããã*/
+	parse_option(tcph, cep);
+
+	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	if (tcp_iss == 0)
+		tcp_init_iss();
+
+	/* èªåã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	if (iss != 0)
+		cep->iss = iss;
+	else
+		cep->iss = tcp_iss;
+
+	tcp_iss += TCP_ISS_INCR() / 4;
+
+	/* ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤ãè¨é²ããã*/
+	cep->irs = tcph->seq;
+
+	/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	init_send_seq(cep);
+	init_receive_seq(cep);
+
+	/* éä¿¡ã¦ã¤ã³ããµã¤ãºãè¨­å®ããã*/
+	cep->snd_wnd = tcph->win;
+
+	/* æçµè¨­å® */
+	cep->flags    |= TCP_CEP_FLG_ACK_NOW;
+	cep->fsm_state = TCP_FSM_SYN_RECVD;
+	cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_INIT;
+
+	return RET_OK;
+	}
+
+/*
+ *  syn_sent -- è½åãªã¼ãã³ãã¦ãç¶æ
+ã SYN éä¿¡æ¸ã®å¦ç
+ *
+ *    æ»ãå¤:
+ *      RET_OK		æ­£å¸¸
+ *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ */
+
+static ER
+syn_sent (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+	ER error = RET_OK;
+
+	/*
+	 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+	 *
+	 *    ACK <= iss && éä¿¡ããæå¤§ SEQ (snd_max) < ACK
+	 *
+	 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+	 */
+	if ((tcph->flags & TCP_FLG_ACK) &&
+	    (SEQ_LE(tcph->ack, cep->iss) || SEQ_GT(tcph->ack, cep->snd_max)))
+		return RET_RST_DROP;
+
+	/*
+	 *  RST/ACK ãã©ã°ã®å¿ç­ãããã°ããã¼ããéãã¦ããªã
+	 *  ãã¨ãæå³ãã¦ããã
+	 */
+	if (tcph->flags & TCP_FLG_RST) {
+		if (tcph->flags & TCP_FLG_ACK) {
+			cep->net_error = EV_CNNRF;
+			cep = tcp_drop(cep, E_CLS);
+			}
+		return RET_DROP;
+		}
+
+	/*
+	 *  SYN ãã©ã°ããªããã°ã»ã°ã¡ã³ããç ´æ£ããã
+	 */
+	if ((tcph->flags & TCP_FLG_SYN) == 0)
+		return RET_DROP;
+
+	cep->snd_wnd = tcph->win;	/* snd_wnd: ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
+	cep->irs     = tcph->seq;	/* irs:     ç¸æã®ã·ã¼ã±ã³ã¹çªå·ã®åæå¤	*/
+	init_receive_seq(cep);		/* éåä¿¡ã·ã¼ã±ã³ã¹çªå·ãåæåããã		*/
+
+	if (tcph->flags & TCP_FLG_ACK) {
+		/*
+		 *  ACK ãã©ã°ãããã¨ãã®å¦ç
+		 *
+		 *  åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ (rcv_adv) ã
+		 *  åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº (rcv_wnd) åé²ããã
+		 */
+		cep->rcv_adv += cep->rcv_wnd;	/* rcv_adv: åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ	*/
+						/* rcv_wnd: åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº		*/
+
+		/* æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã SYN å (1 ãªã¯ããã) é²ããã*/
+		cep->snd_una ++;
+
+#ifdef TCP_CFG_DELAY_ACK
+
+		if (tcph->sum != 0)		/* tcph->sum ã¯ SDU é· */
+			cep->flags |= TCP_CEP_FLG_DEL_ACK;
+		else
+			cep->flags |= TCP_CEP_FLG_ACK_NOW;
+
+#else/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+
+#endif/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
+			/*
+			 *  CEP ã§ FIN éä¿¡ãè¦æ±ããã¦ããã°ã
+			 *  åæ­å¦çãéå§ãã
+			 *  CEP ã®ç¶æ
+ã FIN Wait 1 ã«ããã
+			 */
+			cep->fsm_state = TCP_FSM_FIN_WAIT_1;
+			cep->flags  &= ~TCP_CEP_FLG_NEED_FIN;
+			tcph->flags &= ~TCP_FLG_SYN;
+			}
+		else {
+			/*
+			 *  ç¸æãã ACK ãå¿ç­ãããã®ã§ã
+			 *  CEP ã®ç¶æ
+ã ã³ãã¯ã·ã§ã³éè¨­å®äºç¶æ
+ã«ããã
+			 */
+			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
+			cep->fsm_state  = TCP_FSM_ESTABLISHED;
+			NET_COUNT_MIB(tcp_stats.tcpActiveOpens, 1);
+			syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_ESTABLISHED));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
+
+				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				*cep->p_dstaddr = cep->dstaddr;
+
+				if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, E_OK);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					ER	error = E_OK;
+
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					}
+				else {
+					syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+					error = RET_RST_DROP;
+					}
+				cep->p_dstaddr = NULL;
+				cep->snd_tskid = TA_NULL;
+				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+				}
+			else
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+				NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+			}
+		}
+	else {
+		/* ACK ãã©ã°ããªãã¨ãã¯ãACK ãéã£ã¦ãCEP ã®ç¶æ
+ã SYN åä¿¡æ¸ã¿ã«ããã*/
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+		cep->timer[TCP_TIM_REXMT] = 0;
+		cep->fsm_state  = TCP_FSM_SYN_RECVD;
+		}
+
+	return error;
+	}
+
+/*
+ *  trim_length -- åä¿¡ãã SDU é·ãèª¿æ´ããã
+ */
+
+static void
+trim_length (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+	tcph->seq ++;
+	if (tcph->sum > cep->rcv_wnd) {		/* æ³¨æ: tcph->sum ã¯ SDU é· */
+		/*
+		 *  SDU é·ãåä¿¡ã¦ã£ã³ããµã¤ãºããå¤§ããã¨ãã¯ãåä¿¡ã¦ã£ã³ããµã¤ãºä»¥éã¯
+		 *  ç ´æ£ããFIN ã«å¿ç­ããªããã¨ã§ãç ´æ£ãããã¼ã¿ãåéãããã
+		 */
+		tcph->sum    = (uint16_t)cep->rcv_wnd;
+		tcph->flags &= ~TCP_FLG_FIN;
+		}
+	cep->snd_wl1 = tcph->seq - 1;		/* cep->snd_wl1: ã¦ã£ã³ãæ´æ° SEQ çªå·	*/
+
+#ifdef TCP_CFG_EXTENTIONS
+	cep->rcv_up  = tcph->seq;		/* cep->rcv_up : åä¿¡ããç·æ¥ãã¤ã³ã¿	*/
+#endif
+	}
+
+/*
+ *  proc_ack2 -- ACK ã®å¦ç (2)
+ *
+ *    æ»ãå¤
+ *
+ *      RET_OK		æ­£å¸¸
+ *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
+ *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ */
+
+static ER
+proc_ack2 (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, bool_t *needoutput)
+{
+	T_TCP_HDR	*tcph;
+	ER		ret = RET_OK;
+	uint32_t	acked;
+	bool_t		ourfinisacked = false;
+
+	tcph = GET_TCP_HDR(input, thoff);
+
+	/*
+	 *  ç¸æã«åä¿¡ç¢ºèªããã ACK ãããã¾ã ç¢ºèªããã¦ããªã
+	 *  æå°éä¿¡ SEQ (snd_una) ãå¼ãã¨ãéä¿¡ã¦ã£ã³ããããã¡ãã
+	 *  åé¤ãã¦ãããªã¯ãããæ° (acked) ã«ãªãã
+	 */
+	acked = tcph->ack - cep->snd_una;
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_ACKS], 1);
+
+	/*
+	 *  å¾å¾©æéè¨æ¸¬ (rtt) ãè¨­å®ããã¦ãã¦ãè¨æ¸¬éå§ SEQ ãã
+	 *  å¾ã® ACK ãåä¿¡ããããã¿ã¤ãããã¯ãªããã­ã£ã³ã»ã«ãã
+	 *  åéã¿ã¤ããåè¨­å®ããã
+	 */
+	if (cep->rtt && SEQ_GT(tcph->ack, cep->rtseq)) {
+		set_rexmt_timer(cep, cep->rtt);
+		}
+
+	/*
+	 *  å
+¨ã¦ã®æªç¢ºèªãã¼ã¿ã ACK ãããããåéã¿ã¤ããåæ­¢ãã
+	 *  åéãè¨æ¶ãã (ããã«åºåãæç¶)ã
+	 *  ãããACK ãã¹ããããã«å¤ãã®ãã¼ã¿ããããªããåéã¿ã¤ãã«
+	 *  ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ããè¨­å®ããã
+	 */
+	if (tcph->ack == cep->snd_max) {	/* cep->snd_max: éä¿¡ããæå¤§ SEQ */
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+		/*
+		 * éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã¯ã
+		 * éä¿¡æ¸ã¿ã§ãACKãå®äºããã¾ã§åéã¿ã¤ããå¤æ´ããªãã
+		 */
+		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED)
+			cep->timer[TCP_TIM_REXMT] = 0;
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		cep->timer[TCP_TIM_REXMT] = 0;
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		*needoutput = true;
+		}
+	else if (cep->timer[TCP_TIM_PERSIST] == 0) {
+	 	cep->timer[TCP_TIM_REXMT] = cep->rxtcur;	/* cep->rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã */
+		}
+
+	/* ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ãããã¨ãã®å¦ç */
+	if (acked) {
+		uint32_t cw   = cep->snd_cwnd;	/* cep->snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº	*/
+		uint32_t incr = cep->maxseg;		/* cep->maxseg:   æå¤§ã»ã°ã¡ã³ããµã¤ãº	*/
+
+		/*
+		 *  æ°ãã«ç¸æãåä¿¡ç¢ºèªãããã¼ã¿ããã£ãã¨ãã¯ã
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¤§ããããã
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ããå¤§ããã¨ãã¯
+		 *  è¼»è¼³åé¿å¶å¾¡ãè¡ãã
+		 *
+		 *    snd_cwnd = snd_cwnd + maxseg * maxseg / snd_cwnd;
+		 *
+		 *  ç­ãããå°ããã¨ãã¯ãã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ãè¡ãã
+		 *
+		 *    snd_cwnd = snd_cwnd + maxseg
+		 *
+		 */
+		if (cw > cep->snd_ssthresh)
+			/* è¼»è¼³åé¿å¶å¾¡ */
+			incr = incr * incr / cw;
+
+		if (cw + incr < MAX_TCP_WIN_SIZE)
+			cep->snd_cwnd = (uint16_t)(cw + incr);
+		else
+			cep->snd_cwnd = MAX_TCP_WIN_SIZE;
+
+		/*
+		 *  éä¿¡ã¦ã£ã³ããããã¡ãããç¸æãåä¿¡ç¢ºèªãããã¼ã¿æ° (acked) ã®ãã¼ã¿ãåé¤ããã
+		 */
+		if (acked > cep->swbuf_count) {
+			cep->snd_wnd -= cep->swbuf_count;
+			TCP_DROP_SWBUF(cep, (uint_t)cep->swbuf_count);
+			ourfinisacked = true;
+			}
+		else {
+			cep->snd_wnd -= (uint16_t)acked;
+			TCP_DROP_SWBUF(cep, (uint_t)acked);
+			ourfinisacked = false;
+			}
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+
+		/*
+		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ã
+		 *  ä»åééç¢ºèªããã ACK ã¾ã§é²ãã
+		 *  æ¬¡ã®éä¿¡ãã¼ã¿ã® SEQ (snd_nxt) ããæ°ãã
+		 *  ééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una)
+		 *  ã¾ã§é²ããã
+		 */
+		cep->snd_una += acked;
+		if (SEQ_LT(cep->snd_nxt, cep->snd_una))
+			cep->snd_nxt = cep->snd_una;
+
+		/*
+		 *  ç¶æ
+ã«ããåå²
+		 */
+		switch (cep->fsm_state) {
+		case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
+ã¡ */
+			if (ourfinisacked) {
+				cep->fsm_state = TCP_FSM_FIN_WAIT_2;
+				cep->timer[TCP_TIM_2MSL] = TCP_TVAL_KEEP_COUNT * TCP_TVAL_KEEP_INTERVAL;
+				}
+			break;
+		case TCP_FSM_CLOSING:		/* åæã¯ã­ã¼ãºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡ */
+			if (ourfinisacked) {
+				/*
+				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ç¶æ
+ãå¤æ´ãã
+				 *  ãã¹ã¦ã®ã¿ã¤ãããªã»ããããå¾ã2MSL ã¿ã¤ããè¨­å®ããã
+				 */
+				cep->fsm_state = TCP_FSM_TIME_WAIT;
+				tcp_cancel_timers(cep);
+				cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
+				}
+			break;
+		case TCP_FSM_LAST_ACK:		/* APP ãçµäºãACK å¾
+ã¡ */
+			if (ourfinisacked) {
+				/*
+				 *  éä¿¡ãã FIN ãç¢ºèªããã¦ããã°ãcep ãã¯ã­ã¼ãºãã
+				 *  ã»ã°ã¡ã³ããç ´æ£ããã
+				 */
+				cep = tcp_close(cep);
+				ret = RET_DROP;
+				}
+			break;
+		case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
+ã¡ */
+			/*
+			 *  ç¸æãã FIN ãåéããããããä¸åº¦2MSL ã¿ã¤ããè¨­å®ãã
+			 *  ACK éä¿¡å¾ãã»ã°ã¡ã³ããç ´æ£ããã
+			 */
+			cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
+			return drop_after_ack(input, cep, thoff);
+			}
+		}
+
+	return ret;
+	}
+
+/*
+ *  proc_ack1 -- ACK ã®å¦ç (1)
+ *
+ *    æ»ãå¤:
+ *      RET_OK		æ­£å¸¸
+ *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
+ *	RET_DROP	ã¨ã©ã¼ãã»ã°ã¡ã³ããç ´æ£ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ *
+ */
+
+static ER
+proc_ack1 (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, bool_t *needoutput)
+{
+	T_TCP_HDR *tcph = GET_TCP_HDR(input, thoff);
+
+	switch (cep->fsm_state) {
+	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+
+		/* ç¶æ
+ãå¤æ´ããã*/
+		if (cep->flags & TCP_CEP_FLG_NEED_FIN) {
+			cep->fsm_state  = TCP_FSM_FIN_WAIT_1;
+			cep->flags &= ~TCP_CEP_FLG_NEED_FIN;
+			}
+		else {
+			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
+			cep->fsm_state  = TCP_FSM_ESTABLISHED;
+
+			/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+			cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+			cep->rep4 = NULL;
+#endif
+
+			syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_ESTABLISHED));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			if (cep->rcv_nblk_tfn == TFN_TCP_ACP_CEP) {
+
+				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+
+				if (cep->flags & TCP_CEP_FLG_IPV4) {
+					(*cep->p_dstaddr4).ipaddr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]);
+					(*cep->p_dstaddr4).portno = cep->dstaddr.portno;
+					}
+				else
+					*cep->p_dstaddr = cep->dstaddr;
+
+#else	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+				*cep->p_dstaddr = cep->dstaddr;
+
+#endif	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+				if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+					NET_COUNT_MIB(tcp_stats.tcpPassiveOpens, 1);
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_ACCEPTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, E_OK);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					ER	error = E_OK;
+
+					NET_COUNT_MIB(tcp_stats.tcpPassiveOpens, 1);
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_ACCEPTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					cep->p_dstaddr = NULL;
+					cep->rcv_tskid = TA_NULL;
+					cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+					}
+				else {
+					syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+					cep->p_dstaddr = NULL;
+					cep->rcv_tskid = TA_NULL;
+					cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+					return RET_RST_DROP;
+					}
+				}
+
+			if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP) {
+
+				/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+				*cep->p_dstaddr = cep->dstaddr;
+
+				if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+					NET_COUNT_MIB(tcp_stats.tcpActiveOpens, 1);
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, E_OK);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					ER	error = E_OK;
+
+					NET_COUNT_MIB(tcp_stats.tcpActiveOpens, 1);
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					cep->p_dstaddr = NULL;
+					cep->snd_tskid = TA_NULL;
+					cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+					}
+				else {
+					syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+					cep->p_dstaddr = NULL;
+					cep->snd_tskid = TA_NULL;
+					cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+					return RET_RST_DROP;
+					}
+				}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+			if (cep->rcv_tfn == TFN_TCP_ACP_CEP) {
+				NET_COUNT_MIB(tcp_stats.tcpPassiveOpens, 1);
+				NET_COUNT_TCP(net_count_tcp[NC_TCP_ACCEPTS], 1);
+				}
+
+			if (cep->snd_tfn == TFN_TCP_CON_CEP) {
+				NET_COUNT_MIB(tcp_stats.tcpActiveOpens, 1);
+				NET_COUNT_TCP(net_count_tcp[NC_TCP_CONNECTS], 1);
+				}
+			}
+
+		/*
+		 *  SDU ããªã FIN ãã¤ãã¦ããªããã°ãtcp_move_ra2rw() ãå¼åºãã
+		 */
+		if (tcph->sum == 0 && (tcph->flags & TCP_FLG_FIN) == 0)		/* tcph->sum ã¯ SDU é· */
+			tcph->flags = tcp_move_ra2rw(cep, tcph->flags);
+		
+		cep->snd_wl1 = tcph->seq - 1;	/* snd_wl1: ã¦ã£ã³ãæ´æ° SEQ */
+
+		/* break; ä¸ã«è½ã¡ãã*/
+	
+	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+	case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
+	case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
+ã¡*/
+	case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
+ã¡		*/
+	case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡	*/
+	case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
+ã¡	*/
+	case TCP_FSM_TIME_WAIT:		/* çµäºãæéå¾
+ã¡		*/
+
+		if (SEQ_LE(tcph->ack, cep->snd_una)) {
+
+			/*
+			 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ã¨åããä»¥åã®ã¨ãã®å¦ç
+			 *  ã¤ã¾ããå¤éã« ACK ãåä¿¡ãããã¨ãæå³ãã¦ããã
+			 */
+
+			if (tcph->sum == 0 && tcph->win == cep->snd_wnd) {	/* tcph->sum ã¯ SDU é· */
+
+				/*
+				 *  SDU ããªããç¸æã®ã¦ã£ã³ããµã¤ãºãå¤æ´ããã¦ããªããã°ã
+				 *  ãã§ã«éä¿¡ããã»ã°ã¡ã³ãã®ä¸­ã§ãACK (tcph->ack) ã¨
+				 *  åã SEQ ããå§ã¾ãã»ã°ã¡ã³ãããéä¸­ã§æ¶å¤±ããå¯è½æ§ãããã
+				 *  ãã®å ´åã¯ãé«éåè»¢éã¨é«éãªã«ããªãè¡ãã
+				 */
+				NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_ACKS], 1);
+
+				if (cep->timer[TCP_TIM_REXMT] == 0 || tcph->ack != cep->snd_una) {
+
+					/*
+					 *  åéã¿ã¤ããã»ããããã¦ããªãã¨ãã
+					 *  ã¾ãã¯ãACK (tcph->ack) ã¨æªç¢ºèªã®æå°éä¿¡ SEQã
+					 *  ä¸è´ããªãã¨ãã¯ãå¤é ACK æ°ã 0 ã«ããã
+					 */
+					cep->dupacks = 0;
+					}
+
+				else if (++ cep->dupacks == MAX_TCP_REXMT_THRESH) {
+
+					/*
+					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ã«ãªã£ãã
+					 *  é«éåè»¢éå¦çãéå§ããã
+					 */
+					uint_t		win;
+
+					/*
+					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®ãããå¤ãè¨­å®ããã
+					 *
+					 *    ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã
+					 *    è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã® 1/2ã
+					 *    ãã ãã2 * maxseg ä»¥ä¸ã
+					 *
+					 */
+					if (cep->snd_wnd < cep->snd_cwnd)
+						win = cep->snd_wnd / 2 / cep->maxseg;
+					else
+						win = cep->snd_cwnd / 2 / cep->maxseg;
+					if (win < 2)
+						win = 2;
+					cep->snd_ssthresh = win * cep->maxseg;
+
+					/* åéã¿ã¤ãã¨å¾å¾©æéããªã»ããããã*/
+					cep->timer[TCP_TIM_REXMT] = 0;
+					cep->rtt = 0;
+
+					/* æ¶å¤±ããã»ã°ã¡ã³ããéä¿¡ããã*/
+					cep->snd_old_nxt = cep->snd_nxt;
+					cep->snd_nxt     = tcph->ack;
+					cep->snd_cwnd    = cep->maxseg;
+
+					/*
+					 *  snd_nxt ãå
+ã«æ»ãããã«è¨­å®ãã¦
+					 *  éä¿¡ãæç¤ºããã
+					 */
+					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT |
+					               TCP_CEP_FLG_FORCE       |
+					               TCP_CEP_FLG_FORCE_CLEAR |
+					               TCP_CEP_FLG_RESTORE_NEXT_OUTPUT;
+					sig_sem(SEM_TCP_POST_OUTPUT);
+
+					/* è¼»è¼³ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+					cep->snd_cwnd = (uint16_t)(cep->snd_ssthresh
+					                   + cep->maxseg * cep->dupacks);
+					
+					return RET_DROP;
+					}
+
+				else if (cep->dupacks > MAX_TCP_REXMT_THRESH) {
+
+					/*
+					 *  å¤é ACK æ°ããããå¤ (æ¨æº 3) ãè¶
+ããã
+					 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºãå¢å ããªããåéããã
+					 */
+					cep->snd_cwnd += cep->maxseg;
+
+					/* éä¿¡ãæç¤ºããã*/
+					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
+					sig_sem(SEM_TCP_POST_OUTPUT);
+
+					return RET_DROP;
+					}
+				} 
+			else
+				cep->dupacks = 0;
+			break;
+			}
+
+		/*
+		 *  åä¿¡ç¢ºèª ACK ã æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) ä»¥éã®ã¨ãã®å¦ç
+		 */
+		if (cep->dupacks >= MAX_TCP_REXMT_THRESH && cep->snd_cwnd > cep->snd_ssthresh)
+		 	/*
+			 *  é«éåè»¢éãè¡ã£ã¦ããã¨ãã¯ãè¼»è¼³ã¦ã£ã³ããµã¤ãºããããå¤ã¾ã§æ»ãã
+			 */
+			cep->snd_cwnd = (uint16_t)cep->snd_ssthresh;
+	
+		cep->dupacks = 0;
+
+		if (SEQ_GT(tcph->ack, cep->snd_max))
+			/*
+			 *  åä¿¡ãã ACK ãéä¿¡ããæå¤§ SEQ ãè¶
+ãã¦ããã¨ãã®å¦ç
+			 */
+			return drop_after_ack(input, cep, thoff);
+
+		if (cep->flags & TCP_CEP_FLG_NEED_SYN) {
+			/*
+			 *  SYN éä¿¡è¦æ±ãåãæ¶ãã¦ãæªç¢ºèªã®æå°éä¿¡ SEQ ãé²ããã
+			 */
+			cep->flags &= ~TCP_CEP_FLG_NEED_SYN;
+			cep->snd_una ++;
+			}
+		
+		return proc_ack2(input, cep, thoff, needoutput);
+		break;
+		}
+	return RET_OK;
+	}
+
+/*
+ *  update_wnd -- ã¦ã£ã³ããµã¤ãºãæ´æ°ããã
+ *
+ *    æ»ãå¤: éä¿¡ãå¿
+è¦ãªã true ãè¿ãã
+ */
+
+static bool_t
+update_wnd (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+
+	/*
+	 *  æ´æ°æ¡ä»¶
+	 *
+	 *    ACK ãã©ã°ãã»ããããã¦ãã &&
+	 *    (ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ããå ||
+	 *     ååã¦ã£ã³ããæ´æ°ãã SEQ (snd_wl1) ã SEQ ã¨åã &&
+	 *     (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ããå ||
+	 *      (ååã¦ã£ã³ããæ´æ°ãã ACK (snd_wl2) ã ACK ã¨åã &&
+	 *       WIN ãç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ããå¤§ãã
+	 *       )
+	 *      )
+	 *     )
+	 */
+	if ((tcph->flags & TCP_FLG_ACK) &&
+	    (SEQ_LT(cep->snd_wl1, tcph->seq) ||
+	     (cep->snd_wl1 == tcph->seq &&
+	      (SEQ_LT(cep->snd_wl2, tcph->ack) ||
+	       (cep->snd_wl2 == tcph->ack && tcph->win > cep->snd_wnd))))) {
+
+		cep->snd_wnd = tcph->win;
+		cep->snd_wl1 = tcph->seq;
+		cep->snd_wl2 = tcph->ack;
+
+		if (cep->snd_wnd > cep->max_sndwnd)
+			/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãºãæ´æ°ããã*/
+			cep->max_sndwnd = cep->snd_wnd;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_WOPEN_PEND) {
+
+			/*
+			 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ä¸­ã§ã
+			 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºãã®ãå¾
+ã£ã¦ããã¨ãã®å¦ç
+			 */
+			if (cep->snd_wnd > 0) {
+
+				/*
+				 *  ç¸æã®åä¿¡ã¦ã£ã³ããç©ºããã¨ãã¯ã
+				 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡å²ãå½ã¦ãåéããã
+				 */
+				cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK)
+				                         |  TCP_CEP_FLG_WBCS_FREE |  TCP_CEP_FLG_POST_OUTPUT;
+				sig_sem(SEM_TCP_POST_OUTPUT);
+				}
+			}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		return true;
+		}
+	else
+		return false;
+	}
+
+/*
+ *  proc_urg -- ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç
+ */
+
+#ifdef TCP_CFG_EXTENTIONS
+
+static void
+proc_urg (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+	if ((tcph->flags & TCP_FLG_URG) && VALID_URG_POINTER(tcph->urp) &&
+	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
+
+		/* ç·æ¥ãã¼ã¿ã¤ãã®ã»ã°ã¡ã³ãã®å¦ç */
+
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_URG_SEGS], 1);
+		if (tcph->urp + cep->rwbuf_count > cep->rbufsz) {
+
+			/*
+			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ãåä¿¡ã¦ã£ã³ããããã¡ã®
+			 *  ç¯å²ãè¶
+ããã¨ãã¯ä½ãããªãã
+			 */
+			tcph->urp    = 0;
+			tcph->flags &= ~TCP_FLG_URG;
+			}
+
+		if (SEQ_GT(tcph->seq + tcph->urp, cep->rcv_up))
+			/* ç·æ¥ãã¤ã³ã¿ãæ´æ°ãããã¨ãã®å¦ç */
+			cep->rcv_up = tcph->seq + tcph->urp;
+
+		if ((tcph->flags & TCP_FLG_URG) && (tcph->urp + TCP_CFG_URG_OFFSET) < tcph->sum) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+
+			/*
+			 *  ç·æ¥ãã¤ã³ã¿ã®ä½ç½®ããä»ååä¿¡ããã»ã°ã¡ã³ãå
+ã®å ´åã¯ã
+			 *  ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã
+			 */
+			cep->urg_tcph = tcph;
+			if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+				(*cep->callback)(GET_TCP_CEPID(cep), TEV_TCP_RCV_OOB, (void*)(uint32_t)1);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				uint32_t	len = 1;
+
+				(*cep->callback)(GET_TCP_CEPID(cep), TEV_TCP_RCV_OOB, (void*)&len);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				}
+			else {
+				syslog(LOG_WARNING, "[TCP] no call back for OOB, CEP: %d.", GET_TCP_CEPID(cep));
+				}
+
+			if (cep->urg_tcph != NULL) {
+				/* ã³ã¼ã«ããã¯é¢æ°å
+ã§ tcp_rcv_oob() ãå¼åºããªãã£ãã*/
+				cep->urg_tcph = NULL;
+				tcph->urp = 0;
+				}
+			else {
+				/* 
+				 *  ã³ã¼ã«ããã¯é¢æ°å
+ã§ tcp_rcv_oob() ãå¼åºããæã¯ã
+				 *  SDU é·ã®è£æ­£å¤ãè¨­å®ããã
+				 */
+				tcph->urp = 1;
+				}
+			}
+		else if (tcph->urp > 0) {
+			tcph->urp = 0;
+			}
+
+		}
+	else if (SEQ_GT(cep->rcv_nxt, cep->rcv_up)) {
+		cep->rcv_up = cep->rcv_nxt;
+		tcph->urp = 0;
+		}
+	}
+
+#else	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+static void
+proc_urg (T_TCP_HDR *tcph, T_TCP_CEP *cep)
+{
+	tcph->urp = 0;
+	}
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+/*
+ *  drop_after_ack -- åä¿¡ã»ã°ã¡ã³ããç ´æ£ããå¾ãACK ãè¿ã (æ³¨æ: ååã¨ã¯åã£ã¦ããªã)ã
+ *
+ *    æ»ãå¤:
+ *      RET_RETURN	æ­£å¸¸ããªã¿ã¼ã³ããã
+ *	RET_RST_DROP	ã¨ã©ã¼ãRST ãéä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+ */
+
+static ER
+drop_after_ack (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff)
+{
+	T_TCP_HDR *tcph = GET_TCP_HDR(input, thoff);
+
+	/*
+	 *    SYN åä¿¡ç¶æ
+ã§ãACK ãééç¢ºèªããã¦ããªãæå°éä¿¡ SEQ (snd_una) ãã
+	 *    åã®å¤ããéä¿¡ãããæå¤§ SEQ (snd_max) ããå¾ã®å¤ã®å ´åã¯ãç¸æã« RST ã
+	 *    éã£ã¦çµäºãããããã¯ã"LAND" DoS æ»æã¸ã®é²å¾¡ã§ãããå½é ããã SYN
+	 *    ã»ã°ã¡ã³ããéä¿¡ãã¤ã¥ãããã¼ãéã§ã® ACK ã¹ãã¼ã ãé²ãã
+	 */
+	if (cep->fsm_state == TCP_FSM_SYN_RECVD && (tcph->flags & TCP_FLG_ACK) &&
+	    (SEQ_GT(cep->snd_una, tcph->ack) ||
+	     SEQ_GT(tcph->ack, cep->snd_max)))
+		return RET_RST_DROP;
+
+	syscall(rel_net_buf(input));
+
+	/* éä¿¡ãæç¤ºããã*/
+	cep->flags |=  TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT;
+	sig_sem(SEM_TCP_POST_OUTPUT);
+	return RET_RETURN;
+	}
+
+/*
+ *  close_connection -- ã³ãã¯ã·ã§ã³éæ¾å¦çãç¸æãã FIN ãåä¿¡ããã
+ */
+
+static void
+close_connection (T_TCP_CEP *cep, bool_t *needoutput)
+{
+	if (TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
+
+#ifdef TCP_CFG_DELAY_ACK
+
+		if (cep->flags & TCP_CEP_FLG_NEED_SYN)
+			cep->flags |= TCP_CEP_FLG_DEL_ACK;
+		else
+			cep->flags |= TCP_CEP_FLG_ACK_NOW;
+
+#else/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+
+#endif/* of #ifdef TCP_CFG_DELAY_ACK */
+
+		cep->rcv_nxt ++;
+		}
+
+	switch (cep->fsm_state) {
+	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+		cep->fsm_state = TCP_FSM_CLOSE_WAIT;
+		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_RWBUF_READY));
+		break;
+
+	case TCP_FSM_FIN_WAIT_1:	/* APP ãçµäºãFIN éä¿¡æ¸ã¿ãACK å¾
+ã¡ */
+		cep->fsm_state = TCP_FSM_CLOSING;
+		break;
+
+	case TCP_FSM_FIN_WAIT_2:	/* ç¸æããã® FIN å¾
+ã¡ */
+		cep->fsm_state = TCP_FSM_TIME_WAIT;
+		tcp_cancel_timers(cep);
+		cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
+
+		/*
+		 *  FIN WAIT 2 ç¶æ
+ã§ã¯ã
+		 *  åä¿¡ã¯å¯è½ã§ãããããã§ã«éä¿¡ã¯çµäºãã¦ããã
+		 *  ç¸æã®éä¿¡ãçµäºããã®ã§ãå
+¥åã¿ã¹ã¯ã®ã¿èµ·åºããã
+		 */
+		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+		/* ç¸æããã® FIN ã«å¯¾ãã¦å¿ç­ãè¿ãã*/
+		tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una,
+		            cep->rbufsz - cep->rwbuf_count, TCP_FLG_ACK);
+		cep->flags &= ~TCP_CEP_FLG_ACK_NOW;
+		*needoutput = false;
+
+		/*
+		 *  å¿
+è¦ãªæ
+å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
+		 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 */
+		tcp_move_twcep(cep);
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+		break;
+
+	case TCP_FSM_TIME_WAIT:		/* ç¸æããã® FIN åä¿¡æ¸ã¿ãæéå¾
+ã¡ */
+		cep->timer[TCP_TIM_2MSL] = 2 * TCP_TVAL_MSL;
+		break;
+		}
+	}
+
+/*
+ *  tcp_input -- TCP ã®å
+¥åé¢æ°
+ *
+ *	æ³¨æ: input ã«ã¯ IF ãããã¨ IP ããããå
+é ­ã«ããã
+ */
+
+uint_t
+tcp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_TCP_HDR	*tcph;
+	T_TCP_CEP	*cep = NULL;
+	T_TCP_SEQ	iss = 0;
+	ER		ret;
+	bool_t		needoutput = false;
+	int_t		rbfree;
+	int32_t		todrop, win;
+	uint16_t	seglen;
+	uint8_t		flags;
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+	T_TCP_TWCEP	*twcep;
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_OCTETS],
+	              input->len - GET_IF_IP_HDR_SIZE(input));
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_SEGS], 1);
+	NET_COUNT_MIB(tcp_stats.tcpInSegs, 1);
+
+	/* ãããé·ããã§ãã¯ããã*/
+	if (input->len < IF_IP_TCP_HDR_SIZE(input)) {
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
+		goto drop;
+		}
+
+	tcph = GET_TCP_HDR(input, *offp);
+
+	seglen  = input->len - *offp;				/* TCP ã®ã»ã°ã¡ã³ãé· */
+
+	if (IN_CKSUM(input, IPPROTO_TCP, *offp, (uint_t)seglen) != 0) {
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_CKSUMS], 1);
+		goto drop;
+		}
+
+	/* TCP ãããé·ããã§ãã¯ããã*/
+	if (TCP_HDR_LEN(tcph->doff) < TCP_HDR_SIZE || TCP_HDR_LEN(tcph->doff) > seglen) {
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_BAD_HEADERS], 1);
+		goto drop;
+		}
+	tcph->sum = seglen - TCP_HDR_LEN(tcph->doff);		/* ãããã tcph->sum ã¯ TCP ã® SDU é· */
+
+	/*
+	 *  SYN ã¨ FIN ã®ä¸¡ããããã»ããããã¦ããã°ç ´æ£ãããnmap ç­ã®å¯¾ç­
+	 *  ãã ããRFC1644 T/TCP æ¡å¼µæ©è½ã¨ç«¶åããã
+	 */
+	if ((tcph->flags & (TCP_FLG_SYN | TCP_FLG_FIN)) == (TCP_FLG_SYN | TCP_FLG_FIN))
+		goto drop;
+
+	/* ãããã¯ã¼ã¯ãªã¼ãã¼ãããã¹ããªã¼ãã¼ã«å¤æããã*/
+
+	NTOHL(tcph->seq);
+	NTOHL(tcph->ack);
+	NTOHS(tcph->win);
+	NTOHS(tcph->urp);
+	NTOHS(tcph->sport);
+	NTOHS(tcph->dport);
+
+find_cep:
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	/*
+	 *  ç¶æ
+ã Time Wait ä¸­ã® CEP ãæ¢ç´¢ããã
+	 */
+	twcep = tcp_find_twcep(input, *offp);
+	if (twcep != NULL) {
+
+		if (tcph->flags & TCP_FLG_RST)		/* RST ãã©ã°ãåä¿¡ããã¨ãã¯ç¡è¦ããã*/
+			goto drop;
+		else {
+
+			/*
+			 *    TCP éä¿¡ç«¯ç¹ã Time Wait ã®æãç¸æãã¹ãããã»ã°ã¡ã³ããæ¥ãã¨ãã¯ã
+			 *    ç¸æãã¹ãã® FIN ã«å¯¾ããèªãã¹ãã® ACK ã»ã°ã¡ã³ããéä¸­ã§
+			 *    æå¤±ãããã¨ãæå³ãã¦ããã®ã§ãACK ã»ã°ã¡ã³ããåéããã
+			 */
+
+			/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+			HTONS(tcph->sport);
+			HTONS(tcph->dport);
+
+			tcp_respond(input, NULL, twcep->rcv_nxt, twcep->snd_una, twcep->rbufsz - twcep->rwbuf_count, TCP_FLG_ACK);
+			}
+		return IPPROTO_DONE;
+		}
+	else
+		/* æ¨æºã® TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+		cep = tcp_find_cep(input, *offp);
+
+#else	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = tcp_find_cep(input, *offp);
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	/*
+	 *  TCP éä¿¡ç«¯ç¹ããªãå ´åã¨ CEP ã®ç¶æ
+ãã¯ã­ã¼ãºãªãç ´æ£ããã
+	 */
+	if (cep == NULL) {
+		syslog(LOG_INFO, "[TCP] unexp port: %d.", tcph->dport);
+		goto reset_drop;
+		}
+
+#ifdef TCP_CFG_TRACE
+
+	tcp_input_trace(input, cep);
+
+#endif	/* of #ifdef TCP_CFG_TRACE */
+
+
+	if (cep->fsm_state == TCP_FSM_CLOSED)
+		goto drop;
+
+	/*
+	 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã¿ã§ã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
+	 *  ã¢ã¤ãã«æéã¨çå­ç¢ºèªã¿ã¤ãããªã»ããããã
+	 */
+	cep->idle = 0;
+	if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
+		cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
+		}
+
+	/* CEP ã®ç¶æ
+ã LISTEN ä»¥å¤ã®æã¯ããªãã·ã§ã³ãå¦çããã*/
+	if (cep->fsm_state != TCP_FSM_LISTEN)
+		parse_option(tcph, cep);
+
+	/*
+	 *  åä¿¡å¯è½ã¦ã£ã³ããµã¤ãºãè¨ç®ããã
+	 *
+	 *  rcv_nxt:     åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQï¼ããä»¥åã¯åä¿¡æ¸ã¿ï¼
+	 *  rcv_adv:     åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ
+	 *  rbufsz:      åä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº
+	 *  rwbuf_count:  åä¿¡ã¦ã£ã³ããããã¡ã«ãããã¼ã¿é
+	 *  tcph->sum:   ä»ååä¿¡ãã SDU ãµã¤ãº
+	 *
+	 *  ä»ååä¿¡ããã»ã°ã¡ã³ããé åºæ´åã­ã¥ã¼ã«é£çµãã
+	 *  å¯è½æ§ãããã®ã§ tcph->sum ãèæ
+®ããã
+	 *
+	 */
+	win = cep->rbufsz - (cep->rwbuf_count + tcph->sum);
+	if (win < 0)
+		win = 0;
+	if (win > (int32_t)(cep->rcv_adv - cep->rcv_nxt))
+		cep->rcv_wnd = win;
+	else
+		cep->rcv_wnd = cep->rcv_adv - cep->rcv_nxt;
+
+	/* CEP ã®ç¶æ
+ã«ããå¦çãè¡ãã*/
+
+	if (cep->fsm_state == TCP_FSM_LISTEN) {		/* ååãªã¼ãã³ (LISTEN) ã®å¦çã*/
+		if ((ret = listening(input, cep, *offp, iss)) == RET_RST_DROP)
+			goto reset_drop;
+		else if (ret == RET_DROP)
+			goto drop;
+		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
+				goto drop;
+			else if (ret == RET_RST_DROP)
+				goto reset_drop;
+			else if (ret == RET_RETURN)
+				return IPPROTO_DONE;
+			}
+		}
+	else if (cep->fsm_state == TCP_FSM_SYN_SENT) {	/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+		if ((ret = syn_sent(tcph, cep)) == RET_RST_DROP)
+			goto reset_drop;
+		else if (ret == RET_DROP)
+			goto drop;
+		trim_length(tcph, cep);			/* åä¿¡ãã SDU é·ãèª¿æ´ããã*/
+
+		if (tcph->flags & TCP_FLG_ACK) {	/* ACK ãã©ã°ã®å¦ç */
+			if ((ret = proc_ack2(input, cep, *offp, &needoutput)) == RET_DROP)
+				goto drop;
+			else if (ret == RET_RST_DROP)
+				goto reset_drop;
+			else if (ret == RET_RETURN)
+				return IPPROTO_DONE;
+			}
+		}
+	else {
+		if (cep->fsm_state == TCP_FSM_SYN_RECVD) {	/* SYN ãåä¿¡ãSYN éä¿¡æ¸ã¿	*/
+			/*
+			 *  ç¸æããåä¿¡ç¢ºèªãéããã¦æ¥ã¦ãã
+			 *
+			 *    ACK <= æªç¢ºèªã®æå°éä¿¡ SEQ (snd_una) &&
+			 *           éä¿¡ããæå¤§     SEQ (snd_max) < ACK
+			 *
+			 *  ãªãããªã»ãããéã£ã¦ã»ã°ã¡ã³ããç ´æ£ããã
+			 */
+			if ((tcph->flags & TCP_FLG_ACK) &&
+			    (SEQ_LE(tcph->ack, cep->snd_una) ||
+			     SEQ_GT(tcph->ack, cep->snd_max)))
+			     	goto reset_drop;
+			}
+
+		/* 
+		 *  RST ãã©ã°ãåä¿¡ããã¨ãã®å¦ç (ç°å¸¸åæ­)
+		 */
+		if (tcph->flags & TCP_FLG_RST) {
+			if (SEQ_GE(tcph->seq, cep->last_ack_sent) &&
+			    SEQ_LT(tcph->seq, cep->last_ack_sent + cep->rcv_wnd)) {
+				/*
+				 *  åä¿¡ããã»ã°ã¡ã³ãã® SEQ ããæå¾ã«éä¿¡ãã ACK (last_ack_sent)
+				 *  ãããåä¿¡ã¦ã¤ã³ãã¦ãµã¤ãºã¾ã§ã®éã®å¦ç
+				 */
+				switch (cep->fsm_state) {
+				case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿		*/
+
+					cep->net_error = EV_CNNRF;	/* æ¥ç¶ä¸è½ */
+					cep->error     = E_CLS;
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
+					NET_COUNT_MIB(tcp_stats.tcpAttemptFails, 1);
+					cep = tcp_close(cep);
+					break;
+
+				case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº			*/
+				case TCP_FSM_CLOSE_WAIT:	/* FIN åä¿¡ãã¯ã­ã¼ãºå¾
+ã¡		*/
+					NET_COUNT_MIB(tcp_stats.tcpEstabResets, 1);
+					/* fallthrough */
+
+				case TCP_FSM_FIN_WAIT_1:	/* çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
+				case TCP_FSM_FIN_WAIT_2:	/* çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
+ã¡	*/
+
+					cep->net_error = EV_CNRST;	/* æ¥ç¶ãªã»ãã */
+					cep->error     = E_CLS;
+					NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_RSTS], 1);
+					/* no break; */
+
+				case TCP_FSM_CLOSING:		/* çµäºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡	*/
+				case TCP_FSM_LAST_ACK:		/* FIN åä¿¡ãçµäºãACK å¾
+ã¡	*/
+
+					cep = tcp_close(cep);
+					break;
+					}
+				}
+			goto drop;
+			}
+
+		/*
+		 *  CEP ã®ç¶æ
+ã SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿ã®å ´åã¯ã
+		 *  åä¿¡ã¦ã£ã³ãã«åã¾ãããã«ãã¼ã¿ã
+		 *  èª¿æ´ããåã«ããã®æ¥ç¶ã«ãããã±ãããã©ãããæ¤è¨¼ããã
+		 *
+		 *    åä¿¡ããç¸æã® SEQ < ç¸æã® SEQ ã®åæå¤ (irs)
+		 *
+		 *  ããã¯ã"LAND" DoS æ»æã®é²å¾¡ã§ããã
+		 */
+		if (cep->fsm_state == TCP_FSM_SYN_RECVD && SEQ_LT(tcph->seq, cep->irs)) {
+			goto reset_drop;
+			}
+
+		/*
+		 *  åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ (rcv_nxt) - åä¿¡ããç¸æã® SEQ ã
+		 *  æ­£ãªããrcv_nxt ä»¥åã®ãã¼ã¿ã¯ãã§ã«åä¿¡ãã¦ããã®ã§ããã®é¨åã
+		 *  åé¤ããã
+		 *                           <---------- rcv_wnd --------->
+		 *                           rcv_nxt                      rcv_nxt + rcv_wnd
+		 *                           v                            v
+		 *                      -----+----------------------------+-----
+		 *                           |                            |
+		 *                      -----+----------------------------+-----
+		 *           +----------------------+
+		 *           |***************|      |
+		 *           +----------------------+
+		 *           ^                      ^
+		 *           seq                    seq + len
+		 *           <---------------> åé¤ããã
+		 */
+		todrop = cep->rcv_nxt - tcph->seq;
+		if (todrop > 0) {
+
+			/*
+			 *  SYN ãã©ã°ãã¤ãã¦ããã¨ãã¯ããã®å (1 ãªã¯ããã)
+			 *  SEQ ãé²ããç·æ¥ãã¤ã³ã¿ã¨åé¤ããé·ããèª¿æ´ããã
+			 */
+			if (tcph->flags & TCP_FLG_SYN) {
+				tcph->flags &= ~TCP_FLG_SYN;
+				tcph->seq ++;
+				if (tcph->urp > 1)
+					tcph->urp --;
+				else
+					tcph->flags &= ~TCP_FLG_URG;
+				todrop --;
+				}
+
+			/*
+			 *  åé¤ããé·ãã SDU ããé·ããã¤ã¾ããåä¿¡ãæå¾
+ãã¦ãã
+			 *  æå°ã® SEQ (rcv_nxt) ã«éãã¦ããªããã
+			 *  åé¤ããé·ãã SDU ã¨åãã§ãFIN ãã©ã°ãã¤ãã¦ãªããã°
+			 *  å
+¨ã¦åé¤ããã
+			 */
+			if ( todrop >  tcph->sum ||		/* tcph->sum ã¯ TCP ã® SDU é· */
+			    (todrop == tcph->sum && (tcph->flags & TCP_FLG_FIN) == 0)) {
+				tcph->flags &= ~TCP_FLG_FIN;
+				cep->flags |= TCP_CEP_FLG_ACK_NOW;
+				todrop = tcph->sum;		/* tcph->sum ã¯ TCP ã® SDU é· */
+				}
+
+			/*
+			 *  SDU ãåã«è©°ããã
+			 */
+			if (todrop < tcph->sum) {		/* tcph->sum ã¯ TCP ã® SDU é· */
+				memcpy(GET_TCP_SDU(input, *offp),
+				       GET_TCP_SDU(input, *offp) + todrop, (size_t)(tcph->sum - todrop));
+				}
+
+			/*
+			 *  SEQ ã¨ SDU é·ãèª¿æ´ããã
+			 */
+			tcph->seq +=     todrop;
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+
+			/*
+			 *  ç·æ¥ãã¤ã³ã¿ãèª¿æ´ããã
+			 */
+			if (tcph->urp > todrop)
+				tcph->urp -= (uint16_t)todrop;
+			else {
+				tcph->flags &= ~TCP_FLG_URG;
+				tcph->urp = 0;
+				}
+
+			NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DUP_SEGS], 1);
+			}
+
+		/*  
+		 *  ããã¦ã¼ã¶ã¿ã¹ã¯ãçµäºããå¾ã«ããã¼ã¿ãåä¿¡ãã
+		 *  å ´åã¯ãRST ãéãã
+		 */
+		if (cep->fsm_state == TCP_FSM_LAST_ACK && tcph->sum > 0) {	/* tcph->sum ã¯ TCP ã® SDU é· */
+			cep = tcp_close(cep);
+			goto reset_drop;
+			}
+
+		/*
+		 *  åä¿¡ã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããè¶
+ããå ´åã¯ã
+		 *  è¶
+ããåãåãã
+		 *
+		 *       <---------- rcv_wnd --------->
+		 *       rcv_nxt                      (rcv_nxt + rcv_wnd)
+		 *       v                            v
+		 *  -----+----------------------------+-----
+		 *       |                            |
+		 *  -----+----------------------------+-----
+		 *                    +----------------------+
+		 *                    |               |******|
+		 *                    +----------------------+
+		 *                    ^                      ^
+		 *                    seq                    seq + len
+		 *                                     <-----> åé¤ããã
+		 */
+		todrop = (tcph->seq + tcph->sum) - (cep->rcv_nxt + cep->rcv_wnd);	/* tcph->sum ã¯ TCP ã® SDU é· */
+		if (todrop > 0) {
+			if (todrop > tcph->sum) {					/* tcph->sum ã¯ TCP ã® SDU é· */
+				/*
+				 *  åä¿¡ãã SDU ã®å
+¨ã¦ãåä¿¡ã¦ã£ã³ããè¶
+ããå ´åã
+				 *
+				 *  TIME_WAIT ä¸­ã«ãæ°ããªæ¥ç¶è¦æ±ãåä¿¡ããã
+				 *  å¤ãæ¥ç¶ãç ´æ£ããæ°ããªæ¥ç¶ãéå§ããã
+				 *  ãã ããSEQ ã¯åããé²ãã§ããªããã°ãªããªãã
+				 */
+				if ((tcph->flags & TCP_FLG_SYN) &&
+				    cep->fsm_state == TCP_FSM_TIME_WAIT &&
+				    SEQ_GT(tcph->seq, cep->rcv_nxt)) {
+					iss = cep->snd_nxt + TCP_ISS_INCR();
+					tcp_close(cep);
+					syscall(dly_tsk(0));
+					goto find_cep;
+				    	}
+
+				/*
+				 *  åä¿¡ã¦ã£ã³ãã 0 ã§ãåä¿¡ãã SEQ ã¨
+				 *  åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ ãä¸è´ããã¨ãã¯
+				 *  ACK ãè¿ããããä»¥å¤ã¯ãã¼ã¿ãç ´æ£ããACK ãè¿ãã
+				 */
+				if (cep->rcv_wnd == 0 && (tcph->seq == cep->rcv_nxt || tcph->sum == 0)) {
+					cep->flags |= TCP_CEP_FLG_ACK_NOW;
+					}
+				else if (drop_after_ack(input, cep, *offp) == RET_RST_DROP)
+					goto reset_drop;
+				else {
+					return IPPROTO_DONE;
+					}
+				}
+			tcph->sum -= (uint16_t)todrop;	/* tcph->sum ã¯ TCP ã® SDU é· */
+			tcph->flags &= ~(TCP_FLG_PUSH | TCP_FLG_FIN);
+			}
+
+		/*
+		 *  ãããSYN ãã»ããããã¦ããã°ã
+		 *  ã¨ã©ã¼ãªã®ã§ RST ãéããæ¥ç¶ãç ´æ£ããã
+		 */
+		if (tcph->flags & TCP_FLG_SYN) {
+			cep->net_error = EV_CNRST;
+			cep = tcp_drop(cep, E_CLS);
+			goto reset_drop;
+			}
+
+		/*
+		 *  ãããACK ãã»ããããã¦ããªãå ´åã¯ã
+		 *  ç¶æ
+ã SYN åä¿¡æ¸ã¿ã
+		 *  SYN ãéä¿¡ãããã¨ãã¦ããã°ãå¦çãç¶ãããã
+		 *  ããä»¥å¤ã¯ã»ã°ã¡ã³ããç ´æ£ãã¦çµäºããã
+		 */
+		if ((tcph->flags & TCP_FLG_ACK) == 0) {
+			if (!(cep->fsm_state == TCP_FSM_SYN_RECVD || (cep->flags & TCP_CEP_FLG_NEED_SYN)))
+				goto drop;
+			}
+		else {
+			/*
+			 * ACK ã®å¦ç
+			 */
+			ret = proc_ack1(input, cep, *offp, &needoutput);
+			if (ret == RET_DROP)
+				goto drop;
+			else if (ret == RET_RST_DROP)
+				goto reset_drop;
+			else if (ret == RET_RETURN)
+				return IPPROTO_DONE;
+			}
+		}
+
+/* step 6 */
+
+	/* éä¿¡ã¦ã£ã³ããæ´æ°ããã*/
+	if (update_wnd(tcph, cep) == true)
+		needoutput = true;
+
+	/* ç·æ¥ãã¼ã¿ãå¦çããã*/
+	proc_urg(tcph, cep);
+
+/* do data */
+
+	/*
+	 *  SDU ãããããFIN ãæªåä¿¡ã®ç¶æ
+ã§ãæåã« FIN ãåä¿¡ããã¨ãã
+	 *  åä¿¡ã»ã°ã¡ã³ãã­ã¥ã¼ã« net_buf ãè¿½å ããã
+	 *  ããä»¥å¤ã®å ´åã¯ãã»ã°ã¡ã³ããç ´æ£ããã
+	 */
+	flags = tcph->flags;
+	if ((tcph->sum > 0 || (flags & TCP_FLG_FIN)) &&		/* tcph->sum ã¯ TCP ã® SDU é· */
+	    TCP_FSM_HAVE_RCVD_FIN(cep->fsm_state) == 0) {
+		flags = reassemble(input, cep, *offp, flags);
+		}
+	else {
+		syscall(rel_net_buf(input));
+		flags &= ~TCP_FLG_FIN;
+		}
+
+	/*
+	 *  FIN ãåä¿¡ãããã³ãã¯ã·ã§ã³ãã¯ã­ã¼ãºããã
+	 */
+	if (flags & TCP_FLG_FIN)
+		close_connection(cep, &needoutput);
+
+	/* åºåãè¡ã£ãå¾çµäºããã*/
+	if (needoutput == true || (cep->flags & TCP_CEP_FLG_ACK_NOW)) {
+		/* éä¿¡ãæç¤ºããã*/
+		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+
+	return IPPROTO_DONE;
+
+reset_drop:
+	/*
+	 *  RST éä¿¡å¦ç
+	 */
+
+	if ((tcph->flags & TCP_FLG_RST) || IN_IS_NET_ADDR_MULTICAST(input))
+		goto drop;
+
+	/* ãã¹ããªã¼ãã¼ãããããã¯ã¼ã¯ãªã¼ãã¼ã«æ»ãã*/
+
+	HTONS(tcph->sport);
+	HTONS(tcph->dport);
+
+	if (cep == NULL)
+		rbfree = 0;
+	else
+		rbfree = cep->rbufsz - cep->rwbuf_count;
+
+	if (tcph->flags & TCP_FLG_ACK)
+		tcp_respond(input, cep, 0, tcph->ack, rbfree, TCP_FLG_RST);
+	else {
+		if (tcph->flags & TCP_FLG_SYN)
+			tcph->sum ++;		/* tcph->sum ã¯ SDU é· */
+		tcp_respond(input, cep, tcph->seq + tcph->sum, 0, rbfree, TCP_FLG_RST | TCP_FLG_ACK);
+		}
+
+	/* input ã¯ tcp_respoond ã§è¿å´ãããã*/
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_RSTS], 1);
+	NET_COUNT_MIB(tcp_stats.tcpOutRsts, 1);
+	return IPPROTO_DONE;
+
+drop:
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DROP_SEGS], 1);
+	NET_COUNT_MIB(tcp_stats.tcpInErrs, 1);
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_output.c	(revision 313)
@@ -0,0 +1,1157 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_output.c	8.4 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_output.c,v 1.32.2.2 1999/08/29 16:29:55 peter Exp $
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  é¢æ°
+ */
+
+static ER send_segment (bool_t *sendalot, T_TCP_CEP *cep, uint_t doff, uint_t win, uint_t len, uint8_t flags);
+static void tcp_output (T_TCP_CEP *cep);
+
+/*
+ *  å¤æ°
+ */
+
+/* åºåæã®ãã©ã°ã FSM ç¶æ
+ã«ããé¸æããããã®è¡¨ */
+
+const static uint8_t tcp_outflags[] = {
+	TCP_FLG_RST | TCP_FLG_ACK,	/*  0, ã¯ã­ã¼ãº				*/
+	0,				/*  1, ååãªã¼ãã³			*/
+	TCP_FLG_SYN,			/*  2, è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+	TCP_FLG_SYN | TCP_FLG_ACK,	/*  3, SYM ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+	TCP_FLG_ACK,			/*  4, ã³ãã¯ã·ã§ã³éè¨­å®äº		*/
+	TCP_FLG_ACK,			/*  5, FIN åä¿¡ãã¯ã­ã¼ãºå¾
+ã¡		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  6, çµäºãã¦ãFIN éä¿¡æ¸ã¿		*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  7, çµäºãFIN äº¤ææ¸ã¿ãACK å¾
+ã¡	*/
+	TCP_FLG_FIN | TCP_FLG_ACK,	/*  8, FIN åä¿¡ãçµäºãACK å¾
+ã¡		*/
+	TCP_FLG_ACK,			/*  9, çµäºãFIN ä¼éç¢ºèªåä¿¡ãFINå¾
+ã¡	*/
+	TCP_FLG_ACK,			/* 10, çµäºãæéå¾
+ã¡			*/
+	};
+
+/*
+ *  send_segment -- TCP åºåå¦ç
+ */
+
+static ER
+send_segment (bool_t *sendalot, T_TCP_CEP *cep, uint_t doff, uint_t win, uint_t len, uint8_t flags)
+{
+	T_NET_BUF	*output;
+	T_TCP_HDR	*tcph;
+	uint_t		optlen, hdr_offset;
+	ER		error;
+
+#ifdef TCP_CFG_OPT_MSS
+
+	uint8_t		*optp;
+
+	if (flags & TCP_FLG_SYN)
+		optlen = TCP_OPT_LEN_MAXSEG;
+	else
+		optlen = 0;
+
+#else/* of #ifdef TCP_CFG_OPT_MSS */
+
+	optlen = 0;
+
+#endif/* of #ifdef TCP_CFG_OPT_MSS */
+
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_SEGS], 1);
+	NET_COUNT_MIB(tcp_stats.tcpOutSegs, 1);
+
+	/*
+	 *  ã»ã°ã¡ã³ãé·ããç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãé·ã«èª¿æ´ããã
+	 *  ãããè¶
+ãã¦ããå ´åã¯ãè¶
+ããåãå¾ã§éä¿¡ããã
+	 *  ãã®ãããFIN ããããã¯ãªã¢ããã
+	 *
+	 *  ãªãªã¸ãã«ã§ã¯ãt_maxopd ãå¶éé·ã«ãã¦ãããã
+	 *  æ¬å®è£
+ã§ã¯ãç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ãã«ããã
+	 */
+	if (len + optlen > cep->maxseg) {
+		flags &= ~TCP_FLG_FIN;
+		len = cep->maxseg - optlen;
+		*sendalot = true;
+		}
+
+	/*
+	 *  éä¿¡ãããã¡ãç©ºã«ãªãã¨ãã¯ PUSH ãã©ã°ãè¨­å®ããã
+	 */
+	if (len && doff + len >= cep->swbuf_count)
+		flags |= TCP_FLG_PUSH;
+
+#if defined(TCP_CFG_SWBUF_CSAVE_ONLY)
+		
+	if (len > 0 && ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SEND_READY ||
+	                (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT)) {
+
+		/*
+		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
+		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 */
+		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
+		output = cep->swbufq; 
+		}
+	else {
+
+		/*
+		 *  ACK å®äºç¶æ
+ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
+		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 */
+		len = 0;
+		if ((error = tcpn_get_segment(&output, cep, optlen,
+	                                    len, (uint_t)net_buf_max_siz(),
+	                                    NBA_SEARCH_ASCENT, TMO_TCP_GET_NET_BUF)) != E_OK) {
+			if (cep->timer[TCP_TIM_REXMT] == 0)
+				cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+			goto err_ret;
+			}
+		}
+
+#elif defined(TCP_CFG_SWBUF_CSAVE)	/* of #if defined(TCP_CFG_SWBUF_CSAVE_ONLY) */
+
+	if (IS_PTR_DEFINED(cep->sbuf)) {
+		if ((error = tcpn_get_segment(&output, cep, optlen,
+		                             len, (uint_t)net_buf_max_siz(),
+		                             NBA_SEARCH_ASCENT, TMO_TCP_GET_NET_BUF)) != E_OK) {
+			if (cep->timer[TCP_TIM_REXMT] == 0)
+				cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+			goto err_ret;
+			}
+		}
+	else if (len > 0 && ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SEND_READY ||
+	                     (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT)) {
+
+		/*
+		 *  éä¿¡ã¦ã¤ã³ããããã¡ãéæ¾ãããªãããã«ãã¦ã
+		 *  ãããã¯ã¼ã¯ãããã¡ãåºåã«ç§»ãã
+		 */
+		cep->swbufq->flags |= NB_FLG_NOREL_IFOUT;
+		output = cep->swbufq; 
+		}
+	else {
+
+		/*
+		 *  ACK å®äºç¶æ
+ã§ããã®é¢æ°ãå¼ã³åºããããã¨ãããã
+		 *  ãã®æã¯ãlen ã 0 ã«ãã¦ãå¦çãç¶ç¶ããã
+		 */
+		len = 0;
+		if ((error = tcpn_get_segment(&output, cep, optlen,
+	                                    len, (uint_t)net_buf_max_siz(),
+	                                    NBA_SEARCH_ASCENT, TMO_TCP_GET_NET_BUF)) != E_OK) {
+			if (cep->timer[TCP_TIM_REXMT] == 0)
+				cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+			goto err_ret;
+			}
+		}
+
+#else	/* of #if defined(TCP_CFG_SWBUF_CSAVE_ONLY) */
+
+	if ((error = tcpn_get_segment(&output, cep, optlen,
+	                             len, (uint_t)net_buf_max_siz(),
+	                             NBA_SEARCH_ASCENT, TMO_TCP_GET_NET_BUF)) != E_OK) {
+		if (cep->timer[TCP_TIM_REXMT] == 0)
+			cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+		goto err_ret;
+		}
+
+#endif	/* of #if defined(TCP_CFG_SWBUF_CSAVE_ONLY) */
+
+	/*
+	 *  TCP ãªãã·ã§ã³ã®è¨­å®ãè¡ãã
+	 *  æ¬å®è£
+ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºã®ã¿è¨­å®ããã
+	 */
+	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
+	if (flags & TCP_FLG_SYN) {
+		cep->snd_nxt = cep->iss;
+
+#ifdef TCP_CFG_OPT_MSS
+
+		optp = GET_TCP_OPT(output, hdr_offset);
+		*optp ++ = TCP_OPT_MAXSEG;
+		*optp ++ = TCP_OPT_LEN_MAXSEG;
+		*(uint16_t*)optp = htons(DEF_TCP_RCV_SEG);
+
+#endif/* of #ifdef TCP_CFG_OPT_MSS */
+
+		}
+
+	/* TCP SDU ã«éä¿¡ãã¼ã¿ãã³ãã¼ããã*/
+
+	if (len > 0) {
+		if (SEQ_LT(cep->snd_nxt, cep->snd_max)) {
+			NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_REXMIT_SEGS], 1);
+			NET_COUNT_MIB(tcp_stats.tcpRetransSegs, 1);
+			}
+		TCP_READ_SWBUF(cep, output, len, doff);
+		}
+	else {
+		if (cep->flags & TCP_CEP_FLG_ACK_NOW)
+			NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_ACKS], 1);
+		if (flags & (TCP_FLG_FIN | TCP_FLG_SYN | TCP_FLG_RST))
+			NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_CNTL_SEGS],  1);
+
+
+#ifdef TCP_CFG_EXTENTIONS
+
+		if (SEQ_LT(cep->snd_up, cep->snd_una))
+			NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_URG_SEGS], 1);
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+		}
+
+	/*
+	 * snd_max: éä¿¡ããæå¤§ SEQ
+	 * snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
+	 *
+	 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
+	 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
+	 *  ã»ã°ã¡ã³ããéä¿¡ããããSEQ ã¯é²ããªãã
+	 */
+	if ((flags & TCP_FLG_FIN) && (cep->flags & TCP_CEP_FLG_SENT_FIN) &&
+	    cep->snd_nxt == cep->snd_max) {
+		cep->snd_nxt --;
+		}
+
+	tcph = GET_TCP_HDR(output, hdr_offset);
+
+	/*
+	 *  SEQãACKããã©ã°ã®è¨­å®ã
+	 */
+	if (len > 0 || (flags & (TCP_FLG_SYN | TCP_FLG_FIN)) || cep->timer[TCP_TIM_PERSIST] != 0)
+		tcph->seq = htonl(cep->snd_nxt);
+	else
+		tcph->seq = htonl(cep->snd_max);
+
+	/*
+	 *  rcv_nxt: åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ
+	 */
+	tcph->ack   = htonl(cep->rcv_nxt);
+	tcph->flags = flags;
+
+	/*
+	 *  åä¿¡ã¦ã£ã³ãã®è¨ç®
+	 *
+	 *  rbufsz: åä¿¡ç¨ãããã¡ãµã¤ãº
+	 *  maxseg: ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 */
+	if (win < (cep->rbufsz / 4) && win < cep->maxseg)
+		win = 0;
+
+	/*
+	 *  rcv_nxt: åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ
+	 *  rcv_adv: åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ
+	 */
+	if ((int32_t)win < (int32_t)(cep->rcv_adv - cep->rcv_nxt))
+		win = (uint_t)(cep->rcv_adv - cep->rcv_nxt);
+
+	tcph->win = htons(win);
+
+#ifdef TCP_CFG_EXTENTIONS
+
+	/*
+	 *  ç·æ¥ãã¤ã³ã¿ã®è¨­å®
+	 */
+	if (SEQ_GT(cep->snd_up, cep->snd_nxt)) {
+		if (TCP_CFG_URG_OFFSET)
+			tcph->urp    = htons((uint16_t)(cep->snd_up - cep->snd_nxt));
+		else
+			tcph->urp    = htons((uint16_t)(cep->snd_up - cep->snd_nxt - 1));
+		tcph->flags |= TCP_FLG_URG;
+		}
+	else
+		cep->snd_up  = cep->snd_una;
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	/*
+	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 */
+	tcph->sum = 0;
+	tcph->sum = IN_CKSUM(output, IPPROTO_TCP, hdr_offset, GET_TCP_HDR_SIZE(output, hdr_offset) + len);
+
+	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	output->len = (uint16_t)(GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset) + len);
+
+	/*
+	 *  ã¿ã¤ãã®èª¿æ´
+	 */
+	if ((cep->flags & TCP_CEP_FLG_FORCE) == 0 || cep->timer[TCP_TIM_PERSIST] == 0) {
+		T_TCP_SEQ startseq = cep->snd_nxt;
+
+		/*
+		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ãä»åéä¿¡ãããã¼ã¿æ°åé²ããã
+		 */
+		if (flags & TCP_FLG_SYN)
+			cep->snd_nxt ++;
+		if (flags & TCP_FLG_FIN) {
+			cep->flags |= TCP_CEP_FLG_SENT_FIN;
+			cep->snd_nxt ++;
+			}
+
+		cep->snd_nxt += len;
+
+		/*
+		 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) ã
+		 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
+		 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+		 */
+		if (SEQ_GT(cep->snd_nxt, cep->snd_max)) {
+			cep->snd_max = cep->snd_nxt;
+			/*
+			 *  ãããå¾å¾©æéè¨æ¸¬ãè¡ã£ã¦ããªããã°ã
+			 *  ãã®éä¿¡ã«æéãåãããã
+			 */
+			if (cep->rtt == 0) {
+				cep->rtt   = 1;
+				cep->rtseq = startseq;	/* æ´æ°åã® cep->snd_nxt */
+				}
+			}
+
+		/*
+		 *  ããè¨­å®ããã¦ããªãããACK ã¾ãã¯ä¿çãçºçãã¦ããªããã°ã
+		 *  åéã¿ã¤ããè¨­å®ãããè¨­å®ããåæå¤ã¯ã
+		 * ãæ»ãããªå¾å¾©æé + 2 Ã å¾å¾©æéå¤åãã§ããã
+		 *  åéæéã®ããã¯ãªãã«ä½¿ãããã·ããã«ã¦ã³ããåæåããã
+		 */
+		if (cep->timer[TCP_TIM_REXMT] == 0 && cep->snd_nxt != cep->snd_una) {
+			cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+			if (cep->timer[TCP_TIM_PERSIST] != 0) {
+				cep->timer[TCP_TIM_PERSIST] = 0;
+				cep->rxtshift = 0;
+				}
+			}
+		}
+
+	/*
+	 *  æ¬¡ã«éä¿¡ãã SEQ (snd_nxt) + ä»åéä¿¡ãããã¼ã¿æ° (len) ã
+	 *  éä¿¡ããæå¤§ SEQ (snd_max) ããé²ãã§ããã°ã
+	 *  éä¿¡ããæå¤§ SEQ (snd_max) ãæ´æ°ããã
+	 */
+	else if (SEQ_GT(cep->snd_nxt + len, cep->snd_max))
+		cep->snd_max = cep->snd_nxt + len;
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SEND_READY)
+		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SENT;
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#ifdef TCP_CFG_TRACE
+
+	tcp_output_trace(output, cep);
+
+#endif	/* of #ifdef TCP_CFG_TRACE */
+
+	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	if ((error = IP_OUTPUT(output, TMO_TCP_OUTPUT)) != E_OK)
+		goto err_ret;
+
+	/*
+	 *  ç¸æã«ä¼ããã¦ã£ã³ãã¦ãµã¤ãº (win) ã 0 ä»¥ä¸ã§ã
+	 *  åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ (rcv_nxt) + win ã
+	 *  åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ (rcv_adv) ããé²ãã§ããã°
+	 *  åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ ãæ´æ°ããã
+	 */
+	if (win > 0 && SEQ_GT(cep->rcv_nxt + win, cep->rcv_adv)) {
+		cep->rcv_adv = cep->rcv_nxt + win;
+		}
+
+	/*
+	 *  æå¾ã«éä¿¡ãã ACK (last_ack_sent) ãæ´æ°ããã
+	 */
+	cep->last_ack_sent = cep->rcv_nxt;
+
+	/*
+	 *  ãã©ã°ã®è¨­å®ãè¡ãã
+	 */
+	cep->flags &= ~(TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_DEL_ACK);
+	if (cep->flags & TCP_CEP_FLG_FORCE_CLEAR)
+		cep->flags &= ~(TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR);
+
+	return E_OK;
+
+err_ret:
+	/*
+	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
+	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 */
+	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
+
+	return error;
+	}
+
+/*
+ *  tcp_output -- TCP åºåå¦ç
+ */
+
+void
+tcp_output (T_TCP_CEP *cep)
+{
+	bool_t	sendalot = true, idle;
+	ER	error = E_OK;
+	int32_t	len;
+	uint_t	doff, win;
+	uint8_t	flags;
+
+	/*
+	 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
+	 *  snd_max: éä¿¡ããæå¤§ SEQ
+	 */
+	idle = (cep->snd_max == cep->snd_una);
+
+	/*
+	 *  idle:   ã¢ã¤ãã«æé
+	 *  rxtcur: ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã
+	 */
+	if (idle && cep->idle >= cep->rxtcur)
+
+		/*
+		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *
+		 *  é·æéã¢ã¤ãã«ã ã£ãã®ã§ã¹ã­ã¼ã¹ã¿ã¼ãå¶å¾¡ã«è¨­å®ããã
+		 */
+		cep->snd_cwnd = cep->maxseg;
+
+	while (error == E_OK && sendalot) {
+		sendalot = false;
+
+		/*
+		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
+		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *
+		 *  doff: éä¿¡ãéå§ãããªãã»ããã
+		 *                                    swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *    0                               V
+		 *    +-------------------------------------------+
+		 *    |                    sbuf                   |
+		 *    +-------------------------------------------+
+		 *    ^               ^
+		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |       doff
+		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 */
+		doff = (uint_t)(cep->snd_nxt - cep->snd_una);
+
+		/*
+		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
+		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *
+		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 */
+		win   = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
+	
+		/* åºåãã©ã°ã®è¨­å® */
+		flags = tcp_outflags[cep->fsm_state];
+		if (cep->flags & TCP_CEP_FLG_NEED_FIN)
+			flags |= TCP_FLG_FIN;
+		if (cep->flags & TCP_CEP_FLG_NEED_SYN)
+			flags |= TCP_FLG_SYN;
+		if (cep->flags & TCP_CEP_FLG_FORCE) {
+
+			/*
+			 *  ãããéä¿¡ã¦ã¤ã³ããµã¤ãº (win) ã 0 ãªã 1 ãªã¯ãããéä¿¡ããã
+			 *  ããã§ãªããã°ãæç¶ã¿ã¤ã ã¢ã¦ããã­ã£ã³ã»ã«ãã
+			 *  åéä¿¡åæ° (rxtshift) ã 0 ã«ããã
+			 */
+			if (win == 0) {
+
+				/*
+				 *  doff:        éä¿¡ãããªã¯ãããæ°ã
+				 *  swbuf_count: éä¿¡ãããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº
+				 *
+				 *  éä¿¡ãããã¡ã«æ®ã£ã¦ãããªã¯ããããããããã
+				 *  éä¿¡ãããã¨ãã¦ãããªã¯ãããæ°ããå¤ããã°
+				 *  FIN ãã©ã°ãã¯ãªã¢ããã
+				 */
+				if (doff < cep->swbuf_count)
+					flags &=~TCP_FLG_FIN;
+				win = 1;
+				}
+			else {
+				/*
+				 *  TCP_TIM_PERSIST: æç¶ã¿ã¤ã
+				 *  rxtshift:        åéä¿¡åæ°ã® log(2)
+				 */
+				cep->timer[TCP_TIM_PERSIST] = 0;
+				cep->rxtshift = 0;
+				}
+		 	}
+
+		/*
+		 *  len: ä»åéä¿¡ãããªã¯ãããæ°
+		 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+		 *                                    |
+		 *    0                               V
+		 *    +-------------------------------------------+
+		 *    |                    sbuf       |           |
+		 *    +-------------------------------------------+
+		 *    ^               ^<------------->
+		 *    |               |      len
+		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |       doff
+		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 */
+		if (cep->swbuf_count < win)
+			len = (int32_t)cep->swbuf_count - doff;
+		else
+			len = (int32_t)win - doff;
+
+		/*
+		 *  ãã§ã«éä¿¡ããã¦ããã°ãSYN ãããããªãããã
+		 *  ããããä»¥ä¸ã®æ¡ä»¶ã§ã¯éä¿¡ãæ§ããã
+		 *
+		 *    ã»ç¶æ
+ã SYN éä¿¡ã
+		 *    ã»ã»ã°ã¡ã³ãããã¼ã¿ãå«ãã§ããã
+		 */
+		if ((flags & TCP_FLG_SYN) && SEQ_GT(cep->snd_nxt, cep->snd_una)) {
+			flags &= ~TCP_FLG_SYN;
+			doff --;		/* -1 ã¯ SYN ãã©ã°å */
+			len ++;			/* +1 ã¯ SYN ãã©ã°å */
+			if (len > 0 && cep->fsm_state == TCP_FSM_SYN_SENT)
+				break;
+			}
+
+		if (flags & TCP_FLG_SYN) {
+			len = 0;
+			flags &= ~TCP_FLG_FIN;
+			}
+
+		if (len < 0) {
+
+			/*
+			 *  len ã 0 ä»¥ä¸ãªãã0 ã«è¨­å®ããã
+			 *  ãããéä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ãªãã
+			 *  åéä¿¡ã¿ã¤ããã­ã£ã³ã»ã«ãã
+			 *  ååéä¿¡ãã SEQ (snd_nxt) ã
+			 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã«æ»ãã
+			 *  ããã¦ãæç¶ã¿ã¤ãã¼ãæ­¢ã¾ã£ã¦ããã°ãåè¨­å®ããã
+			 */
+			len = 0;
+			if (win == 0) {
+				cep->timer[TCP_TIM_REXMT] = 0;
+				cep->rxtshift = 0;
+				cep->snd_nxt  = cep->snd_una;
+				if (cep->timer[TCP_TIM_PERSIST] == 0)
+					tcp_set_persist_timer(cep);
+				}
+			}
+
+
+		/*
+		 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã¯ã
+		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
+ããªãããã«ããã
+		 */
+		if (len > cep->maxseg) {
+			len = cep->maxseg;
+			sendalot = true;
+			}
+
+		/*
+                 *        swbuf_count (éä¿¡ãããã¡ã«ãããªã¯ãããæ°)
+                 *                                           |
+		 *    0                                      V
+		 *    +-------------------------------------------+
+		 *    |                    sbuf       |           |
+		 *    +-------------------------------------------+
+		 *    ^               ^<------------->
+		 *    |               |      len
+		 *    |<------------->snd_nxt (ååéä¿¡ãã SEQ)
+		 *    |       doff
+		 *    snd_una (ã¾ã ç¢ºèªããã¦ããªã)
+		 *
+		 *  ä»åéä¿¡å¾ããéä¿¡ãããã¡ã«ãã¼ã¿ãæ®ã£ã¦ããã°
+		 *  FIN ãã©ã°ãã¯ãªã¢ããã
+		 */
+		if (SEQ_LT(cep->snd_nxt + len, cep->snd_una + cep->swbuf_count))
+			flags &= ~TCP_FLG_FIN;
+
+		/*
+		 *  ãããã win ã¯ãåä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã
+		 *  åä¿¡ãããã¡ã®ç©ºãå®¹é
+		 */
+		win = cep->rbufsz - cep->rwbuf_count;
+
+		/*
+		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (éä¿¡å´)
+		 *
+		 *  ä»¥ä¸ã®æ¡ä»¶ã§ãéä¿¡ãè¡ãã
+		 *
+		 *    ã»ãã«ãµã¤ãº (maxseg) ã®ã»ã°ã¡ã³ããéããã¨ãã§ããã
+		 *    ã»ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ã®ãã¼ã¿ã
+		 *      éããã¨ãã§ããã
+		 *    ã»éä¿¡ãããã¡ãç©ºã«ã§ããã¢ã¤ãã«ãéé
+å»¶ãªãã·ã§ã³ãæå¹ãªã¨ãã
+		 */
+		if (len) {
+
+			/*
+			 *  ä»åéä¿¡ãããªã¯ãããæ° (len) ã
+			 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã«
+			 *  ä¸è´ããã¨ãã¯éä¿¡ããã
+			 */
+			if (len == cep->maxseg) {
+				error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+				continue;
+				}
+
+			/*
+			 *  ä»åã®éä¿¡ã§ãéä¿¡ãããã¡ãç©ºã«ã§ãã
+			 *  ã¢ã¤ãã«ãé PUSH ãªãã·ã§ã³ãæå¹ãªã¨ãã
+			 */
+			if ((idle || (cep->flags & TCP_CEP_FLG_NO_DELAY)) &&
+			    (cep->flags & TCP_CEP_FLG_NO_PUSH) == 0 &&
+			    len + doff >= cep->swbuf_count) {
+				error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+				continue;
+				}
+
+			/*
+			 *  max_sndwnd: ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº
+			 *  snd_nxt:    æ¬¡ã«éä¿¡ãã SEQ
+			 *  snd_max:    éä¿¡ããæå¤§ SEQ
+			 *
+			 *  æ¬¡ã®æ¡ä»¶ã§ã¯éä¿¡ãè¡ãã
+			 *
+			 *    ã»å¼·å¶éä¿¡ãã©ã°ãã»ããããã¦ããã
+			 *    ã»ãã¼ã¿é·ãç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã® 1/2 ä»¥ä¸ã§ã
+			 *      ç¸æã®æå¤§ã®åä¿¡ã¦ã£ã³ãã¦ãµã¤ãºã 0 ããå¤§ããã
+			 *    ã»æ¬¡ã«éä¿¡ãã SEQ ãéä¿¡ããæå¤§ SEQ ããå°ããã
+			 *      ã¤ã¾ããåéããã¨ãã
+			 */
+			if ((cep->flags & TCP_CEP_FLG_FORCE) ||
+			    (len >= cep->max_sndwnd / 2 && cep->max_sndwnd > 0) ||
+			    SEQ_LT(cep->snd_nxt, cep->snd_max)) {
+				error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+				continue;
+				}
+			}
+
+
+		/*
+		 *  æããªã¦ã£ã³ãã¦ã»ã·ã³ãã­ã¼ã ã®åé¿å¦ç (åä¿¡å´)
+		 *
+		 *  ã¦ã£ã³ãã¦ãµã¤ãºããã«ãµã¤ãºã® 2 åã®ã»ã°ã¡ã³ãããããã¯
+		 *  åä¿¡ãããã¡å®¹éã® 1/2 ã®ãããããå°ããã»ãã®
+		 *  ãµã¤ãºã§å¢å ãããå ´åã¯ãã¦ã£ã³ãã¦ãµã¤ãºã®æ´æ°ãè¡ãã
+		 */
+		if (win > 0) {
+			long adv;
+
+			/*
+			 *  win:              åä¿¡ãããã¡ã®ç©ºãå®¹é
+			 *  MAX_TCP_WIN_SIZE: TCP ãããã® win ãã£ã¼ã«ãã«è¨­å®ã§ããæå¤§å¤
+			 *  rcv_adv:          åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ
+			 *  rcv_nxt:          åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ
+			 */
+			if (win < MAX_TCP_WIN_SIZE)
+				adv = win - (cep->rcv_adv - cep->rcv_nxt);
+			else
+				adv = MAX_TCP_WIN_SIZE - (cep->rcv_adv - cep->rcv_nxt);
+
+			if (adv     >= (long)(cep->maxseg * 2) ||
+			    adv * 2 >= (long) cep->rbufsz) {
+				error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+				continue;
+				}
+			}
+	
+		/*
+		 *  ACK ãéä¿¡ããã
+		 */
+		if (cep->flags & TCP_CEP_FLG_ACK_NOW) {
+			error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+			continue;
+			}
+
+		if ( (flags & TCP_FLG_RST) ||
+		    ((flags & TCP_FLG_SYN) && (cep->flags & TCP_CEP_FLG_NEED_SYN) == 0)) {
+			error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+			continue;
+			}
+
+#ifdef TCP_CFG_EXTENTIONS
+
+		if (SEQ_GT(cep->snd_up, cep->snd_una)) {
+			error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+			continue;
+			}
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+		/*
+		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQ
+		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQãã¾ãã¯ç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *
+		 *  ç¸æãã FIN ãåä¿¡ããã¾ã  FIN ãéä¿¡ãã¦ããªããã
+		 *  éããã¼ã¿ããªãã¨ãã¯ãFIN ãç¸æã«å±ããããã
+		 *  ã»ã°ã¡ã³ããéä¿¡ããã
+		 */
+		if ((flags & TCP_FLG_FIN) &&
+		    ((cep->flags & TCP_CEP_FLG_SENT_FIN) == 0 || cep->snd_nxt == cep->snd_una)) {
+			error = send_segment(&sendalot, cep, doff, win, (uint_t)len, flags);
+			continue;
+			}
+
+		/*
+		 *  éä¿¡ãã¹ããã¼ã¿ããããåéã¿ã¤ãã¨æç¶ã¿ã¤ããåãã¦ããã¨ãã¯
+		 *  æç¶ã¿ã¤ããè¨­å®ããã
+		 */
+		if (cep->swbuf_count && cep->timer[TCP_TIM_REXMT  ] == 0 &&
+		                        cep->timer[TCP_TIM_PERSIST] == 0) {
+			cep->rxtshift = 0;
+			tcp_set_persist_timer(cep);
+			break;
+			}
+		
+		}
+	}
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+/*
+ *  tcptsk_alloc_swbufq -- éä¿¡ã¦ã£ã³ããããã¡å²ãå½ã¦
+ */
+
+static void
+tcptsk_alloc_swbufq (T_TCP_CEP *cep)
+{
+ 	ER	error;
+	uint_t	win;
+
+	/*
+	 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
+	 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+	 *
+	 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+	 */
+	win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
+
+	/*
+	 *  ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
+æ©ããã
+	 */
+	if (win == 0) {
+		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_WOPEN_PEND;
+		}
+	else {
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		if (!IS_PTR_DEFINED(cep->callback)) {
+			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			cep->snd_tskid = TA_NULL;
+			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+			return;
+			}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		if ((error = tcpn_get_segment(&cep->swbufq, cep, 0,
+		                             (uint_t)TCP_CFG_SWBUF_CSAVE_MIN_SIZE,
+		                             (uint_t)TCP_CFG_SWBUF_CSAVE_MAX_SIZE,
+		                             (ATR)(NBA_SEARCH_DESCENT |
+		                                   NBA_RESERVE_TCP    |
+		                                   (GET_TCP_CEPID(cep) & NBA_ID_MASK)), TMO_POL)) != E_OK) {
+
+			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_PEND;
+			}
+		else {
+
+			/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+			tcp_init_swbuf(cep);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {
+
+				uint_t len;
+
+				/* éä¿¡ã¦ã£ã³ããããã¡ã®æ¸ãè¾¼ã¿ã¢ãã¬ã¹ãè¨­å®ããã*/
+				len = TCP_GET_SWBUF_ADDR(cep, cep->snd_p_buf);
+
+				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
+#endif
+
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->snd_tskid = TA_NULL;
+				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+			else {	/* cep->snd_nblk_tfn == TFN_TCP_SND_DAT || */
+				/* cep->snd_nblk_tfn == TFN_TCP_SND_OOB    */
+
+				uint_t len;
+
+				/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+				len = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
+
+#ifdef TCP_CFG_EXTENTIONS
+
+				/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
+					cep->snd_up = cep->snd_una + len;
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+				/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT;
+
+				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
+#endif
+
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->snd_tskid = TA_NULL;
+				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+			}
+		}
+	}
+
+/*
+ *  tcptsk_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡éæ¾
+ */
+
+static void
+tcptsk_free_swbufq (T_TCP_CEP *cep)
+{
+	/*
+	 *  åä¿¡ç¢ºèªãå®äºãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããã®
+	 *  åºåãå®äºããã¨ãã¯ãéä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+	 */
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	cep->swbuf_count = 0;
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+	syscall(rel_net_buf(cep->swbufq));
+	cep->swbufq = NULL;
+
+	/* ãã©ã°ãç©ºãã«è¨­å®ããã*/
+	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_FREE;
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããã§ãããã¨ãç¥ãããã*/
+	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
+ã¡ã®ã¨ãã¯ãTCP åºåã¿ã¹ã¯ãèµ·åããã*/
+	if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0) {
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+/*
+ *  TCP åºåã¿ã¹ã¯
+ */
+
+void
+tcp_output_task (intptr_t exinf)
+{
+	static int_t last_ix = 0;
+
+	T_TCP_CEP	*cep;
+	ID		tskid;
+ 	int_t		ix, sel_ix;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[TCP OUTPUT:%d] started.", tskid);
+
+	tcp_init();
+
+#ifdef _IP6_CFG
+
+	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	in6_if_up(IF_GET_IFNET());
+
+#endif	/* of #ifdef _IP6_CFG */
+
+	while (true) {
+
+		/* åºåããã¹ããããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_TCP_POST_OUTPUT));
+
+		if (++ last_ix == tmax_tcp_cepid)
+			last_ix = 0;
+		sel_ix = ix = last_ix;
+		do {
+			cep = &tcp_cep[ix];
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+			if ((cep->flags & TCP_CEP_FLG_WBCS_NBUF_REQ) != 0 &&
+			    ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE ||
+			     (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD)) {
+				tcptsk_alloc_swbufq(cep);
+				sel_ix = ix;
+				}
+
+			if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_ACKED &&
+			    (cep->swbufq->flags & NB_FLG_NOREL_IFOUT) == 0) {
+				tcptsk_free_swbufq(cep);
+				sel_ix = ix;
+				}
+
+			/*
+			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµãã£ã¦ããªãã¨ãã¯ã
+			 *  éä¿¡ãäºç´ããã
+			 */
+			if (cep->flags & TCP_CEP_FLG_POST_OUTPUT &&
+			   (cep->flags & TCP_CEP_FLG_WBCS_MASK) >= TCP_CEP_FLG_WBCS_SENT) {
+				syscall(wai_sem(cep->semid_lock));
+				if (cep->swbufq == NULL)
+					cep->flags &= ~TCP_CEP_FLG_POST_OUTPUT;
+				else if (cep->swbufq->flags & NB_FLG_NOREL_IFOUT) {
+					cep->flags &= ~TCP_CEP_FLG_POST_OUTPUT;
+					cep->flags |=  TCP_CEP_FLG_RESERVE_OUTPUT;
+					}
+				syscall(sig_sem(cep->semid_lock));
+				}
+
+			/*
+			 *  éä¿¡äºç´ä¸­ã«ããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããéä¿¡ãçµäºãããã
+			 *  éä¿¡ãéå§ããããã ããå®å
+¨ã«éä¿¡ãçµäºããã¨ãã¯ä½ãããªãã
+			 */
+			if (cep->flags & TCP_CEP_FLG_RESERVE_OUTPUT) {
+				syscall(wai_sem(cep->semid_lock));
+				if (cep->swbufq != NULL && (cep->swbufq->flags & NB_FLG_NOREL_IFOUT) == 0) {
+					cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
+					}
+				syscall(sig_sem(cep->semid_lock));
+				cep->flags &= ~TCP_CEP_FLG_RESERVE_OUTPUT;
+				}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+			if (cep->flags & TCP_CEP_FLG_POST_OUTPUT) {
+
+				cep->flags &= ~TCP_CEP_FLG_POST_OUTPUT;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+				if (cep->snd_nblk_tfn == TFN_TCP_CON_CEP && cep->myaddr.portno == TCP_PORTANY) {
+				 	ER	error;
+
+					/*
+					 *  tcp_con_cep ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ã
+					 *  æªå²å½ã®ã®å ´åã¯ããã¼ãçªå·ãå²ãå½ã¦ãã
+					 *  p_myaddr ã NADR (-1) ãã
+					 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+					 */
+					if (cep->p_myaddr == NADR || cep->p_myaddr->portno == TCP_PORTANY)
+						tcp_alloc_auto_port(cep);
+					else if ((error = tcp_alloc_port(cep, cep->p_myaddr->portno)) != E_OK) {
+
+						if (IS_PTR_DEFINED(cep->callback))
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+							(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)error);
+#else
+							(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&error);
+#endif
+						else
+							syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+						/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+						cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+						cep->snd_tskid = TA_NULL;
+						continue;
+						}
+					}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+				tcp_output(cep);
+
+				if (cep->flags & TCP_CEP_FLG_CLOSE_AFTER_OUTPUT) {
+					/* ã³ãã¯ã·ã§ã³ãéããã*/
+					tcp_close(cep);
+					cep->flags &= ~TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
+					}
+
+				if (cep->flags & TCP_CEP_FLG_RESTORE_NEXT_OUTPUT) {
+					/* snd_nxt ãå
+ã«æ»ãã*/
+					if (SEQ_GT(cep->snd_old_nxt, cep->snd_nxt))
+						cep->snd_nxt = cep->snd_old_nxt;
+					cep->flags &= ~TCP_CEP_FLG_RESTORE_NEXT_OUTPUT;
+					}
+
+				sel_ix = ix;
+				}
+
+			if (++ ix == tmax_tcp_cepid)
+				ix = 0;
+			} while (ix != last_ix);
+
+		/* æ¬¡åã¯ãå¦çããéä¿¡ç«¯ç¹ãå¾åãã«ããã*/
+		last_ix = sel_ix;
+		}
+	}
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_seq.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_seq.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_seq.h	(revision 313)
@@ -0,0 +1,135 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_seq.h	8.3 (Berkeley) 6/21/95
+ * $FreeBSD: src/sys/netinet/tcp_seq.h,v 1.8.4.1 1999/08/29 16:29:55 peter Exp $
+ */
+ 
+#ifndef _TCP_SEQ_H_
+#define _TCP_SEQ_H_
+
+/*
+ *  SEQ ã¨ ACK çªå·ã¯ã32 ãããç¬¦å·ä»æ´æ°ã§æ¯è¼ããã
+ */
+
+#define SEQ_LT(a,b)		((int32_t)((a)-(b)) <  0)
+#define SEQ_LE(a,b)		((int32_t)((a)-(b)) <= 0)
+#define SEQ_GT(a,b)		((int32_t)((a)-(b)) >  0)
+#define SEQ_GE(a,b)		((int32_t)((a)-(b)) >= 0)
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define	TCP_ISS_INCR()	((T_TCP_SEQ)122*1024 + (((T_TCP_SEQ)net_rand() >> 14) & 0x3ffff))
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+extern T_TCP_SEQ tcp_iss;		/* TCP ã® SEQ ã®åæå¤ */
+
+/*
+ *  ã¤ã³ã©ã¤ã³é¢æ°
+ */
+
+/*
+ *  init_receive_seq -- åä¿¡ SEQ çªå·ãåæåããã
+ */
+
+Inline void
+init_receive_seq (T_TCP_CEP *cep)
+{
+	cep->rcv_adv = cep->rcv_nxt = cep->irs + 1;
+	}
+
+/*
+ *  init_send_seq -- éä¿¡ SEQ çªå·ãåæåããã
+ */
+
+Inline void
+init_send_seq (T_TCP_CEP *cep)
+{
+	cep->snd_una = cep->snd_nxt = cep->snd_max = cep->iss;
+
+#ifdef TCP_CFG_EXTENTIONS
+	cep->snd_up = cep->iss;
+#endif
+	}
+
+#endif	/* of #ifndef _TCP_SEQ_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr.c	(revision 313)
@@ -0,0 +1,1989 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_subr.c	8.2 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.49.2.4 1999/08/29 16:29:55 peter Exp $
+ */
+
+#include <stdarg.h>
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <syssvc/serial.h>
+#include <syssvc/logtask.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/*
+ *  TCP ã® SEQ ã®åæå¤ããã­ã°ã©ã ãèµ·åãã¦ãæåã« TCP ã»ã°ã¡ã³ãã
+ *  éåä¿¡ããã¨ãã«ãget_tim() ã«ããåæåããã
+ */
+T_TCP_SEQ tcp_iss = 0;
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+T_TCP_STATS tcp_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  å±æå¤æ°
+ */
+
+static uint16_t tcp_port_auto = TCP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+/*
+ *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ CEP åé¢æ©è½
+ */
+
+/*
+ *  å¤æ°
+ */
+
+T_TCP_TWCEP tcp_twcep[NUM_TCP_TW_CEP_ENTRY];
+
+/*
+ *  tcp_move_twcep -- å¿
+è¦ãªæ
+å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
+ *                    æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+ */
+
+void
+tcp_move_twcep (T_TCP_CEP *cep)
+{
+	T_TCP_TWCEP*	twcep;
+
+	/* ç©ºãã® Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/
+	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
+		if (twcep->fsm_state != TCP_FSM_TIME_WAIT) {
+
+			/*
+			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+			 *  å¿
+è¦ãªæ
+å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã
+			 */
+			syscall(wai_sem(cep->semid_lock));
+			twcep->flags		= (uint8_t)cep->flags;
+			twcep->rbufsz		= cep->rbufsz;
+			twcep->dstaddr		= cep->dstaddr;
+			twcep->myaddr		= cep->myaddr;
+			twcep->snd_una		= cep->snd_una;
+			twcep->rcv_nxt		= cep->rcv_nxt;
+			twcep->rwbuf_count	= cep->rwbuf_count;
+			twcep->fsm_state	= cep->fsm_state;
+			twcep->timer_2msl	= cep->timer[TCP_TIM_2MSL];
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* æ¨æº TCP éä¿¡ç«¯ç¹ãéæ¾ããã*/
+			tcp_close(cep);
+
+			break;
+			}
+		}
+	}
+
+/*
+ *  tcp_find_twcep -- ãã¼ãçªå·ãã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ãå¾ãã
+ */
+
+T_TCP_TWCEP*
+tcp_find_twcep (T_NET_BUF *input, uint_t off)
+{
+	T_TCP_TWCEP*	twcep;
+	T_TCP_HDR	*tcph;
+
+	tcph = GET_TCP_HDR(input, off);
+	
+	/*
+	 *  ç¶æ
+ã TIME WAIT ã§ã
+	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 */
+	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; ) {
+		if (twcep->fsm_state == TCP_FSM_TIME_WAIT                   &&
+		    IN_IS_DSTADDR_ACCEPT    (&twcep->myaddr.ipaddr,  input) &&
+		    IN_ARE_NET_SRCADDR_EQUAL(&twcep->dstaddr.ipaddr, input) &&
+		    tcph->dport == twcep->myaddr.portno                     &&
+		    tcph->sport == twcep->dstaddr.portno)
+			return twcep;
+		}
+
+	return NULL;
+	}
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+/*
+ *  tcp_find_cep -- ãã¼ãçªå·ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ */
+
+T_TCP_CEP*
+tcp_find_cep (T_NET_BUF *input, uint_t off)
+{
+	T_TCP_CEP*	cep;
+	T_TCP_HDR	*tcph;
+
+	tcph = GET_TCP_HDR(input, off);
+	
+	/*
+	 *  ç¶æ
+ã SYN éä¿¡æ¸ã¿ä»¥å¾ã¯ã
+	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ãã TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 */
+	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
+		if (cep->fsm_state >= TCP_FSM_SYN_SENT                    &&
+		    IN_IS_DSTADDR_ACCEPT    (&cep->myaddr.ipaddr,  input) &&
+		    IN_ARE_NET_SRCADDR_EQUAL(&cep->dstaddr.ipaddr, input) &&
+		    tcph->dport == cep->myaddr.portno                     &&
+		    tcph->sport == cep->dstaddr.portno)
+			return cep;
+		}
+
+	/* IPv4 ã§ååãªã¼ãã³ä¸­ã® TCP éä¿¡ç«¯ç¹ãå
+ã«æ¢ç´¢ããã*/	
+	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
+		if ((cep->flags & TCP_CEP_FLG_IPV4)                   &&
+		     cep->fsm_state == TCP_FSM_LISTEN                 &&
+		     GET_IP_VER(input) == IPV4_VERSION                &&
+		     IN_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+		     tcph->dport == cep->myaddr.portno)
+			return cep;
+		}
+
+	/* ååãªã¼ãã³ä¸­ã® TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ããã*/	
+	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+
+		if (cep->flags & TCP_CEP_FLG_IPV4) {
+			if (cep->fsm_state == TCP_FSM_LISTEN                 &&
+		            GET_IP_VER(input) == IPV4_VERSION                &&
+			    IN_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+			    tcph->dport == cep->myaddr.portno)
+				return cep;
+			}
+		else {
+
+#if defined(API_CFG_IP4MAPPED_ADDR)
+
+			if (cep->fsm_state == TCP_FSM_LISTEN                 &&
+			    IN_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+			    tcph->dport == cep->myaddr.portno)
+				return cep;
+
+#else	/* of #if defined(API_CFG_IP4MAPPED_ADDR) */
+
+			if (cep->fsm_state == TCP_FSM_LISTEN                   &&
+			    INN6_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+			    tcph->dport == cep->myaddr.portno)
+				return cep;
+
+#endif	/* of #if defined(API_CFG_IP4MAPPED_ADDR) */
+
+			}
+
+#else	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+		if (cep->fsm_state == TCP_FSM_LISTEN                 &&
+		    IN_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+		    tcph->dport == cep->myaddr.portno)
+			return cep;
+
+#endif	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) */
+		}
+
+	return NULL;
+	}
+
+/*
+ *  tcp_is_addr_accept -- åä¿¡å¯è½ãª IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ã§ãããã¨ãç¢ºèªããã
+ */
+
+bool_t
+tcp_is_addr_accept (T_NET_BUF *input, uint_t off)
+{
+	T_TCP_HDR	*tcph;
+
+	tcph = GET_TCP_HDR(input, off);
+
+#if !defined(_IP6_CFG) && defined(_IP4_CFG) && defined(SUPPORT_LOOP)
+
+	/*
+	 *  æ¬¡ã®ã¨ãã¯ç ´æ£ããã
+	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
+	 *      ãã ããéä¿¡å
+ IP ã¢ãã¬ã¹ãã­ã¼ã«ã«ã«ã¼ãããã¯ãªãè¯ãã
+	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 */
+
+	if (tcph->dport == tcph->sport && 
+	    (IN4_ARE_HDR_ADDR_EQUAL(input) && !IN4_ARE_NET_ADDR_EQUAL(&GET_IP4_HDR(input)->dst, &IPV4_ADDR_LOOPBACK)))
+		return RET_DROP;
+
+#else	/* of #if !defined(_IP6_CFG) && defined(_IP4_CFG) && defined(SUPPORT_LOOP) */
+
+	/*
+	 *  æ¬¡ã®ã¨ãã¯ãåä¿¡å¯è½ã§ã¯ãªãã
+	 *    ã»ãã¼ãçªå·ãåä¸ã§ãéåä¿¡ IP ã¢ãã¬ã¹ ãåä¸ã
+	 *    ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹
+	 */
+	if (tcph->dport == tcph->sport && IN_ARE_HDR_ADDR_EQUAL(input))
+		return false;
+
+#endif	/* of #if !defined(_IP6_CFG) && defined(_IP4_CFG) && defined(SUPPORT_LOOP) */
+
+	if (IN_IS_NET_ADDR_MULTICAST(input))
+		return false;
+	else
+		return true;
+	}
+
+/*
+ *  tcp_free_reassq -- åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ *
+ *    æ³¨æ:
+ *      å¿
+è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
+ *      æ»ã£ãå¾ãè§£é¤ããå¿
+è¦ãããã
+ */
+
+void
+tcp_free_reassq (T_TCP_CEP *cep)
+{
+	T_NET_BUF	*q, *nq;
+
+	for (q = cep->reassq; q != NULL; q = nq) {
+		nq = GET_TCP_Q_HDR(q, GET_IP_TCP_Q_HDR_OFFSET(q))->next;
+		syscall(rel_net_buf(q));
+		}
+	cep->reassq  = NULL;
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_FREE_RCV_QUEUE],   1);
+	}
+
+/*
+ *  tcp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ */
+
+void
+tcp_alloc_auto_port (T_TCP_CEP *cep)
+{
+	int_t		ix;
+	uint16_t	portno;
+
+	while (true) {
+		portno = tcp_port_auto ++;
+		if (tcp_port_auto > TCP_PORT_LAST_AUTO)
+			tcp_port_auto = TCP_PORT_FIRST_AUTO;
+
+#if defined(TNUM_TCP6_REPID)
+#if TNUM_TCP6_REPID > 0
+
+		for (ix = tmax_tcp6_repid; ix -- > 0; ) {
+
+#ifdef TCP_CFG_EXTENTIONS
+
+			if (VALID_TCP_REP(&tcp6_rep[ix]) && tcp6_rep[ix].myaddr.portno == portno) {
+				portno = TCP_PORTANY;
+				break;
+				}
+
+#else	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+			if (tcp6_rep[ix].myaddr.portno == portno) {
+				portno = TCP_PORTANY;
+				break;
+				}
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+			}
+
+#endif	/* of #if TNUM_TCP6_REPID > 0 */
+#endif	/* of #if defined(TNUM_TCP6_REPID) */
+
+#if defined(TNUM_TCP4_REPID)
+#if TNUM_TCP4_REPID > 0
+
+		for (ix = tmax_tcp4_repid; ix -- > 0; ) {
+
+#ifdef TCP_CFG_EXTENTIONS
+
+			if (VALID_TCP_REP(&tcp4_rep[ix]) && tcp4_rep[ix].myaddr.portno == portno) {
+				portno = TCP_PORTANY;
+				break;
+				}
+
+#else	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+			if (tcp4_rep[ix].myaddr.portno == portno) {
+				portno = TCP_PORTANY;
+				break;
+				}
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+			}
+
+#endif	/* of #if TNUM_TCP4_REPID > 0 */
+#endif	/* of #if defined(TNUM_TCP4_REPID) */
+
+		if (portno != TCP_PORTANY) {
+
+			syscall(wai_sem(SEM_TCP_CEP));
+			for (ix = tmax_tcp_cepid; ix -- > 0; ) {
+				if (VALID_TCP_CEP(&tcp_cep[ix]) && tcp_cep[ix].myaddr.portno == portno) {
+					portno = TCP_PORTANY;
+					break;
+					}
+				}
+
+			if (portno != TCP_PORTANY) {
+				cep->myaddr.portno = portno;
+				syscall(sig_sem(SEM_TCP_CEP));
+				return;
+				}
+			syscall(sig_sem(SEM_TCP_CEP));
+			}
+		}
+	}
+
+/*
+ *  tcp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ */
+
+ER
+tcp_alloc_port (T_TCP_CEP *cep, uint16_t portno)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_TCP_CEP));
+	for (ix = tmax_tcp_cepid; ix -- > 0; )
+		if (VALID_TCP_CEP(cep) && tcp_cep[ix].myaddr.portno == portno) {
+			syscall(sig_sem(SEM_TCP_CEP));
+			return E_PAR;
+			}
+	cep->myaddr.portno = portno;
+	syscall(sig_sem(SEM_TCP_CEP));
+	return E_OK;
+	}
+
+/*
+ *  tcp_init -- TCP ã¢ã¸ã¥ã¼ã«ã®åæå
+ */
+
+void
+tcp_init (void)
+{
+	timeout(tcp_slow_timo, NULL, TCP_SLOW_TMO);
+
+#ifdef TCP_CFG_DELAY_ACK
+
+	timeout(tcp_fast_timo, NULL, TCP_FAST_TMO);
+
+#endif/* of #ifdef TCP_CFG_DELAY_ACK */
+	}
+
+/*
+ * tcp_init_iss ã·ã¼ã±ã³ã¹çªå·ãåæåããã
+ */
+
+void
+tcp_init_iss (void)
+{
+	SYSTIM now;
+
+	syscall(get_tim(&now));
+	net_srand(now);
+	tcp_iss = net_rand();
+	}
+
+/*
+ *  tcp_close -- ã³ãã¯ã·ã§ã³ãéæ¾ããã
+ */
+
+T_TCP_CEP *
+tcp_close (T_TCP_CEP *cep)
+{
+	/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+	tcp_cancel_timers(cep);
+
+	/* 
+	 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+	 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+	 */
+	syscall(wai_sem(cep->semid_lock));
+	tcp_free_reassq(cep);
+	syscall(sig_sem(cep->semid_lock));
+
+	/* ç¶æ
+ãæªä½¿ç¨ã«ããã*/
+	cep->fsm_state = TCP_FSM_CLOSED;
+
+	/*
+	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
+	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * ã»éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«
+	 */
+	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	if (cep->snd_nblk_tfn != TFN_TCP_UNDEF || cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
+		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+		if (!IS_PTR_DEFINED(cep->callback))
+			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+		else {
+			if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
+				ER_UINT len;
+
+				switch (cep->rcv_nblk_tfn) {
+
+				case TFN_TCP_ACP_CEP:
+					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+					cep->rep4 = NULL;
+#endif
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_CLS);
+					break;
+
+				case TFN_TCP_RCV_BUF:
+
+					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
+
+					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else if (cep->error < 0)
+						len = cep->error;
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)(uint32_t)len);
+					break;
+
+				case TFN_TCP_RCV_DAT:
+
+					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
+
+					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else if (cep->error != E_OK)
+						len = cep->error;
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)(uint32_t)len);
+					break;
+
+				case TFN_TCP_CLS_CEP:
+
+					if (cep->error == E_TMOUT)
+						(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_CLS);
+					else
+						(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)cep->error);
+					break;
+
+				default:
+					syslog(LOG_WARNING, "[TCP] unexp TFN: %s.", in_strtfn((FN)cep->rcv_nblk_tfn));
+					break;
+					}
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->rcv_tskid = TA_NULL;
+				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+			if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {
+
+				switch (cep->snd_nblk_tfn) {
+
+				case TFN_TCP_CON_CEP:
+					/* TCP éä¿¡ç«¯ç¹ãã TCP åä»å£ãè§£æ¾ããã*/
+					cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+					cep->rep4 = NULL;
+#endif
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_CLS);
+					break;
+
+				case TFN_TCP_SND_DAT:
+				case TFN_TCP_GET_BUF:
+					if (cep->error == E_TMOUT)
+						(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_CLS);
+					else
+						(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)cep->error);
+					break;
+
+				default:
+					syslog(LOG_WARNING, "[TCP] unexp TFN: %s.", in_strtfn((FN)cep->snd_nblk_tfn));
+					break;
+					}
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->snd_tskid = TA_NULL;
+				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+			}
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+		if (!IS_PTR_DEFINED(cep->callback))
+			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+		else {
+			if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
+				ER_UINT len;
+
+				switch (cep->rcv_nblk_tfn) {
+
+				case TFN_TCP_ACP_CEP:
+
+					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+					cep->rep4 = NULL;
+#endif
+
+					/* æ¥ç¶ã¨ã©ã¼ãè¨­å®ããã*/
+					len      = E_CLS;
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+					break;
+
+				case TFN_TCP_RCV_BUF:
+
+					/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+					len = TCP_GET_RWBUF_ADDR(cep, cep->rcv_p_buf);
+
+					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else if (cep->error < 0)
+						len = cep->error;
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+					break;
+
+				case TFN_TCP_RCV_DAT:
+
+					/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+					len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len);
+
+					/* ç°å¸¸åæ­ç­ã®ã¨ã©ã¼ãè¨­å®ããã*/
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else if (cep->error != E_OK)
+						len = cep->error;
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+					break;
+
+				case TFN_TCP_CLS_CEP:
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else
+						len = cep->error;
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+					break;
+
+				default:
+					syslog(LOG_WARNING, "[TCP] unexp TFN: %s.", in_strtfn((FN)cep->rcv_nblk_tfn));
+					break;
+					}
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->rcv_tskid = TA_NULL;
+				cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+			if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {
+				ER_UINT len;
+
+				switch (cep->snd_nblk_tfn) {
+
+				case TFN_TCP_CON_CEP:
+
+					/* TCP éä¿¡ç«¯ç¹ããTCP åä»å£ãè§£æ¾ããã*/
+					cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+					cep->rep4 = NULL;
+#endif
+
+					/* æ¥ç¶ã¨ã©ã¼ãè¨­å®ããã*/
+					len      = E_CLS;
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
+					break;
+
+				case TFN_TCP_SND_DAT:
+				case TFN_TCP_GET_BUF:
+					if (cep->error == E_TMOUT)
+						len = E_CLS;
+					else
+						len = cep->error;
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+					break;
+
+				default:
+					syslog(LOG_WARNING, "[TCP] unexp TFN: %s.", in_strtfn((FN)cep->snd_nblk_tfn));
+					break;
+					}
+
+				/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+				cep->snd_tskid = TA_NULL;
+				cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+			}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+		/* 
+		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 */
+		syscall(wai_sem(cep->semid_lock));
+		TCP_FREE_RWBUFQ(cep);
+		TCP_FREE_SWBUFQ(cep);
+		syscall(sig_sem(cep->semid_lock));
+
+		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+		}
+	else {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->snd_tskid = cep->rcv_tskid = TA_NULL;
+		cep->snd_tfn   = cep->rcv_tfn   = TFN_TCP_UNDEF;
+
+		/* 
+		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+		 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 */
+		syscall(wai_sem(cep->semid_lock));
+		TCP_FREE_RWBUFQ(cep);
+		TCP_FREE_SWBUFQ(cep);
+		syscall(sig_sem(cep->semid_lock));
+
+		/* æªä½¿ç¨ã«ãªã£ããã¨ãç¥ãããã*/
+		syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+
+		/*
+		 * å
+¥åºåã¿ã¹ã¯ãèµ·åºãã¦ã
+		 * éåä¿¡ä¸å¯ã«ãªã£ããã¨ãç¥ãããã
+		 */
+		syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+		syscall(set_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	return NULL;
+	}
+
+/*
+ *  tcp_drop -- TCP æ¥ç¶ãç ´æ£ããã
+ */
+
+T_TCP_CEP *
+tcp_drop (T_TCP_CEP *cep, ER errno)
+{
+#ifdef SUPPORT_MIB
+
+	if ((cep->fsm_state == TCP_FSM_SYN_SENT) || (cep->fsm_state == TCP_FSM_SYN_RECVD)) {
+		NET_COUNT_MIB(tcp_stats.tcpAttemptFails, 1);
+		}
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+	cep->error = errno;
+	if (TCP_FSM_HAVE_RCVD_SYN(cep->fsm_state)) {
+		cep->fsm_state = TCP_FSM_CLOSED;
+
+		/* éä¿¡ã¨ãéä¿¡å¾ã³ãã¯ã·ã§ã³ã®åæ­ãæç¤ºããã*/
+		cep->flags |=  TCP_CEP_FLG_POST_OUTPUT | TCP_CEP_FLG_CLOSE_AFTER_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	else {
+		cep = tcp_close(cep);
+		}
+	return cep;
+	}
+
+/*
+ *  tcp_respond -- TCP ã®åä¸ã¡ãã»ã¼ã¸ãéä¿¡ããã
+ */
+
+void
+tcp_respond (T_NET_BUF *output, T_TCP_CEP *cep,
+             T_TCP_SEQ ack, T_TCP_SEQ seq, uint_t rbfree, uint8_t flags)
+{
+	T_TCP_HDR	*tcph;
+	uint_t		win = 0;
+	uint_t		hdr_offset;
+
+	if ((flags & TCP_FLG_RST) == 0)
+		win = rbfree;
+
+	/*
+	 *  output ã NULL ã§ãªããã°ãããã¯å
+¥åããã»ã°ã¡ã³ãã®
+	 *  net_buf ã§ããã®ã¾ã¾åå©ç¨ããã
+	 */
+	if (output != NULL) {
+		uint16_t	portno;
+
+		/*
+		 * IPv4 ã§ã¯ãIP ãããã®ãªãã·ã§ã³ãåé¤ããã
+		 * IPv6 ã§ã¯ãæ¡å¼µããããåé¤ããã
+		 */
+		if (IP_REMOVE_OPTIONS(output) != E_OK) {
+			syscall(rel_net_buf(output));
+			return;
+			}
+
+		ip_exchg_addr(output);
+
+#if defined(_IP6_CFG)
+
+		/* ãã©ããã¯ã¯ã©ã¹ã¨ãã­ã¼ã©ãã«ãã¯ãªã¢ããã*/
+		SET_IP_CF(output, 0);
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+		/* TCP SDU é·ã 0 ã«ããã*/
+		SET_IP_SDU_SIZE(output, TCP_HDR_SIZE);
+
+		tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET(output));
+
+		/* ãã¼ãçªå·ãäº¤æããã*/
+		portno = tcph->sport;
+		tcph->sport = tcph->dport;
+		tcph->dport = portno;
+
+		/* TCP ãããã«æ
+å ±ãè¨­å®ããã*/
+		tcph->doff = TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
+		}
+	
+	/* cep ã NULL ã§ããã°ãä½ãããªãã§çµäºããã*/
+	else if (cep == NULL)
+		return;
+	else {
+		if (tcpn_get_segment(&output, cep, 0,
+		                    0, (uint_t)net_buf_max_siz(),
+		                    NBA_SEARCH_ASCENT, TMO_TCP_GET_NET_BUF) != E_OK)
+			return;
+		tcph = GET_TCP_HDR(output, IF_IP_TCP_HDR_OFFSET(output));
+		flags |= TCP_FLG_ACK;
+		}
+
+	tcph->seq   = htonl(seq);
+	tcph->ack   = htonl(ack);
+	tcph->win   = htons(win);
+	tcph->flags = flags;
+	tcph->urp   = tcph->sum = 0;
+
+	/*
+	 *  ãã§ãã¯ãµã ãè¨­å®ããã
+	 */
+	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
+	tcph->sum = IN_CKSUM(output, IPPROTO_TCP, hdr_offset, 
+	                     (uint_t)GET_TCP_HDR_SIZE(output, hdr_offset));
+
+	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	output->len = (uint16_t)GET_IF_IP_TCP_HDR_SIZE(output, hdr_offset);
+
+#ifdef TCP_CFG_TRACE
+
+	tcp_output_trace(output, cep);
+
+#endif	/* of #ifdef TCP_CFG_TRACE */
+
+	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	IP_OUTPUT(output, TMO_TCP_OUTPUT);
+	}
+#if 0
+/*
+ *  tcp_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨­å®ããã
+ *
+ *    æ»ãå¤	ã¨ã©ã¼ã³ã¼ã
+ *    optlen	ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½
+ *    maxlen	æå¤§ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ã¾ãªãï¼
+ *    len	TCP SDU ãµã¤ãº
+ */
+
+ER
+tcp_get_segment (T_NET_BUF **nbuf, T_TCP_CEP *cep,
+                 uint_t optlen, uint_t len, uint_t maxlen, ATR nbatr, TMO tmout)
+{
+	T_TCP_HDR	*tcph;
+	ER		error;
+
+	/* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	if ((error = IN_GET_DATAGRAM(nbuf,
+	                             (uint_t)(TCP_HDR_SIZE + optlen + len),
+	                             (uint_t)(TCP_HDR_SIZE + maxlen),
+	                             &cep->dstaddr.ipaddr,
+	                             &cep->myaddr.ipaddr,
+	                             IPPROTO_TCP, IP_DEFTTL, nbatr, tmout)) != E_OK) {
+		syslog(LOG_WARNING, "[TCP] NET BUF busy, len: %d, CEP: %d.",
+		                    (uint16_t)(TCP_HDR_SIZE + optlen + len), GET_TCP_CEPID(cep));
+		return error;
+		}
+
+	/* TCP ãããã«æ
+å ±ãè¨­å®ããã*/
+
+	/* TCP ãããã«æ
+å ±ãè¨­å®ããã*/
+	tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
+	tcph->sport	= htons(cep->myaddr.portno);
+	tcph->dport	= htons(cep->dstaddr.portno);
+	tcph->doff	= TCP_MAKE_DATA_OFF(TCP_HDR_SIZE + optlen);
+	tcph->sum	= tcph->flags = 0;
+
+	return E_OK;
+	}
+#endif
+/*
+ *  tcpn_get_segment -- TCP ã»ã°ã¡ã³ããç²å¾ããããããè¨­å®ããã
+ *
+ *    æ»ãå¤	ã¨ã©ã¼ã³ã¼ã
+ *    optlen	ãªãã·ã§ã³ãµã¤ãºã4 ãªã¯ãããåä½
+ *    maxlen	æå¤§ã»ã°ã¡ã³ããµã¤ãºï¼IF/IP/TCP ããããµã¤ãºãå«ãï¼
+ *    len	TCP SDU ãµã¤ãº
+ */
+
+ER
+tcpn_get_segment (T_NET_BUF **nbuf, T_TCP_CEP *cep,
+                 uint_t optlen, uint_t len, uint_t maxlen, ATR nbatr, TMO tmout)
+{
+	T_TCP_HDR	*tcph;
+	ER		error;
+
+	/* IP ãã¼ã¿ã°ã©ã ãç²å¾ããã*/
+	if ((error = IN_GET_DATAGRAM(nbuf,
+	                             (uint_t)(TCP_HDR_SIZE + optlen + len),
+	                             (uint_t)(maxlen - IF_IP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)),
+	                             &cep->dstaddr.ipaddr,
+	                             &cep->myaddr.ipaddr,
+	                             IPPROTO_TCP, IP_DEFTTL, nbatr, tmout)) != E_OK) {
+		syslog(LOG_WARNING, "[TCP] NET BUF busy,  len:%4d, CEP: %d.",
+		                    (uint16_t)(TCP_HDR_SIZE + optlen + len), GET_TCP_CEPID(cep));
+		return error;
+		}
+
+	/* TCP ãããã«æ
+å ±ãè¨­å®ããã*/
+
+	/* TCP ãããã«æ
+å ±ãè¨­å®ããã*/
+	tcph = GET_TCP_HDR(*nbuf, IF_IP_TCP_HDR_OFFSET(*nbuf));
+	tcph->sport	= htons(cep->myaddr.portno);
+	tcph->dport	= htons(cep->dstaddr.portno);
+	tcph->doff	= TCP_MAKE_DATA_OFF(TCP_HDR_SIZE + optlen);
+	tcph->sum	= tcph->flags = 0;
+
+	return E_OK;
+	}
+
+/*
+ *  tcp_can_send_more -- éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã
+ */
+
+ER
+tcp_can_send_more (T_TCP_CEP *cep, FN fncd, TMO tmout)
+{
+	ER	error;
+
+	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
+ãè¦ãã*/
+	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
+		if ((error = cep->error) == E_OK)
+			error = E_OBJ;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+			if (!IS_PTR_DEFINED(cep->callback))
+				error = E_OBJ;
+			else {
+				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
+#endif
+				error = E_WBLK;
+				}
+			}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		}
+	else {
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+		error = E_OK;
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		if (!IS_PTR_DEFINED(cep->sbuf)) {
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+				if (!IS_PTR_DEFINED(cep->callback))
+					error = E_OBJ;
+				else {
+					error = E_OBJ;
+
+					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
+#else
+					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)&error);
+#endif
+					error = E_WBLK;
+					}
+				}
+			else
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+				error = E_OBJ;
+			}
+		else
+			error = E_OK;
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+		}
+
+	return error;
+	}
+
+/*
+ *  tcp_can_recv_more -- åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã
+ *
+ *  æ³¨æ: æ»ãå¤
+ *
+ *	E_OK	åä¿¡å¯è½
+ *	E_OBJ	ç¸æããåæ­ãããããã¨ã©ã¼ãçºçããã
+ */
+
+ER
+tcp_can_recv_more (ER *error, T_TCP_CEP *cep, FN fncd, TMO tmout)
+{
+	/*
+	 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãå ´åã¯
+	 *  é·ã 0ãã¾ãã¯ã¨ã©ã¼ãè¿ãã
+	 */
+	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
+	    cep->rwbuf_count == 0 && cep->reassq == NULL) {
+		*error = cep->error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+		if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+			if (!IS_PTR_DEFINED(cep->callback))
+				*error = E_OBJ;
+			else {
+				/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
+#endif
+				*error = E_WBLK;
+				}
+			}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/*
+		 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+		 */
+		syscall(wai_sem(cep->semid_lock));
+		TCP_FREE_RWBUFQ(cep);
+		syscall(sig_sem(cep->semid_lock));
+
+		return E_OBJ;
+		}
+	else {
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+
+		if (!IS_PTR_DEFINED(cep->rbuf)) {
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+			if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+				if (!IS_PTR_DEFINED(cep->callback))
+					*error = E_OBJ;
+				else {
+					*error = E_OBJ;
+
+					/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)*error);
+#else
+					(*cep->callback)(GET_TCP_CEPID(cep), fncd, (void*)error);
+#endif
+					*error = E_WBLK;
+					}
+				}
+			else
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+				*error = E_OBJ;
+
+			return E_OBJ;
+			}
+
+#endif	/* of #ifndef TCP_CFG_RWBUF_CSAVE */
+
+		return E_OK;
+		}
+	}
+
+/*
+ *  tcp_wait_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
+¥ãã®ãå¾
+ã¤ã
+ */
+
+ER
+tcp_wait_rwbuf (T_TCP_CEP *cep, TMO tmout)
+{
+	ER	error;
+	FLGPTN	flag;
+
+	if (cep->rwbuf_count == 0) {
+		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
+¥åãããã¾ã§å¾
+ã¤ã*/
+		while (cep->rwbuf_count == 0) {
+			if ((error = twai_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
+				return error;
+				}
+			syscall(clr_flg(cep->rcv_flgid, (FLGPTN)(~TCP_CEP_EVT_RWBUF_READY)));
+
+			/*
+			 *  åä¿¡ã§ããããfsm_state ãè¦ããåä¿¡ã§ããªãç¶æ
+ã§ã
+			 *  åä¿¡ã¦ã£ã³ããããã¡ã«æå­ããªãå ´åã¯çµäºããã
+			 */
+			if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state) &&
+			    cep->rwbuf_count == 0 && cep->reassq == NULL) {
+
+				/*
+				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 */
+				syscall(wai_sem(cep->semid_lock));
+				TCP_FREE_RWBUFQ(cep);
+				syscall(sig_sem(cep->semid_lock));
+
+				return cep->error;
+				}
+			}
+		}
+	else {
+		syscall(clr_flg(cep->rcv_flgid, (FLGPTN)(~TCP_CEP_EVT_RWBUF_READY)));
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  tcp_move_ra2rw -- åä¿¡åæ§æã­ã¥ã¼ã§åæ§æããã»ã°ã¡ã³ããåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã
+ */
+
+uint8_t
+tcp_move_ra2rw (T_TCP_CEP *cep, uint8_t flags)
+{
+	T_NET_BUF	*q;
+	T_TCP_Q_HDR	*qhdr;
+
+	/*
+	 *  åä¿¡ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ã¿ã
+	 *  rcv_nxt ãå®äºãã SEQ ã ãé²ããã
+	 */
+	if (TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
+		while (cep->reassq != NULL) {
+			q = cep->reassq;
+			qhdr = GET_TCP_Q_HDR(q, GET_IP_TCP_Q_HDR_OFFSET(q));
+			if (qhdr->seq != cep->rcv_nxt)
+				break;
+
+			/* æ¬¡ã®ã»ã°ã¡ã³ãã«é²ãã*/
+			cep->reassq = qhdr->next;
+
+			/* FIN ãã©ã°ã®ã¿æ®ãã*/
+			flags &= TCP_FLG_FIN;
+
+			/* ãã¼ã¿ãåä¿¡ã¦ã£ã³ããããã¡ã«æ¸ãè¾¼ãã*/
+			TCP_WRITE_RWBUF(cep, q, (uint_t)(GET_IP_TCP_Q_HDR_OFFSET(q)));
+			}
+		}
+	if (cep->reassq != NULL) {
+		cep->flags |= TCP_CEP_FLG_ACK_NOW;
+		flags &= ~TCP_FLG_FIN;
+		}
+	return flags;
+	}
+
+/*
+ *  tcp_write_raque -- åä¿¡ã»ã°ã¡ã³ããåæ§æãã¦ãåä¿¡åæ§æã­ã¥ã¼ã«ç¹ãã
+ */
+
+uint8_t
+tcp_write_raque (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, uint8_t flags)
+{
+	T_NET_BUF	*new;
+	T_NET_BUF	*p, *q, *nq;
+	T_TCP_Q_HDR	*qhdr, *inqhdr = GET_TCP_Q_HDR(input, thoff);
+	int32_t		len;
+
+	/*  TCP ãããã®ä½ç½®ãä¿å­ããã*/
+	SET_IP_TCP_Q_HDR_OFFSET(input, thoff);
+
+	/*
+	 *  MAX_TCP_REALLOC_SIZE ä»¥ä¸ã®å ´åã¯ãæ°ãã«ãããã¯ã¼ã¯ãããã¡ã
+	 *  å²å½ã¦ã¦ããã¼ã¿ãã³ãã¼ããã
+	 *  ãã®ã¨ããIP ã®ãªãã·ã§ã³ï¼æ¡å¼µãããï¼ã¨ TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 */
+	len  = IF_IP_TCP_HDR_SIZE(input) + inqhdr->slen;
+
+	if (len <= MAX_TCP_REALLOC_SIZE) {
+
+		/*
+		 *  ãããã¯ã¼ã¯ãããã¡ãç¢ºä¿ã§ããªãã¨ãã¯å²å½ã¦ãªãã
+		 */
+		if (tget_net_buf(&new, (uint_t)len, TMO_TCP_GET_NET_BUF) != E_OK)
+			new = NULL;
+		}
+	else
+		new = NULL;
+
+	/*
+	 *    inqhdr->seq               
+	 *    |
+	 *    |<------- inqhdr->slen ------->|
+	 *    v                              v
+	 *    +------------------------------+
+	 *    |             input            |
+	 *    +------------------------------+
+	 *        ^                  ^
+	 *        |<----- slen ----->|
+	 *        |
+	 *        soff
+	 *
+	 */
+	inqhdr->soff = 0;
+
+	/*
+	 *  ä»åè¿½å ããã»ã°ã¡ã³ãããå(p)ã¨å¾(q)ã®ã»ã°ã¡ã³ããæ¢ãã
+	 *
+	 *    +-------------------------+
+	 *    |            p            |
+	 *    +-------------------------+
+	 *    ^              +---------------------------+
+	 *    p->seq         |            input          |
+	 *                   +---------------------------+
+	 *                   ^                      +-------------------------+
+	 *                   inqhdr->seq            |            q            |
+	 *                                          +-------------------------+
+	 *                                          ^
+	 *                                          q->seq
+	 */
+	for (q = cep->reassq, p = NULL; q != NULL; ) {
+		qhdr = GET_TCP_Q_HDR(q, GET_IP_TCP_Q_HDR_OFFSET(q));
+		if (SEQ_GT(qhdr->seq, inqhdr->seq))
+			break;
+		p = q;
+		q = qhdr->next;
+		}
+
+	/*
+	 *  å(p)ã®ã»ã°ã¡ã³ããããã°ãæ¢ã«ãä»åã¨åãã»ã°ã¡ã³ãã
+	 *  ãããã¨ãããããã®å ´åã¯ããã®é¨åã¾ãã¯å
+¨ã¦ãç ´æ£ããã
+	 *
+	 *    qhdr->seq
+	 *    |
+	 *    |<----- qhdr->slen ------>|
+	 *    v                         v
+	 *    +-------------------------+
+	 *    |            p            |
+	 *    +-------------------------+
+	 *                    <--len -->
+	 *                   +---------------------------+
+	 *                   |            input          |
+	 *                   +---------------------------+
+	 *                   ^
+	 *                   inqhdr->seq
+	 */
+	if (p != NULL) {
+		qhdr = GET_TCP_Q_HDR(p, GET_IP_TCP_Q_HDR_OFFSET(p));
+		len = qhdr->seq + qhdr->slen - inqhdr->seq;
+		if (len > 0) {
+
+			/*
+			 *  len ãæ­£ã§ããã°ãå(p) ã®ã»ã°ã¡ã³ãã¨ä»åã®
+			 *  ã»ã°ã¡ã³ããéãªã£ã¦ããã
+			 */
+			if (len >= inqhdr->slen) {
+
+				/*
+				 *  len ãä»åã®ã»ã°ã¡ã³ãã¨åããªã
+				 *  ã¾ã£ããåãã»ã°ã¡ã³ããªã®ã§ä½ãããªãã
+				 */
+				if (new != NULL) {
+					syscall(rel_net_buf(new));
+					}
+
+				syscall(rel_net_buf(input));
+				return flags;
+				}
+
+			/*
+			 *  è¿½å ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 */
+			inqhdr->seq  += len;
+			inqhdr->soff += (uint16_t)len;
+			inqhdr->slen -= (uint16_t)len;
+			}
+		}
+
+	/*
+	 *  ã­ã¥ã¼ã«ã¤ãªãåã«ãæ°ãããããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç§»ãã
+	 *  TCP ã®ãªãã·ã§ã³ã¯åé¤ããã
+	 */
+	if (new != NULL) {
+		memcpy(new->buf, input->buf, (size_t)(thoff + TCP_HDR_SIZE));
+		memcpy((uint8_t*)GET_TCP_HDR(new, thoff) + TCP_HDR_SIZE,
+		                 GET_TCP_SDU(input, thoff), (size_t)(inqhdr->slen));
+		syscall(rel_net_buf(input));
+		input = new;
+		inqhdr = GET_TCP_Q_HDR(input, thoff);
+		inqhdr->doff = (uint8_t)TCP_MAKE_DATA_OFF(TCP_HDR_SIZE);
+		}
+
+	/*
+	 *  éãªãå¾(q)ã®ã»ã°ã¡ã³ããèª¿æ´ããã
+	 *
+	 *    inqhdr->seq
+	 *    |
+	 *    |<----- inqhdr->slen ---->|
+	 *    v                         v
+	 *    +-------------------------+
+	 *    |          input          |
+	 *    +-------------------------+
+	 *                    <--len -->
+	 *                   +---------------------------+
+	 *                   |              q            |
+	 *                   +---------------------------+
+	 *                   ^
+	 *                   qhdr->seq
+	 */
+	while (q != NULL) {
+		qhdr = GET_TCP_Q_HDR(q, GET_IP_TCP_Q_HDR_OFFSET(q));
+		len = inqhdr->seq + inqhdr->slen - qhdr->seq;
+		if (len <= 0)
+			/* len ãè² ãªãéãªã£ã¦ããªãã*/
+			break;
+		else if (len < qhdr->slen) {
+
+			/*
+			 *  å¾ãã§éãªã£ã¦ããã»ã°ã¡ã³ãã® SDU ã len ååã«è©°ããã
+			 *
+			 *    inqhdr->seq
+			 *    |
+			 *    |<----- inqhdr->slen ---->|
+			 *    v                         v
+			 *    +-------------------------+
+			 *    |          input          |
+			 *    +-------------------------+
+			 *                    <--len -->
+			 *            +------+---------------------------+
+			 *            |      |              q            |
+			 *            +------+---------------------------+
+			 *                   ^--------->
+			 *                   qhdr->seq
+			 *                   qhdr->soff
+			 */
+			qhdr->seq  += len;
+			qhdr->soff += (uint16_t)len;
+			qhdr->slen -= (uint16_t)len;
+			break;
+			}
+		nq = qhdr->next;
+		if (p)
+			GET_TCP_Q_HDR(p, GET_IP_TCP_Q_HDR_OFFSET(p))->next = nq;
+		else
+			cep->reassq = nq;
+		syscall(rel_net_buf(q));
+		q = nq;
+		}
+
+	if (p == NULL) {
+		inqhdr->next = cep->reassq;
+		cep->reassq = input;
+		}
+	else {
+		inqhdr->next = GET_TCP_Q_HDR(p, GET_IP_TCP_Q_HDR_OFFSET(p))->next;
+		GET_TCP_Q_HDR(p, GET_IP_TCP_Q_HDR_OFFSET(p))->next = input;
+		}
+
+	return tcp_move_ra2rw(cep, flags);
+	}
+
+/*
+ *  tcp_rexmt_val -- åéã¿ã¤ã ã¢ã¦ãå¤ãè¿ãã
+ */
+
+T_TCP_TIME
+tcp_rexmt_val (T_TCP_CEP *cep)
+{
+	T_TCP_TIME val;
+
+	val = ((cep->srtt >> (TCP_SRTT_SHIFT - TCP_DELTA_SHIFT)) + cep->rttvar) >> TCP_DELTA_SHIFT;
+	if (val < TCP_TVAL_MIN)
+		return TCP_TVAL_MIN;
+	else
+		return val;
+	}
+
+/*
+ *  tcp_init_cep -- éä¿¡ç«¯ç¹ãåæåããã
+ */
+
+void
+tcp_init_cep (T_TCP_CEP *cep)
+{
+
+#ifdef TCP_CFG_RWBUF_CSAVE
+	/*
+	 * åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããå ´åã
+	 * åä¿¡ã¦ã£ã³ããããã¡ãå
+¨ã¦è§£æ¾ãããªããã¨ãããã®ã§ã
+	 * ããã§è§£æ¾ããã
+	 */
+	if (cep->rwbufq != NULL) {
+		cep->rwbuf_count = 0;
+		TCP_FREE_RWBUFQ(cep);
+		}
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
+
+
+	memset((uint8_t*)cep + offsetof(T_TCP_CEP, timer), 0,
+	       sizeof(T_TCP_CEP) - offsetof(T_TCP_CEP, timer));
+
+	cep->sbuf_rptr	= cep->sbuf_wptr = cep->sbuf;
+	cep->rbuf_rptr	= cep->rbuf_wptr = cep->rbuf;
+
+	cep->maxseg	= DEF_TCP_SND_SEG;		/* éä¿¡æå¤§ã»ã°ã¡ã³ããµã¤ãº		*/
+	cep->srtt	= TCP_TVAL_SRTT_BASE;		/* æ»ãããªç§»åå¹³å			*/
+	cep->rttvar	= ((TCP_TVAL_RTO_BASE - TCP_TVAL_SRTT_BASE) << TCP_RTTVAR_SHIFT) / 4;
+							/* æ»ãããªåæ£				*/
+	cep->rxtcur	= TCP_TVAL_RTO_BASE;		/* ç¾å¨ã®åéå¤				*/
+	cep->snd_cwnd	=  MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº			*/
+	cep->snd_ssthresh= MAX_TCP_WIN_SIZE;		/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)ã®	å¶éå¤	*/
+
+	/*
+	 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
+	 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+	 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+	 * ã»éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«
+	 */
+	cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
+
+	/* ã»ããã©ãåæåããã*/
+	sig_sem(cep->semid_lock);
+
+	/* ãã©ã°ãåæåããã*/
+	syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+	syscall(clr_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
+	}
+
+/*
+ *  tcp_notify -- ICMP ã¨ã©ã¼ã®å¦ç
+ */
+
+void
+tcp_notify (T_NET_BUF *input, ER error)
+{
+	T_TCP_CEP	*cep;
+
+	if ((cep = tcp_find_cep(input, GET_TCP_HDR_OFFSET(input))) != NULL) {
+
+		/*
+		 *  ã³ãã¯ã·ã§ã³éè¨­æ¸ã§ããã¹ãå°éä¸è½ã¨ã©ã¼ã®å ´åã¯ã
+		 *  åéã«ããå¦çããã
+		 */
+		if (cep->fsm_state == TCP_FSM_ESTABLISHED &&
+		    (error == EV_NURCH || error == EV_HURCH || error == EV_HDOWN))
+			return;
+
+		/*
+		 *  ã³ãã¯ã·ã§ã³éè¨­ä¸­ãåãã¨ã©ã¼ãä½åº¦ãåä¿¡ããå ´åã¯ã
+		 *  å¾
+ã¡ç¶æ
+ãè§£é¤ããå¯¾å¿ããé¢æ°ã«ã¨ã©ã¼ãè¿ãããã
+		 */
+		if (cep->fsm_state < TCP_FSM_ESTABLISHED && cep->rxtshift > 3 && cep->net_error != E_OK) {
+			cep->error = E_CLS;
+			tcp_close(cep);
+			}
+		else {
+			cep->net_error = error;
+
+			/* éä¿¡ãæç¤ºããã*/
+			cep->flags |=  TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+		}
+	}
+
+/*
+ *  tcp_lock_cep -- TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã
+ */
+
+ER
+tcp_lock_cep (ID cepid, T_TCP_CEP **p_cep, FN tfn)
+{
+	T_TCP_CEP	*cep;
+	ER		error = E_OK;
+
+	*p_cep = NULL;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEP(cep)) {
+		syscall(sig_sem(cep->semid_lock));
+		return E_NOEXS;
+		}
+
+	/*
+	 *  API æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if (IS_TFN_TCP_RCV(tfn)) {
+		if (cep->rcv_tfn != TFN_TCP_UNDEF ||
+		    (tfn == TFN_TCP_ACP_CEP && cep->snd_tfn == TFN_TCP_CON_CEP)) 
+			error = E_OBJ;
+		else {
+			get_tid(&(cep->rcv_tskid));
+			cep->rcv_tfn = tfn;
+			}
+		}
+	else {
+		if (cep->snd_tfn != TFN_TCP_UNDEF ||
+		    (tfn == TFN_TCP_CON_CEP && cep->rcv_tfn == TFN_TCP_ACP_CEP) ||
+		    (tfn == TFN_TCP_CON_CEP && cep->rcv_tfn == TFN_TCP_CLS_CEP))
+			error = E_OBJ;
+		else {
+			get_tid(&(cep->snd_tskid));
+			cep->snd_tfn = tfn;
+			}
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	*p_cep = cep;
+	return error;
+	}
+
+#ifdef TCP_CFG_TRACE
+
+/*
+ *  ãã¬ã¼ã¹åºåã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·
+ */
+
+#ifndef CONSOLE_PORTID
+#define	CONSOLE_PORTID		LOGTASK_PORTID
+#endif
+
+/*
+ *  ã³ãã¯ã·ã§ã³ã®ç¶æ
+
+ */
+
+static const char tcp_strfsm[][3] = {
+	{ 'C', 'D', '\0' },
+	{ 'L', 'I', '\0' },
+	{ 'S', 'S', '\0' },
+	{ 'S', 'R', '\0' },
+	{ 'E', 'S', '\0' },
+	{ 'C', 'W', '\0' },
+	{ 'F', '1', '\0' },
+	{ 'C', 'G', '\0' },
+	{ 'L', 'A', '\0' },
+	{ 'F', '2', '\0' },
+	{ 'T', 'W', '\0' },
+	};
+
+/*
+ *  trace_putchar -- ã·ãªã¢ã«ãã¼ãã¸ã®æå­åºå
+ */
+
+static void
+trace_putchar (ID portid, char ch)
+{
+	serial_wri_dat(portid, &ch, 1);
+	/*cpu_putc(ch);*/
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºåã©ã¤ãã©ãª
+ */
+
+/*
+ *  æ°å¤å¤æã®ããã®å¤æè¡¨
+ */
+
+static const char radhex[] = "0123456789abcdef";
+static const char radHEX[] = "0123456789ABCDEF";
+
+/*
+ *  convert -- trace_printf ã®æ°å¤å¤æ
+ */
+
+static int_t
+convert (ID portid, long_t val, int_t radix,
+         const char *radchar, int_t width, bool_t minus, char padchar)
+{
+	char	digits[24];
+	int_t	ix, pad, pchars;
+
+	ix = 0;
+	do {
+		if (minus)
+			digits[ix ++] = radchar[val % radix];
+		else
+			digits[ix ++] = radchar[(ulong_t)val % radix];
+		val /= radix;
+		} while (val != 0);
+
+	if (minus)
+		digits[ix ++] = '-';
+
+	if (width > ix)
+		pchars = width;
+	else
+		pchars = ix;
+
+	for (pad = ix; pad < width; pad ++)
+		trace_putchar(portid, padchar);
+
+	while (ix -- > 0)
+		trace_putchar(portid, digits[ix]);
+
+	return pchars;
+	}
+
+/*
+ *  trace_printf -- ã·ãªã¢ã«ãã¼ãã¸ã®æ¸å¼ä»æå­ååºå
+ */
+
+static void
+trace_printf (ID portid, const char *fmt, ...)
+{
+	va_list	ap;
+	ulong_t	val;
+	char	padchar, *str;
+	int_t	ch, width, longflag;
+
+	va_start(ap, fmt);
+	while ((ch = *fmt ++) != '\0') {
+		if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+			trace_putchar(portid, (char)ch);
+			continue;
+			}
+
+		width = longflag = 0;
+		padchar = ' ';
+		if ((ch = *fmt ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+			padchar = '0';
+			ch = *fmt ++;
+			}
+
+		while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+			width = width * 10 + ch - '0';
+			ch = *fmt ++;
+			}
+
+		while (ch == 'l') {		/* long (long) ã®æå® */
+			longflag ++;
+			ch = *fmt ++;
+			}
+
+		switch (ch) {
+		case 'd':
+			val = longflag ? (ulong_t)va_arg(ap, long_t)
+			               : (ulong_t)va_arg(ap, int_t);
+			if (val >= 0)
+				convert(portid,  val, 10, radhex, width, false, padchar);
+			else
+				convert(portid, -val, 10, radhex, width, true, padchar);
+			break;
+
+		case 'u':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			convert(portid, val, 10, radhex, width, false, padchar);
+			break;
+
+		case 'x':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			convert(portid, val, 16, radhex, width, false, padchar);
+			break;
+
+		case 'X':
+			val = longflag ? (ulong_t)va_arg(ap, ulong_t)
+			               : (ulong_t)va_arg(ap, uint_t);
+			convert(portid, val, 16, radHEX, width, false, padchar);
+			break;
+
+		case 'c':
+			ch = va_arg(ap, int_t);
+			trace_putchar(portid, (char)ch);
+			break;
+
+		case 's':
+			str = va_arg(ap, char*);
+			while ((ch = *str ++) != '\0')
+				trace_putchar(portid, (char)ch);
+			break;
+
+		case '%':
+			trace_putchar(portid, '%');
+			break;
+
+		case '0':
+			fmt --;
+			break;
+
+		default:
+			break;
+			}
+
+		}
+	va_end(ap);
+	}
+
+/*
+ *  TCP ãã©ã°æå­å
+ */
+
+static char *
+get_tcp_flag_str (char *buf, uint8_t flags)
+{
+	static char tcp_flag_str[] = "FSRPAU";
+
+	int_t	bit, mask = 1;
+
+	for (bit = 0; bit < sizeof(tcp_flag_str); bit ++) {
+		buf[sizeof(tcp_flag_str) - bit - 1] = (char)((flags & mask) ? tcp_flag_str[bit] : '-');
+		mask <<= 1;
+		}
+	buf[sizeof(tcp_flag_str)] = '\0';
+	return buf;
+	}
+
+/*
+ *  éä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ */
+
+void
+tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep)
+{
+	SYSTIM		time;
+	T_TCP_HDR	*tcph;
+	char		buf[9];
+
+	if (!(TCP_CFG_TRACE_LPORTNO == TCP_PORTANY || cep->myaddr.portno  == TCP_CFG_TRACE_LPORTNO) ||
+	    !(TCP_CFG_TRACE_RPORTNO == TCP_PORTANY || cep->dstaddr.portno == TCP_CFG_TRACE_RPORTNO))
+		return;
+
+#if defined(_IP4_CFG)
+
+#if defined(_IP6_CFG)
+
+	if (!((TCP_CFG_TRACE_IPV4_RADDR == IPV4_ADDRANY) ||
+	     ((cep->flags & TCP_CEP_FLG_IPV4) && 
+	      IN6_IS_ADDR_V4MAPPED(&cep->dstaddr.ipaddr) &&
+	      (ntohl(cep->dstaddr.ipaddr.s6_addr32[3]) == TCP_CFG_TRACE_IPV4_RADDR))))
+		return;
+
+#else	/* of #if defined(_IP6_CFG) */
+
+	if (!(TCP_CFG_TRACE_IPV4_RADDR == IPV4_ADDRANY || cep->dstaddr.ipaddr == TCP_CFG_TRACE_IPV4_RADDR))
+		return;
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	syscall(wai_sem(SEM_TCP_TRACE));
+	syscall(get_tim(&time));
+	tcph = GET_TCP_HDR(output, GET_TCP_HDR_OFFSET(output));
+	if (time > 99999999)
+		trace_printf(CONSOLE_PORTID, "=O%10d", time / 1000);
+	else
+		trace_printf(CONSOLE_PORTID, "=O%6d.%03d", time / 1000, time % 1000);
+	if (cep == NULL)
+		trace_printf(CONSOLE_PORTID, "=c:-- s:-- f:--------");
+	else
+		trace_printf(CONSOLE_PORTID, "=c:%2d s:%s f:%08x",
+		                             GET_TCP_CEPID(cep),
+		                             tcp_strfsm[cep->fsm_state], cep->flags);
+	trace_printf(CONSOLE_PORTID, ":%s", get_tcp_flag_str(buf, tcph->flags));
+	if (cep->fsm_state >= TCP_FSM_ESTABLISHED)
+		trace_printf(CONSOLE_PORTID, " s:%10u a:%10u",
+		                             ntohl(tcph->seq) - cep->iss,
+		                             ntohl(tcph->ack) - cep->irs);
+	else
+		trace_printf(CONSOLE_PORTID, " s:%10u a:%10u",
+		                             ntohl(tcph->seq), ntohl(tcph->ack));
+	trace_printf(CONSOLE_PORTID, " w:%5d l:%4d>\n", 
+	                             ntohs(tcph->win),
+	                             GET_IP_SDU_SIZE(output) - TCP_HDR_LEN(tcph->doff));
+	syscall(sig_sem(SEM_TCP_TRACE));
+	}
+
+/*
+ *  åä¿¡ TCP ãããã®ãã¬ã¼ã¹åºå
+ *
+ *    æ³¨æ: TCP ãããå
+ã¯ããã§ã«ãã¹ããã¤ããªã¼ã
+ */
+
+void
+tcp_input_trace (T_NET_BUF *input, T_TCP_CEP *cep)
+{
+	SYSTIM		time;
+	T_TCP_HDR	*tcph;
+	char		buf[9];
+
+	if (!(TCP_CFG_TRACE_LPORTNO == TCP_PORTANY || cep->myaddr.portno  == TCP_CFG_TRACE_LPORTNO) ||
+	    !(TCP_CFG_TRACE_RPORTNO == TCP_PORTANY || cep->dstaddr.portno == TCP_CFG_TRACE_RPORTNO))
+		return;
+
+#if defined(_IP4_CFG)
+
+#if defined(_IP6_CFG)
+
+	if (!((TCP_CFG_TRACE_IPV4_RADDR == IPV4_ADDRANY) ||
+	     ((cep->flags & TCP_CEP_FLG_IPV4) && 
+	      IN6_IS_ADDR_V4MAPPED(&cep->dstaddr.ipaddr) &&
+	      (ntohl(cep->dstaddr.ipaddr.s6_addr32[3]) == TCP_CFG_TRACE_IPV4_RADDR))))
+		return;
+
+#else	/* of #if defined(_IP6_CFG) */
+
+	if (!(TCP_CFG_TRACE_IPV4_RADDR == IPV4_ADDRANY || cep->dstaddr.ipaddr == TCP_CFG_TRACE_IPV4_RADDR))
+		return;
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	syscall(wai_sem(SEM_TCP_TRACE));
+	syscall(get_tim(&time));
+	tcph = GET_TCP_HDR(input, GET_TCP_HDR_OFFSET(input));
+	if (time > 99999999)
+		trace_printf(CONSOLE_PORTID, "<I%10d", time / 1000);
+	else
+		trace_printf(CONSOLE_PORTID, "<I%6d.%03d", time / 1000, time % 1000);
+	if (cep == NULL)
+		trace_printf(CONSOLE_PORTID, "=c:-- s:-- f:--------");
+	else
+		trace_printf(CONSOLE_PORTID, "=c:%2d s:%s f:%08x",
+		                             GET_TCP_CEPID(cep),
+		                             tcp_strfsm[cep->fsm_state], cep->flags);
+	trace_printf(CONSOLE_PORTID, ":%s", get_tcp_flag_str(buf, tcph->flags));
+	if (cep->fsm_state >= TCP_FSM_SYN_RECVD)
+		trace_printf(CONSOLE_PORTID, " a:%10u s:%10u", tcph->ack - cep->iss, tcph->seq - cep->irs);
+	else
+		trace_printf(CONSOLE_PORTID, " a:%10u s:%10u", tcph->ack, tcph->seq);
+	trace_printf(CONSOLE_PORTID, " w:%5d l:%4d=\n", 
+	                             tcph->win, GET_IP_SDU_SIZE(input) - TCP_HDR_LEN(tcph->doff));
+	syscall(sig_sem(SEM_TCP_TRACE));
+	}
+
+#endif	/* of #ifdef TCP_CFG_TRACE */
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_cs.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_cs.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_cs.c	(revision 313)
@@ -0,0 +1,1139 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_subr.c	8.2 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.49.2.4 1999/08/29 16:29:55 peter Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
+ *  ãã ããéä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ï¼cep->sbufï¼ã®å¤ã«ããã
+ *  TCP éä¿¡ç«¯ç¹æ¯ã«éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
+ *  ä½¿ç¨ããªãããåãæ¿ããã
+ */
+
+/*
+ *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼é¸æï¼ã
+ */
+
+void
+tcp_drop_swbuf (T_TCP_CEP *cep, uint_t len)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		tcp_drop_swbuf_ncs(cep, len);
+	else
+		tcp_drop_swbuf_cs(cep, len);
+	}
+
+/*
+ *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼é¸æï¼ã
+ */
+
+ER_UINT
+tcp_write_swbuf (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		return tcp_write_swbuf_ncs(cep, data, len);
+	else
+		return tcp_write_swbuf_cs(cep, data, len);
+	}
+
+/*
+ *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãï¼é¸æï¼ã
+ */
+
+void
+tcp_read_swbuf (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		tcp_read_swbuf_ncs(cep, output, len, doff);
+	}
+
+/*
+ *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
+ã¤ï¼é¸æï¼ã
+ */
+
+ER
+tcp_wait_swbuf (T_TCP_CEP *cep, TMO tmout)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		return tcp_wait_swbuf_ncs(cep, tmout);
+	else
+		return tcp_wait_swbuf_cs(cep, tmout);
+	}
+
+/*
+ *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼é¸æï¼ã
+ */
+
+ER_UINT
+tcp_get_swbuf_addr (T_TCP_CEP *cep, void **p_buf)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		return tcp_get_swbuf_addr_ncs(cep, p_buf);
+	else
+		return tcp_get_swbuf_addr_cs(cep, p_buf);
+	}
+
+/*
+ *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼é¸æï¼ã
+ */
+
+void
+tcp_send_swbuf (T_TCP_CEP *cep, uint_t len)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		tcp_send_swbuf_ncs(cep, len);
+	else
+		tcp_send_swbuf_cs(cep, len);
+	}
+
+/*
+ *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼é¸æï¼ã
+ */
+
+void
+tcp_free_swbufq (T_TCP_CEP *cep)
+{
+	if (!IS_PTR_DEFINED(cep->sbuf))
+		tcp_free_swbufq_cs(cep);
+	}
+
+/*
+ *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼é¸æï¼ã
+ */
+
+void
+tcp_alloc_swbuf (T_TCP_CEP *cep)
+{
+	if (!IS_PTR_DEFINED(cep->sbuf))
+		tcp_alloc_swbuf_cs(cep);
+	}
+
+/*
+ *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼é¸æï¼ã
+ */
+
+bool_t
+tcp_is_swbuf_full (T_TCP_CEP *cep)
+{
+	if (IS_PTR_DEFINED(cep->sbuf))
+		return tcp_is_swbuf_full_ncs(cep);
+	else
+		return tcp_is_swbuf_full_cs(cep);
+	}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+/*
+ *  tcp_drop_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããï¼å°ç¨ï¼ã
+ */
+
+void
+tcp_drop_swbuf_cs (T_TCP_CEP *cep, uint_t len)
+{
+
+	/*éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã*/
+	cep->swbuf_count -= (uint16_t)len;
+
+	/* éä¿¡æ¸ã¿ã§ãACKå¾
+ã¡ã®æã¯ãACKå®äºã«å¤æ´ããã*/
+	if (len > 0 && (cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_SENT) {
+		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	}
+
+/*
+ *  tcp_write_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãï¼å°ç¨ï¼ã
+ */
+
+ER_UINT
+tcp_write_swbuf_cs (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	ER_UINT	error;
+	uint_t	hdr_size = IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr);
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if ((error = net_buf_siz(cep->swbufq)) > 0 && error >= hdr_size) {
+
+		/*
+		 *  +-----------+--------+---------+---------+
+		 *  | Ehter HDR | IP HDR | TCP HDR | TCP SDU |
+		 *  +-----------+--------+---------+---------+
+		 *        14        20        20        n
+		 *   <---------------- error --------------->
+		 *              ^
+		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *
+		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
+		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
+		 *  ãããã£ã³ã°ããããã®åãèæ
+®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
+		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 */
+		error = (uint_t)(((error - hdr_size) >> 2 << 2) + hdr_size);
+
+		if (len > cep->sbufsz - cep->swbuf_count)
+			len = (uint_t)(cep->sbufsz - cep->swbuf_count);
+		if (len > (error - hdr_size))
+			len = (uint_t)(error - hdr_size);
+
+		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		if (len > cep->snd_wnd) 
+			len = cep->snd_wnd;
+		if (len > cep->snd_cwnd)
+			len = cep->snd_cwnd;
+
+		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
+ããªãããã«ããã*/
+		if (len > cep->maxseg) 
+			len = cep->maxseg;
+
+		/* ãã¼ã¿ãç§»ãã*/
+		memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data), (size_t)len);
+		cep->sbuf_wptr   += len;
+		cep->swbuf_count += len;
+		error             = len;
+
+		/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+		cep->swbufq->len = (uint16_t)(cep->swbuf_count + hdr_size);
+		SET_IP_SDU_SIZE(cep->swbufq, cep->swbuf_count + TCP_HDR_SIZE);
+
+		/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããã*/
+		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY;
+		}
+
+	else {	/* éä¿¡ã¦ã¤ã³ããããã¡ãä¸æ­£ */
+		syslog(LOG_WARNING, "[TCP] illegal window buff for send, CEP: %d, %4d < %4d.",
+		                    GET_TCP_CEPID(cep), error, hdr_size);
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		tcp_free_swbufq_cs(cep);
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+/*
+ *  tcp_wait_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã¨ç¸æã®åä¿¡ã¦ã£ã³ããéãã®ãå¾
+ã¤ï¼å°ç¨ï¼ã
+ */
+
+ER
+tcp_wait_swbuf_cs (T_TCP_CEP *cep, TMO tmout)
+{
+	FLGPTN	flag;
+	SYSTIM	before, after;
+	ER	error;
+	int_t	win;
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ãå²å½ã¦æ¸ã¿ã§ãç©ºããããã°çµäºããã*/
+	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_READY &&
+	    (cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) < net_buf_siz(cep->swbufq))
+		return E_OK;
+
+	/* éä¿¡ä¸­ã§ããã°ãçµäºããã¾ã§å¾
+æ©ããã*/
+	while ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
+
+		/* éä¿¡å¾
+ã¡ã®æéã tmout ããæ¸ããã*/
+		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
+			syscall(get_tim(&before));
+
+		if ((error = twai_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY,
+		                      TWF_ORW, &flag, tmout)) != E_OK)
+			return error;
+		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
+
+		/* éä¿¡å¾
+ã¡ã®æéã tmout ããæ¸ããã*/
+		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
+			syscall(get_tim(&after));
+			if (after - before > tmout)
+				return E_TMOUT;
+			tmout -= (TMO)(after - before);
+			}
+
+		/*
+		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
+ãè¦ãã
+		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
+ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
+		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 */
+		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
+			return E_CLS;
+		}
+
+	/* ç¸æã®åä¿¡ã¦ã£ã³ããéãã¦ããå ´åã¯ãéãã¾ã§å¾
+æ©ããã*/
+	while (true) {
+
+		/*
+		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
+		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *
+		 *  win: ã©ã¡ããå°ããã¦ã£ã³ããµã¤ãºã«è¨­å®ããã
+		 */
+		win = cep->snd_wnd < cep->snd_cwnd ? cep->snd_wnd : cep->snd_cwnd;
+		if (win > 0)
+			break;
+
+		/* éãå¾
+ã¡ã®æéã tmout ããæ¸ããã*/
+		if (!(tmout == TMO_POL || tmout == TMO_FEVR))
+			syscall(get_tim(&before));
+
+		if ((error = twai_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY,
+		                      TWF_ORW, &flag, tmout)) != E_OK)
+			return error;
+		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
+
+		/* éãå¾
+ã¡ã®æéã tmout ããæ¸ããã*/
+		if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
+			syscall(get_tim(&after));
+			if (after - before > tmout)
+				return E_TMOUT;
+			tmout -= (TMO)(after - before);
+			}
+
+		/*
+		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
+ãè¦ãã
+		 *  éä¿¡ã¦ã¤ã³ããããã¡ãç©ºãã¾ã§å¾
+ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
+		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 */
+		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state))
+			return E_CLS;
+		}
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	if ((error = tcpn_get_segment(&cep->swbufq, cep, 0,
+	                             TCP_CFG_SWBUF_CSAVE_MIN_SIZE,
+	                             TCP_CFG_SWBUF_CSAVE_MAX_SIZE,
+	                             NBA_SEARCH_DESCENT, tmout)) != E_OK)
+		return error;
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ãåæåããã*/
+	tcp_init_swbuf(cep);
+
+	return E_OK;
+	}
+
+/*
+ *  tcp_get_swbuf_addr_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããï¼å°ç¨ï¼ã
+ */
+
+ER_UINT
+tcp_get_swbuf_addr_cs (T_TCP_CEP *cep, void **p_buf)
+{
+	ER_UINT	error;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if ((error = net_buf_siz(cep->swbufq)) > 0) {
+
+		/*
+		 *  +-----------+--------+---------+---------+
+		 *  | Ehter HDR | IP HDR | TCP HDR | TCP SDU |
+		 *  +-----------+--------+---------+---------+
+		 *        14        20        20        n
+		 *   <---------------- error --------------->
+		 *              ^
+		 *              net_buf ã§ 4 ãªã¯ãããå¢çã«ã¢ã©ã¤ã³ããã¦ããã
+		 *
+		 *  tcp_output ã¨ ip_output ã§ããã§ãã¯ãµã ãè¨ç®ããã¨ãã
+		 *  n ã 4 ãªã¯ãããå¢çã«ãªãããã« SDU ã®å¾ãã« 0 ã
+		 *  ãããã£ã³ã°ããããã®åãèæ
+®ãã¦éä¿¡ã¦ã£ã³ããããã¡ã®
+		 *  ç©ºããµã¤ãºã 4 ãªã¯ãããå¢çã«èª¿æ´ããã
+		 */
+		error = (uint_t)(((error - IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr)) >> 2 << 2) - cep->swbuf_count);
+
+		/* éä¿¡ã¦ã¤ã³ããµã¤ãºã«ãããµã¤ãºãèª¿æ´ããã*/
+		if (error > cep->snd_wnd) 
+			error = cep->snd_wnd;
+		if (error > cep->snd_cwnd)
+			error = cep->snd_cwnd;
+
+		/* ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ãè¶
+ããªãããã«ããã*/
+		if (error > cep->maxseg) 
+			error = cep->maxseg;
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+		cep->get_buf_len = error;
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
+é ­ãè¨­å®ããã*/
+		*p_buf = cep->sbuf_wptr;
+		}
+
+	else {	/* ãããã¯ã¼ã¯ãããã¡ãä¸æ­£ */
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		tcp_free_swbufq_cs(cep);
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+/*
+ *  tcp_send_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããï¼å°ç¨ï¼ã
+ */
+
+void
+tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len)
+{
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	cep->sbuf_wptr  += len;
+	cep->swbuf_count += len;
+
+	/* ãããã¯ã¼ã¯ãããã¡é·ã¨ IP ãã¼ã¿ã°ã©ã é·ãè¨­å®ããã*/
+	cep->swbufq->len = (uint16_t)(cep->swbuf_count + IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr));
+	SET_IP_SDU_SIZE(cep->swbufq, len + TCP_HDR_SIZE);
+
+	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	cep->get_buf_len = 0;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* ãã©ã°ããéä¿¡å¯è½ã«è¨­å®ããå¼·å¶çã«éä¿¡ããã*/
+	cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_SEND_READY
+	                                               | TCP_CEP_FLG_FORCE
+	                                               | TCP_CEP_FLG_FORCE_CLEAR
+	                                               | TCP_CEP_FLG_POST_OUTPUT;
+	}
+
+/*
+ *  tcp_free_swbufq_cs -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®è§£æ¾ãæç¤ºããï¼å°ç¨ï¼ã
+ *
+ *    æ³¨æ:
+ *      å¿
+è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
+ *      æ»ã£ãå¾ãè§£é¤ããå¿
+è¦ãããã
+ */
+
+void
+tcp_free_swbufq_cs (T_TCP_CEP *cep)
+{
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãå¾
+ã¡ãåãæ¶ãã*/
+	cep->flags &= ~TCP_CEP_FLG_WBCS_NBUF_REQ;
+
+	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_FREE) {
+		/*
+		 *  éä¿¡ã¦ã£ã³ããããã¡ãåé¤ããããã«ããã©ã°ã ACK å®äºã«è¨­å®ãã
+		 *  TCP åºåã¿ã¹ã¯ãèµ·åããã
+		 */
+		cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_ACKED;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	}
+
+/*
+ *  tcp_alloc_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããï¼å°ç¨ï¼ã
+ */
+
+void
+tcp_alloc_swbuf_cs (T_TCP_CEP *cep)
+{
+	cep->flags |= TCP_CEP_FLG_WBCS_NBUF_REQ;
+
+	/*
+	 *  éä¿¡ã¦ã£ã³ããããã¡ãæªä½¿ç¨ã®å ´åã®ã¿ã
+	 *  éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+	 */
+	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_FREE)
+		sig_sem(SEM_TCP_POST_OUTPUT);
+	}
+
+/*
+ *  tcp_is_swbuf_full_cs -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããï¼å°ç¨ï¼ã
+ */
+
+bool_t
+tcp_is_swbuf_full_cs (T_TCP_CEP *cep)
+{
+	return (cep->flags & TCP_CEP_FLG_WBCS_MASK) != TCP_CEP_FLG_WBCS_NBUF_READY ||
+	        cep->swbuf_count >= cep->swbufq->len - IF_IP_TCP_NET_HDR_SIZE(&cep->dstaddr.ipaddr);
+	}
+
+/*
+ *  tcp_init_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãåæåããï¼å°ç¨ï¼ã
+ *
+ *    æ³¨æ: tcp_get_segment ã§ãããã¯ã¼ã¯ãããã¡ãç²å¾ãã
+ *          ç´å¾ã«å¼ã³åºããã¨ã
+ */
+
+void
+tcp_init_swbuf (T_TCP_CEP *cep)
+{
+	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+	cep->swbuf_count = 0;
+
+	/* éä¿¡ã¦ã¤ã³ããããã¡ã®ã¢ãã¬ã¹ãè¨­å®ããã*/
+	cep->sbuf_wptr = cep->sbuf_rptr = GET_TCP_SDU(cep->swbufq, IF_IP_TCP_NET_HDR_OFFSET(&cep->dstaddr.ipaddr));
+
+	/* ãã©ã°ãããããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿ã«è¨­å®ããã*/
+	cep->flags = (cep->flags & ~(TCP_CEP_FLG_WBCS_NBUF_REQ | TCP_CEP_FLG_WBCS_MASK))
+	                         |   TCP_CEP_FLG_WBCS_NBUF_READY;
+	}
+
+/*
+ *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããï¼å°ç¨ï¼ã
+ */
+
+T_NET_BUF *
+tcp_push_res_nbuf (T_NET_BUF *nbuf)
+{
+	static int_t last_ix = 0;
+
+	T_TCP_CEP	*cep;
+ 	int_t		ix, sel_ix;
+
+	if (++ last_ix == tmax_tcp_cepid)
+		last_ix = 0;
+	sel_ix = ix = last_ix;
+	do {
+		cep = &tcp_cep[ix];
+		if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_PEND) {
+
+			/* ãããã¯ã¼ã¯ãããã¡ãäºç´ããã*/
+			cep->swbufq = nbuf;
+			nbuf = NULL;
+
+			/* ãã©ã°ãäºç´ã«è¨­å®ããã*/
+			cep->flags = (cep->flags & ~TCP_CEP_FLG_WBCS_MASK) | TCP_CEP_FLG_WBCS_NBUF_RSVD;
+			sel_ix = ix;
+			break;
+			}
+		if (++ ix == tmax_tcp_cepid)
+			ix = 0;
+		} while (ix != last_ix);
+
+	last_ix = sel_ix;
+
+	return nbuf;
+	}
+
+/*
+ *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãï¼å°ç¨ï¼ã
+ */
+
+T_NET_BUF *
+tcp_pull_res_nbuf (ATR nbatr)
+{
+	T_NET_BUF	*nbuf;
+	T_TCP_CEP	*cep;
+
+	cep = GET_TCP_CEP(nbatr & NBA_ID_MASK);
+	if ((cep->flags & TCP_CEP_FLG_WBCS_MASK) == TCP_CEP_FLG_WBCS_NBUF_RSVD) {
+
+		/* äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡ãè¿ãã*/
+		nbuf = cep->swbufq;
+		cep->swbufq = NULL;
+
+		/* TCP åºåã¿ã¹ã¯ãèµ·åããã*/
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	else
+		nbuf = NULL;
+
+	return nbuf;
+	}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#ifdef TCP_CFG_RWBUF_CSAVE 
+
+#ifdef TCP_CFG_RWBUF_CSAVE_ONLY
+
+#else	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ãªå ´å
+ *  ãã ããéä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ï¼cep->rbufï¼ã®å¤ã«ããã
+ *  TCP éä¿¡ç«¯ç¹æ¯ã«åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãä½¿ç¨ãããã
+ *  ä½¿ç¨ããªãããåãæ¿ããã
+ */
+
+/*
+ *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ */
+
+void
+tcp_drop_rwbuf (T_TCP_CEP *cep, uint_t len)
+{
+	if (IS_PTR_DEFINED(cep->rbuf))
+		tcp_drop_rwbuf_ncs(cep, len);
+	else
+		tcp_drop_rwbuf_cs(cep, len);
+	}
+
+/*
+ *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ */
+
+uint_t
+tcp_read_rwbuf (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	if (IS_PTR_DEFINED(cep->rbuf))
+		return tcp_read_rwbuf_ncs(cep, data, len);
+	else
+		return tcp_read_rwbuf_cs(cep, data, len);
+	}
+
+/*
+ *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ */
+
+uint_t
+tcp_get_rwbuf_addr (T_TCP_CEP *cep, void **p_buf)
+{
+	if (IS_PTR_DEFINED(cep->rbuf))
+		return tcp_get_rwbuf_addr_ncs(cep, p_buf);
+	else
+		return tcp_get_rwbuf_addr_cs(cep, p_buf);
+	}
+
+/*
+ *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ */
+
+void
+tcp_free_rwbufq (T_TCP_CEP *cep)
+{
+	if (!IS_PTR_DEFINED(cep->rbuf))
+		tcp_free_rwbufq_cs(cep);
+	}
+
+/*
+ *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ */
+
+void
+tcp_write_rwbuf (T_TCP_CEP *cep, T_NET_BUF *input, uint_t thoff)
+{
+	if (IS_PTR_DEFINED(cep->rbuf))
+		tcp_write_rwbuf_ncs(cep, input, thoff);
+	else
+		tcp_write_rwbuf_cs(cep, input, thoff);
+	}
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹
+ */
+
+/*
+ *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æåã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+ */
+
+void
+tcp_drop_rwbuf_cs (T_TCP_CEP *cep, uint_t len)
+{
+	T_TCP_Q_HDR	*qhdr;
+
+	if (cep->rwbufq != NULL) {
+
+		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq));
+		cep->rwbuf_count -= len;
+
+		/* ãããã¯ã¼ã¯ãããã¡ã«ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã*/
+		if (len == qhdr->slen) {
+			T_NET_BUF *next;
+
+#ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
+
+			cep->rwbufq_entries --;
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES */
+
+			next = qhdr->next;
+			syscall(rel_net_buf(cep->rwbufq));
+			cep->rwbufq = next;
+			}
+		else {
+			qhdr->slen -= len;
+			qhdr->soff += len;
+			}
+		}
+	}
+
+/*
+ *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ */
+
+uint_t
+tcp_read_rwbuf_cs (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	T_TCP_Q_HDR	*qhdr;
+	uint_t		blen, rlen = 0;
+	uint8_t		*buf = (uint8_t*)data;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã«ãããã¯ã¼ã¯ãããã¡ãç¡ããªãã
+	 *  len ã 0 ã«ãªãã¾ã§ç¶ããã
+	 */
+	while (cep->rwbufq != NULL && len > 0) {
+		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq));
+
+		/*
+		 *  len ã¨åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®å
+é ­ãããã¯ã¼ã¯ãããã¡ã®
+		 *  ãã¼ã¿æ°ã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã
+		 */
+		if (len > qhdr->slen)
+			blen = qhdr->slen;
+		else
+			blen = len;
+
+		memcpy(buf,
+		       GET_TCP_SDU(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff,
+		       (size_t)blen);
+
+		/*
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ã«
+		 *  ãã¼ã¿ãç¡ããªã£ããè§£æ¾ããã
+		 */
+		tcp_drop_rwbuf_cs(cep, blen);
+
+		buf  += blen;
+		rlen += blen;
+		len  -= blen;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return rlen;
+	}
+
+/*
+ *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ */
+
+uint_t
+tcp_get_rwbuf_addr_cs (T_TCP_CEP *cep, void **p_buf)
+{
+	T_TCP_Q_HDR	*qhdr;
+	uint_t		len;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if (cep->rwbufq == NULL) {
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ãå
+¨ã¦éæ¾ããã¦ããã¨ãã*/
+		*p_buf = NULL;
+		len = 0;
+		}
+	else {
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
+é ­ãè¨­å®ããã*/
+		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq));
+		*p_buf = GET_TCP_SDU(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff;
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+		len = qhdr->slen;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	cep->rcv_buf_len = len;
+	return len;
+	}
+
+/*
+ *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ *
+ *    æ³¨æ:
+ *      å¿
+è¦ã§ããã°ããã®é¢æ°ãå¼ã³åºãåã«ãéä¿¡ç«¯ç¹ãã­ãã¯ãã
+ *      æ»ã£ãå¾ãè§£é¤ããå¿
+è¦ãããã
+ */
+
+void
+tcp_free_rwbufq_cs (T_TCP_CEP *cep)
+{
+	T_NET_BUF *next;
+
+	if (cep->rwbuf_count == 0 && cep->reassq == NULL) {
+		while (cep->rwbufq != NULL) {
+			next = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq))->next;
+
+#ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
+
+			cep->rwbufq_entries --;
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES */
+
+			syscall(rel_net_buf(cep->rwbufq));
+			cep->rwbufq = next;
+			}
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãºããªã»ããããã*/
+		cep->rwbuf_count = 0;
+		}
+	}
+
+/*
+ *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *
+ *    æ³¨æ:
+ *	å
+¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
+ *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
+ *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ */
+
+void
+tcp_write_rwbuf_cs (T_TCP_CEP *cep, T_NET_BUF *input, uint_t thoff)
+{
+	T_TCP_Q_HDR	*qhdr;
+	T_NET_BUF	**nextp;
+	uint_t		inlen, last;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
+
+	inlen = qhdr->slen;
+
+#ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES
+
+	if (cep->rwbufq_entries >= TCP_CFG_RWBUF_CSAVE_MAX_QUEUES &&
+	    inlen > 0 && (qhdr->flags & TCP_FLG_FIN) == 0) {
+
+		/*
+		 *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ãè¶
+ããã¨ãã¯ã
+		 *  åä¿¡ããã»ã°ã¡ã³ããç ´æ£ããã
+		 *  ãã ããSDU é·ã 0 ã®ã»ã°ã¡ã³ãã¨ FIN ã»ã°ã¡ã³ãã¯ç ´æ£ããªãã
+		 *  ãªããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+		 */
+		syscall(rel_net_buf(input));
+
+		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+		return;
+		}
+
+	cep->rwbufq_entries ++;
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_MAX_QUEUES */
+
+	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
+
+	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	cep->rcv_nxt += inlen;
+
+	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	if (qhdr->urp > 0 && inlen > 0) {
+		inlen      -= qhdr->urp;
+		qhdr->slen -= qhdr->urp;
+		qhdr->urp   = 0;
+		}
+
+	last  = cep->rwbuf_count;
+
+	/* ãããã¯ã¼ã¯ãããã¡ãåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¾ã«é£çµããã*/
+	qhdr->next = NULL;
+	nextp = &cep->rwbufq;
+	while (*nextp)
+		nextp = &GET_TCP_Q_HDR(*nextp, GET_IP_TCP_Q_HDR_OFFSET(*nextp))->next;
+	*nextp = input;
+
+	/*
+	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+	 *  ããªããã¨ãç¥ãããããã§ããã
+	 */
+	if (inlen > 0) {
+		cep->rwbuf_count += inlen;
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DATA_SEGS],   1);
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DATA_OCTETS], inlen);
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		int_t	len;
+
+		qhdr = GET_TCP_Q_HDR(cep->rwbufq, GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq));
+		len = qhdr->slen;
+
+		/*
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if (len > 0 || inlen == 0) {
+
+			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			cep->rcv_buf_len = len;
+
+			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			*cep->rcv_p_buf = GET_TCP_SDU(cep->rwbufq,
+			                  GET_IP_TCP_Q_HDR_OFFSET(cep->rwbufq)) + qhdr->soff;
+
+			if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+#endif
+			else
+				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+			if (len == 0) {
+
+				/*
+				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 */
+				syscall(wai_sem(cep->semid_lock));
+				tcp_free_rwbufq_cs(cep);
+				syscall(sig_sem(cep->semid_lock));
+				}
+			}
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->rcv_tskid = TA_NULL;
+		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+		}
+
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		int_t	len;
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		if ((len = tcp_read_rwbuf_cs(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
+			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+
+		/*
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if (len > 0 || inlen == 0) {
+
+			if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+#endif
+			else
+				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+			}
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->rcv_tskid = TA_NULL;
+		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+		}
+	else {
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		if (inlen == 0 && cep->rwbuf_count == 0) {
+			/*
+			 *  åä¿¡ã¦ã£ã³ããããã¡å
+ã®ãã¼ã¿æ°ã 0 ã§ã
+			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
+			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 */
+			syscall(wai_sem(cep->semid_lock));
+			tcp_free_rwbufq_cs(cep);
+			syscall(sig_sem(cep->semid_lock));
+			}
+
+		/*
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
+¥ããã inlen == 0 ã®æãå
+¥åã¿ã¹ã¯ãèµ·åºããã
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0) {
+			syscall(set_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	}
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_ncs.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_subr_ncs.c	(revision 313)
@@ -0,0 +1,739 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_subr.c	8.2 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_subr.c,v 1.49.2.4 1999/08/29 16:29:55 peter Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+#ifndef TCP_CFG_SWBUF_CSAVE_ONLY
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
+ */
+
+/*
+ *  tcp_read_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ */
+
+void
+tcp_read_swbuf_ncs (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff)
+{
+	uint8_t	*wptr, *rptr;
+	uint_t	sdu_size   = GET_IP_SDU_SIZE(output);
+	uint_t	hdr_offset = IF_IP_TCP_HDR_OFFSET(output);
+
+	/* SDU ã®å¤§ããããã§ãã¯ããã*/
+	if (sdu_size < GET_TCP_HDR_SIZE(output, hdr_offset) + len) {
+		syslog(LOG_INFO, "[TCP] shrink SUD len: %d -> %d",
+		       (uint16_t)len, (uint16_t)(sdu_size - GET_TCP_HDR_SIZE(output, hdr_offset)));
+		len = sdu_size - GET_TCP_HDR_SIZE(output, hdr_offset);
+		}
+
+	wptr = GET_TCP_SDU(output, hdr_offset);
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	rptr = cep->sbuf_rptr + doff;
+	if (rptr - (uint8_t*)cep->sbuf > cep->sbufsz) {
+
+		/* è»¢ééå§ãéä¿¡ã¦ã£ã³ããããã¡ã®çµãããè¶
+ããã¨ãã®å¦çã*/
+		rptr = (uint8_t*)cep->sbuf_rptr - (cep->sbufsz - doff);
+		}
+	else if (len + (rptr - (uint8_t*)cep->sbuf) > cep->sbufsz) {
+		uint_t sub;
+
+		/* è»¢éç¯å²ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		sub = (uint_t)(cep->sbufsz - (rptr - (uint8_t*)cep->sbuf));
+		memcpy((void*)wptr, rptr, (size_t)sub);
+		len  -= sub;
+		wptr += sub;
+		rptr  = (uint8_t*)cep->sbuf;
+		}
+	memcpy((void*)wptr, rptr, (size_t)len);
+
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_SEGS],   1);
+	NET_COUNT_TCP(net_count_tcp[NC_TCP_SEND_DATA_OCTETS], len);
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+	}
+
+/*
+ *  tcp_drop_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ */
+
+void
+tcp_drop_swbuf_ncs (T_TCP_CEP *cep, uint_t len)
+{
+	uint_t	last;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	last = cep->swbuf_count;
+
+	if (cep->sbuf_rptr + len > (uint8_t*)cep->sbuf + cep->sbufsz)
+		/* ã©ã¦ã³ãããã¨ãã®è¨ç® */
+		cep->sbuf_rptr -= cep->sbufsz - len;
+	else
+		cep->sbuf_rptr += len;
+	cep->swbuf_count -= (uint16_t)len;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	if (cep->snd_nblk_tfn == TFN_TCP_GET_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		syscall(wai_sem(cep->semid_lock));
+
+		/* éä¿¡ãã¼ã¿é·ãè¨ç®ããã*/
+		if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
+			/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
+		else
+			len = cep->sbufsz - cep->swbuf_count;
+
+		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		if (len > 0) {
+
+			/* tcp_get_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			cep->get_buf_len = len;
+
+			/* éä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			*cep->snd_p_buf = cep->sbuf_wptr;
+
+			if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)(uint32_t)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&len);
+#endif
+			else
+				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+			/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+			cep->snd_tskid = TA_NULL;
+			cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+			}
+		}
+
+#ifdef TCP_CFG_EXTENTIONS
+
+	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT ||
+	         cep->snd_nblk_tfn == TFN_TCP_SND_OOB) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#else	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	else if (cep->snd_nblk_tfn == TFN_TCP_SND_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+		ER_UINT	error;
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		error = TCP_WRITE_SWBUF(cep, cep->snd_data, (uint_t)cep->snd_len);
+
+#ifdef TCP_CFG_EXTENTIONS
+
+		/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+	        if (cep->snd_nblk_tfn == TFN_TCP_SND_OOB)
+			cep->snd_up = cep->snd_una + error;
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+		if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)error);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&error);
+#endif
+		else
+			syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->snd_tskid = TA_NULL;
+		cep->snd_tfn   = cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+		}
+	else {
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããåºæ¥ããåºåã¿ã¹ã¯ãèµ·åºããã*/
+		if (last == cep->sbufsz && cep->swbuf_count < cep->sbufsz)
+			syscall(set_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	if (cep->swbuf_count > 0) {
+		/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°åºåããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+	}
+
+/*
+ *  tcp_write_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ */
+
+ER_UINT
+tcp_write_swbuf_ncs (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	uint_t	offset;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* len ã¨éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã®å°ããæ¹ãç§»ããã¼ã¿æ°ã«ããã*/
+	if (len > (cep->sbufsz - cep->swbuf_count))
+		len = cep->sbufsz - cep->swbuf_count;
+
+	/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	if (len > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf)) {
+		offset = (uint_t)(cep->sbufsz - (cep->sbuf_wptr -(uint8_t*)cep->sbuf));
+		memcpy(cep->sbuf_wptr, data, (size_t)offset);
+		cep->sbuf_wptr  = (uint8_t*)cep->sbuf;
+		cep->swbuf_count += offset;
+		}
+	else
+		offset = 0;
+
+	memcpy(cep->sbuf_wptr, (void*)((uint8_t*)data + offset), (size_t)(len - offset));
+	cep->sbuf_wptr  += len - offset;
+	cep->swbuf_count += len - offset;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return (ER_UINT)len;
+	}
+
+/*
+ *  tcp_wait_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
+ã¤ã
+ */
+
+ER
+tcp_wait_swbuf_ncs (T_TCP_CEP *cep, TMO tmout)
+{
+	ER	error;
+	FLGPTN	flag;
+
+	while (cep->swbuf_count >= cep->sbufsz) {
+		/*
+		 *  éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãããªããã°ãåºåããã¹ããã¦ã
+		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
+ã¤ã
+		 */
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+
+		if ((error = twai_flg(cep->snd_flgid, TCP_CEP_EVT_SWBUF_READY, TWF_ORW, &flag, tmout)) != E_OK) {
+			return error;
+			}
+		syscall(clr_flg(cep->snd_flgid, (FLGPTN)(~TCP_CEP_EVT_SWBUF_READY)));
+
+		/*
+		 *  éä¿¡ã§ããããCEP ã® FSM ç¶æ
+ãè¦ãã
+		 *  éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã¾ã§å¾
+ã¤éã«ãéä¿¡ä¸è½ã«ãªã£ãå ´åã¯ã
+		 *  ã³ãã¯ã·ã§ã³ãåæ­ããããã¨ãæå³ãã¦ããã
+		 */
+		if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
+			return E_CLS;
+			}
+		}
+
+	return E_OK;
+	}
+/*
+ *  tcp_get_swbuf_addr -- éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ */
+
+ER_UINT
+tcp_get_swbuf_addr_ncs (T_TCP_CEP *cep, void **p_buf)
+{
+	uint_t	len;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ã®å
+é ­ãè¨­å®ããã*/
+	*p_buf = cep->sbuf_wptr;
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããµã¤ãºãè¨ç®ããã*/
+	if (cep->sbufsz - cep->swbuf_count > cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf))
+		/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯ãæ¸è¾¼ã¿ãã¤ã³ã¿ããéä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		len = (uint_t)(cep->sbufsz - (cep->sbuf_wptr - (uint8_t*)cep->sbuf));
+	else
+		len = cep->sbufsz - cep->swbuf_count;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	cep->get_buf_len = len;
+	return (ER_UINT)len;
+	}
+
+/*
+ *  tcp_send_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã
+ */
+
+void
+tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len)
+{
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	cep->sbuf_wptr  += len;
+	cep->swbuf_count += len;
+
+	/* æ¸è¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	if (cep->sbuf_wptr >= (uint8_t*)cep->sbuf + cep->sbufsz)
+		cep->sbuf_wptr  = (uint8_t*)cep->sbuf;
+
+	/* tcp_get_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	cep->get_buf_len = 0;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+	if (cep->swbuf_count >= cep->sbufsz)
+		cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
+	}
+
+/*
+ *  tcp_is_swbuf_full -- éä¿¡ã¦ã£ã³ããããã¡ãæºæ¯ããã§ãã¯ããã
+ */
+
+bool_t
+tcp_is_swbuf_full_ncs (T_TCP_CEP *cep)
+{
+	return cep->swbuf_count >= cep->sbufsz;
+	}
+
+#endif	/* of #ifndef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#ifndef TCP_CFG_RWBUF_CSAVE_ONLY
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãç¡å¹
+ */
+
+/*
+ *  tcp_drop_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããååé¤ããã
+ */
+
+void
+tcp_drop_rwbuf_ncs (T_TCP_CEP *cep, uint_t len)
+{
+	cep->rwbuf_count -= len;
+	cep->rbuf_rptr  += len;
+
+	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	if (cep->rbuf_rptr >= (uint8_t*)cep->rbuf + cep->rbufsz)
+		cep->rbuf_rptr  = (uint8_t*)cep->rbuf;
+	}
+
+/*
+ *  tcp_read_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ããæå®ããããªã¯ãããåèª­ã¿åºãã
+ */
+
+uint_t
+tcp_read_rwbuf_ncs (T_TCP_CEP *cep, void *data, uint_t len)
+{
+	uint_t	offset;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* len ã¨åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿æ°ã®å°ããæ¹ãåãåºããã¼ã¿æ°ã«ããã*/
+	if (len > cep->rwbuf_count)
+		len = cep->rwbuf_count;
+
+	/* èª­ã¿åºããã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+	if (len > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
+		offset = (uint_t)(cep->rbufsz - (cep->rbuf_rptr -(uint8_t*)cep->rbuf));
+		memcpy(data, cep->rbuf_rptr, (size_t)offset);
+		cep->rwbuf_count -= offset;
+		cep->rbuf_rptr   = (uint8_t*)cep->rbuf;
+		}
+	else
+		offset = 0;
+
+	memcpy((void*)((uint8_t*)data + offset), cep->rbuf_rptr, (size_t)(len - offset));
+	cep->rwbuf_count -= len - offset;
+	cep->rbuf_rptr  += len - offset;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return len;
+	}
+
+/*
+ *  tcp_get_rwbuf_addr -- åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºãã¢ãã¬ã¹ãç²å¾ããã
+ */
+
+uint_t
+tcp_get_rwbuf_addr_ncs (T_TCP_CEP *cep, void **p_buf)
+{
+	uint_t	len;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨ç®ããã*/
+	if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf))
+		/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+		len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
+	else
+		len = cep->rwbuf_count;
+
+	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ã®ã¢ãã¬ã¹ã®å
+é ­ãè¨­å®ããã*/
+	*p_buf = cep->rbuf_rptr;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* åä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿é·ãè¨­å®ãããã®å¤ãè¿ãã*/
+	cep->rcv_buf_len = len;
+	return len;
+	}
+
+/*
+ *  tcp_write_rwbuf -- åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã
+ *
+ *    æ³¨æ:
+ *	å
+¥å input ã¯ãT_TCP_Q_HDR ã«ãããªã³ã¯ããã
+ *	ä¸¦ã¹æ¿ããçµäºãã¦ããªããã°ãªããªããã¾ãã
+ *	è¿½å ãããã¼ã¿ã¯ãåä¿¡ã¦ã£ã³ããããã¡ã«åã¾ããã¨ã
+ */
+
+void
+tcp_write_rwbuf_ncs (T_TCP_CEP *cep, T_NET_BUF *input, uint_t thoff)
+{
+	T_TCP_Q_HDR	*qhdr;
+	uint_t		offset, inlen, last;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	qhdr  = (T_TCP_Q_HDR*)GET_TCP_HDR(input, thoff);
+
+	/* åä¿¡æ¸ã¿ã·ã¼ã±ã³ã¹çªå·ãæ´æ°ããã*/
+	cep->rcv_nxt += qhdr->slen;
+
+	last  = cep->rwbuf_count;
+	inlen = qhdr->slen;
+
+	/* ç·æ¥ãã¼ã¿ã® SDU è£æ­£ãè¡ãã*/
+	if (qhdr->urp > 0 && inlen > 0) {
+		inlen      -= qhdr->urp;
+		qhdr->slen -= qhdr->urp;
+		qhdr->urp   = 0;
+		}
+
+	/*
+	 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+	 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+	 *  ããªããã¨ãç¥ãããããã§ããã
+	 */
+	if (inlen > 0) {
+
+		/* æ¸ãè¾¼ã¿ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã®å¦ç */
+		if (inlen > cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf)) {
+			offset = (uint_t)(cep->rbufsz - (cep->rbuf_wptr - (uint8_t*)cep->rbuf));
+			memcpy(cep->rbuf_wptr, (void*)(GET_TCP_SDU(input, thoff) + qhdr->soff), (size_t)offset);
+			cep->rbuf_wptr   = (uint8_t*)cep->rbuf;
+			cep->rwbuf_count += offset;
+			inlen           -= offset;
+			}
+		else
+			offset	= 0;
+
+		memcpy(cep->rbuf_wptr, (void*)(GET_TCP_SDU(input, thoff) + qhdr->soff + offset), (size_t)inlen);
+		cep->rbuf_wptr  += inlen;
+		cep->rwbuf_count += inlen;
+
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DATA_SEGS],   1);
+		NET_COUNT_TCP(net_count_tcp[NC_TCP_RECV_DATA_OCTETS], inlen);
+		}
+
+	syscall(rel_net_buf(input));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	if (cep->rcv_nblk_tfn == TFN_TCP_RCV_BUF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		int_t	len;
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºããã¼ã¿é·ãè¨ç®ããã*/
+		if (cep->rwbuf_count > cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf)) {
+			/* ãã¤ã³ã¿ãã©ã¦ã³ãããã¨ãã¯åä¿¡ã¦ã£ã³ããããã¡ã®çµããã¾ã§ */
+			len = (uint_t)(cep->rbufsz - (cep->rbuf_rptr - (uint8_t*)cep->rbuf));
+			}
+		else
+			len = cep->rwbuf_count;
+
+		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		/*
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if (len > 0 || inlen == 0) {
+
+			/* tcp_rcv_buf ã®å²å½ã¦é·ãè¨­å®ããã*/
+			cep->rcv_buf_len = len;
+
+			/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãè¿ãã*/
+			*cep->rcv_p_buf = cep->rbuf_rptr;
+
+
+			if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)(uint32_t)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+#endif
+			else
+				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+
+			if (len == 0) {
+
+				/*
+				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+				 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 */
+				syscall(wai_sem(cep->semid_lock));
+				TCP_FREE_RWBUFQ(cep);
+				syscall(sig_sem(cep->semid_lock));
+				}
+			}
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->rcv_tskid = TA_NULL;
+		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+		}
+
+	else if (cep->rcv_nblk_tfn == TFN_TCP_RCV_DAT) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+		ER_UINT	len;
+
+		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		if ((len = TCP_READ_RWBUF(cep, cep->rcv_data, (uint_t)cep->rcv_len)) > 0) {
+			/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+
+		/*
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if (len > 0 || inlen == 0) {
+
+			if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)(uint32_t)len);
+#else
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&len);
+#endif
+			else
+				syslog(LOG_WARNING, "[TCP] no call back, CEP: %d.", GET_TCP_CEPID(cep));
+			}
+
+		/* è¨æ¶ããã¦ããã¿ã¹ã¯ ID ã¨ API æ©è½ã³ã¼ããã¯ãªã¢ã¼ããã*/
+		cep->rcv_tskid = TA_NULL;
+		cep->rcv_tfn   = cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+
+		}
+	else {
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		if (inlen == 0 && cep->rwbuf_count == 0) {
+			/*
+			 *  åä¿¡ã¦ã£ã³ããããã¡å
+ã®ãã¼ã¿æ°ã 0 ã§ã
+			 *  ç¸æãã FIN ãã©ã°ãä»ããã»ã°ã¡ã³ããåä¿¡ããã¨ãã¯ã
+			 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã¦ã
+			 *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+			 */
+			syscall(wai_sem(cep->semid_lock));
+			TCP_FREE_RWBUFQ(cep);
+			syscall(sig_sem(cep->semid_lock));
+			}
+
+		/*
+		 *  åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãå
+¥ããã inlen == 0 ã®æãå
+¥åã¿ã¹ã¯ãèµ·åºããã
+		 *  FIN ãã©ã°ãä»ããã»ã°ã¡ã³ãã¯ inlen == 0 ã«ãªããã¨ãããã
+		 *  ããã¯ãã¢ããªã±ã¼ã·ã§ã³ã«ãç¸æããããä»¥ä¸ãã¼ã¿ãéããã¦
+		 *  ããªããã¨ãç¥ãããããã§ããã
+		 */
+		if ((last == 0 && cep->rwbuf_count > 0) || inlen == 0)
+			syscall(set_flg(cep->rcv_flgid, TCP_CEP_EVT_RWBUF_READY));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	}
+
+#endif	/* of #ifndef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.c	(revision 313)
@@ -0,0 +1,527 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_timer.c	8.2 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_timer.c,v 1.28.2.1 1999/08/29 16:29:56 peter Exp $
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  å±æé¢æ°
+ */
+
+static T_TCP_CEP *tcp_timers (T_TCP_CEP *cep, int_t tix);
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+static void tcp_tw_timo (void);
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+/*
+ *  ããã¯ãªãæé
+ *
+ *  åéãè¡ããã³ã«ãã¿ã¤ã ã¢ã¦ãã®æéãå»¶é·ããã
+ */
+
+const static uint8_t tcp_back_off[] = {
+	UINT_C(1), 	UINT_C(2), 	UINT_C(4), 	UINT_C(8),
+	UINT_C(16), 	UINT_C(32), 	UINT_C(64), 	UINT_C(64),
+	UINT_C(64), 	UINT_C(64), 	UINT_C(64), 	UINT_C(64), 
+	UINT_C(64)
+	};
+
+#define TCP_TOTAL_BACK_OFF	511	/* ããã¯ãªãæéã®åè¨ */
+
+/*
+ *  tcp_timers -- ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+static T_TCP_CEP *
+tcp_timers (T_TCP_CEP *cep, int_t tix)
+{
+	uint16_t	win;
+
+
+	switch (tix) {
+
+	/*
+	 *  åéã¿ã¤ã
+	 */
+	case TCP_TIM_REXMT:
+	
+		/*
+		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ã«ãªã£ãã¨ãã¯ã
+		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 */
+		if (++ cep->rxtshift > TCP_MAX_REXMT_SHIFT) {
+			cep->rxtshift  = TCP_MAX_REXMT_SHIFT;
+			cep->net_error = EV_REXMTMO;
+			cep = tcp_drop(cep, E_CLS);
+			break;
+			}
+
+		/*
+		 *  åéã¿ã¤ã ã¢ã¦ããè¨ç®ããã
+		 */
+		cep->rxtcur = tcp_range_set((T_TCP_TIME)(tcp_rexmt_val(cep) * tcp_back_off[cep->rxtshift]),
+		                            (T_TCP_TIME)TCP_TVAL_MIN, 
+		                            (T_TCP_TIME)TCP_TVAL_MAX_REXMT);
+		cep->timer[TCP_TIM_REXMT] = cep->rxtcur;
+
+		/*
+		 *  srtt:   å¹³æ»åããã RTT
+		 *  rttvar: å¹³æ»åãããåæ£
+		 *
+		 *  åéåæ°ãæå¤§åéåæ°ã® 1/4 ã«ãªã£ãã¨ãã¯ã
+		 *  å¹³æ»åãããåæ£ (rttvar) ã« srtt ãå ç®ãã
+		 *  å¹³æ»åããã RTT ã 0 ã«ããã
+		 *  
+		 */
+		if (cep->rxtshift > TCP_MAX_REXMT_SHIFT / 4) {
+			cep->rttvar += (cep->srtt >> TCP_SRTT_SHIFT);
+			cep->srtt    = 0;
+			}
+
+		/*
+		 *  snd_nxt: æ¬¡ã«éä¿¡ãã SEQããã®æç¹ã§ã¯ãååéä¿¡ãã SEQ
+		 *  snd_una: æªç¢ºèªã®æå°éä¿¡ SEQ	 ã¾ãã¯ãç¢ºèªãããæå¤§éä¿¡ SEQ
+		 *
+		 *  ååéä¿¡ãã SEQ (snd_nxt) ã 
+		 *  ç¢ºèªãããæå¤§éä¿¡ SEQ (snd_una) ã¾ã§æ»ãã
+		 */
+		cep->snd_nxt = cep->snd_una;
+		cep->flags  |= TCP_CEP_FLG_ACK_NOW;
+
+		/*
+		 *  rtt: å¾å¾©æéã®è¨æ¸¬ãä¸­æ­¢ããã
+		 */
+		cep->rtt     = 0;
+
+		/*
+		 *  éä¿¡ã¦ã¤ã³ãã®è¨­å®
+		 *
+		 *  snd_wnd:  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº
+		 *  snd_cwnd: è¼»è¼³ã¦ã£ã³ããµã¤ãº
+		 *  maxseg  : ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº
+		 *
+		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ãã
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã®
+		 *  ã©ã¡ããå°ãããµã¤ãºã® 1/2 ããæ´ã«
+		 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº (maxseg) ã§å²ã£ãå¤ã
+		 *  ãã ãã2 ä»¥ä¸
+		 */
+		if (cep->snd_wnd < cep->snd_cwnd)
+			win = cep->snd_wnd / 2 / cep->maxseg;
+		else
+			win = cep->snd_cwnd / 2 / cep->maxseg;
+
+		if (win < 2)
+			win = 2;
+
+		/*
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãº (snd_cwnd) ã¯
+		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã«ã
+		 *  è¼»è¼³ã¦ã£ã³ããµã¤ãºã®ãããå¤ (snd_ssthresh) ã¯
+		 *  ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº (snd_wnd) ã® win åã«
+		 *  è¨­å®ããã
+		 */
+		cep->snd_cwnd     = cep->maxseg;
+		cep->snd_ssthresh = win * cep->maxseg;
+		cep->dupacks      = 0;
+
+		/* åºåããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		break;
+
+	/*
+	 *  æç¶ã¿ã¤ã	
+	 */
+	case TCP_TIM_PERSIST:
+
+		/*
+		 *  æå¤§åéåæ° (TCP_MAX_REXMT_SHIFTãæ¨æº 12 å) ãè¶
+ãã¦ãã¦ã
+		 *  ã¢ã¤ãã«æéããä¿çã¿ã¤ãã®æ¨æºå¤ (TCP_TVAL_KEEP_IDLEã
+		 *  æ¨æº 2 * 60 * 60 ç§) ä»¥ä¸ãã
+		 *  åéã¿ã¤ã ã¢ã¦ãå¤ * ããã¯ãªãæéã®åè¨ä»¥ä¸ãªã
+		 *  ã³ãã¯ã·ã§ã³ãåæ­ããã
+		 */
+		if (cep->rxtshift > TCP_MAX_REXMT_SHIFT &&
+		    (cep->idle >= TCP_TVAL_KEEP_IDLE ||
+		     cep->idle >= tcp_rexmt_val(cep) * TCP_TOTAL_BACK_OFF)) {
+			cep->net_error = EV_REXMTMO;
+			cep = tcp_drop(cep, E_CLS);
+			break;
+			}
+
+		/* æç¶ã¿ã¤ããåè¨­å®ããåºåããã¹ãããã*/
+		tcp_set_persist_timer(cep);
+
+		cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR | TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		break;
+
+	/*
+	 *  ä¿ç (keep alive) ã¿ã¤ã
+	 */
+	case TCP_TIM_KEEP:
+
+		/*
+		 *  ã³ãã¯ã·ã§ã³ãéè¨­ãããã¾ã§ã«ã¿ã¤ã ã¢ã¦ãããã
+		 *  ã³ãã¯ã·ã§ã³ã®éè¨­ãä¸­æ­¢ããã
+		 */
+		if (cep->fsm_state < TCP_FSM_ESTABLISHED) {
+			cep->net_error = EV_REXMTMO;
+			cep = tcp_drop(cep, E_CLS);
+			break;
+			}
+
+#ifdef TCP_CFG_ALWAYS_KEEP
+
+		else if (cep->fsm_state < TCP_FSM_CLOSING) {
+			if (cep->idle >= TCP_TVAL_KEEP_IDLE + 
+			                 TCP_TVAL_KEEP_COUNT * TCP_TVAL_KEEP_INTERVAL) {
+				cep->net_error = EV_REXMTMO;
+				cep = tcp_drop(cep, E_CLS);
+				break;
+				}
+			else
+				tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1,
+				                       cep->rbufsz - cep->rwbuf_count, 0);
+			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_INTERVAL;
+			}
+		else
+			cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
+
+#else	/* of #ifdef TCP_CFG_ALWAYS_KEEP */
+
+		cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_IDLE;
+
+#endif	/* of #ifdef TCP_CFG_ALWAYS_KEEP */
+
+		break;
+
+	/*
+	 *  2MSL ã¿ã¤ã		
+	 */
+	case TCP_TIM_2MSL:
+
+		if (cep->fsm_state != TCP_FSM_TIME_WAIT &&
+		    cep->idle  <= TCP_TVAL_KEEP_COUNT * TCP_TVAL_KEEP_INTERVAL)
+			cep->timer[TCP_TIM_2MSL] = TCP_TVAL_KEEP_INTERVAL;
+		else
+			cep = tcp_close(cep);
+		break;
+		}
+
+	return cep;
+	}
+
+/*
+ *  tcp_cancel_timers -- å
+¨ã¦ã®ã¿ã¤ããã­ã£ã³ã»ã«ããã
+ */
+
+void
+tcp_cancel_timers (T_TCP_CEP *cep)
+{
+	int_t ix;
+
+	for (ix = NUM_TCP_TIMERS; ix -- > 0; )
+		cep->timer[ix] = 0;
+	}
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+/*
+ *  tcp_tw_timo -- Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ã¿ã¤ã ã¢ã¦ãå¦ç
+ */
+
+void
+tcp_tw_timo (void)
+{
+	T_TCP_CEP	*cep, *lcep;
+	T_TCP_TWCEP*	twcep;
+	T_TCP_TIME	longer;
+	int_t		frees, waits;
+
+	/*
+	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã§ã¿ã¤ã ã¢ã¦ãã®ã¨ã³ããªãæ¢ç´¢ãã
+	 *  æ¢ç´¢ããã¨ã³ããªãç©ºãã«ããã
+	 */
+	frees = 0;
+	for (twcep = &tcp_twcep[NUM_TCP_TW_CEP_ENTRY]; twcep -- != tcp_twcep; )
+		if (twcep->fsm_state == TCP_FSM_TIME_WAIT && -- twcep->timer_2msl == 0) {
+			twcep->fsm_state = TCP_FSM_CLOSED;
+			frees ++;
+			}
+
+	/*
+	 *  Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã®ç©ºãã¨ã³ããªãçºçããã
+	 *  æ¨æº TCP éä¿¡ç«¯ç¹ã§ Time Wait ä¸­ã® TCP éä¿¡ç«¯ç¹ãæ¢ç´¢ãã
+	 *  å¿
+è¦ãªæ
+å ±ã Time Wait ç¨ TCP éä¿¡ç«¯ç¹ã«ç§»ãã¦ã
+	 *  æ¨æºã® TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+	 */
+	if (frees > 0) {
+		waits = 0;
+		for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; )
+			if (cep->fsm_state == TCP_FSM_TIME_WAIT)
+				waits ++;
+		if (waits > frees)
+			waits = frees;
+
+		/*
+		 *  ãã£ã¨ãé·ãé Time Wait ãã¦ãã TCP éä¿¡ç«¯ç¹ãéæ¾ããã
+		 */
+		while (waits > 0) {
+			longer = TCP_TVAL_MSL * 2;
+			lcep   = NULL;
+			for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; )
+				if (cep->fsm_state == TCP_FSM_TIME_WAIT && cep->timer[TCP_TIM_2MSL] < longer) {
+					longer = cep->timer[TCP_TIM_2MSL];
+					lcep   = cep;
+					}
+			if (lcep != NULL) {
+				tcp_move_twcep(lcep);
+				waits --;
+				}
+			else
+				break;
+			}
+		}
+	}
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+/*
+ *  tcp_slow_timo -- 500 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ */
+
+void
+tcp_slow_timo (void *ignore)
+{
+	T_TCP_CEP	*cep;
+	int_t		cix, tix;
+
+	for (cix = tmax_tcp_cepid; cix -- > 0; ) {
+		cep = &tcp_cep[cix];
+		if (!(cep->fsm_state == TCP_FSM_CLOSED || cep->fsm_state == TCP_FSM_LISTEN)) {
+			for (tix = NUM_TCP_TIMERS; cep != NULL && tix -- > 0; ) {
+				if (cep->timer[tix] != 0 && -- cep->timer[tix] == 0) {
+					cep = tcp_timers(cep, tix);
+					}
+				}
+			if (cep != NULL) {
+				cep->idle ++;
+				if (cep->rtt) {
+					cep->rtt ++;
+					}
+				}
+			}
+		}
+
+#if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0
+
+	tcp_tw_timo();
+
+#endif	/* of #if defined(NUM_TCP_TW_CEP_ENTRY) && NUM_TCP_TW_CEP_ENTRY > 0 */
+
+	if (tcp_iss != 0) {
+		tcp_iss += TCP_ISS_INCR() / TCP_SLOW_HZ;
+		}
+
+	timeout(tcp_slow_timo, NULL, TCP_SLOW_TMO);
+	}
+
+#ifdef TCP_CFG_DELAY_ACK
+
+/*
+ *  tcp_fast_timo -- 200 [ms] æ¯ã«å¼åºããã TCP ã¿ã¤ã ã¢ã¦ãé¢æ°
+ */
+
+void
+tcp_fast_timo (void *ignore)
+{
+	T_TCP_CEP	*cep;
+	int_t		cix;
+
+	for (cix = tmax_tcp_cepid; cix -- > 0; ) {
+		cep = &tcp_cep[cix];
+		if (cep->flags & TCP_CEP_FLG_DEL_ACK) {
+			cep->flags &= ~TCP_CEP_FLG_DEL_ACK;
+			cep->flags |=  TCP_CEP_FLG_ACK_NOW | TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+		}
+
+	timeout(tcp_fast_timo, NULL, TCP_FAST_TMO);
+	}
+
+#endif/* of #ifdef TCP_CFG_DELAY_ACK */
+
+/*
+ *  tcp_range_set -- æéãæå®ããç¯å²ã«è¨­å®ããã
+ */
+
+T_TCP_TIME
+tcp_range_set (T_TCP_TIME value, T_TCP_TIME tvmin, T_TCP_TIME tvmax)
+{
+	if ((uint32_t)value < (uint32_t)tvmin)
+		return tvmin;
+	else if ((uint32_t)value > (uint32_t)tvmax)
+		return tvmax;
+	else
+		return value;
+	}
+
+/*
+ *  tcp_set_persist_timer -- æç¶ã¿ã¤ãã®è¨­å®
+ */
+
+void
+tcp_set_persist_timer (T_TCP_CEP *cep)
+{
+	T_TCP_TIME time;
+
+	/*
+	 *  srtt:   å¹³æ»åããã RTT
+	 *  rttvar: å¹³æ»åãããåæ£
+	 */
+	time = ((cep->srtt >> 2) + cep->rttvar) >> 1;
+
+	/*
+	 *  åéã¿ã¤ããè¨­å®ããã¦ããã°åå¾©ä¸è½ã¨ã©ã¼
+	 */
+	if (cep->timer[TCP_TIM_REXMT])
+		/* %%% panic("tcp_output REXMT"); %%% */;
+
+	/*
+	 *  æç¶ã¿ã¤ããè¨­å®ããã
+	 */
+	cep->timer[TCP_TIM_PERSIST] = tcp_range_set((T_TCP_TIME)(time * tcp_back_off[cep->rxtshift]),
+	                                            (T_TCP_TIME)TCP_TVAL_MIN_PERSIST,
+	                                            (T_TCP_TIME)TCP_TVAL_MAX_PERSIST);
+
+	/*
+	 *  åéåæ°ãæ´æ°ããã
+	 */
+	if (cep->rxtshift < TCP_MAX_REXMT_SHIFT)
+		cep->rxtshift ++;
+	}
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_timer.h	(revision 313)
@@ -0,0 +1,159 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_timer.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/tcp_timer.h,v 1.13.2.1 1999/08/29 16:29:56 peter Exp $
+ */
+ 
+#ifndef _TCP_TIMER_H_
+#define _TCP_TIMER_H_
+
+/* TCP ã¿ã¤ãå¤æ° */
+
+//#define NUM_TCP_TIMERS		4	/* TCP ã®ã¿ã¤ãæ°	*/
+
+#define TCP_TIM_REXMT		0	/* åéã¿ã¤ã		*/
+#define TCP_TIM_PERSIST		1	/* æç¶ã¿ã¤ã		*/
+#define TCP_TIM_KEEP		2	/* ä¿ç (keep alive) ã¿ã¤ã*/
+#define TCP_TIM_2MSL		3	/* 2MSL ã¿ã¤ã		*/
+
+/* MSL: Maximum Segment Lifetime, æå¤§ã»ã°ã¡ã³ãçå­æé 		*/
+
+/*
+ *  TCP/IP ã®ã¿ã¤ãã®å®ç¾©
+ */
+
+#define TCP_SLOW_TMO		(ULONG_C(500)/NET_TIMER_CYCLE)	/* 500 [ms]	*/
+#define TCP_FAST_TMO		(ULONG_C(200)/NET_TIMER_CYCLE)	/* 200 [ms]	*/
+
+#define TCP_SLOW_HZ		(ULONG_C(1000)/TCP_SLOW_TMO/NET_TIMER_CYCLE)	/* Hz	*/
+
+/* TCP ã¿ã¤ãå¤ */
+
+#define TCP_TVAL_MSL		(TCP_SLOW_HZ * 30)
+					/* æå¤§ã»ã°ã¡ã³ãçå­æé	*/
+
+#define TCP_TVAL_SRTT_BASE	0	/* æ»ãããªå¾å¾©æéã®åºæºå¤*/
+
+#define TCP_TVAL_RTO_BASE	(TCP_SLOW_HZ * 3)
+		/* æ
+å ±ãå¾ãããªãå ´åã®åéã¿ã¤ã ã¢ã¦ãã®åºæºå¤	*/
+
+#define TCP_TVAL_MIN_PERSIST	(TCP_SLOW_HZ * 5)
+				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå°å¤	*/
+#define TCP_TVAL_MAX_PERSIST	(TCP_SLOW_HZ * 60)
+				/* æç¶ã¿ã¤ã ã¢ã¦ãã®æå¤§å¤	*/
+
+#define TCP_TVAL_KEEP_INIT	(TCP_SLOW_HZ * 75)
+					/* ä¿çã¿ã¤ãã®åæå¤	*/
+#define TCP_TVAL_KEEP_IDLE	(TCP_SLOW_HZ * 2 * 60 * 60)
+					/* ä¿çã¿ã¤ãèµ·åã¾ã§ã®æ¨æºå¤*/
+#define TCP_TVAL_KEEP_INTERVAL	(TCP_SLOW_HZ * 75)
+					/* ä¿çã¿ã¤ãã¤ã³ã¿ã¼ãã«ã®æ¨æºå¤*/
+#define TCP_TVAL_KEEP_COUNT	8	/* ä¿çã¿ã¤ã ã¢ã¦ãã®æå¤§å¤*/
+
+#define TCP_TVAL_MIN		(TCP_SLOW_HZ * 3)
+					/* æéã®æå°åä½	*/
+#define TCP_TVAL_MAX_REXMT	(TCP_SLOW_HZ * 64)
+					/* æå¤§åéæé		*/
+
+/*
+ *  ä»¥ä¸ã®å¤æ°ã®å¤ã¯ãã¯ã­ã§è¨­å®ããã
+ *
+ *  tcp_maixidle   = tcp_keepcnt * tcp_keepintvl
+ *                 = TCP_TVAL_KEEP_COUNT * TCP_TVAL_KEEP_INTERVAL
+ *  tcp_keepcnt    = TCP_TVAL_KEEP_COUNT
+ *  tcp_keepintval = TCP_TVAL_KEEP_INTERVAL
+ *
+ */
+
+/*
+ *  ãã®ä»ã®å®æ°
+ */
+
+#define TCP_MAX_REXMT_SHIFT	12	/* æå¤§åéåæ°		*/
+
+/*
+ *  é¢æ°
+ */
+
+extern void tcp_slow_timo (void *ignore);
+extern void tcp_fast_timo (void *ignore);
+
+extern T_TCP_TIME tcp_range_set (T_TCP_TIME value, T_TCP_TIME tvmin, T_TCP_TIME tvmax);
+
+#endif	/* of #ifndef _TCP_TIMER_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_usrreq.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_usrreq.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_usrreq.c	(revision 313)
@@ -0,0 +1,1631 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	From: @(#)tcp_usrreq.c	8.2 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.40.2.3 1999/08/29 16:29:57 peter Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/tcp_fsm.h>
+#include <netinet/tcp_seq.h>
+#include <netinet/tcp_timer.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_TCP
+
+/*
+ *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
+¨ã¦ã®æ©è½ã
+ *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ */
+
+#ifndef TCP_CFG_LIBRARY
+
+#define __tcp_cre_rep
+#define __tcp_del_rep
+#define __tcp_cre_cep
+#define __tcp_del_cep
+#define __tcp_acp_cep
+#define __tcp_con_cep
+#define __tcp_sht_cep
+#define __tcp_cls_cep
+#define __tcp_snd_dat
+#define __tcp_rcv_dat
+#define __tcp_snd_oob
+#define __tcp_rcv_oob
+#define __tcp_get_buf
+#define __tcp_snd_buf
+#define __tcp_rcv_buf
+#define __tcp_rel_buf
+#define __tcp_can_cep
+#define __tcp_set_opt
+#define __tcp_get_opt
+
+#endif	/* of #ifndef TCP_CFG_LIBRARY */
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#if defined(SUPPORT_INET6)
+
+#define T_IPEP			T_IPV6EP
+#define TCP_ACP_CEP		tcp6_acp_cep
+#define TCP_CON_CEP		tcp6_con_cep
+#define TCP_FIND_CEP_REP	tcp6_find_cep_rep
+
+#if defined(SUPPORT_INET4)
+
+#undef	T_TCP_REP
+#define T_TCP_REP		T_TCP6_REP
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#define TCP_CRE_REP		tcp6_cre_rep
+#define TCP_DEL_REP_BODY	tcp6_del_rep_body
+#define GET_TCP_REP		GET_TCP6_REP
+#define VALID_TCP_REPID		VALID_TCP6_REPID
+#define T_TCPN_CREP		T_TCP6_CREP
+#define API_PROTO		API_PROTO_IPV6
+
+#include <netinet/tcpn_usrreq.c>
+
+#undef  T_IPEP
+#undef  TCP_ACP_CEP
+#undef  TCP_CON_CEP
+#undef	TCP_FIND_CEP_REP
+
+#undef  TCP_CRE_REP
+#undef	TCP_DEL_REP_BODY
+#undef	GET_TCP_REP
+#undef	VALID_TCP_REPID
+#undef	T_TCPN_CREP
+#undef  API_PROTO
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#define T_IPEP			T_IPV4EP
+#define TCP_ACP_CEP		tcp_acp_cep
+#define TCP_CON_CEP		tcp_con_cep
+#define TCP_FIND_CEP_REP	tcp4_find_cep_rep
+
+#if defined(SUPPORT_INET6)
+
+#undef	T_TCP_REP
+#define T_TCP_REP		T_TCP4_REP
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+#define TCP_CRE_REP		tcp_cre_rep
+#define TCP_DEL_REP_BODY	tcp4_del_rep_body
+#define GET_TCP_REP		GET_TCP4_REP
+#define VALID_TCP_REPID		VALID_TCP4_REPID
+#define T_TCPN_CREP		T_TCP_CREP
+#define API_PROTO		API_PROTO_IPV4
+
+#include <netinet/tcpn_usrreq.c>
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#ifdef __tcp_cls_cep
+
+/*
+ *  tcp_user_closed -- ã¦ã¼ã¶ããã®ã³ãã¯ã·ã§ã³ã®éæ¾
+ */
+
+T_TCP_CEP *
+tcp_user_closed (T_TCP_CEP *cep)
+{
+	switch (cep->fsm_state) {
+
+	case TCP_FSM_CLOSED:		/* ã¯ã­ã¼ãº	*/
+	case TCP_FSM_LISTEN:		/* ååãªã¼ãã³	*/
+		cep->fsm_state = TCP_FSM_CLOSED;
+		cep = tcp_close(cep);
+		break;
+
+	case TCP_FSM_SYN_SENT:		/* è½åãªã¼ãã³ãSYN éä¿¡æ¸ã¿	*/
+	case TCP_FSM_SYN_RECVD:		/* SYN ãåä¿¡ããSYN éä¿¡æ¸ã¿	*/
+		cep->flags |= TCP_CEP_FLG_NEED_FIN;
+		break;
+
+	case TCP_FSM_ESTABLISHED:	/* ã³ãã¯ã·ã§ã³éè¨­å®äº	*/
+		cep->fsm_state = TCP_FSM_FIN_WAIT_1;
+		break;
+
+	case TCP_FSM_CLOSE_WAIT:	/* ç¸æãã FIN åä¿¡ãAPP ã®çµäºå¾
+ã¡ */
+		cep->fsm_state = TCP_FSM_LAST_ACK;
+		break;
+		}
+
+	if (cep != NULL && cep->fsm_state == TCP_FSM_FIN_WAIT_2)
+		cep->timer[TCP_TIM_2MSL] = TCP_TVAL_KEEP_COUNT * TCP_TVAL_KEEP_INTERVAL;
+	return cep;
+	}
+
+/*
+ *  tcp_cls_cep -- éä¿¡ç«¯ç¹ã®ã¯ã­ã¼ãºãæ¨æºæ©è½ã
+ */
+
+ER
+tcp_cls_cep (ID cepid, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER		error = E_OK;
+	FLGPTN		flag;
+
+#ifndef TCP_CFG_NON_BLOCKING
+
+	/* tmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifndef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CLS_CEP)) != E_OK)
+		return error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {				/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		if (!IS_PTR_DEFINED(cep->callback))
+			error = E_OBJ;
+		else if (cep->fsm_state == TCP_FSM_CLOSED) {	/* ãã§ã«ã¯ã­ã¼ãºããã¦ããã¨ã */
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_CLS_CEP, E_OK);
+			error = E_WBLK;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+			ER	error = E_OK;
+
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_CLS_CEP, (void*)&error);
+			error = E_WBLK;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+			}
+		else {
+			/* NBLK ã®API æ©è½ã³ã¼ããè¨­å®ããã*/
+			cep->rcv_nblk_tfn = TFN_TCP_CLS_CEP;
+
+			if ((cep = tcp_user_closed(cep)) != NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
+				/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+				cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+				sig_sem(SEM_TCP_POST_OUTPUT);
+				}
+
+			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
+			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
+			 *  ã¾ãããã®å ´åã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºããã¦ããã
+			 */
+			return E_WBLK;
+			}
+		}
+	else {							/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		if ((cep = tcp_user_closed(cep)) == NULL) {	/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
+
+			/*  cep ã NULL ã§æ»ã£ã¦ããå ´åã¯ã
+			 *  æ¢ã«ã³ãã¯ã·ã§ã³ãåæ­ããã¦ãããã¨ãæå³ãã¦ããã
+			 */
+			return error;
+			}
+		else {
+			/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+
+			/* ã¤ãã³ããã©ã°ã CLOSED ã«ãªãã¾ã§å¾
+ã¤ã*/
+			error = twai_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED, TWF_ORW, &flag, tmout);
+			if (error == E_OK && cep->error != E_OK)
+				error = cep->error;
+
+			if (error != E_OK) {
+				if (error == E_RLWAI) {
+					/* tcp_cls_cep ãã­ã£ã³ã»ã«ãããã¨ãã¯ãRST ãéä¿¡ããã*/
+					tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1, 
+					            cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
+					}
+
+				/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+				tcp_cancel_timers(cep);
+
+				/* 
+				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+				 *  åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 */
+				syscall(wai_sem(cep->semid_lock));
+				tcp_free_reassq(cep);
+				syscall(sig_sem(cep->semid_lock));
+
+				/* ç¶æ
+ãæªä½¿ç¨ã«ããã*/
+				cep->fsm_state = TCP_FSM_CLOSED;
+
+				/*
+				 * ä»¥ä¸ã«é¢ä¿ããªããã©ã°ãã¯ãªã¢ã¼ããã
+				 * ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+				 * ã»åçãªéä¿¡ç«¯ç¹ã®çæã»åé¤æ©è½
+				 */
+				cep->flags &= TCP_CEP_FLG_NOT_CLEAR;
+
+				/* 
+				 *  éä¿¡ç«¯ç¹ãã­ãã¯ãã
+				 *  éåä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã
+				 */
+				cep->rwbuf_count = 0;
+				syscall(wai_sem(cep->semid_lock));
+				TCP_FREE_RWBUFQ(cep);
+				TCP_FREE_SWBUFQ(cep);
+				syscall(sig_sem(cep->semid_lock));
+
+				syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+				}
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	cep->rcv_tskid = TA_NULL;
+	cep->rcv_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_cls_cep */
+
+#ifdef __tcp_sht_cep
+
+/*
+ *  tcp_sht_cep  -- ãã¼ã¿éä¿¡ã®çµäºãæ¨æºæ©è½ã
+ */
+
+ER
+tcp_sht_cep (ID cepid)
+{
+	T_TCP_CEP	*cep;
+	ER		error = E_OK;
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SHT_CEP)) != E_OK)
+		return error;
+
+	/* TCP éä¿¡ç«¯ç¹ã®ã³ãã¯ã·ã§ã³ãç¢ºç«ç¶æ
+ã§ãªããã°ã¨ã©ã¼ */
+	if (!TCP_FSM_HAVE_ESTABLISHED(cep->fsm_state)) {
+		if ((error = cep->error) == E_OK)
+			error = E_OBJ;
+		}
+
+	else if ((cep = tcp_user_closed(cep)) != NULL) {		/* ã³ãã¯ã·ã§ã³ãåæ­ããã*/
+
+		/* åæ­ã»ã°ã¡ã³ãåºåããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		}
+
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_sht_cep */
+
+#ifdef __tcp_snd_dat
+
+/*
+ *  tcp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+tcp_snd_dat (ID cepid, void *data, int_t len, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER_UINT		error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0 || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_DAT)) != E_OK)
+		return error;
+
+	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_DAT, tmout)) != E_OK)
+		goto err_ret;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		if (!TCP_IS_SWBUF_FULL(cep)) {
+
+		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
+
+			/* åºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+
+			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)error);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_DAT, (void*)&error);
+#endif
+			error = E_WBLK;
+			goto err_ret;
+			}
+		else {
+			cep->snd_data     = data;
+			cep->snd_len      = len;
+			cep->snd_nblk_tfn = TFN_TCP_SND_DAT;
+			TCP_ALLOC_SWBUF(cep);
+
+			return E_WBLK;
+			}
+		}
+	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
+ã¤ã*/
+		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
+			goto err_ret;
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
+
+			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			if (TCP_IS_SWBUF_FULL(cep))
+				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
+
+			/* åºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_snd_dat */
+
+#ifdef __tcp_get_buf
+
+/*
+ *  tcp_get_buf -- éä¿¡ç¨ãããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+tcp_get_buf (ID cepid, void **p_buf, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER_UINT		error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	if (p_buf == NULL)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (p_buf == NULL || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_GET_BUF)) != E_OK)
+		return error;
+
+	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	if ((error = tcp_can_send_more(cep, TFN_TCP_GET_BUF, tmout)) != E_OK)
+		goto err_ret;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		if (!TCP_IS_SWBUF_FULL(cep)) {
+
+			/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+			error = TCP_GET_SWBUF_ADDR(cep, p_buf);
+
+			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)error);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_GET_BUF, (void*)&error);
+#endif
+			error = E_WBLK;
+			goto err_ret;
+			}
+		else {
+			cep->snd_p_buf    = p_buf;
+			cep->snd_nblk_tfn = TFN_TCP_GET_BUF;
+			TCP_ALLOC_SWBUF(cep);
+			return E_WBLK;
+			}
+		}
+
+	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
+ã¤ã*/
+		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
+			goto err_ret;
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+		error = TCP_GET_SWBUF_ADDR(cep, p_buf);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_get_buf */
+
+#ifdef __tcp_snd_buf
+
+/*
+ *  tcp_snd_buf -- ãããã¡å
+ã®ãã¼ã¿ã®éä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER
+tcp_snd_buf (ID cepid, int_t len)
+{
+	T_TCP_CEP	*cep;
+	ER		error;
+
+	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	if (len < 0)
+		return E_PAR;
+
+	/* éä¿¡ããé·ãlen ã 0 ã§ããã°ãä½ãããªãã§æ»ãã*/
+	if (len == 0)
+		return E_OK;
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_BUF)) != E_OK)
+		return error;
+
+	/* éä¿¡ããé·ã len ããã§ãã¯ããã*/
+	if (len > cep->get_buf_len) {
+		error = E_OBJ;
+		goto err_ret;
+		}
+
+	/* éä¿¡ã§ããããCEP ã® FSM ç¶æ
+ãè¦ãã*/
+	if (!TCP_FSM_CAN_SEND_MORE(cep->fsm_state)) {
+		if ((error = cep->error) == E_OK)
+			error = E_OBJ;
+		goto err_ret;
+		}
+
+	/* éä¿¡ã¦ã£ã³ããããã¡ã®ãã¼ã¿ãéä¿¡å¯è½ã«ããã*/
+	TCP_SEND_SWBUF(cep, (uint_t)len);
+
+	/* åºåããã¹ãããã*/
+	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+	sig_sem(SEM_TCP_POST_OUTPUT);
+
+err_ret:
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_snd_buf */
+
+#ifdef __tcp_rcv_dat
+
+/*
+ *  tcp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+tcp_rcv_dat (ID cepid, void *data, int_t len, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER_UINT		error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0 || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_DAT)) != E_OK)
+		return error;
+
+	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
+		goto err_ret;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		if (cep->rwbuf_count > 0) {
+
+			/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+			len = TCP_READ_RWBUF(cep, data, (uint_t)len);
+
+			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_DAT, (void*)(uint32_t)len);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_DAT, (void*)&len);
+#endif
+			error = E_WBLK;
+			goto err_ret;
+			}
+		else {
+			cep->rcv_data     = data;
+			cep->rcv_len      = len;
+			cep->rcv_nblk_tfn = TFN_TCP_RCV_DAT;
+			return E_WBLK;
+			}
+		}
+	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
+¥åãããã¾ã§å¾
+ã¤ã*/
+		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK)
+			goto err_ret;
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãåãåºãã*/
+		error = TCP_READ_RWBUF(cep, data, (uint_t)len);
+
+		/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->rcv_tskid = TA_NULL;
+	cep->rcv_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_rcv_dat */
+
+#ifdef __tcp_rcv_buf
+
+/*
+ *  tcp_rcv_buf -- åä¿¡ãããã¼ã¿ã®å
+¥ã£ããããã¡ã®ç²å¾ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+tcp_rcv_buf (ID cepid, void **p_buf, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER_UINT		error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* p_buf ã NULL ãªãã¨ã©ã¼ */
+	if (p_buf == NULL)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* p_buf ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (p_buf == NULL || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_RCV_BUF)) != E_OK)
+		return error;
+
+	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	if (tcp_can_recv_more(&error, cep, TFN_TCP_RCV_DAT, tmout) != E_OK)
+		goto err_ret;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		if (cep->rwbuf_count > 0) {
+
+		 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ç©ºã¢ãã¬ã¹ãç²å¾ããã*/
+			error = TCP_GET_RWBUF_ADDR(cep, p_buf);
+
+			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)error);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_RCV_BUF, (void*)&error);
+#endif
+			error = E_WBLK;
+			goto err_ret;
+			}
+		else {
+			cep->rcv_p_buf    = p_buf;
+			cep->rcv_nblk_tfn = TFN_TCP_RCV_BUF;
+			return E_WBLK;
+			}
+		}
+	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ããªããã°ãå
+¥åãããã¾ã§å¾
+ã¤ã*/
+		if ((error = tcp_wait_rwbuf(cep, tmout)) != E_OK) {
+			cep->rwbuf_count = 0;
+			goto err_ret;
+			}
+
+	 	/* åä¿¡ã¦ã£ã³ããããã¡ã®ã¢ãã¬ã¹ãç²å¾ããã*/
+		error = TCP_GET_RWBUF_ADDR(cep, p_buf);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->rcv_tskid = TA_NULL;
+	cep->rcv_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_rcv_buf */
+
+#ifdef __tcp_rel_buf
+
+/*
+ *  tcp_rel_buf -- åä¿¡ç¨ãããã¡ã®è§£æ¾ãæ¨æºæ©è½ã
+ */
+
+ER
+tcp_rel_buf (ID cepid, int_t len)
+{
+	T_TCP_CEP	*cep;
+	ER		error;
+
+	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	if (len < 0)
+		return E_PAR;
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_REL_BUF)) != E_OK)
+		return error;
+
+	/* è§£æ¾ããé·ã len ããã§ãã¯ããã*/
+	if (len > cep->rcv_buf_len) {
+		error = E_OBJ;
+		goto err_ret;
+		}
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/* åä¿¡ã¦ã£ã³ããããã¡ããåä¿¡ãããªã¯ããããåé¤ããã*/
+	TCP_DROP_RWBUF(cep, (uint_t)len);
+
+	/* tcp_rcv_buf ã®å²å½ã¦é·ããªã»ããããã*/
+	cep->rcv_buf_len = 0;
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	/* ç¸æã«ã¦ã£ã³ãã¦ãµã¤ãºãå¤ãã£ããã¨ãç¥ãããããåºåããã¹ãããã*/
+	cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+	sig_sem(SEM_TCP_POST_OUTPUT);
+
+err_ret:
+	cep->rcv_tskid = TA_NULL;
+	cep->rcv_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_rel_buf */
+
+#ifdef __tcp_can_cep
+
+/*
+ *  tcp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+static ER
+tcp_can_snd (T_TCP_CEP *cep, FN fncd)
+{
+	ER	error = E_OK;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 *  snd_tskid ã TA_NULL ãªãã
+	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 */
+	if (cep->snd_tskid == TA_NULL)
+		error = EV_NOPND;
+
+	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	else if (fncd != TFN_TCP_ALL && fncd != cep->snd_tfn)
+		error = E_OBJ;
+
+	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	else {
+
+		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		tcp_free_reassq(cep);
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		cep->rwbuf_count = 0;
+		TCP_FREE_RWBUFQ(cep);
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		TCP_FREE_SWBUFQ(cep);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		if (cep->snd_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+			switch (cep->snd_nblk_tfn) {
+
+			case TFN_TCP_CON_CEP:
+				/*
+				 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
+				 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+				 */
+				cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+				cep->rep4 = NULL;
+#endif
+
+				cep->fsm_state = TCP_FSM_CLOSED;
+				syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+				break;
+
+			case TFN_TCP_SND_DAT:
+			case TFN_TCP_GET_BUF:
+			case TFN_TCP_SND_OOB:
+				break;
+				}
+
+			if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)E_RLWAI);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				ER	error = E_RLWAI;
+
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->snd_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				}
+			else
+				error = E_OBJ;
+			cep->snd_nblk_tfn = TFN_TCP_UNDEF;
+			}
+		else
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+			error = rel_wai(cep->snd_tskid);
+
+		cep->snd_tskid = TA_NULL;
+		cep->snd_tfn   = TFN_TCP_UNDEF;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+/*
+ *  tcp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+static ER
+tcp_can_rcv (T_TCP_CEP *cep, FN fncd)
+{
+	ER	error = E_OK;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 *  rcv_tskid ã TA_NULL ãªãã
+	 *  ãã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+	 */
+	if (cep->rcv_tskid == TA_NULL)
+		error = EV_NOPND;
+
+	/* ãã³ãã£ã³ã°ä¸­ã® API æ©è½ã³ã¼ãã¨ä¸è´ããªããã°ã¨ã©ã¼ */
+	else if (fncd != TFN_TCP_ALL && fncd != cep->rcv_tfn)
+		error = E_OBJ;
+
+	/* å¦çãã­ã£ã³ã»ã«ããã*/
+	else {
+
+		/* åä¿¡åæ§æã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		tcp_free_reassq(cep);
+
+		/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		cep->rwbuf_count = 0;
+		TCP_FREE_RWBUFQ(cep);
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ãããã¯ã¼ã¯ãããã¡ãè§£æ¾ããã*/
+		TCP_FREE_SWBUFQ(cep);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+			switch (cep->rcv_nblk_tfn) {
+
+			case TFN_TCP_ACP_CEP:
+				/*
+				 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
+				 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+				 */
+				cep->rep = NULL;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+				cep->rep4 = NULL;
+#endif
+
+				cep->fsm_state = TCP_FSM_CLOSED;
+				syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+				break;
+
+			case TFN_TCP_RCV_DAT:
+			case TFN_TCP_RCV_BUF:
+				break;
+
+			case TFN_TCP_CLS_CEP:
+				cep->fsm_state = TCP_FSM_CLOSED;
+				tcp_respond(NULL, cep, cep->rcv_nxt, cep->snd_una - 1,
+				            cep->rbufsz - cep->rwbuf_count, TCP_FLG_RST);
+				syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+				break;
+				}
+
+			if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_RLWAI);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				ER	error = E_RLWAI;
+
+				(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+				}
+			else
+				error = E_OBJ;
+			cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+			}
+		else
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+			error = rel_wai(cep->rcv_tskid);
+
+		cep->rcv_tskid = TA_NULL;
+		cep->rcv_tfn   = TFN_TCP_UNDEF;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+/*
+ *  tcp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ */
+
+ER
+tcp_can_cep (ID cepid, FN fncd)
+{
+	T_TCP_CEP	*cep;
+	ER		error = E_OK, snd_err, rcv_err;
+
+	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	if (!VALID_TFN_TCP_CAN(fncd))
+		return E_PAR;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEP(cep))
+		return E_NOEXS;
+
+	if (fncd == TFN_TCP_ALL) {		/* TFN_TCP_ALL ã®å¦ç */
+		snd_err = tcp_can_snd(cep, fncd);
+		rcv_err = tcp_can_rcv(cep, fncd);
+
+		/*
+		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
+		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 */
+		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
+			error = E_OBJ;
+		else {
+			if (snd_err == EV_NOPND)
+				snd_err = E_OK;
+			if (rcv_err == EV_NOPND)
+				rcv_err = E_OK;
+
+			if (snd_err != E_OK)
+				error = snd_err;
+			else if (rcv_err != E_OK)
+				error = rcv_err;
+			}
+		}
+
+	else if (IS_TFN_TCP_RCV(fncd)) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+		if ((error = tcp_can_rcv(cep, fncd)) == EV_NOPND)
+			error = E_OBJ;
+		}
+
+	else {					/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+		if ((error = tcp_can_snd(cep, fncd)) == EV_NOPND)
+			error = E_OBJ;
+		}
+
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_can_cep */
+
+#ifdef TCP_CFG_EXTENTIONS
+
+#ifdef __tcp_cre_cep
+
+/*
+ *  tcp_cre_cep -- TCP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ */
+
+ER
+tcp_cre_cep (ID cepid, T_TCP_CCEP *pk_ccep)
+{
+	T_TCP_CEP	*cep;
+	ER		error;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	if (pk_ccep == NULL)
+		return E_PAR;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_TCP_CEP(cep))
+		return E_ID;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 */
+	if (VALID_TCP_CEP(cep))
+		error = E_OBJ;
+	else {
+
+		/* TCP éä¿¡ç«¯ç¹çææ
+å ±ãã³ãã¼ããã*/
+		cep->cepatr   = pk_ccep->cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
+		cep->sbuf     = pk_ccep->sbuf;			/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+		cep->sbufsz   = pk_ccep->sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+		cep->rbuf     = pk_ccep->rbuf;			/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+		cep->rbufsz   = pk_ccep->rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+		cep->callback = (void*)pk_ccep->callback;	/* ã³ã¼ã«ããã¯			*/
+
+		/* TCP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+		cep->flags |= TCP_CEP_FLG_VALID;
+		error = E_OK;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_cre_cep */
+
+/*
+ *  tcp_del_cep -- TCP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ */
+
+#ifdef __tcp_del_cep
+
+ER
+tcp_del_cep (ID cepid)
+{
+	T_TCP_CEP	*cep;
+	ER		error;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_TCP_CEP(cep))
+		return E_ID;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 * TCP éä¿¡ç«¯ç¹ããã§ãã¯ãããä»¥ä¸ã®å ´åã¯ã¨ã©ã¼
+	 * ã»æªçæã
+	 * ã»ä½¿ç¨ä¸­ã
+	 */
+	if (!VALID_TCP_CEP(cep))
+		error = E_NOEXS;
+	else if (cep->fsm_state != TCP_FSM_CLOSED)
+		error = E_OBJ;
+	else {
+
+		/* TCP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		cep->flags &= ~TCP_CEP_FLG_VALID;
+		error = E_OK;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_del_cep */
+
+#ifdef __tcp_snd_oob
+
+/*
+ *  tcp_snd_oob -- ç·æ¥ãã¼ã¿ã®éä¿¡ãæ¡å¼µæ©è½ã
+ */
+
+ER_UINT
+tcp_snd_oob (ID cepid, void *data, int_t len, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER_UINT		error;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* data ã NULLãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0 || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_SND_OOB)) != E_OK)
+		return error;
+
+	/* éä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	if ((error = tcp_can_send_more(cep, TFN_TCP_SND_OOB, tmout)) != E_OK)
+		goto err_ret;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ã¦ã£ã³ããããã¡ã«ç©ºããããã°ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		if (!TCP_IS_SWBUF_FULL(cep)) {
+
+		 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+			error = TCP_WRITE_SWBUF(cep, data, (uint_t)len);
+
+			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			cep->snd_up = cep->snd_una + cep->swbuf_count;
+
+			/* åºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+
+			/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)error);
+#else
+			(*cep->callback)(GET_TCP_CEPID(cep), TFN_TCP_SND_OOB, (void*)&error);
+#endif
+			error = E_WBLK;
+			goto err_ret;
+			}
+		else {
+			cep->snd_data     = data;
+			cep->snd_len      = len;
+			cep->snd_nblk_tfn = TFN_TCP_SND_OOB;
+			TCP_ALLOC_SWBUF(cep);
+
+			return E_WBLK;
+			}
+		}
+	else {		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ãç©ºãã®ãå¾
+ã¤ã*/
+		if ((error = TCP_WAIT_SWBUF(cep, tmout)) != E_OK)
+			goto err_ret;
+
+	 	/* éä¿¡ã¦ã£ã³ããããã¡ã«ãã¼ã¿ãæ¸ãè¾¼ãã*/
+		if ((error = TCP_WRITE_SWBUF(cep, data, (uint_t)len)) > 0) {
+
+			/* éä¿¡ç·æ¥ãã¤ã³ã¿ãè¨­å®ããã*/
+			cep->snd_up = cep->snd_una + cep->swbuf_count;
+
+			/* ãã¼ã¿ãéä¿¡ãããéä¿¡ã¦ã£ã³ããããã¡ããã«ã®ã¨ãã¯å¼·å¶çã«éä¿¡ããã*/
+			if (TCP_IS_SWBUF_FULL(cep))
+				cep->flags |= TCP_CEP_FLG_FORCE | TCP_CEP_FLG_FORCE_CLEAR;
+
+			/* åºåããã¹ãããã*/
+			cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_TCP_POST_OUTPUT);
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_snd_oob */
+
+#ifdef __tcp_rcv_oob
+
+/*
+ *  tcp_rcv_oob -- ç·æ¥ãã¼ã¿ã®åä¿¡ãæ¡å¼µæ©è½ã
+ *
+ *    æ³¨æ: éä¿¡å´ãè¤æ°ãªã¯ãããã®ãã¼ã¿ãéä¿¡ãã¦ãã
+ *          ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ã®ã¿åä¿¡ããã
+ */
+
+ER_UINT
+tcp_rcv_oob (ID cepid, void *data, int_t len)
+{
+	T_TCP_CEP	*cep;
+	uint8_t		*urg;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	if (data == NULL || len < 0)
+		return E_PAR;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* åä¿¡ã§ããããéä¿¡ç«¯ç¹ã®ç¶æ
+ãè¦ãã*/
+	/* åä¿¡ã§ããããfsm_state ãè¦ãã*/
+	if (!TCP_FSM_CAN_RECV_MORE(cep->fsm_state))
+		return E_OBJ;
+
+	/*
+	 *  ç·æ¥ãã¼ã¿å
+¥ãã®ã»ã°ã¡ã³ãã® TCP ãããã
+	 *  è¨­å®ããã¦ããªããã°ãç·æ¥ãã¼ã¿ãåä¿¡ãã¦ããªãã
+	 */
+	if (cep->urg_tcph == NULL)
+		return E_OBJ;
+
+	/* len == 0 ãªããããã¡ãªã¼ãã¼ãã­ã¼ */
+	if (len == 0)
+		return E_BOVR;
+
+	/* ç·æ¥ãã¤ã³ã¿ãæã 1 ãªã¯ãããã®ãã¼ã¿ãèª­ã¿åãã*/
+	urg = (uint8_t*)cep->urg_tcph + TCP_DATA_OFF(cep->urg_tcph->doff) + cep->urg_tcph->urp + TCP_CFG_URG_OFFSET;
+	*(uint8_t*)data = *urg;
+
+	/* èª­ã¿åã£ããã¼ã¿ããå¾ãã® SDU ãåã«è©°ããã*/
+	memcpy(urg, urg + 1, cep->urg_tcph->sum - (cep->urg_tcph->urp + TCP_CFG_URG_OFFSET) - 1);
+
+	/* tcp_rcv_oob() ãå¼åºããããã¨ç¥ãããããã«ãNULL ãè¨­å®ããã*/
+	cep->urg_tcph = NULL;
+
+	return 1;
+	}
+
+#endif	/* of #ifdef __tcp_rcv_oob */
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+#ifdef TCP_CFG_EXTENTIONS
+
+#ifdef __tcp_del_rep
+
+/*
+ *  tcp_del_rep -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ã
+ */
+
+#if defined(SUPPORT_INET6) && TNUM_TCP6_REPID > 0
+
+#if defined(SUPPORT_INET4) && TNUM_TCP4_REPID > 0
+
+ER
+tcp_del_rep (ID repid)
+{
+
+	/*
+	 *  TCP åä»å£ ID ããã§ãã¯ããã
+	 *  IPv6 ç¨ TCP åä»å£ã§ããã°ã
+	 *  IPv6 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã
+	 */
+	//NET_DEBUG_TCP3("tcp_del_rep1[r=%d,n=%d,x=%d]\n",
+	//               repid, TMIN_TCP6_REPID, tmax_tcp6_repid);
+	//NET_DEBUG_TCP3("tcp_del_rep2[r=%d,n=%d,x=%d]\n",
+	//               repid, TMIN_TCP4_REPID, tmax_tcp4_repid);
+	if (VALID_TCP6_REPID(repid))
+		return tcp6_del_rep_body(repid);
+
+	/*
+	 *  TCP åä»å£ ID ããã§ãã¯ããã
+	 *  IPv4 ç¨ TCP åä»å£ã§ããã°ã
+	 *  IPv4 ç¨ã®ãTCP åä»å£ã®åé¤é¢æ°ï¼æ¬ä½ï¼ããå¼åºãã
+	 */
+	else if (VALID_TCP4_REPID(repid))
+		return tcp4_del_rep_body(repid);
+	else
+		return E_ID;
+
+	}
+
+#else	/* of #if defined(SUPPORT_INET4) && TNUM_TCP4_REPID > 0 */
+
+ER
+tcp_del_rep (ID repid)
+{
+
+	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	if (VALID_TCP6_REPID(repid))
+		return tcp6_del_rep_body(repid);
+	else
+		return E_ID;
+
+	}
+
+#endif	/* of #if defined(SUPPORT_INET4) && TNUM_TCP4_REPID > 0 */
+
+#else	/* of #if defined(SUPPORT_INET6) && TNUM_TCP6_REPID > 0 */
+
+ER
+tcp_del_rep (ID repid)
+{
+
+	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	if (VALID_TCP4_REPID(repid))
+		return tcp4_del_rep_body(repid);
+	else
+		return E_ID;
+
+	}
+
+#endif	/* of #if defined(SUPPORT_INET6) && TNUM_TCP6_REPID > 0 */
+
+#endif	/* of #ifdef __tcp_del_rep */
+
+/*
+ *  tcp_set_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *
+ *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ */
+
+#ifdef __tcp_set_opt
+
+ER
+tcp_set_opt (ID cepid, int_t optname, void *optval, int_t optlen)
+{
+	T_TCP_CEP	*cep;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEP(cep))
+		return E_NOEXS;
+
+	return E_PAR;
+	}
+
+#endif	/* of #ifdef __tcp_set_opt */
+
+/*
+ *  tcp_get_opt -- TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *
+ *  æ³¨æ: è¨­å®å¯è½ãª TCP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ */
+
+#ifdef __tcp_get_opt
+
+ER
+tcp_get_opt (ID cepid, int_t optname, void *optval, int_t optlen)
+{
+	T_TCP_CEP	*cep;
+
+	/* TCP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEPID(cepid))
+		return E_ID;
+
+	/* TCP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_TCP_CEP(cepid);
+
+	/* TCP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_TCP_CEP(cep))
+		return E_NOEXS;
+
+	return E_PAR;
+	}
+
+#endif	/* of #ifdef __tcp_get_opt */
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+#endif	/* of #ifdef SUPPORT_TCP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcp_var.h	(revision 313)
@@ -0,0 +1,984 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993, 1994, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)tcp_var.h	8.4 (Berkeley) 5/24/95
+ * $FreeBSD: src/sys/netinet/tcp_var.h,v 1.49.2.1 1999/08/29 16:29:57 peter Exp $
+ */
+ 
+#ifndef _TCP_VAR_H_
+#define _TCP_VAR_H_
+
+/*
+ *  TCP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define GET_TCP_HDR(nbuf,thoff)		((T_TCP_HDR*)((uint8_t*)((nbuf)->buf) + thoff))
+#define GET_TCP_OPT(nbuf,thoff)		((uint8_t*)((nbuf)->buf) + thoff + TCP_HDR_SIZE)
+#define GET_TCP_SDU(nbuf,thoff)		((uint8_t*)((nbuf)->buf) + thoff + GET_TCP_HDR_SIZE(nbuf,thoff))
+
+#define GET_TCP_HDR_OFFSET(nbuf)	(GET_IF_IP_HDR_SIZE(nbuf))
+
+#define GET_TCP_HDR_SIZE(nbuf,thoff)	(TCP_HDR_LEN(GET_TCP_HDR(nbuf,thoff)->doff))
+
+#define GET_IP_TCP_HDR_SIZE(nbuf,thoff) (GET_IP_HDR_SIZE(nbuf) + GET_TCP_HDR_SIZE(nbuf,thoff))
+#define GET_IF_IP_TCP_HDR_SIZE(nbuf,thoff) \
+					(IF_HDR_SIZE + GET_IP_TCP_HDR_SIZE(nbuf,thoff))
+#define IF_IP_TCP_HDR_SIZE(nbuf)	(IF_IP_HDR_SIZE(nbuf) + TCP_HDR_SIZE)
+#define IF_IP_TCP_HDR_OFFSET(nbuf)	(IF_IP_HDR_SIZE(nbuf))
+#define IF_IP_TCP_NET_HDR_SIZE(addr)	(IF_IP_NET_HDR_SIZE(addr) + TCP_HDR_SIZE)
+#define IF_IP_TCP_NET_HDR_OFFSET(addr)	(IF_IP_NET_HDR_SIZE(addr))
+
+/*
+ *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#if !defined(_IP6_CFG) && defined(_IP4_CFG)
+
+#define IP4_TCP_HDR_SIZE		IP_TCP_HDR_SIZE
+#define IF_IP4_TCP_HDR_SIZE		IF_IP_TCP_HDR_SIZE
+#define GET_IP4_TCP_HDR_SIZE(nbuf)	GET_IP_TCP_HDR_SIZE1(nbuf)	
+#define GET_IF_IP4_TCP_HDR_SIZE(nbuf)	GET_IF_IP_TCP_HDR_SIZE1(nbuf)	
+
+#endif	/* of #if !defined(_IP6_CFG) && defined(_IP4_CFG) */
+
+/*
+ *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#define	TMIN_TCP_CREPID			TMIN_TCP_REPID
+#define	TNUM_TCP_CREPID			TNUM_TCP_REPID
+
+#define	TMIN_TCP_CCEPID			TMIN_TCP_CEPID
+#define	TNUM_TCP_CCEPID			TNUM_TCP_CEPID
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ */
+
+typedef ER	(*t_tcp_callback)(ID cepid, FN fncd, void *p_parblk);
+
+/*
+ * TCP ã§ä½¿ç¨ããå¤æ°ã®åã®å®ç¾©
+ */
+
+typedef uint32_t T_TCP_SEQ;
+typedef uint16_t T_TCP_SEG;
+typedef uint16_t T_TCP_WND;
+typedef int16_t T_TCP_TIME;
+
+/*
+ *  TCP ã¿ã¤ãå¤æ°
+ */
+
+#define NUM_TCP_TIMERS		4	/* TCP ã®ã¿ã¤ãæ°	*/
+
+/*
+ *  TCP åä»å£
+ */
+
+/* IPv6 ç¨ TCP åä»å£ */
+
+typedef struct t_tcp6_rep {
+
+	/*
+	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 */
+	ATR		repatr;		/* åä»å£å±æ§		*/
+	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+
+#ifdef TCP_CFG_EXTENTIONS
+	uint16_t	flags;		/* åä»å£ãã©ã°		*/
+	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	} T_TCP6_REP;
+
+/* IPv4 ç¨ TCP åä»å£ */
+
+typedef struct t_tcp4_rep {
+
+	/*
+	 * ITRON TCP/IP APIãTCP åä»å£ã¨åãã¡ã³ã
+	 */
+	ATR		repatr;		/* åä»å£å±æ§		*/
+	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+
+#ifdef TCP_CFG_EXTENTIONS
+	uint16_t	flags;		/* åä»å£ãã©ã°		*/
+	ID		semid_lock;	/* åä»å£ã­ãã¯		*/
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	} T_TCP4_REP;
+
+#if defined(_IP6_CFG)
+
+#define T_TCP_REP	T_TCP6_REP
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+#define T_TCP_REP	T_TCP4_REP
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+#define T_TCP_REP_DEFINED
+
+/*
+ *  åä»å£ãã©ã°
+ */
+
+#define TCP_REP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½åä»å£ã	*/
+#define TCP_REP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªåä»å£ã	*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹
+ */
+
+#ifndef T_NET_BUF_DEFINED
+
+typedef struct t_net_buf T_NET_BUF;
+
+#define T_NET_BUF_DEFINED
+
+#endif	/* of #ifndef T_NET_BUF_DEFINED */
+
+typedef struct t_tcp_cep {
+
+	/*
+	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 */
+	ATR		cepatr;		/* éä¿¡ç«¯ç¹å±æ§			*/
+	void		*sbuf;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+	int_t		sbufsz;		/* éä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+	void		*rbuf;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡	*/
+	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+	t_tcp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+
+	/*
+	 * TINET ç¬èªã®ã¡ã³ã
+	 */
+	uint32_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
+	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
+	ID		est_flgid;	/* ã³ãã¯ã·ã§ã³ç¶æ
+ã¤ãã³ããã©ã°	*/
+	ID		snd_flgid;	/* éä¿¡ã¤ãã³ããã©ã°		*/
+	ID		rcv_flgid;	/* åä¿¡ã¤ãã³ããã©ã°		*/
+	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	uint8_t		*sbuf_rptr;	/* éä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
+	uint8_t		*sbuf_wptr;	/* éä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
+	uint8_t		*rbuf_rptr;	/* åä¿¡ç¨èª­ã¿åºããã¤ã³ã¿	*/
+	uint8_t		*rbuf_wptr;	/* åä¿¡ç¨æ¸ãè¾¼ã¿ãã¤ã³ã¿	*/
+	T_TCP_SEQ	snd_ssthresh;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº(snd_cwnd)	*/
+					/* ã®ãããå¤			*/
+	T_TCP_TIME	rxtcur;		/* ç¾å¨ã®åéã¿ã¤ã ã¢ã¦ã	*/
+	T_TCP_TIME	srtt;		/* å¹³æ»åããã RTT		*/
+	T_TCP_TIME	rttvar;		/* å¹³æ»åãããåæ£		*/
+	T_TCP_WND	snd_cwnd;	/* è¼»è¼³ã¦ã£ã³ããµã¤ãº		*/
+
+	/*
+	 *  ç¸æã®æå¤§åä¿¡ã»ã°ã¡ã³ããµã¤ãº	
+	 *
+	 *    ãªãªã¸ãã«ã§ã¯ãä¸è¬ã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxseg) ã¨ã
+	 *    ãªãã·ã§ã³ä»ãã®ã»ã°ã¡ã³ãã®æå¤§ãµã¤ãº (t_maxopd) ãå¥ã«
+	 *    ãªã£ã¦ãããããã¯ãç¾å¨ã®ã¤ã³ã¿ã¼ãããã§ã¯ããªãã·ã§ã³ä»ãã®
+	 *    ã»ã°ã¡ã³ãã®ã»ããå¤ãããã¨èª¬æããã¦ããããã§ããã
+	 *    æ¬å®è£
+ã§ã¯ãæå¤§ã»ã°ã¡ã³ããµã¤ãºãªãã·ã§ã³ä»¥å¤ã®ãªãã·ã§ã³ã¯
+	 *    å®è£
+ããªãã®ã§ãt_maxseg ã®ä½¿ç¨ããã
+	 */
+	T_TCP_SEG	maxseg;
+
+	int16_t		snd_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	int16_t		rcv_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	T_IPEP 		*p_dstaddr;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+	T_IPEP	 	*p_myaddr;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG)
+	T_IPV4EP	*p_dstaddr4;	/* ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+	T_IPV4EP 	*p_myaddr4;	/* èªåã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿	*/
+#endif
+	
+	int16_t		snd_nblk_tfn;	/* éä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	int16_t		rcv_nblk_tfn;	/* åä¿¡åä½ä¸­ã® API æ©è½ã³ã¼ã	*/
+	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
+	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+	void		**snd_p_buf;	/* éä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
+	void		**rcv_p_buf;	/* åä¿¡ãããã¡ã¸ã®ãã¤ã³ã¿	*/
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+	T_NET_BUF	*swbufq;	/* éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+#endif
+
+	/*
+	 *  ããä»¥éã®ã¡ã³ãã¼ã¯ tcp_init_cep() é¢æ°ã§ã¼ã­ã¯ãªã¢ã¼ãããã
+	 */
+
+	T_TCP_TIME	timer[NUM_TCP_TIMERS];	/* TCP ã®ã¿ã¤ã		*/
+	T_IPEP		dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
+	T_IPEP		myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	T_NET_BUF	*reassq;	/* åä¿¡åæ§æã­ã¥ã¼		*/
+
+#if defined(_IP6_CFG)
+
+#if defined(_IP4_CFG)
+
+	T_TCP4_REP	*rep4;		/* IPv4 ç¨åä»å£		*/
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	T_TCP6_REP	*rep;		/* IPv6 ç¨åä»å£		*/
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+	T_TCP4_REP	*rep;		/* IPv4 ç¨åä»å£		*/
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+
+#ifdef TCP_CFG_RWBUF_CSAVE
+	T_NET_BUF	*rwbufq;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼	*/
+#endif
+
+#ifdef TCP_CFG_EXTENTIONS
+	T_TCP_HDR	*urg_tcph;	/* ç·æ¥ãã¼ã¿å
+¥ãã®ã»ã°ã¡ã³ãã® TCP ããã	*/
+	T_TCP_SEQ	snd_up;		/* éä¿¡ããç·æ¥ãã¤ã³ã¿		*/
+	T_TCP_SEQ	rcv_up;		/* åä¿¡ããç·æ¥ãã¤ã³ã¿		*/
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
+					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
+	T_TCP_SEQ	snd_max;	/* éä¿¡ããæå¤§ SEQ		*/
+	T_TCP_SEQ	snd_nxt;	/* æ¬¡ã«éä¿¡ãã SEQ		*/
+	T_TCP_SEQ	snd_old_nxt;	/* å
+ã® snd_nxt			*/
+	T_TCP_SEQ	snd_wl1;	/* ååã¦ã£ã³ããæ´æ°ãã SEQ	*/
+	T_TCP_SEQ	snd_wl2;	/* ååã¦ã£ã³ããæ´æ°ãã ACK	*/
+	T_TCP_SEQ	iss;		/* èªåã® SEQ ã®åæå¤		*/
+	T_TCP_SEQ	irs;		/* ç¸æã® SEQ ã®åæå¤		*/
+	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ	*/
+	T_TCP_SEQ	rcv_adv;	/* åä¿¡ãæå¾
+ãã¦ããæå¤§ã® SEQ	*/
+	T_TCP_SEQ	rcv_wnd;	/* åä¿¡å¯è½ãªã¦ã£ã³ããµã¤ãº	*/
+	T_TCP_SEQ	rtseq;		/* æéè¨æ¸¬ãå§ãã SEQ		*/
+	T_TCP_SEQ	last_ack_sent;	/* æå¾ã«éä¿¡ãã ACK		*/
+	T_TCP_TIME	idle;		/* ã¢ã¤ãã«æé			*/
+	ER		error;		/* éåæã«çºçããã¨ã©ã¼	*/
+	ER		net_error;	/* ãããã¯ã¼ã¯ã®ã¨ã©ã¼ç¶æ
+	*/
+	T_TCP_WND	snd_wnd;	/* ç¸æã®åä¿¡å¯è½ã¦ã£ã³ããµã¤ãº	*/
+	T_TCP_WND	max_sndwnd;	/* ä»ã¾ã§ã®æå¤§éä¿¡ã¦ã£ã³ããµã¤ãº	*/
+	T_TCP_TIME	rtt;		/* å¾å¾©æé				*/
+	uint16_t	swbuf_count;	/* éä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
+	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
+	uint16_t	rcv_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
+	uint16_t	get_buf_len;	/* tcp_rcv_buf ã®å²å½ã¦é·	*/
+	uint8_t		rxtshift;	/* åéä¿¡åæ°ã® log(2)		*/
+	uint8_t		fsm_state;	/* FSM ç¶æ
+			*/
+	uint8_t		dupacks;	/* åé ACK æ°			*/
+
+#if defined(TCP_CFG_RWBUF_CSAVE) && defined(TCP_CFG_RWBUF_CSAVE_MAX_QUEUES)
+	uint16_t	rwbufq_entries;	/* åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®ã¨ã³ããªæ°	*/
+#endif
+
+	} T_TCP_CEP;
+
+#define T_TCP6_CEP	T_TCP_CEP
+#define T_TCP4_CEP	T_TCP_CEP
+
+/*
+ * Time Wait ç¨ TCP éä¿¡ç«¯ç¹
+ */
+
+typedef struct t_tcp_twcep {
+	int_t		rbufsz;		/* åä¿¡ç¨ã¦ã£ã³ããããã¡ãµã¤ãº	*/
+	T_TCP_TIME	timer_2msl;	/* 2MSL ã¿ã¤ã			*/
+	T_IPEP		dstaddr;	/* ç¸æã®ã¢ãã¬ã¹		*/
+	T_IPEP		myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	T_TCP_SEQ	snd_una;	/* æªç¢ºèªã®æå°éä¿¡ SEQ ã¤ã¾ã	*/
+					/* ç¢ºèªãããæå¤§éä¿¡ SEQ	*/
+	T_TCP_SEQ	rcv_nxt;	/* åä¿¡ãæå¾
+ãã¦ããæå°ã® SEQ	*/
+	uint16_t	rwbuf_count;	/* åä¿¡ã¦ã£ã³ããããã¡ã®ä½¿ç¨ä¸­ãµã¤ãº	*/
+	uint8_t		fsm_state;	/* FSM ç¶æ
+			*/
+	uint8_t	flags;			/* éä¿¡ç«¯ç¹ãã©ã°		*/
+
+	} T_TCP_TWCEP;
+
+#define T_TCP_CEP_DEFINED
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®ç¶æ
+ãã©ã°
+ */
+
+#define TCP_CEP_FLG_IPV4		ULONG_C(0x00000001)	/* IPv4 ç¨ã			*/
+#define TCP_CEP_FLG_ACK_NOW		ULONG_C(0x00000100)	/* ç´ã¡ã«ç¸æã« ACK ãéãã	*/
+#define TCP_CEP_FLG_DEL_ACK		ULONG_C(0x00000200)	/* ACK ãé
+å»¶ããã		*/
+#define TCP_CEP_FLG_SENT_FIN		ULONG_C(0x00000400)	/* FIN ãéã£ã¦ããã		*/
+#define TCP_CEP_FLG_NEED_SYN		ULONG_C(0x00000800)	/* SYN ãéä¿¡ããã		*/
+#define TCP_CEP_FLG_NEED_FIN		ULONG_C(0x00001000)	/* FIN ãéä¿¡ããã		*/
+#define TCP_CEP_FLG_FORCE		ULONG_C(0x00002000)	/* å¼·å¶éä¿¡ã			*/
+#define TCP_CEP_FLG_NO_PUSH		ULONG_C(0x00004000)	/* push ããªãã		*/
+#define TCP_CEP_FLG_NO_DELAY		ULONG_C(0x00008000)	/* é
+å»¶ããªãã			*/
+#define TCP_CEP_FLG_FORCE_CLEAR		ULONG_C(0x00010000)	/* å¼·å¶éä¿¡ããå¾ãã©ã°ãã¯ãªã¢ã¼ããã*/
+#define TCP_CEP_FLG_POST_OUTPUT		ULONG_C(0x00020000)	/* éä¿¡ãéå§ããã		*/
+#define TCP_CEP_FLG_RESERVE_OUTPUT	ULONG_C(0x00040000)	/* éä¿¡ãäºç´ããã		*/
+#define TCP_CEP_FLG_DYNAMIC		ULONG_C(0x00100000)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
+#define TCP_CEP_FLG_VALID		ULONG_C(0x00200000)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
+#define TCP_CEP_FLG_CLOSE_AFTER_OUTPUT	ULONG_C(0x00400000)	/* éä¿¡ããå¾ã³ãã¯ã·ã§ã³ãéããã*/
+#define TCP_CEP_FLG_RESTORE_NEXT_OUTPUT	ULONG_C(0x00800000)	/* éä¿¡ããå¾ãsnd_nxt ãå
+ã«æ»ãã*/
+
+/* éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ */
+#define TCP_CEP_FLG_WBCS_NBUF_REQ	ULONG_C(0x80000000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦è¦æ±*/
+#define TCP_CEP_FLG_WBCS_MASK		ULONG_C(0x70000000)	/* ãã¹ã¯			*/
+#define TCP_CEP_FLG_WBCS_FREE		ULONG_C(0x00000000)	/* éä¿¡ã¦ã£ã³ããããã¡æªä½¿ç¨	*/
+#define TCP_CEP_FLG_WBCS_WOPEN_PEND	ULONG_C(0x10000000)	/* ç¸æã®åä¿¡ã¦ã£ã³ãã®éãå¾
+ã¡	*/
+#define TCP_CEP_FLG_WBCS_NBUF_PEND	ULONG_C(0x20000000)	/* ãããã¯ã¼ã¯ãããã¡äºç´å¾
+ã¡	*/
+#define TCP_CEP_FLG_WBCS_NBUF_RSVD	ULONG_C(0x30000000)	/* ãããã¯ã¼ã¯ãããã¡äºç´æ¸ã¿	*/
+#define TCP_CEP_FLG_WBCS_NBUF_READY	ULONG_C(0x40000000)	/* ãããã¯ã¼ã¯ãããã¡å²å½ã¦æ¸ã¿*/
+#define TCP_CEP_FLG_WBCS_SEND_READY	ULONG_C(0x50000000)	/* éä¿¡å¯è½			*/
+#define TCP_CEP_FLG_WBCS_SENT		ULONG_C(0x60000000)	/* éä¿¡æ¸ã¿ã§ãACKå¾
+ã¡		*/
+#define TCP_CEP_FLG_WBCS_ACKED		ULONG_C(0x70000000)	/* éä¿¡æ¸ã¿ã§ãACKå®äº		*/
+
+/* åæåããé¤å¤ãããã©ã°ã®å®ç¾© */
+#define TCP_CEP_FLG_NOT_CLEAR		(TCP_CEP_FLG_WBCS_NBUF_REQ|TCP_CEP_FLG_WBCS_MASK|\
+					 TCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4)
+
+/*
+ *  éä¿¡ç«¯ç¹ã¤ãã³ããã©ã°
+ */
+
+#define TCP_CEP_EVT_ESTABLISHED		ULONG_C(0x00000001)	/* ã³ãã¯ã·ã§ã³ç¢ºç«		*/
+#define TCP_CEP_EVT_CLOSED		ULONG_C(0x00000002)	/* æªä½¿ç¨ç¶æ
+			*/
+#define TCP_CEP_EVT_SWBUF_READY		ULONG_C(0x00000004)	/* éä¿¡ã¦ã£ã³ããããã¡ç©ºã	*/
+#define TCP_CEP_EVT_RWBUF_READY		ULONG_C(0x00000008)	/* éä¿¡ã¦ã£ã³ããããã¡ãã¼ã¿ãã*/
+#define TCP_CEP_EVT_ALL			ULONG_C(0xffffffff)	/* å
+¨ã¤ãã³ã			*/
+
+/*
+ *  è¿½å  API æ©è½ã»äºè±¡ã³ã¼ã
+ */
+
+/* TCP é¢ä¿ */
+
+#define TFN_TCP_UNDEF		(0)
+
+/*
+ *  srtt:   å¹³æ»åããã RTT
+ *  rttvar: å¹³æ»åãããåæ£
+ *  rtt:    æ¸¬å®ãããå¾å¾©æé
+ *
+ *  å¹³æ»åããã RTT (srtt) ã¨å¹³æ»åãããåæ£ (rttvar) ã
+ *  æ´æ°åã§è¨ç®ããããã«ãå·¦ã·ãããã¦ã¹ã±ã¼ã«ããã
+ *  srtt ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 3 ãããã
+ *  rttvar ã¯ 2 é²å°æ°ç¹ä»¥ä¸ 2 ããããä¿æããã
+ */
+
+#define TCP_DELTA_SHIFT		2
+			/* å·®å = rtt/8 + srtt*7/8 ã®è¨ç®ã®ããã®ã·ããå¤	*/
+#define TCP_SRTT_SHIFT		(TCP_DELTA_SHIFT + 3)
+					/* srtt ã®ã·ããå¤ã3(+2)ããã	*/
+#define TCP_RTTVAR_SHIFT	(TCP_DELTA_SHIFT + 2)
+					/* rttvar ã®ã·ããå¤ã2(+2)ããã	*/
+#define TCP_SRTT_SCALE		(1<<TCP_SRTT_SHIFT)
+#define TCP_RTTVAR_SCALE	(1<<TCP_RTTVAR_SHIFT)
+
+/*
+ *  é«éåè»¢éãéå§ããåé ACK æ°ã®ãããå¤
+ */
+
+#define MAX_TCP_REXMT_THRESH	3
+
+/*
+ *  åä¿¡åæ§æã­ã¥ã¼ã§ã® TCP ããã
+ */
+
+typedef struct t_tcp_q_hdr {
+	uint16_t	sport;		/* éä¿¡å
+ãã¼ãçªå·			*/
+	uint16_t	dport;		/* å®å
+ãã¼ãçªå·			*/
+
+	uint32_t	seq;		/* SEQ çªå·				*/
+
+	T_NET_BUF 	*next;		/* æ¬¡ã®ã»ã°ã¡ã³ããå
+ã¯ ACK çªå·(ack)	*/
+
+	uint8_t		doff;		/* ãã¼ã¿ãªãã»ãã(ä¸ä½4ããã)	*/
+	uint8_t		flags;		/* ãã©ã°(ä¸ä½6ããã)			*/
+	uint16_t	soff;		/* SDU ãªãã»ãããå
+ã¯ã¦ã£ã³ããµã¤ãº(win)	*/
+
+	uint16_t	slen;		/* SDU é·ãå
+ã¯ãã§ãã¯ãµã (sum)	*/
+	uint16_t	urp;		/* ç·æ¥ãã¤ã³ã¿ï¼SDU é·è£æ­£ï¼		*/
+	} T_TCP_Q_HDR;
+
+#define GET_TCP_Q_HDR(nbuf,thoff)	((T_TCP_Q_HDR*)((uint8_t*)((nbuf)->buf) + thoff))
+
+/*
+ *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
+ */
+
+#define	TMIN_TCP_REPID		1			/* TCP      åä»å£ ID ã®æå°å¤			*/
+#define	TMIN_TCP6_REPID		1			/* TCP/IPv6 åä»å£ ID ã®æå°å¤			*/
+#define	TMIN_TCP4_REPID		(TNUM_TCP6_REPID+1)	/* TCP/IPv4 åä»å£ ID ã®æå°å¤			*/
+
+#define	TMIN_TCP_CEPID		1			/* TCP      éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
+#define	TMIN_TCP6_CEPID		1			/* TCP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
+#define	TMIN_TCP4_CEPID		(TNUM_TCP6_CEPID+1)	/* TCP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤			*/
+
+#define	TMIN_TCP_TWCEPID	1			/* Time Wait ç¨ TCP éä¿¡ç«¯ç¹ ID ã®æå°å¤	*/
+
+/*
+ *  å¶å¾¡ã»ã°ã¡ã³ãï¼ãã¼ã¿ãªãï¼ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ */
+
+#if defined(IF_HDR_SIZE) && defined(IP_HDR_SIZE)
+
+typedef struct t_net_buf_cseg {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_HDR_SIZE + IP_HDR_SIZE + TCP_HDR_SIZE];
+				/* ãããã¡æ¬ä½		*/
+	} T_NET_BUF_CSEG;
+
+#endif	/* of #if defined(IF_HDR_SIZE) && defined(IP_HDR_SIZE) */
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_tcp_stats {
+	uint32_t	tcpActiveOpens;
+	uint32_t	tcpPassiveOpens;
+	uint32_t	tcpAttemptFails;
+	uint32_t	tcpEstabResets;
+/*	uint32_t	tcpCurrEstab;*/
+	uint32_t	tcpInSegs;
+	uint32_t	tcpOutSegs;
+	uint32_t	tcpRetransSegs;
+	uint32_t	tcpInErrs;
+	uint32_t	tcpOutRsts;
+} T_TCP_STATS;
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+/* TCP åä»å£ */
+
+#define VALID_TCP6_REPID(id)	(TMIN_TCP6_REPID<=(id)&&(id)<=tmax_tcp6_repid)
+#define VALID_TCP4_REPID(id)	(TMIN_TCP4_REPID<=(id)&&(id)<=tmax_tcp4_repid)
+
+#define INDEX_TCP6_REP(id)	((id)-TMIN_TCP6_REPID)
+#define INDEX_TCP4_REP(id)	((id)-TMIN_TCP4_REPID)
+
+#define GET_TCP6_REP(id)	(&(tcp6_rep[INDEX_TCP6_REP(id)]))
+#define GET_TCP4_REP(id)	(&(tcp4_rep[INDEX_TCP4_REP(id)]))
+
+#define GET_TCP6_REPID(rep)	((ID)(((rep)-tcp6_rep)+TMIN_TCP6_REPID))
+#define GET_TCP4_REPID(rep)	((ID)(((rep)-tcp4_rep)+TMIN_TCP4_REPID))
+
+#ifdef TCP_CFG_EXTENTIONS
+
+#define VALID_TCP_REP(rep)	(((rep)->flags&TCP_REP_FLG_VALID)!=0)
+#define DYNAMIC_TCP_REP(rep)	(((rep)->flags&TCP_REP_FLG_DYNAMIC)!=0)
+
+#else	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+#define VALID_TCP_REP(rep)	(true)
+#define DYNAMIC_TCP_REP(rep)	(false)
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#define VALID_TCP_CEPID(id)	(TMIN_TCP_CEPID<=(id)&&(id)<=tmax_tcp_cepid)
+#define INDEX_TCP_CEP(id)	((id)-TMIN_TCP_CEPID)
+
+#define GET_TCP_CEP(id)		(&(tcp_cep[INDEX_TCP_CEP(id)]))
+
+#define GET_TCP_CEPID(cep)	((ID)(((cep)-tcp_cep)+TMIN_TCP_CEPID))
+#define GET_TCP_TWCEPID(cep)	((ID)(((cep)-tcp_twcep)+TMIN_TCP_TWCEPID))
+
+#define VALID_TCP_CEP(cep)	(((cep)->flags&TCP_CEP_FLG_VALID)!=0)
+#define DYNAMIC_TCP_CEP(cep)	(((cep)->flags&TCP_CEP_FLG_DYNAMIC)!=0)
+#define TCP_IS_CEP_IPV6(cep)	(((cep)->flags&TCP_CEP_FLG_IPV4)==0)
+#define TCP_IS_CEP_IPV4(cep)	(((cep)->flags&TCP_CEP_FLG_IPV4)!=0)
+
+#define IS_TFN_TCP_RCV(t)	((t)==TFN_TCP_ACP_CEP||(t)==TFN_TCP_RCV_DAT||\
+				 (t)==TFN_TCP_CLS_CEP||\
+				 (t)==TFN_TCP_RCV_BUF||(t)==TFN_TCP_REL_BUF||\
+				 (t)==TFN_TCP_RCV_OOB)
+
+#define VALID_TFN_TCP_CAN(t)	((t)==TFN_TCP_ACP_CEP||(t)==TFN_TCP_CON_CEP||\
+				 (t)==TFN_TCP_CLS_CEP||\
+				 (t)==TFN_TCP_SND_DAT||(t)==TFN_TCP_RCV_DAT||\
+				 (t)==TFN_TCP_GET_BUF||(t)==TFN_TCP_RCV_BUF||\
+				 (t)==TFN_TCP_SND_OOB||\
+				 (t)==TFN_TCP_ALL)
+
+#define VALID_URG_POINTER(urg)	(TCP_CFG_URG_OFFSET==0||urg!=0)
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+extern uint8_t tcp_initialized;
+
+extern T_TCP_STATS tcp_stats;
+
+/* TCP åä»å£ */
+
+extern T_TCP6_REP tcp6_rep[];
+extern T_TCP4_REP tcp4_rep[];
+
+#if defined(SUPPORT_INET6)
+#define tcp_rep	tcp6_rep
+#elif defined(SUPPORT_INET4)
+#define tcp_rep	tcp4_rep
+#endif
+
+extern const ID tmax_tcp_repid;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+extern const ID tmax_tcp6_repid;
+extern const ID tmax_tcp4_repid;
+#else
+#define tmax_tcp6_repid	tmax_tcp_repid
+#define tmax_tcp4_repid	tmax_tcp_repid
+#endif
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+extern T_TCP_CEP tcp_cep[];
+extern T_TCP_TWCEP tcp_twcep[];
+
+extern const ID tmax_tcp_cepid;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+extern const ID tmax_tcp6_cepid;
+extern const ID tmax_tcp4_cepid;
+#else
+#define tmax_tcp6_cepid	tmax_tcp_cepid
+#define tmax_tcp4_cepid	tmax_tcp_cepid
+#endif
+
+/*
+ *  Inline é¢æ°
+ */
+
+#ifndef TCP_CFG_RWBUF_CSAVE
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
+ *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
+ */
+
+/*
+ *  tcp_free_rwbufq -- åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ */
+
+Inline void
+tcp_free_rwbufq_ncs (T_TCP_CEP *cep)
+{
+	}
+
+#endif	/* of #ifndef TCP_CFG_RWBUF_CSAVE */
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿ã
+ *  æå¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
+ */
+
+/*
+ *  tcp_read_swbuf_cs -- éä¿¡ã¦ã£ã³ããããã¡ãããã¼ã¿ãèª­ã¿åºãã
+ */
+
+Inline void
+tcp_read_swbuf_cs (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff)
+{
+	}
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#ifndef TCP_CFG_SWBUF_CSAVE
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã
+ *  ç¡å¹ã®å ´åã¯ä½ãããªãããã®ããã¼ã®é¢æ°
+ */
+
+/*
+ *  tcp_free_swbufq -- éä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ãè§£æ¾ããã
+ */
+
+Inline void
+tcp_free_swbufq_ncs (T_TCP_CEP *cep)
+{
+	}
+
+/*
+ *  tcp_alloc_swbuf -- éä¿¡ã¦ã£ã³ããããã¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ã®å²ãå½ã¦ãæç¤ºããã
+ */
+
+Inline void
+tcp_alloc_swbuf_ncs (T_TCP_CEP *cep)
+{
+	}
+
+/*
+ *  tcp_push_res_nbuf -- ãããã¯ã¼ã¯ãããã¡ãäºç´ããã
+ */
+
+Inline T_NET_BUF *
+tcp_push_res_nbuf_ncs (T_NET_BUF *nbuf)
+{
+	return nbuf;
+	}
+
+/*
+ *  tcp_pull_res_nbuf -- äºç´ãã¦ãããããã¯ã¼ã¯ãããã¡è¿ãã
+ */
+
+Inline T_NET_BUF *
+tcp_pull_res_nbuf_ncs (ATR nbatr)
+{
+	return NULL;
+	}
+
+#endif	/* of #ifndef TCP_CFG_SWBUF_CSAVE */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ */
+
+#ifdef TCP_CFG_RWBUF_CSAVE
+
+#ifdef TCP_CFG_RWBUF_CSAVE_ONLY
+
+#define TCP_FREE_RWBUFQ(cep)			tcp_free_rwbufq_cs(cep)
+#define TCP_DROP_RWBUF(cep,len)			tcp_drop_rwbuf_cs(cep,len)
+#define TCP_READ_RWBUF(cep,data,len)		tcp_read_rwbuf_cs(cep,data,len)
+#define TCP_GET_RWBUF_ADDR(cep,buf)		tcp_get_rwbuf_addr_cs(cep,buf)
+#define TCP_WRITE_RWBUF(cep,input,thoff)	tcp_write_rwbuf_cs(cep,input,thoff)
+
+#else	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+#define TCP_FREE_RWBUFQ(cep)			tcp_free_rwbufq(cep)
+#define TCP_DROP_RWBUF(cep,len)			tcp_drop_rwbuf(cep,len)
+#define TCP_READ_RWBUF(cep,data,len)		tcp_read_rwbuf(cep,data,len)
+#define TCP_GET_RWBUF_ADDR(cep,buf)		tcp_get_rwbuf_addr(cep,buf)
+#define TCP_WRITE_RWBUF(cep,input,thoff)	tcp_write_rwbuf(cep,input,thoff)
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE_ONLY */
+
+#else	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
+
+#define TCP_FREE_RWBUFQ(cep)			tcp_free_rwbufq_ncs(cep)
+#define TCP_DROP_RWBUF(cep,len)			tcp_drop_rwbuf_ncs(cep,len)
+#define TCP_READ_RWBUF(cep,data,len)		tcp_read_rwbuf_ncs(cep,data,len)
+#define TCP_GET_RWBUF_ADDR(cep,buf)		tcp_get_rwbuf_addr_ncs(cep,buf)
+#define TCP_WRITE_RWBUF(cep,input,thoff)	tcp_write_rwbuf_ncs(cep,input,thoff)
+
+#endif	/* of #ifdef TCP_CFG_RWBUF_CSAVE */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®åãæ¿ããã¯ã­
+ */
+
+#ifdef TCP_CFG_SWBUF_CSAVE
+
+#define TCP_PUSH_RES_NBUF(nbuf)			tcp_push_res_nbuf(nbuf)
+#define TCP_PULL_RES_NBUF(atr)			tcp_pull_res_nbuf(atr)
+
+#ifdef TCP_CFG_SWBUF_CSAVE_ONLY
+
+#define TCP_FREE_SWBUFQ(cep)			tcp_free_swbufq_cs(cep)
+#define TCP_ALLOC_SWBUF(cep)			tcp_alloc_swbuf_cs(cep)
+#define TCP_DROP_SWBUF(cep,len)			tcp_drop_swbuf_cs(cep,len)
+#define TCP_WRITE_SWBUF(cep,data,len)		tcp_write_swbuf_cs(cep,data,len)
+#define TCP_READ_SWBUF(cep,output,len,doff)	tcp_read_swbuf_cs(cep,output,len,doff)
+#define TCP_WAIT_SWBUF(cep,tmout)		tcp_wait_swbuf_cs(cep,tmout)
+#define TCP_GET_SWBUF_ADDR(cep,buf)		tcp_get_swbuf_addr_cs(cep,buf)
+#define TCP_SEND_SWBUF(cep,len)			tcp_send_swbuf_cs(cep,len)
+#define TCP_IS_SWBUF_FULL(cep)			tcp_is_swbuf_full_cs(cep)
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#define TCP_FREE_SWBUFQ(cep)			tcp_free_swbufq(cep)
+#define TCP_ALLOC_SWBUF(cep)			tcp_alloc_swbuf(cep)
+#define TCP_DROP_SWBUF(cep,len)			tcp_drop_swbuf(cep,len)
+#define TCP_WRITE_SWBUF(cep,data,len)		tcp_write_swbuf(cep,data,len)
+#define TCP_READ_SWBUF(cep,output,len,doff)	tcp_read_swbuf(cep,output,len,doff)
+#define TCP_WAIT_SWBUF(cep,tmout)		tcp_wait_swbuf(cep,tmout)
+#define TCP_GET_SWBUF_ADDR(cep,buf)		tcp_get_swbuf_addr(cep,buf)
+#define TCP_SEND_SWBUF(cep,len)			tcp_send_swbuf(cep,len)
+#define TCP_IS_SWBUF_FULL(cep)			tcp_is_swbuf_full(cep)
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#else	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+#define TCP_READ_SWBUF(cep,output,len,doff)	tcp_read_swbuf_ncs(cep,output,len,doff)
+#define TCP_FREE_SWBUFQ(cep)			tcp_free_swbufq_ncs(cep)
+#define TCP_ALLOC_SWBUF(cep)			tcp_alloc_swbuf_ncs(cep)
+#define TCP_PUSH_RES_NBUF(nbuf)			tcp_push_res_nbuf_ncs(nbuf)
+#define TCP_PULL_RES_NBUF(atr)			tcp_pull_res_nbuf_ncs(atr)
+#define TCP_DROP_SWBUF(cep,len)			tcp_drop_swbuf_ncs(cep,len)
+#define TCP_WRITE_SWBUF(cep,data,len)		tcp_write_swbuf_ncs(cep,data,len)
+#define TCP_WAIT_SWBUF(cep,tmout)		tcp_wait_swbuf_ncs(cep,tmout)
+#define TCP_GET_SWBUF_ADDR(cep,buf)		tcp_get_swbuf_addr_ncs(cep,buf)
+#define TCP_SEND_SWBUF(cep,len)			tcp_send_swbuf_ncs(cep,len)
+#define TCP_IS_SWBUF_FULL(cep)			tcp_is_swbuf_full_ncs(cep)
+
+#endif	/* of #ifdef TCP_CFG_SWBUF_CSAVE */
+
+/*
+ *  é¢æ°
+ */
+
+extern uint_t tcp_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern void tcp_init (void);
+extern void tcp_init_iss (void);
+extern T_TCP_CEP *tcp_close (T_TCP_CEP *cep);
+extern T_TCP_CEP *tcp_drop  (T_TCP_CEP *cep, ER errno);
+extern void tcp_respond (T_NET_BUF *nbuf, T_TCP_CEP *cep,
+                         T_TCP_SEQ ack, T_TCP_SEQ seq, uint_t rbfree, uint8_t flags);
+extern ER tcp_get_segment (T_NET_BUF **nbuf, T_TCP_CEP *cep,
+                           uint_t optlen, uint_t len, uint_t maxlen, ATR nbatr, TMO tmout);
+extern ER tcpn_get_segment (T_NET_BUF **nbuf, T_TCP_CEP *cep,
+                            uint_t optlen, uint_t len, uint_t maxlen, ATR nbatr, TMO tmout);
+extern void tcp_init_cep (T_TCP_CEP *cep);
+extern void tcp_notify (T_NET_BUF *input, int code);
+extern T_TCP_TIME tcp_rexmt_val (T_TCP_CEP *cep);
+extern void tcp_set_persist_timer (T_TCP_CEP *cep);
+extern void tcp_cancel_timers (T_TCP_CEP *cep);
+extern void tcp_alloc_auto_port (T_TCP_CEP *cep);
+extern ER tcp_alloc_port (T_TCP_CEP *cep, uint16_t portno);
+extern ER tcp_lock_cep (ID cepid, T_TCP_CEP **p_cep, FN tfn);
+extern void tcp_free_reassq (T_TCP_CEP *cep);
+extern ER tcp_can_send_more (T_TCP_CEP *cep, FN fncd, TMO tmout);
+extern ER tcp_can_recv_more (ER *error, T_TCP_CEP *cep, FN fncd, TMO tmout);
+extern uint8_t tcp_move_ra2rw (T_TCP_CEP *cep, uint8_t flags);
+extern uint8_t tcp_write_raque (T_NET_BUF *input, T_TCP_CEP *cep, uint_t thoff, uint8_t flags);
+extern ER tcp_wait_rwbuf (T_TCP_CEP *cep, TMO tmout);
+extern T_TCP_CEP *tcp_user_closed (T_TCP_CEP *cep);
+extern T_TCP_CEP *tcp_find_cep (T_NET_BUF *input, uint_t off);
+extern T_TCP_TWCEP*tcp_find_twcep (T_NET_BUF *input, uint_t off);
+extern bool_t tcp_is_addr_accept (T_NET_BUF *input, uint_t off);
+extern void tcp_move_twcep (T_TCP_CEP *cep);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
+ */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
+ *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ */
+
+extern void tcp_free_rwbufq (T_TCP_CEP *cep);
+extern void tcp_drop_rwbuf (T_TCP_CEP *cep, uint_t len);
+extern void tcp_write_rwbuf (T_TCP_CEP *cep, T_NET_BUF *input, uint_t tcpoff);
+extern uint_t tcp_read_rwbuf (T_TCP_CEP *cep, void *data, uint_t len);
+extern uint_t tcp_get_rwbuf_addr (T_TCP_CEP *cep, void **p_buf);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ */
+
+extern void tcp_free_rwbufq_cs (T_TCP_CEP *cep);
+extern void tcp_drop_rwbuf_cs (T_TCP_CEP *cep, uint_t len);
+extern void tcp_write_rwbuf_cs (T_TCP_CEP *cep, T_NET_BUF *input, uint_t tcpoff);
+extern uint_t tcp_read_rwbuf_cs (T_TCP_CEP *cep, void *data, uint_t len);
+extern uint_t tcp_get_rwbuf_addr_cs (T_TCP_CEP *cep, void **p_buf);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ */
+
+extern void tcp_free_rwbufq_ncs (T_TCP_CEP *cep);
+extern void tcp_drop_rwbuf_ncs (T_TCP_CEP *cep, uint_t len);
+extern void tcp_write_rwbuf_ncs (T_TCP_CEP *cep, T_NET_BUF *input, uint_t tcpoff);
+extern uint_t tcp_read_rwbuf_ncs (T_TCP_CEP *cep, void *data, uint_t len);
+extern uint_t tcp_get_rwbuf_addr_ncs (T_TCP_CEP *cep, void **p_buf);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ç¨é¢æ°
+ */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã®å ´åã
+ *  é¢æ°ã®é¸æã«ä½¿ç¨ããã
+ */
+
+extern void tcp_free_swbufq (T_TCP_CEP *cep);
+extern void tcp_drop_swbuf (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_write_swbuf (T_TCP_CEP *cep, void *data, uint_t len);
+extern void tcp_read_swbuf (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff);
+extern void tcp_send_swbuf (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_get_swbuf_addr (T_TCP_CEP *cep, void **p_buf);
+extern ER tcp_wait_swbuf (T_TCP_CEP *cep, TMO tmout);
+extern T_NET_BUF *tcp_push_res_nbuf (T_NET_BUF *buf);
+extern T_NET_BUF *tcp_pull_res_nbuf (ATR nbatr);
+extern void tcp_alloc_swbuf (T_TCP_CEP *cep);
+extern bool_t tcp_is_swbuf_full (T_TCP_CEP *cep);
+extern void tcp_init_swbuf (T_TCP_CEP *cep);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ç¨é¢æ°
+ */
+
+extern void tcp_free_swbufq_cs (T_TCP_CEP *cep);
+extern void tcp_drop_swbuf_cs (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_write_swbuf_cs (T_TCP_CEP *cep, void *data, uint_t len);
+extern void tcp_read_swbuf_cs (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff);
+extern void tcp_send_swbuf_cs (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_get_swbuf_addr_cs (T_TCP_CEP *cep, void **p_buf);
+extern ER tcp_wait_swbuf_cs (T_TCP_CEP *cep, TMO tmout);
+extern void tcp_alloc_swbuf_cs (T_TCP_CEP *cep);
+extern bool_t tcp_is_swbuf_full_cs (T_TCP_CEP *cep);
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®ãéãçã³ãã¼æ©è½ç¨é¢æ°
+ */
+
+extern void tcp_free_swbufq_ncs (T_TCP_CEP *cep);
+extern void tcp_drop_swbuf_ncs (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_write_swbuf_ncs (T_TCP_CEP *cep, void *data, uint_t len);
+extern void tcp_read_swbuf_ncs (T_TCP_CEP *cep, T_NET_BUF *output, uint_t len, uint_t doff);
+extern void tcp_send_swbuf_ncs (T_TCP_CEP *cep, uint_t len);
+extern ER_UINT tcp_get_swbuf_addr_ncs (T_TCP_CEP *cep, void **p_buf);
+extern ER tcp_wait_swbuf_ncs (T_TCP_CEP *cep, TMO tmout);
+extern T_NET_BUF *tcp_push_res_nbuf_ncs (T_NET_BUF *buf);
+extern T_NET_BUF *tcp_pull_res_nbuf_ncs (ATR nbatr);
+extern void tcp_alloc_swbuf_ncs (T_TCP_CEP *cep);
+extern bool_t tcp_is_swbuf_full_ncs (T_TCP_CEP *cep);
+
+/*
+ *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½ç¨é¢æ°
+ */
+extern void tcp_output_trace (T_NET_BUF *output, T_TCP_CEP *cep);
+extern void tcp_input_trace  (T_NET_BUF *input,  T_TCP_CEP *cep);
+
+/* TCP åºåã¿ã¹ã¯ */
+
+extern void	tcp_output_task(intptr_t exinf);
+
+#endif	/* of #ifndef _TCP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcpn_usrreq.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcpn_usrreq.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/tcpn_usrreq.c	(revision 313)
@@ -0,0 +1,777 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	From: @(#)tcp_usrreq.c	8.2 (Berkeley) 1/3/94
+ * $FreeBSD: src/sys/netinet/tcp_usrreq.c,v 1.40.2.3 1999/08/29 16:29:57 peter Exp $
+ */
+
+#ifdef TCP_CFG_EXTENTIONS
+
+#if (API_PROTO == API_PROTO_IPV6 && TNUM_TCP6_REPID > 0) || (API_PROTO == API_PROTO_IPV4 && TNUM_TCP4_REPID > 0)
+
+/*
+ *  tcp_cre_rep -- TCP åä»å£ã®çæãæ¡å¼µæ©è½ã
+ */
+
+#ifdef __tcp_cre_rep
+
+ER
+TCP_CRE_REP (ID repid, T_TCPN_CREP *pk_crep)
+{
+	T_TCP_REP	*rep;
+	ER		error;
+
+	/* TCP åä»å£ ID ããã§ãã¯ããã*/
+	if (!VALID_TCP_REPID(repid))
+		return E_ID;
+
+	/* pk_crep ã NULL ãªãã¨ã©ã¼ */
+	if (pk_crep == NULL)
+		return E_PAR;
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&pk_crep->myaddr.ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+	/* TCP åä»å£ãå¾ãã*/
+	rep = GET_TCP_REP(repid);
+
+	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_TCP_REP(rep))
+		return E_ID;
+
+	/* åä»å£ãã­ãã¯ããã*/
+	syscall(wai_sem(rep->semid_lock));
+
+	/*
+	 * TCP åä»å£ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 */
+	if (VALID_TCP_REP(rep))
+		error = E_OBJ;
+	else {
+
+		/* TCP åä»å£çææ
+å ±ãã³ãã¼ããã*/
+		rep->repatr = pk_crep->repatr;			/* åä»å£å±æ§		*/
+		rep->myaddr.ipaddr = pk_crep->myaddr.ipaddr;	/* èªåã®ã¢ãã¬ã¹	*/
+		rep->myaddr.portno = pk_crep->myaddr.portno;	/* èªåã®ã¢ãã¬ã¹	*/
+
+		/* TCP åä»å£ãçææ¸ã¿ã«ããã*/
+		rep->flags |= TCP_REP_FLG_VALID;
+		error = E_OK;
+		}
+
+	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(rep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_cre_rep */
+
+#ifdef __tcp_del_rep
+
+/*
+ *  tcp_find_cep_rep -- TCP åä»å£ããªã³ã¯ãã¦ãã TCP éä¿¡ç«¯ç¹ãå¾ãã
+ */
+
+static T_TCP_CEP*
+TCP_FIND_CEP_REP (T_TCP_REP* rep)
+{
+	T_TCP_CEP*	cep;
+
+	for (cep = &tcp_cep[tmax_tcp_cepid]; cep -- != tcp_cep; ) {
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
+		if (cep->rep4 == rep)
+#else
+		if (cep->rep == rep)
+#endif
+			return cep;
+		}
+
+	return NULL;
+	}
+
+/*
+ *  tcp_del_rep_body -- TCP åä»å£ã®åé¤ãæ¡å¼µæ©è½ãã®æ¬ä½
+ */
+
+static ER
+TCP_DEL_REP_BODY (ID repid)
+{
+	T_TCP_CEP	*cep;
+	T_TCP_REP	*rep;
+	ER		error = E_OK;
+
+	/* TCP åä»å£ ID ã®ãã§ãã¯ã¯çµäºãã¦ããã*/
+
+	/* TCP åä»å£ãå¾ãã*/
+	rep = GET_TCP_REP(repid);
+
+	/* TCP åä»å£ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_TCP_REP(rep))
+		return E_ID;
+
+	/* åä»å£ãã­ãã¯ããã*/
+	syscall(wai_sem(rep->semid_lock));
+
+	/* TCP åä»å£ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼ */
+	if (!VALID_TCP_REP(rep))
+		error = E_NOEXS;
+	else {
+		if ((cep = TCP_FIND_CEP_REP(rep)) != NULL) {
+			/*
+			 * ãã§ã«ååãªã¼ãã³ãã¦ããã¨ã
+			 *ï¼tcp_acp_cep ãå¼ã°ãã¦ããã¨ãï¼ã¯ã
+			 * tcp_acp_cep ãçµäºãããã
+			 */
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+			syscall(wai_sem(cep->semid_lock));
+
+			/*
+			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
+			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 */
+			cep->rep = NULL;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+			cep->rep4 = NULL;
+#endif
+
+			cep->fsm_state = TCP_FSM_CLOSED;
+			cep->error = E_DLT;
+			syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+			if (cep->rcv_nblk_tfn != TFN_TCP_UNDEF) {
+				if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)E_DLT);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					ER	error = E_DLT;
+
+					(*cep->callback)(GET_TCP_CEPID(cep), cep->rcv_nblk_tfn, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+					}
+				else
+					error = E_OBJ;
+				cep->rcv_nblk_tfn = TFN_TCP_UNDEF;
+				}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+			cep->rcv_tskid = TA_NULL;
+			cep->rcv_tfn   = TFN_TCP_UNDEF;
+
+			/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+
+			}
+		else
+			error = E_OK;
+
+		/* TCP åä»å£ãæªçæã«ããã*/
+		rep->flags &= ~TCP_REP_FLG_VALID;
+		}
+
+	/* åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(rep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_del_rep */
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6 && TNUM_TCP6_REPID > 0) || (API_PROTO == API_PROTO_IPV4 && TNUM_TCP4_REPID > 0) */
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+#if (API_PROTO == API_PROTO_IPV6 && TNUM_TCP6_REPID > 0) || (API_PROTO == API_PROTO_IPV4 && TNUM_TCP4_REPID > 0)
+
+/*
+ *  tcp_acp_cep -- æ¥ç¶è¦æ±å¾
+ã¡ (ååãªã¼ãã³)ãæ¨æºæ©è½ã
+ */
+
+#ifdef __tcp_acp_cep
+
+ER
+TCP_ACP_CEP (ID cepid, ID repid, T_IPEP *p_dstaddr, TMO tmout)
+{
+	T_TCP_REP	*rep;
+	T_TCP_CEP	*cep;
+	ER		error;
+	FLGPTN		flag;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	/*
+	 * API (tcp6_acp_cep ã¨ tcp_acp_cep) ã¨ã
+	 * TCPéä¿¡ç«¯ç¹ã®ãã­ãã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼
+	 */
+
+#if API_PROTO == API_PROTO_IPV6
+
+	if (GET_TCP_CEP(cepid)->flags & TCP_CEP_FLG_IPV4)
+		return E_ID;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV6 */
+
+#if API_PROTO == API_PROTO_IPV4
+
+	if ((GET_TCP_CEP(cepid)->flags & TCP_CEP_FLG_IPV4) == 0)
+		return E_ID;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	/* TCP åä»å£ããã§ãã¯ããã*/
+	if (!VALID_TCP_REPID(repid))
+		return E_ID;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* p_dstaddr ã NULL ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/* p_dstaddr ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_ACP_CEP)) != E_OK)
+		return error;
+
+	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
+ã§ãªããã°ã¨ã©ã¼ã*/
+	if (cep->fsm_state != TCP_FSM_CLOSED) {
+		error = E_OBJ;
+		goto err_ret;
+		}
+	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
+
+	/* TCP éä¿¡ç«¯ç¹ãåæåããã*/
+	tcp_init_cep(cep);
+
+	/* TCP åä»å£ãå¾ãã*/
+
+	rep = GET_TCP_REP(repid);
+
+#ifdef TCP_CFG_EXTENTIONS
+
+	/* TCP åä»å£ãã­ãã¯ããã*/
+	syscall(wai_sem(rep->semid_lock));
+
+	/* TCP åä»å£ããã§ãã¯ããã*/
+	if (!VALID_TCP_REP(rep)) {
+		syscall(sig_sem(rep->semid_lock));
+		error = E_NOEXS;
+		goto err_ret;
+		}
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	/* TCP éä¿¡ç«¯ç¹ã«TCPåä»å£ãè¨é²ããã*/
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+#if API_PROTO == API_PROTO_IPV6
+
+	cep->rep = rep;
+
+#else	/* of #if API_PROTO == API_PROTO_IPV6 */
+
+	cep->rep4 = rep;
+
+#endif	/*of #if API_PROTO == API_PROTO_IPV6 */
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	cep->rep = rep;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+#ifdef TCP_CFG_EXTENTIONS
+
+	/* TCP åä»å£ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(rep->semid_lock));
+
+#endif	/* of #ifdef TCP_CFG_EXTENTIONS */
+
+	/* TCP åä»å£ã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
+
+	if (rep->myaddr.ipaddr == IPV4_ADDRANY)
+		memcpy(&cep->myaddr.ipaddr, &in6_addr_unspecified,
+		                      sizeof(in6_addr_unspecified));
+	else
+		in6_make_ipv4mapped(&cep->myaddr.ipaddr, rep->myaddr.ipaddr);
+	cep->myaddr.portno = rep->myaddr.portno;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+	cep->myaddr = rep->myaddr;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+#if API_PROTO == API_PROTO_IPV4
+
+	/* TCP éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ãè¨­å®ããã*/
+	cep->flags |= TCP_CEP_FLG_IPV4;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	cep->fsm_state = TCP_FSM_LISTEN;
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {
+		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+#if API_PROTO == API_PROTO_IPV4
+
+		cep->p_dstaddr4   = p_dstaddr;
+		cep->p_dstaddr    = NULL;
+
+#else	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+		cep->p_dstaddr4   = NULL;
+		cep->p_dstaddr    = p_dstaddr;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		cep->p_dstaddr    = p_dstaddr;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		cep->rcv_nblk_tfn = TFN_TCP_ACP_CEP;
+		return E_WBLK;
+		}
+	else {
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/*
+		 *  FSM ã ESTABLISHED ã«ãªãã¾ã§å¾
+ã¤ã
+		 *  FSM ã CLOSED ã«ãªã£ãå ´åã¯ãã¨ã©ã¼ãçºçãããã¨ãæå³ãã¦ããã
+		 */
+		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
+		                                  TCP_CEP_EVT_ESTABLISHED), TWF_ORW, &flag, tmout);
+		if (error == E_OK) {
+			if (cep->error != E_OK)
+				error = cep->error;
+			else if (cep->fsm_state == TCP_FSM_CLOSED)
+				error = E_TMOUT;
+			}
+
+		syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_ESTABLISHED)));
+
+		if (error == E_OK) {
+			/* ç¸æã®ã¢ãã¬ã¹ãã³ãã¼ããã*/
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
+			p_dstaddr->ipaddr = ntohl(cep->dstaddr.ipaddr.s6_addr32[3]);
+			p_dstaddr->portno = cep->dstaddr.portno;
+#else
+			*p_dstaddr = cep->dstaddr;
+#endif
+			}
+		else {
+			/*
+			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
+			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 */
+			cep->rep = NULL;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+			cep->rep4 = NULL;
+#endif
+
+			cep->fsm_state = TCP_FSM_CLOSED;
+			syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->rcv_tskid = TA_NULL;
+	cep->rcv_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_acp_cep */
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6 && TNUM_TCP6_REPID > 0) || (API_PROTO == API_PROTO_IPV4 && TNUM_TCP4_REPID > 0) */
+
+/*
+ *  tcp_con_cep -- æ¥ç¶è¦æ± (è½åãªã¼ãã³)ãæ¨æºæ©è½ã
+ */
+
+#ifdef __tcp_con_cep
+
+ER
+TCP_CON_CEP (ID cepid, T_IPEP *p_myaddr, T_IPEP *p_dstaddr, TMO tmout)
+{
+	T_TCP_CEP	*cep;
+	ER		error;
+	FLGPTN		flag;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+	/*
+	 * API (tcp6_acp_cep ã¨ tcp_acp_cep) ã¨ã
+	 * TCPéä¿¡ç«¯ç¹ã®ãã­ãã³ã«ãçç¾ãã¦ããã°ã¨ã©ã¼
+	 */
+
+#if API_PROTO == API_PROTO_IPV6
+
+	if (GET_TCP_CEP(cepid)->flags & TCP_CEP_FLG_IPV4)
+		return E_ID;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV6 */
+
+#if API_PROTO == API_PROTO_IPV4
+
+	if ((GET_TCP_CEP(cepid)->flags & TCP_CEP_FLG_IPV4) == 0)
+		return E_ID;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+	/*
+	 *  ãã¦å
+ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ãªãã¨ã©ã¼
+	 */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
+
+	if (IN4_IS_ADDR_MULTICAST(p_dstaddr->ipaddr))
+		return E_PAR;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+	if (IN_IS_ADDR_MULTICAST(&p_dstaddr->ipaddr))
+		return E_PAR;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/*
+	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ãªãã¨ã©ã¼
+	 */
+	if (p_myaddr == NULL || p_dstaddr == NULL)
+		return E_PAR;
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  p_dstaddr ã¾ãã¯ p_myaddr ã NULL ã
+	 *  tmout ã TMO_NBLK ãªãã¨ã©ã¼
+	 */
+	if (p_myaddr == NULL || p_dstaddr == NULL || tmout == TMO_NBLK)
+		return E_PAR;
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+	/*
+	 *  CEP ãã­ãã¯ããAPI æ©è½ã³ã¼ãã¨ã¿ã¹ã¯è­å¥å­ãè¨é²ããã
+	 *  ãã§ã«è¨é²ããã¦ããã°ããã³ãã£ã³ã°ä¸­ãªã®ã§ã¨ã©ã¼
+	 */
+	if ((error = tcp_lock_cep(cepid, &cep, TFN_TCP_CON_CEP)) != E_OK)
+		return error;
+
+	/* CEP ã® FSM ãã¯ã­ã¼ãºç¶æ
+ã§ãªããã°ã¨ã©ã¼ã*/
+	if (cep->fsm_state != TCP_FSM_CLOSED) {
+		error = E_OBJ;
+		goto err_ret;
+		}
+	syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_CLOSED)));
+
+	/* ã·ã¼ã±ã³ã¹çªå·ãåæåããã*/
+	if (tcp_iss == 0)
+		tcp_init_iss();
+
+	/* éä¿¡ç«¯ç¹ãåæåããã*/
+	tcp_init_cep(cep);
+
+	/*
+	 *  IP ã¢ãã¬ã¹ãè¨­å®ããã
+	 *  p_myaddr ã NADR (-1) ã§ã¯ãªããèª IP ã¢ãã¬ã¹ã ANY ã§ãªããã°ã
+	 *  æå®ããã IP ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+	 */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4)
+
+	if (p_myaddr != NADR && !IN4_IS_ADDR_ANY(&p_myaddr->ipaddr))
+		in6_make_ipv4mapped(&cep->myaddr.ipaddr, p_myaddr->ipaddr);
+	else
+		in6_make_ipv4mapped(&cep->myaddr.ipaddr, IF_GET_IFNET()->in4_ifaddr.addr);
+
+	in6_make_ipv4mapped(&cep->dstaddr.ipaddr, p_dstaddr->ipaddr);
+	cep->dstaddr.portno = p_dstaddr->portno;
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+	if (p_myaddr != NADR && !IN_IS_ADDR_ANY(&p_myaddr->ipaddr))
+		cep->myaddr.ipaddr = p_myaddr->ipaddr;
+	else {
+		if (IN_ADDRWITHIFP(IF_GET_IFNET(), &cep->myaddr.ipaddr, &p_dstaddr->ipaddr) == NULL) {
+			error = E_PAR;
+			goto err_ret;
+			}
+		}
+
+	cep->dstaddr   = *p_dstaddr;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) && (API_PROTO == API_PROTO_IPV4) */
+
+#if API_PROTO == API_PROTO_IPV4
+
+	/* TCP éä¿¡ç«¯ç¹ã®ãããã¯ã¼ã¯å±¤ãã­ãã³ã«ãè¨­å®ããã*/
+	cep->flags |= TCP_CEP_FLG_IPV4;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+	/* éä¿¡ç«¯ç¹ãè¨­å®ããã*/
+	//NET_DEBUG_TCP5("tcp_con_cep3[c=%d,d=%lI.%d,s=%lI.%d]\n",
+	cep->fsm_state = TCP_FSM_SYN_SENT;
+	cep->iss       = tcp_iss;
+	cep->timer[TCP_TIM_KEEP] = TCP_TVAL_KEEP_INIT;
+	tcp_iss += TCP_ISS_INCR() / 2;
+	init_send_seq(cep);
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+	/* ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã*/
+	if (tmout == TMO_NBLK) {
+		/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+
+#if API_PROTO == API_PROTO_IPV4
+
+		cep->p_dstaddr4   = p_dstaddr;
+		cep->p_myaddr4    = p_myaddr;
+		cep->p_dstaddr    = NULL;
+		cep->p_myaddr     = NULL;
+
+#else	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+		cep->p_dstaddr4   = NULL;
+		cep->p_myaddr4    = NULL;
+		cep->p_dstaddr    = p_dstaddr;
+		cep->p_myaddr     = p_myaddr;
+
+#endif	/* of #if API_PROTO == API_PROTO_IPV4 */
+
+#else	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		cep->p_dstaddr    = p_dstaddr;
+		cep->p_myaddr     = p_myaddr;
+
+#endif	/* of #if defined(SUPPORT_INET6) && defined(SUPPORT_INET4) */
+
+		cep->snd_nblk_tfn = TFN_TCP_CON_CEP;
+
+		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+		return E_WBLK;
+		}
+	else {
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+		/*
+		 *  p_myaddr ã NADR (-1) ãã
+		 *  èªãã¼ãçªå·ã TCP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 */
+		if (p_myaddr == NADR || p_myaddr->portno == TCP_PORTANY)
+			tcp_alloc_auto_port(cep);
+		else if ((error = tcp_alloc_port(cep, p_myaddr->portno)) != E_OK)
+			goto err_ret;
+
+		/* ã³ãã¯ã·ã§ã³ã®éè¨­ããã¹ãããã*/
+		cep->flags |= TCP_CEP_FLG_POST_OUTPUT;
+		sig_sem(SEM_TCP_POST_OUTPUT);
+
+		/*
+		 *  ã¤ãã³ãã ESTABLISHED ã«ãªãã¾ã§å¾
+ã¤ã
+		 *  ã¤ãã³ãã CLOSED ã«ãªã£ãå ´åã¯ãä½ããã®ã¨ã©ã¼ãçºçãããã
+		 *  æ¥ç¶è¦æ±ãæå¦ããããã¨ãæå³ãã¦ããã
+		 */
+		error = twai_flg(cep->est_flgid, (TCP_CEP_EVT_CLOSED |
+		                                  TCP_CEP_EVT_ESTABLISHED), TWF_ORW, &flag, tmout);
+		if (error == E_OK) {
+			if (cep->error != E_OK)
+				error = cep->error;
+			else if (cep->fsm_state == TCP_FSM_CLOSED)
+				error = E_CLS;
+			}
+
+		syscall(clr_flg(cep->est_flgid, (FLGPTN)(~TCP_CEP_EVT_ESTABLISHED)));
+
+		if (error != E_OK) {
+			/*
+			 *  éä¿¡ç«¯ç¹ããåä»å£ãè§£æ¾ãã
+			 *  ã¤ãã³ããã©ã°ãã¯ã­ã¼ãºã«è¨­å®ããã
+			 */
+			cep->rep = NULL;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+			cep->rep4 = NULL;
+#endif
+
+			cep->fsm_state = TCP_FSM_CLOSED;
+			syscall(set_flg(cep->est_flgid, TCP_CEP_EVT_CLOSED));
+			}
+
+#ifdef TCP_CFG_NON_BLOCKING
+
+		}
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING */
+
+err_ret:
+	cep->snd_tskid = TA_NULL;
+	cep->snd_tfn   = TFN_TCP_UNDEF;
+	return error;
+	}
+
+#endif	/* of #ifdef __tcp_con_cep */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.cfg	(revision 313)
@@ -0,0 +1,75 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  UDP ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ */
+
+#ifdef SUPPORT_UDP
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ã¨ã»ããã©
+ */
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+CRE_TSK(UDP_OUTPUT_TASK, {
+	TA_HLNG,
+	0,
+	udp_output_task,
+	UDP_OUT_TASK_PRIORITY,
+	UDP_OUT_TASK_STACK_SIZE,
+	NULL
+	});
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_UDP_POST_OUTPUT,	{ TA_TPRI, 0, 1 });
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+CRE_SEM(SEM_UDP_CEP,		{ TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp.h	(revision 313)
@@ -0,0 +1,102 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/udp.h,v 1.6.4.1 1999/08/29 16:29:58 peter Exp $
+ */
+ 
+#ifndef _UDP_H_
+#define _UDP_H_
+
+/*
+ *  UDP ããããRFC768 åç
+§
+ */
+
+typedef struct t_udp_hdr {
+	uint16_t	sport;		/* éä¿¡å
+ãã¼ãçªå·	*/
+	uint16_t	dport;		/* å®å
+ãã¼ãçªå·	*/
+
+	uint16_t	ulen;		/* ãã¼ã¿ã°ã©ã é·	*/
+	uint16_t	sum;		/* ãã§ãã¯ãµã 		*/
+	} T_UDP_HDR;
+
+#define UDP_HDR_SIZE			(sizeof(T_UDP_HDR))
+
+#endif	/* of #ifndef _UDP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_input.c	(revision 313)
@@ -0,0 +1,106 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ *  udp_reply_no_port -- éä¿¡å
+ã«ãã¼ããå®ç¾©ããã¦ããªããã¨ãéç¥ããã
+ */
+
+void
+UDP_REPLY_NO_PORT (T_NET_BUF *input, uint_t off)
+{
+	T_UDP_HDR	*udph;
+
+	udph = (T_UDP_HDR *)(input->buf + off);
+
+	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
+
+	/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+	if (ntohl(GET_IP4_HDR(input)->dst) == IF_GET_IFNET()->in4_ifaddr.addr) {
+		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
+
+		icmp_error(ICMP4_UNREACH_PORT, input);
+		/* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/
+	
+		}
+	syscall(rel_net_buf(input));
+
+	NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
+	NET_COUNT_MIB(udp_stats.udpInErrors, 1);
+	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp4_subr.c	(revision 313)
@@ -0,0 +1,135 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef DHCP_CFG
+
+/*
+ *  udp4_is_dstaddr_accept -- UDP ã®ãã¦å
+ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *
+ *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *
+ *      ã»ãã¦å
+ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ */
+
+static bool_t
+udp4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_NET_BUF *input)
+{
+	T_IP4_HDR	*ip4h;
+	T_IFNET	*ifp = IF_GET_IFNET();
+
+	ip4h = GET_IP4_HDR(input);
+
+	if (ifp->in4_ifaddr.addr == IPV4_ADDRANY    ||
+	    ntohl(ip4h->dst) == IPV4_ADDR_BROADCAST ||
+	    ntohl(ip4h->dst) == ((ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask))
+		return true;
+	else
+		return inn4_is_dstaddr_accept(myaddr, input);
+	}
+
+#else	/* of #ifdef DHCP_CFG */
+
+/*
+ *  udp4_is_dstaddr_accept -- UDP ã®ãã¦å
+ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *
+ *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *
+ *      ã»ãã¦å
+ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ */
+
+static bool_t
+udp4_is_dstaddr_accept (T_IN4_ADDR *myaddr, T_NET_BUF *input)
+{
+	T_IP4_HDR	*ip4h;
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	ip4h = GET_IP4_HDR(input);
+
+	if (ntohl(ip4h->dst) == IPV4_ADDR_BROADCAST ||
+	    ntohl(ip4h->dst) == ((ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask))
+		return true;
+	else
+		return inn4_is_dstaddr_accept(myaddr, input);
+	}
+
+#endif	/* of #ifdef DHCP_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_input.c	(revision 313)
@@ -0,0 +1,188 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_UDP
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+T_UDP_STATS udp_stats;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#undef	IN_COPY_TO_HOST
+
+#if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0
+
+#define UDP_INPUT		udp6_input
+#define UDP_INPUT_SELECT	udp6_input_select
+#define UDP_REPLY_NO_PORT	udp6_reply_no_port
+#define UDP_FIND_CEP		udp6_find_cep
+#define GET_UDP_CEPID		GET_UDP6_CEPID
+#define T_UDP_CEP		T_UDP6_CEP
+#define API_PROTO		API_PROTO_IPV6
+
+#if defined(_IP4_CFG)
+#define IN_COPY_TO_HOST		inn_copy_to_host
+#else
+#define IN_COPY_TO_HOST		IN6_COPY_TO_HOST
+#endif
+
+#include <netinet6/udp6_input.c>
+#include <netinet/udpn_input.c>
+
+#undef	UDP_INPUT
+#undef	UDP_INPUT_SELECT
+#undef	UDP_REPLY_NO_PORT
+#undef	UDP_FIND_CEP
+#undef	GET_UDP_CEPID
+#undef	T_UDP_CEP
+#undef	IN_COPY_TO_HOST
+#undef  API_PROTO
+
+#endif	/* of #if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0 */
+
+#if defined(_IP4_CFG) && ( (TNUM_UDP4_CEPID > 0) || \
+                          ((TNUM_UDP6_CEPID > 0) && defined(API_CFG_IP4MAPPED_ADDR)))
+
+#define UDP_INPUT		udp4_input
+#define UDP_INPUT_SELECT	udp4_input_select
+#define UDP_REPLY_NO_PORT	udp4_reply_no_port
+#define UDP_FIND_CEP		udp4_find_cep
+#define GET_UDP_CEPID		GET_UDP4_CEPID
+#define T_UDP_CEP		T_UDP4_CEP
+#define IN_COPY_TO_HOST		IN4_COPY_TO_HOST
+#define API_PROTO		API_PROTO_IPV4
+
+#include <netinet/udp4_input.c>
+#include <netinet/udpn_input.c>
+
+#endif	/* of #if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0 */
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_output.c	(revision 313)
@@ -0,0 +1,224 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#ifdef SUPPORT_UDP
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#undef	IN_GET_DATAGRAM
+
+#if defined(_IP6_CFG) 
+
+#define UDP_OUTPUT		udp6_output
+#define GET_UDP_CEPID		GET_UDP6_CEPID
+#define T_UDP_CEP		T_UDP6_CEP
+#define API_PROTO		API_PROTO_IPV6
+
+#if defined(_IP4_CFG)
+#define	IN_GET_DATAGRAM		inn_get_datagram
+#else
+#define	IN_GET_DATAGRAM		in6_get_datagram
+#endif
+
+#include <netinet/udpn_output.c>
+
+#undef	UDP_OUTPUT
+#undef	GET_UDP_CEPID
+#undef	T_UDP_CEP
+#undef  API_PROTO
+#undef	IN_GET_DATAGRAM
+
+#endif	/* of #if defined(_IP6_CFG)  */
+
+#if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0
+
+#define UDP_OUTPUT		udp4_output
+#define GET_UDP_CEPID		GET_UDP4_CEPID
+#define T_UDP_CEP		T_UDP4_CEP
+#define API_PROTO		API_PROTO_IPV4
+
+#define	IN_GET_DATAGRAM		in4_get_datagram
+
+#include <netinet/udpn_output.c>
+
+#endif	/* of #if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0 */
+
+/*
+ *  UDP åºåã¿ã¹ã¯
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ */
+
+void
+udp_output_task (intptr_t exinf)
+{
+	ID	tskid;
+	int_t	ix;
+
+	get_tid(&tskid);
+	syslog(LOG_NOTICE, "[UDP OUTPUT:%d] started.", tskid);
+
+
+#if defined(_IP6_CFG) && !defined(SUPPORT_TCP)
+
+	/* IPv6 ã®ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãå®è¡ããã*/
+	in6_if_up(IF_GET_IFNET());
+
+#endif	/* of #if defined(_IP6_CFG) && !defined(SUPPORT_TCP) */
+
+	while (true) {
+
+		/* åºåããã¹ããããã¾ã§å¾
+ã¤ã*/
+		syscall(wai_sem(SEM_UDP_POST_OUTPUT));
+
+#if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0
+
+		for (ix = tmax_udp6_cepid; ix -- > 0; ) {
+
+			if (udp6_cep[ix].flags & UDP_CEP_FLG_POST_OUTPUT) {
+				udp6_cep[ix].flags &= ~UDP_CEP_FLG_POST_OUTPUT;
+				udp6_output(&udp6_cep[ix]);
+				}
+			}
+
+#endif	/* of #if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0 */
+
+#if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0
+
+		for (ix = tmax_udp4_cepid; ix -- > 0; ) {
+
+			if (udp4_cep[ix].flags & UDP_CEP_FLG_POST_OUTPUT) {
+				udp4_cep[ix].flags &= ~UDP_CEP_FLG_POST_OUTPUT;
+				udp4_output(&udp4_cep[ix]);
+				}
+			}
+
+#endif	/* of #if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0 */
+
+		}
+	}
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_subr.c	(revision 313)
@@ -0,0 +1,207 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp_ipcp.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#include <net/if_var.h>
+
+#ifdef SUPPORT_UDP
+
+/*
+ *  å±æå¤æ°
+ */
+
+#if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0)
+
+static uint16_t udp_port_auto = UDP_PORT_FIRST_AUTO;	/* èªåå²ãå½ã¦çªå·	*/
+
+#endif	/* of #if (defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0) || (defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0) */
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0
+
+#if defined(_IP4_CFG) && defined(API_CFG_IP4MAPPED_ADDR)
+
+#define UDP_IS_DSTADDR_ACCEPT	udpn_is_dstaddr_accept
+
+#else	/* of #if defined(_IP4_CFG) */
+
+#define UDP_IS_DSTADDR_ACCEPT	udp6_is_dstaddr_accept
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#define UDP_SEND_DATA		udp6_send_data
+#define UDP_CAN_SND		udp6_can_snd
+#define UDP_CAN_RCV		udp6_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp6_alloc_auto_port
+#define UDP_ALLOC_PORT		udp6_alloc_port
+#define UDP_FIND_CEP		udp6_find_cep
+#define UDP_NOTIFY		udp6_notify
+#define TMAX_UDP_CEPID		tmax_udp6_cepid
+#define UDP_CEP			udp6_cep
+#define T_UDP_CEP		T_UDP6_CEP
+#define T_IPEP			T_IPV6EP
+#define API_PROTO		API_PROTO_IPV6
+
+#include <netinet6/udp6_subr.c>
+#include <netinet/udpn_subr.c>
+
+#undef	UDP_SEND_DATA
+#undef	UDP_CAN_SND
+#undef	UDP_CAN_RCV
+#undef	UDP_ALLOC_AUTO_PORT
+#undef	UDP_ALLOC_PORT
+#undef	UDP_FIND_CEP
+#undef	UDP_NOTIFY
+#undef	UDP_IS_DSTADDR_ACCEPT
+#undef	TMAX_UDP_CEPID
+#undef	UDP_CEP
+#undef	T_UDP_CEP
+#undef  T_IPEP
+#undef  API_PROTO
+
+#endif	/* of #if defined(_IP6_CFG) && TNUM_UDP6_CEPID > 0 */
+
+#if defined(_IP4_CFG) && ( (TNUM_UDP4_CEPID > 0) || \
+                          ((TNUM_UDP6_CEPID > 0) && defined(API_CFG_IP4MAPPED_ADDR)))
+
+#define UDP_IS_DSTADDR_ACCEPT	udp4_is_dstaddr_accept
+
+#define UDP_SEND_DATA		udp4_send_data
+#define UDP_CAN_SND		udp4_can_snd
+#define UDP_CAN_RCV		udp4_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp4_alloc_auto_port
+#define UDP_ALLOC_PORT		udp4_alloc_port
+#define UDP_FIND_CEP		udp4_find_cep
+#define UDP_NOTIFY		udp4_notify
+#define TMAX_UDP_CEPID		tmax_udp4_cepid
+#define T_UDP_CEP		T_UDP4_CEP
+#define UDP_CEP			udp4_cep
+#define T_IPEP			T_IPV4EP
+#define API_PROTO		API_PROTO_IPV4
+
+#include <netinet/udp4_subr.c>
+#include <netinet/udpn_subr.c>
+
+#endif	/* of #if defined(_IP4_CFG) && TNUM_UDP4_CEPID > 0 */
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq.c	(revision 313)
@@ -0,0 +1,283 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp_usrreq.c	8.6 (Berkeley) 5/23/95
+ * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.49.2.2 1999/08/29 16:29:58 peter Exp $
+ */
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµè¾¼ã¾ãªãå ´åã«ãªã³ã¯ãããé¢æ°ã®å®ç¾©
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp_ipcp.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#ifdef SUPPORT_UDP
+
+/*
+ *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
+¨ã¦ã®æ©è½ã
+ *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ */
+
+#ifndef UDP_CFG_LIBRARY
+
+#define __udp_send_data
+#define __udp_cre_cep
+#define __udp_del_cep
+#define __udp_can_cep
+#define __udp_set_opt
+#define __udp_get_opt
+#define __udp_can_snd
+#define __udp_can_rcv
+#define __udp_snd_dat
+#define __udp_rcv_dat
+
+#endif	/* of #ifndef UDP_CFG_LIBRARY */
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#undef	IN_GET_DATAGRAM
+#undef	IN_COPY_TO_HOST
+
+#if defined(SUPPORT_INET6) && TNUM_UDP6_CEPID > 0
+
+#define UDP_CANCEL_CEP		udp6_cancel_cep
+#define UDP_DELETE_CEP		udp6_delete_cep
+#define UDP_SET_OPTION		udp6_set_option
+#define UDP_GET_OPTION		udp6_get_option
+#define UDP_CRE_CEP		udp6_cre_cep
+#define UDP_DEL_CEP		udp6_del_cep
+#define UDP_SET_OPT		udp6_set_opt
+#define UDP_GET_OPT		udp6_get_opt
+#define UDP_SND_DAT		udp6_snd_dat
+#define UDP_RCV_DAT		udp6_rcv_dat
+#define UDP_CAN_SND		udp6_can_snd
+#define UDP_CAN_RCV		udp6_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp6_alloc_auto_port
+#define UDP_ALLOC_PORT		udp6_alloc_port
+#define UDP_SEND_DATA		udp6_send_data
+#define VALID_UDP_CEPID		VALID_UDP6_CEPID
+#define GET_UDP_CEP		GET_UDP6_CEP
+#define GET_UDP_CEPID		GET_UDP6_CEPID
+#define T_UDP_CEP		T_UDP6_CEP
+#define T_UDPN_CCEP		T_UDP6_CCEP
+#define T_IPEP			T_IPV6EP
+#define API_PROTO		API_PROTO_IPV6
+
+#if defined(_IP4_CFG)
+#define	IN_GET_DATAGRAM		inn_get_datagram
+#define IN_COPY_TO_HOST		inn_copy_to_host
+#else
+#define	IN_GET_DATAGRAM		in6_get_datagram
+#define IN_COPY_TO_HOST		IN6_COPY_TO_HOST
+#endif
+
+#include <netinet/udpn_usrreq.c>
+
+#undef	UDP_CANCEL_CEP
+#undef	UDP_DELETE_CEP
+#undef	UDP_SET_OPTION
+#undef	UDP_GET_OPTION
+#undef	UDP_CRE_CEP
+#undef	UDP_DEL_CEP
+#undef	UDP_SET_OPT
+#undef	UDP_GET_OPT
+#undef	UDP_SND_DAT
+#undef	UDP_RCV_DAT
+#undef	UDP_CAN_SND
+#undef	UDP_CAN_RCV
+#undef	UDP_ALLOC_AUTO_PORT
+#undef	UDP_ALLOC_PORT
+#undef	UDP_SEND_DATA
+#undef	VALID_UDP_CEPID
+#undef	GET_UDP_CEP
+#undef	GET_UDP_CEPID
+#undef	T_UDP_CEP
+#undef	T_UDPN_CCEP
+#undef  T_IPEP
+#undef  API_PROTO
+#undef	IN_GET_DATAGRAM
+#undef	IN_COPY_TO_HOST
+
+#endif	/* of #if defined(SUPPORT_INET6) && TNUM_UDP6_CEPID > 0 */
+
+#if defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0
+
+#define UDP_CANCEL_CEP		udp4_cancel_cep
+#define UDP_DELETE_CEP		udp4_delete_cep
+#define UDP_SET_OPTION		udp4_set_option
+#define UDP_GET_OPTION		udp4_get_option
+#define UDP_CRE_CEP		udp_cre_cep
+#define UDP_DEL_CEP		udp_del_cep
+#define UDP_SET_OPT		udp_set_opt
+#define UDP_GET_OPT		udp_get_opt
+#define UDP_SND_DAT		udp_snd_dat
+#define UDP_RCV_DAT		udp_rcv_dat
+#define UDP_CAN_SND		udp4_can_snd
+#define UDP_CAN_RCV		udp4_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp4_alloc_auto_port
+#define UDP_ALLOC_PORT		udp4_alloc_port
+#define UDP_SEND_DATA		udp4_send_data
+#define VALID_UDP_CEPID		VALID_UDP4_CEPID
+#define GET_UDP_CEP		GET_UDP4_CEP
+#define GET_UDP_CEPID		GET_UDP4_CEPID
+#define T_UDP_CEP		T_UDP4_CEP
+#define T_UDPN_CCEP		T_UDP_CCEP
+#define T_IPEP			T_IPV4EP
+#define API_PROTO		API_PROTO_IPV4
+
+#define IN_COPY_TO_HOST		IN4_COPY_TO_HOST
+#define	IN_GET_DATAGRAM		in4_get_datagram
+
+#include <netinet/udpn_usrreq.c>
+
+#endif	/* of #if defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0 */
+
+#if defined(SUPPORT_INET6) && (defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0)
+
+/*
+ *  udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ */
+
+#ifdef __udp_can_cep
+
+ER
+udp_can_cep (ID cepid, FN fncd)
+{
+	/* IPv6 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (VALID_UDP6_CEPID(cepid)) {
+
+		/* UDP éä¿¡ç«¯ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+		return udp6_cancel_cep(GET_UDP6_CEP(cepid), fncd);
+		}
+
+	/* IPv4 ç¨ã® UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	else if (VALID_UDP4_CEPID(cepid)) {
+
+		/* UDP éä¿¡ç«¯ç¹ãå¾ã¦ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+		return udp4_cancel_cep(GET_UDP4_CEP(cepid), fncd);
+		}
+
+	else
+		return E_ID;
+	}
+
+#endif	/* of #ifdef __udp_can_cep */
+
+#endif	/* of #if defined(SUPPORT_INET6) && (defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0) */
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq_nblk.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_usrreq_nblk.c	(revision 313)
@@ -0,0 +1,211 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp_usrreq.c	8.6 (Berkeley) 5/23/95
+ * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.49.2.2 1999/08/29 16:29:58 peter Exp $
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+#include <net/ppp_ipcp.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/udp.h>
+#include <netinet/udp_var.h>
+
+#ifdef SUPPORT_UDP
+
+/*
+ *  TINET ãã©ã¤ãã©ãªåããªãå ´åã¯ãå
+¨ã¦ã®æ©è½ã
+ *  ãªãã¸ã§ã¯ããã¡ã¤ã«ã«åºåããããããã¯ã­ãæå¹ã«ããã
+ */
+
+#ifndef UDP_CFG_LIBRARY
+
+#define __udp_can_snd_nblk
+#define __udp_can_rcv_nblk
+#define __udp_snd_dat_nblk
+#define __udp_rcv_dat_nblk
+
+#endif	/* of #ifndef UDP_CFG_LIBRARY */
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+/*
+ *  IPv6 ã¨ IPv4 ã§å¼æ°ãç°ãªãé¢æ°ã®ã³ã³ãã¤ã«
+ */
+
+#undef	IN_COPY_TO_HOST
+
+#if defined(SUPPORT_INET6) && TNUM_UDP6_CEPID > 0
+
+#define UDP_SND_DAT		udp6_snd_dat
+#define UDP_RCV_DAT		udp6_rcv_dat
+#define UDP_CAN_SND		udp6_can_snd
+#define UDP_CAN_RCV		udp6_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp6_alloc_auto_port
+#define UDP_SEND_DATA		udp6_send_data
+#define VALID_UDP_CEPID		VALID_UDP6_CEPID
+#define GET_UDP_CEP		GET_UDP6_CEP
+#define GET_UDP_CEPID		GET_UDP6_CEPID
+#define T_UDP_CEP		T_UDP6_CEP
+#define T_IPEP			T_IPV6EP
+#define API_PROTO		API_PROTO_IPV6
+
+#if defined(SUPPORT_INET4)
+#define IN_COPY_TO_HOST		inn_copy_to_host
+#else
+#define IN_COPY_TO_HOST		IN6_COPY_TO_HOST
+#endif
+
+#include <netinet/udpn_usrreq_nblk.c>
+
+#undef	UDP_SND_DAT
+#undef	UDP_RCV_DAT
+#undef	UDP_CAN_SND
+#undef	UDP_CAN_RCV
+#undef	UDP_ALLOC_AUTO_PORT
+#undef	UDP_SEND_DATA
+#undef	VALID_UDP_CEPID
+#undef	GET_UDP_CEP
+#undef	GET_UDP_CEPID
+#undef	T_UDP_CEP
+#undef  T_IPEP
+#undef  API_PROTO
+#undef	IN_COPY_TO_HOST
+
+#endif	/* of #if defined(SUPPORT_INET6) && TNUM_UDP6_CEPID > 0 */
+
+#if defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0
+
+#define UDP_SND_DAT		udp_snd_dat
+#define UDP_RCV_DAT		udp_rcv_dat
+#define UDP_CAN_SND		udp4_can_snd
+#define UDP_CAN_RCV		udp4_can_rcv
+#define UDP_ALLOC_AUTO_PORT	udp4_alloc_auto_port
+#define UDP_SEND_DATA		udp4_send_data
+#define VALID_UDP_CEPID		VALID_UDP4_CEPID
+#define GET_UDP_CEP		GET_UDP4_CEP
+#define GET_UDP_CEPID		GET_UDP4_CEPID
+#define T_UDP_CEP		T_UDP4_CEP
+#define T_IPEP			T_IPV4EP
+#define API_PROTO		API_PROTO_IPV4
+
+#define IN_COPY_TO_HOST		IN4_COPY_TO_HOST
+
+#include <netinet/udpn_usrreq_nblk.c>
+
+#endif	/* of #if defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0 */
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+#endif	/* of #ifdef SUPPORT_UDP */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udp_var.h	(revision 313)
@@ -0,0 +1,334 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1989, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp_var.h	8.1 (Berkeley) 6/10/93
+ * $FreeBSD: src/sys/netinet/udp_var.h,v 1.16.2.2 1999/08/29 16:29:59 peter Exp $
+ */
+ 
+#ifndef _UDP_VAR_H_
+#define _UDP_VAR_H_
+
+/*
+ *  UDP ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define GET_UDP_HDR(nbuf,uhoff)		((T_UDP_HDR*)((uint8_t*)((nbuf)->buf) + uhoff))
+#define GET_UDP_HDR_OFFSET(nbuf)	(GET_IF_IP_HDR_SIZE(nbuf))
+#define GET_UDP_SDU(nbuf,uhoff)		((uint8_t*)((nbuf)->buf) + uhoff+ UDP_HDR_SIZE)
+
+#define IF_IP_UDP_HDR_SIZE(nbuf)	(IF_IP_HDR_SIZE(nbuf) + UDP_HDR_SIZE)
+#define IF_IP_UDP_HDR_OFFSET(nbuf)	(IF_IP_HDR_SIZE(nbuf))
+
+/*
+ *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#if defined(_IP4_CFG)
+
+#define IP4_UDP_HDR_SIZE		IP_UDP_HDR_SIZE
+#define IF_IP4_UDP_HDR_SIZE		IF_IP_UDP_HDR_SIZE
+#define GET_IP4_UDP_HDR_SIZE(nbuf)	GET_IP_UDP_HDR_SIZE(nbuf)	
+#define GET_IF_IP4_UDP_HDR_SIZE(nbuf)	GET_IF_IP_UDP_HDR_SIZE(nbuf)
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+/*
+ *  ã³ã¼ã«ããã¯é¢æ°ã®å®ç¾©
+ */
+
+typedef ER	(*t_udp_callback)(ID cepid, FN fncd, void *p_parblk);
+
+/*
+ *  UDP éä¿¡ç«¯ç¹
+ */
+
+/* IPv6 ç¨ UDP éä¿¡ç«¯ç¹ */
+
+typedef struct t_udp6_cep {
+
+	/*
+	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 */
+	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
+	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+
+	/*
+	 * TINET ç¬èªã®ã¡ã³ã
+	 */
+	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
+	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
+	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
+	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+	T_IPV6EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
+	T_IPV6EP 	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
+	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
+	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+#ifdef UDP_CFG_EXTENTIONS
+	ER		error;		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+#endif
+
+	} T_UDP6_CEP;
+
+/* IPv4 ç¨ UDP éä¿¡ç«¯ç¹ */
+
+typedef struct t_udp4_cep {
+
+	/*
+	 * ITRON TCP/IP APIãTCP éä¿¡ç«¯ç¹ã¨åãã¡ã³ã
+	 */
+	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
+	T_IPV4EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	t_udp_callback	callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+
+	/*
+	 * TINET ç¬èªã®ã¡ã³ã
+	 */
+	uint16_t	flags;		/* éä¿¡ç«¯ç¹ãã©ã°		*/
+	ID		semid_lock;	/* éä¿¡ç«¯ç¹ã­ãã¯		*/
+	ID		snd_tskid;	/* éä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	ID		rcv_tskid;	/* åä¿¡ã¿ã¹ã¯è­å¥å­		*/
+	ID		rcvqid;		/* éã³ã¼ã«ããã¯ç¨åä¿¡ã­ã¥ã¼è­å¥å­*/
+	T_NET_BUF	*cb_netbuf;	/* ã³ã¼ã«ããã¯ç¨åä¿¡ãããã¯ã¼ã¯ãããã¡*/
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+	T_IPV4EP 	*snd_p_dstaddr;	/* éä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
+	T_IPV4EP	*rcv_p_dstaddr;	/* åä¿¡ç¸æã®ã¢ãã¬ã¹ã¸ã®ãã¤ã³ã¿*/
+	void		*snd_data;	/* éä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		snd_len;	/* éä¿¡ãã¼ã¿é åã®é·ã		*/
+	void		*rcv_data;	/* åä¿¡ãã¼ã¿é åã®å
+é ­ã¢ãã¬ã¹	*/
+	int_t		rcv_len;	/* åä¿¡ãã¼ã¿é åã®é·ã		*/
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+#ifdef UDP_CFG_EXTENTIONS
+	ER		error;		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼	*/
+#endif
+
+	} T_UDP4_CEP;
+
+#if defined(_IP6_CFG)
+
+#define T_UDP_CEP	T_UDP6_CEP
+
+#else	/* of #if defined(_IP6_CFG) */
+
+#if defined(_IP4_CFG)
+
+#define T_UDP_CEP	T_UDP4_CEP
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+#endif	/* of #if defined(_IP6_CFG) */
+
+/*
+ *  UDP éä¿¡ç«¯ç¹ãã©ã°
+ */
+
+#define UDP_CEP_FLG_POST_OUTPUT	UINT_C(0x0200)	/* éä¿¡ãéå§ããã		*/
+#define UDP_CEP_FLG_DYNAMIC	UINT_C(0x0400)	/* åççæã»åé¤å¯è½éä¿¡ç«¯ç¹ã	*/
+#define UDP_CEP_FLG_VALID	UINT_C(0x0800)	/* çææ¸ã¿ã§æå¹ãªéä¿¡ç«¯ç¹ã	*/
+
+/*
+ *  ãªãã¸ã§ã¯ã ID ã®æå°å¤ã®å®ç¾©
+ */
+
+#define	TMIN_UDP_CEPID		1			/* UDP      éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
+#define	TMIN_UDP6_CEPID		1			/* UDP/IPv6 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
+#define	TMIN_UDP4_CEPID		(TNUM_UDP6_CEPID+1)	/* UDP/IPv4 éä¿¡ç«¯ç¹ ID ã®æå°å¤ */
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_udp_stats {
+	uint32_t	udpInDatagrams;
+	uint32_t	udpNoPorts;
+	uint32_t	udpInErrors;
+	uint32_t	udpOutDatagrams;
+} T_UDP_STATS;
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define VALID_UDP6_CEPID(id)	(TMIN_UDP6_CEPID<=(id)&&(id)<=tmax_udp6_cepid)
+#define VALID_UDP4_CEPID(id)	(TMIN_UDP4_CEPID<=(id)&&(id)<=tmax_udp4_cepid)
+
+#define INDEX_UDP6_CEP(id)	((id)-TMIN_UDP6_CEPID)
+#define INDEX_UDP4_CEP(id)	((id)-TMIN_UDP4_CEPID)
+
+#define GET_UDP6_CEP(id)	(&(udp6_cep[INDEX_UDP6_CEP(id)]))
+#define GET_UDP4_CEP(id)	(&(udp4_cep[INDEX_UDP4_CEP(id)]))
+
+#define GET_UDP6_CEPID(cep)	((ID)(((cep)-udp6_cep)+TMIN_UDP6_CEPID))
+#define GET_UDP4_CEPID(cep)	((ID)(((cep)-udp4_cep)+TMIN_UDP4_CEPID))
+
+#define VALID_TFN_UDP_CAN(t)	((t)==TFN_UDP_SND_DAT||(t)==TFN_UDP_RCV_DAT||\
+				 (t)==TFN_UDP_ALL)
+
+#define VALID_UDP_CEP(cep)	(((cep)->flags&UDP_CEP_FLG_VALID)!=0)
+#define DYNAMIC_UDP_CEP(cep)	(((cep)->flags&UDP_CEP_FLG_DYNAMIC)!=0)
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+extern T_UDP_STATS udp_stats;
+
+/* UDP éä¿¡ç«¯ç¹ */
+
+extern T_UDP6_CEP udp6_cep[];
+extern T_UDP4_CEP udp4_cep[];
+
+#if defined(SUPPORT_INET6)
+#define udp_cep	udp6_cep
+#elif defined(SUPPORT_INET4)
+#define udp_cep	udp4_cep
+#endif
+
+extern const ID tmax_udp_cepid;
+
+#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)
+extern const ID tmax_udp6_cepid;
+extern const ID tmax_udp4_cepid;
+#else
+#define tmax_udp6_cepid	tmax_udp_cepid
+#define tmax_udp4_cepid	tmax_udp_cepid
+#endif
+
+/*
+ *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#define	TMIN_UDP_CCEPID		TMIN_UDP_CEPID
+#define	TNUM_UDP_CCEPID		TNUM_UDP_CEPID
+
+/*
+ *  é¢æ°
+ */
+
+/* IPv6 */
+
+extern uint_t udp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern ER_UINT udp6_send_data (T_UDP6_CEP *cep, T_IPV6EP *p_dstaddr,
+                               void *data, int_t len, TMO tmout);
+extern ER udp6_can_snd (T_UDP6_CEP *cep, ER error);
+extern ER udp6_can_rcv (T_UDP6_CEP *cep, ER error);
+extern ER udp6_alloc_auto_port (T_UDP6_CEP *cep);
+extern ER udp6_alloc_port (T_UDP6_CEP *cep, uint16_t portno);
+extern T_UDP6_CEP*udp6_find_cep (T_NET_BUF *input, uint_t off);
+extern void udp6_notify (T_NET_BUF *input, ER error);
+extern void udp6_input_select (T_UDP6_CEP *cep, T_NET_BUF *input, uint_t off);
+
+/* IPv4 */
+
+extern uint_t udp4_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern ER_UINT udp4_send_data (T_UDP4_CEP *cep, T_IPV4EP *p_dstaddr,
+                               void *data, int_t len, TMO tmout);
+extern ER udp4_can_snd (T_UDP4_CEP *cep, ER error);
+extern ER udp4_can_rcv (T_UDP4_CEP *cep, ER error);
+extern ER udp4_alloc_auto_port (T_UDP4_CEP *cep);
+extern ER udp4_alloc_port (T_UDP4_CEP *cep, uint16_t portno);
+extern T_UDP4_CEP*udp4_find_cep (T_NET_BUF *input, uint_t off);
+extern void udp4_notify (T_NET_BUF *input, ER error);
+extern void udp4_input_select (T_UDP4_CEP *cep, T_NET_BUF *input, uint_t off);
+
+/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãè¡ãå ´åã«çµã¿è¾¼ãã¿ã¹ã¯ */
+
+extern void	udp_output_task(intptr_t exinf);
+
+#endif	/* of #ifndef _UDP_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_input.c	(revision 313)
@@ -0,0 +1,252 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#if (API_PROTO == API_PROTO_IPV6) || (TNUM_UDP4_CEPID > 0)
+
+/*
+ *  udp_input_select -- UDP ã®å
+¥åå¦çã®é¸æ
+ */
+
+void
+UDP_INPUT_SELECT (T_UDP_CEP *cep, T_NET_BUF *input, uint_t off)
+{
+	T_UDP_HDR	*udph;
+	uint_t		len;
+
+	udph = (T_UDP_HDR *)(input->buf + off);
+	len  = (uint_t)(ntohs(udph->ulen) - UDP_HDR_SIZE);
+
+	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		if (psnd_dtq(cep->rcvqid, (intptr_t)input) != E_OK) {
+			NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
+			NET_COUNT_MIB(udp_stats.udpInErrors, 1);
+			syscall(rel_net_buf(input));
+			}
+		}
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+	else if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+
+		/* p_dstaddr ãè¨­å®ããã*/
+		cep->rcv_p_dstaddr->portno = ntohs(udph->sport);
+		IN_COPY_TO_HOST(&cep->rcv_p_dstaddr->ipaddr, input);
+
+		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+		memcpy(cep->rcv_data, GET_UDP_SDU(input, off),
+		       (size_t)(len < cep->rcv_len ? len : cep->rcv_len));
+		syscall(rel_net_buf(input));
+
+		if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)(uint32_t)len);
+#else
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)&len);
+#endif
+		else
+			syslog(LOG_WARNING, "[UDP] no call back, CEP: %d.", GET_UDP_CEPID(cep));
+		cep->rcv_p_dstaddr = NULL;
+		}
+
+#endif/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+	else if (IS_PTR_DEFINED(cep->callback)) {
+
+		/* ã³ã¼ã«ããã¯é¢æ°ãå¼ã³åºãã*/
+		cep->cb_netbuf = input;
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)(uint32_t)len);
+#else
+		(*cep->callback)(GET_UDP_CEPID(cep), TEV_UDP_RCV_DAT, (void*)&len);
+#endif
+		/*
+		 *  ãããã¯ã¼ã¯ãããã¡ããã®ã¾ã¾ã§ããã°ãã³ã¼ã«ããã¯é¢æ°å
+ã§
+		 *  ãã¼ã¿ãèª­ã¿åºããªãã£ããã¨ã«ãªãã®ã§ãæ¨ã¦ãã
+		 */
+		if (cep->cb_netbuf != NULL)
+			syscall(rel_net_buf(cep->cb_netbuf));
+		}
+	else {
+		NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
+		NET_COUNT_MIB(udp_stats.udpInErrors, 1);
+		syscall(rel_net_buf(input));
+		}
+
+	}
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) || (TNUM_UDP4_CEPID > 0) */
+
+/*
+ *  udp_input -- UDP ã®å
+¥åé¢æ°
+ */
+
+uint_t
+UDP_INPUT (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_UDP_CEP	*cep;
+	T_UDP_HDR	*udph;
+	uint_t		hlen, ulen;
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4
+	T_UDP6_CEP	*cep6;
+#endif
+
+	hlen = (uint_t)GET_IF_IP_HDR_SIZE(input);
+
+	NET_COUNT_UDP(net_count_udp.in_octets,  input->len - hlen);
+	NET_COUNT_UDP(net_count_udp.in_packets, 1);
+	NET_COUNT_MIB(udp_stats.udpInDatagrams, 1);
+
+	/* ãããé·ããã§ãã¯ããã*/
+	if (input->len < hlen + UDP_HDR_SIZE)
+		goto buf_rel;
+
+	udph = (T_UDP_HDR *)(input->buf + *offp);
+
+	/* ãã¼ã¿ã°ã©ã é·ããã§ãã¯ãã */
+	ulen  = ntohs(udph->ulen);
+	if (ulen != input->len - hlen)
+		goto buf_rel;
+
+	/* å®å
+ãã¼ãã 0 ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ãããRFC768 */
+	if (udph->dport == 0)
+		goto buf_rel;
+
+#ifdef UDP_CFG_IN_CHECKSUM
+
+	/* ãã§ãã¯ãµã ããã§ãã¯ãã */
+	if (udph->sum && IN_CKSUM(input, IPPROTO_UDP, *offp, ulen) != 0)
+		goto buf_rel;
+
+#endif	/* of #ifdef UDP_CFG_IN_CHECKSUM */
+
+#if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4
+
+#if TNUM_UDP4_CEPID > 0
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = udp4_find_cep(input, *offp);
+
+	if (cep != NULL)
+		udp4_input_select(cep, input, *offp);
+	else if ((cep6 = udp6_find_cep(input, *offp)) != NULL)
+		udp6_input_select(cep6, input, *offp);
+	else
+		udp4_reply_no_port(input, *offp);
+
+	return IPPROTO_DONE;
+
+#else	/* of #if TNUM_UDP4_CEPID > 0 */
+
+	cep = 0;	/* warning åé¿ç¨ã®ããã¼ */
+	if ((cep6 = udp6_find_cep(input, *offp)) != NULL)
+		udp6_input_select(cep6, input, *offp);
+	else
+		udp4_reply_no_port(input, *offp);
+
+	return IPPROTO_DONE;
+
+#endif	/* of #if TNUM_UDP4_CEPID > 0 */
+
+#else	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4 */
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = UDP_FIND_CEP(input, *offp);
+
+	if (cep != NULL)
+		UDP_INPUT_SELECT(cep, input, *offp);
+	else
+		UDP_REPLY_NO_PORT(input, *offp);
+
+	return IPPROTO_DONE;
+
+#endif	/* of #if defined(_IP6_CFG) && defined(_IP4_CFG) && API_PROTO == API_PROTO_IPV4 */
+
+buf_rel:
+	NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
+	NET_COUNT_MIB(udp_stats.udpInErrors, 1);
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_output.c	(revision 313)
@@ -0,0 +1,175 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ *  udp_output -- UDP ã®åºåé¢æ°
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ãçµã¿è¾¼ãã ã¨ãä½¿ç¨ããã
+ */
+
+static void
+UDP_OUTPUT (T_UDP_CEP *cep)
+{
+	T_NET_BUF	*output;
+	T_UDP_HDR	*udph;
+	ER_UINT		error;
+
+#ifdef UDP_CFG_OUT_CHECKSUM
+	uint16_t	sum;
+#endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
+
+	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + cep->snd_len), 0,
+	                             &cep->snd_p_dstaddr->ipaddr,
+	                             &cep->myaddr.ipaddr,
+	                             IPPROTO_UDP, IP_DEFTTL, 
+	                             NBA_SEARCH_ASCENT, TMO_UDP_OUTPUT)) != E_OK) {
+		goto err_ret;
+		}
+
+	/* UDP ãããã«æ
+å ±ãè¨­å®ããã*/
+	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output));
+	udph->sport	= htons(cep->myaddr.portno);
+	udph->dport	= htons(cep->snd_p_dstaddr->portno);
+	udph->ulen	= htons(UDP_HDR_SIZE + cep->snd_len);
+	udph->sum	= 0;
+
+	/* ãã¼ã¿ãã³ãã¼ããã*/
+	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)),
+	       cep->snd_data, (size_t)cep->snd_len);
+
+#ifdef UDP_CFG_OUT_CHECKSUM
+
+	sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET(output),
+	               (uint_t)(UDP_HDR_SIZE + cep->snd_len));
+
+	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
+¥ããã*/
+	if (sum == 0)
+		sum = UINT_C(0xffff);
+	udph->sum = sum;
+
+#endif/* of #ifdef UDP_CFG_OUT_CHECKSUM */
+
+	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + cep->snd_len);
+
+	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	if ((error = IP_OUTPUT(output, TMO_UDP_OUTPUT)) != E_OK)
+		goto err_ret;
+
+
+	NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
+
+	if (IS_PTR_DEFINED(cep->callback)) {
+
+		if (error == E_OK)
+			error = cep->snd_len;
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+		(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)error);
+#else
+		(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)&error);
+#endif
+		}
+	else
+		syslog(LOG_WARNING, "[UDP] no call back, CEP: %d.", GET_UDP_CEPID(cep));
+	cep->snd_p_dstaddr = NULL;
+	return;
+
+err_ret:
+	NET_COUNT_UDP(net_count_udp.out_err_packets, 1);
+	if (IS_PTR_DEFINED(cep->callback)) {
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+
+		(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)E_NOMEM);
+
+#else	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+		error = E_NOMEM;
+		(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)&error);
+
+#endif	/* of #ifdef TCP_CFG_NON_BLOCKING_COMPAT14 */
+
+		}
+	else
+		syslog(LOG_WARNING, "[UDP] no call back, CEP: %d.", GET_UDP_CEPID(cep));
+	cep->snd_p_dstaddr = NULL;
+	return;
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_subr.c	(revision 313)
@@ -0,0 +1,170 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ *  udp_alloc_auto_port -- èªåå²ãå½ã¦ãã¼ãçªå·ãè¨­å®ããã
+ */
+
+ER
+UDP_ALLOC_AUTO_PORT (T_UDP_CEP *cep)
+{
+	int_t	ix;
+	uint16_t	portno, portno_start;
+
+	portno_start = udp_port_auto;
+	do {
+		portno = udp_port_auto ++;
+		if (udp_port_auto > UDP_PORT_LAST_AUTO)
+			udp_port_auto = UDP_PORT_FIRST_AUTO;
+
+		syscall(wai_sem(SEM_UDP_CEP));
+		for (ix = TMAX_UDP_CEPID; ix -- > 0; ) {
+			if (VALID_UDP_CEP(&UDP_CEP[ix]) && UDP_CEP[ix].myaddr.portno == portno) {
+				portno = UDP_PORTANY;
+				break;
+				}
+			}
+
+		if (portno != UDP_PORTANY) {
+			cep->myaddr.portno = portno;
+			syscall(sig_sem(SEM_UDP_CEP));
+			return E_OK;
+			}
+		syscall(sig_sem(SEM_UDP_CEP));
+
+		} while (portno_start != udp_port_auto);
+
+	return E_NOID;
+	}
+
+/*
+ *  udp_alloc_port -- æå®ããããã¼ãçªå·ãè¨­å®ããã
+ */
+
+ER
+UDP_ALLOC_PORT (T_UDP_CEP *cep, uint16_t portno)
+{
+	int_t	ix;
+
+	syscall(wai_sem(SEM_UDP_CEP));
+	for (ix = TMAX_UDP_CEPID; ix -- > 0; )
+		if (VALID_UDP_CEP(&UDP_CEP[ix]) && UDP_CEP[ix].myaddr.portno == portno) {
+			syscall(sig_sem(SEM_UDP_CEP));
+			return E_PAR;
+			}
+	cep->myaddr.portno = portno;
+	syscall(sig_sem(SEM_UDP_CEP));
+	return E_OK;
+	}
+
+/*
+ *  udp_find_cep -- ãã¼ãçªå·ãã UDP éä¿¡ç«¯ç¹ãå¾ãã
+ */
+
+T_UDP_CEP*
+UDP_FIND_CEP (T_NET_BUF *input, uint_t off)
+{
+	T_UDP_CEP*	cep;
+	T_UDP_HDR	*udph;
+
+	udph = GET_UDP_HDR(input, off);
+	
+	/*
+	 *  IP ã¢ãã¬ã¹ã¨ãã¼ãçªå·ãä¸è´ããéä¿¡ç«¯ç¹ãæ¢ç´¢ããã
+	 */
+	for (cep = &UDP_CEP[TMAX_UDP_CEPID]; cep -- != UDP_CEP; ) {
+		if (VALID_UDP_CEP(cep)                                &&
+		    UDP_IS_DSTADDR_ACCEPT(&cep->myaddr.ipaddr, input) &&
+		    ntohs(udph->dport) == cep->myaddr.portno)
+			return cep;
+		}
+
+	return NULL;
+	}
+
+/*
+ *  udp_notify -- ICMP ã¨ã©ã¼ã®å¦ç
+ */
+
+void
+UDP_NOTIFY (T_NET_BUF *input, ER error)
+{
+	if (UDP_FIND_CEP(input, GET_UDP_HDR_OFFSET(input)) != NULL) {
+		syslog(LOG_NOTICE, "[UDP] error, code: %d.", error);
+		}
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq.c	(revision 313)
@@ -0,0 +1,776 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp_usrreq.c	8.6 (Berkeley) 5/23/95
+ * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.49.2.2 1999/08/29 16:29:58 peter Exp $
+ */
+
+#ifdef __udp_send_data
+
+/*
+ *  udp_send_data -- ãã±ããéä¿¡ã®ä¸»è¦é¨
+ */
+
+ER_UINT
+UDP_SEND_DATA (T_UDP_CEP *cep, T_IPEP *p_dstaddr, void *data, int_t len, TMO tmout)
+{
+	T_NET_BUF	*output;
+	T_UDP_HDR	*udph;
+	SYSTIM		before, after;
+	ER		error = E_OK;
+
+#ifdef UDP_CFG_OUT_CHECKSUM
+	uint16_t	sum;
+#endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
+
+	NET_COUNT_UDP(net_count_udp.out_octets,  len);
+	NET_COUNT_UDP(net_count_udp.out_packets, 1);
+
+	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	if (!(tmout == TMO_POL || tmout == TMO_FEVR))
+		syscall(get_tim(&before));
+
+	/* IP ãã¼ã¿ã°ã©ã ãå²ãå½ã¦ãã*/
+	if ((error = IN_GET_DATAGRAM(&output, (uint_t)(UDP_HDR_SIZE + len), 0,
+	                             &p_dstaddr->ipaddr,
+	                             &cep->myaddr.ipaddr,
+	                             IPPROTO_UDP, IP_DEFTTL, 
+	                             NBA_SEARCH_ASCENT, tmout)) != E_OK)
+		goto err_ret;
+
+	/* IP ãã¼ã¿ã°ã©ã å²ãå½ã¦ã®æéã tmout ããæ¸ããã*/
+	if (!(tmout == TMO_POL || tmout == TMO_FEVR)) {
+		syscall(get_tim(&after));
+		if (after - before > tmout) {
+			syscall(rel_net_buf(output));
+			error = E_TMOUT;
+			goto err_ret;
+			}
+		tmout -= (TMO)(after - before);
+		}
+
+	/* UDP ãããã«æ
+å ±ãè¨­å®ããã*/
+	udph		= GET_UDP_HDR(output, IF_IP_UDP_HDR_OFFSET(output));
+	udph->sport	= htons(cep->myaddr.portno);
+	udph->dport	= htons(p_dstaddr->portno);
+	udph->ulen	= htons(UDP_HDR_SIZE + len);
+	udph->sum	= 0;
+
+	/* ãã¼ã¿ãã³ãã¼ããã*/
+	memcpy((void*)GET_UDP_SDU(output, IF_IP_UDP_HDR_OFFSET(output)), data, (size_t)len);
+
+#ifdef UDP_CFG_OUT_CHECKSUM
+
+	sum = IN_CKSUM(output, IPPROTO_UDP, IF_IP_UDP_HDR_OFFSET(output), (uint_t)(UDP_HDR_SIZE + len));
+
+	/* è¨ç®ãããã§ãã¯ãµã ã®å¤ã 0 ãªã 0xffff ãå
+¥ããã*/
+	if (sum == 0)
+		sum = 0xffff;
+	udph->sum = sum;
+
+#endif	/* of #ifdef UDP_CFG_OUT_CHECKSUM */
+
+	/* ãããã¯ã¼ã¯ãããã¡é·ãèª¿æ´ããã*/
+	output->len = (uint16_t)(IF_IP_UDP_HDR_SIZE(output) + len);
+
+	/* ãããã¯ã¼ã¯å±¤ (IP) ã®åºåé¢æ°ãå¼ã³åºãã*/
+	if ((error = IP_OUTPUT(output, tmout)) == E_OK) {
+		NET_COUNT_MIB(udp_stats.udpOutDatagrams, 1);
+		cep->snd_tskid = TA_NULL;
+		return len;
+		}
+
+err_ret:
+	NET_COUNT_UDP(net_count_udp.out_err_packets, 1);
+	cep->snd_tskid = TA_NULL;
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_send_data */
+
+/*
+ *  udp_cancel_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çãã­ã£ã³ã»ã«ããã
+ *
+ *    udp_can_cep ããå¼åºãããã¡ã¤ã³é¢æ°
+ */
+
+#ifdef __udp_can_cep
+
+static ER
+UDP_CANCEL_CEP (T_UDP_CEP *cep, FN fncd)
+{
+	ER	error = E_OK, snd_err, rcv_err;
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/* API æ©è½ã³ã¼ãããã§ãã¯ããã*/
+	if (!VALID_TFN_UDP_CAN(fncd))
+		return E_PAR;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if (fncd == TFN_UDP_ALL) {	/* TFN_UDP_ALL ã®å¦ç */
+
+		snd_err = UDP_CAN_SND(cep, E_RLWAI);
+		rcv_err = UDP_CAN_RCV(cep, E_RLWAI);
+
+		/*
+		 *  snd_err ã¨ rcv_err ã®ã©ã¡ãã EV_NOPND
+		 *  ãªãããã³ãã£ã³ã°ãã¦ããªãã®ã§ã¨ã©ã¼
+		 */
+		if (snd_err == EV_NOPND && rcv_err == EV_NOPND)
+			error = E_OBJ;
+		else {
+			if (snd_err == EV_NOPND)
+				snd_err = E_OK;
+			if (rcv_err == EV_NOPND)
+				rcv_err = E_OK;
+
+			if (snd_err != E_OK)
+				error = snd_err;
+			else if (rcv_err != E_OK)
+				error = rcv_err;
+			}
+		}
+	else if (fncd == TFN_UDP_SND_DAT) {	/* éä¿¡å¦çã®ã­ã£ã³ã»ã« */
+		if ((error = UDP_CAN_SND(cep, E_RLWAI)) == EV_NOPND)
+			error = E_OBJ;
+		}
+	else if (fncd == TFN_UDP_RCV_DAT) {	/* åä¿¡å¦çã®ã­ã£ã³ã»ã« */
+		if ((error = UDP_CAN_RCV(cep, E_RLWAI)) == EV_NOPND)
+			error = E_OBJ;
+		}
+	else
+		error = E_PAR;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_can_cep */
+
+#if defined(SUPPORT_INET6) && (defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0)
+
+#else	/* of #if defined(SUPPORT_INET6) && (defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0) */
+
+/*
+ *  udp_can_cep -- ãã³ãã£ã³ã°ãã¦ããå¦çã®ã­ã£ã³ã»ã«ãæ¨æºæ©è½ã
+ */
+
+#ifdef __udp_can_cep
+
+ER
+udp_can_cep (ID cepid, FN fncd)
+{
+	T_UDP_CEP	*cep;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	return UDP_CANCEL_CEP(cep, fncd);
+	}
+
+#endif	/* of #ifdef __udp_can_cep */
+
+#endif	/* of #if defined(SUPPORT_INET6) && (defined(SUPPORT_INET4) && TNUM_UDP4_CEPID > 0) */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+/*
+ *  udp_cre_cep -- UDP éä¿¡ç«¯ç¹ã®çæãæ¡å¼µæ©è½ã
+ */
+
+#ifdef __udp_cre_cep
+
+ER
+UDP_CRE_CEP (ID cepid, T_UDPN_CCEP *pk_ccep)
+{
+	T_UDP_CEP	*cep;
+	ER		error;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* pk_ccep ã NULL ãªãã¨ã©ã¼ */
+	if (pk_ccep == NULL)
+		return E_PAR;
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&pk_ccep->myaddr.ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (VALID_UDP_CEP(cep))
+		return E_OBJ;
+
+	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_UDP_CEP(cep))
+		return E_ID;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããçææ¸ã¿ã§ããã°ã¨ã©ã¼
+	 */
+	if (VALID_UDP_CEP(cep))
+		error = E_OBJ;
+	else {
+
+		/*
+		 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+		 */
+		if (pk_ccep->myaddr.portno == UDP_PORTANY)
+			error = UDP_ALLOC_AUTO_PORT(cep);
+		else 
+			error = UDP_ALLOC_PORT(cep, pk_ccep->myaddr.portno);
+		
+                if (error == E_OK) {
+
+			/* UDP éä¿¡ç«¯ç¹çææ
+å ±ãã³ãã¼ããã*/
+			cep->cepatr        = pk_ccep->cepatr;			/* éä¿¡ç«¯ç¹å±æ§		*/
+			cep->myaddr.ipaddr = pk_ccep->myaddr.ipaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+			cep->callback      = (void*)pk_ccep->callback;		/* ã³ã¼ã«ããã¯		*/
+
+			/* UDP éä¿¡ç«¯ç¹ãçææ¸ã¿ã«ããã*/
+			cep->flags |= UDP_CEP_FLG_VALID;
+			}
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_cre_cep */
+
+#ifdef __udp_del_cep
+
+/*
+ *  udp_delete_cep -- UDP éä¿¡ç«¯ç¹ãåé¤ããã
+ *
+ *    udp_del_cep ããå¼åºãããã¡ã¤ã³é¢æ°
+ */
+
+static ER
+UDP_DELETE_CEP (T_UDP_CEP *cep)
+{
+	ER	error;
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/* UDP éä¿¡ç«¯ç¹ããåççæç¨ã§ãªããã°ã¨ã©ã¼ */
+	if (!DYNAMIC_UDP_CEP(cep))
+		return E_ID;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	/*
+	 * UDP éä¿¡ç«¯ç¹ããã§ãã¯ãããæªçæã®å ´åã¯ã¨ã©ã¼
+	 * ã»æªçæã
+	 */
+	if (!VALID_UDP_CEP(cep))
+		error = E_NOEXS;
+	else {
+		UDP_CAN_SND(cep, E_DLT);
+		UDP_CAN_RCV(cep, E_DLT);
+
+		/* UDP éä¿¡ç«¯ç¹ãæªçæã«ããã*/
+		cep->flags &= ~UDP_CEP_FLG_VALID;
+		error = E_OK;
+		}
+
+	/* éä¿¡ç«¯ç¹ã®ã­ãã¯ãè§£é¤ããã*/
+	syscall(sig_sem(cep->semid_lock));
+
+	return error;
+	}
+
+/*
+ *  udp_del_cep -- UDP éä¿¡ç«¯ç¹ã®åé¤ãæ¡å¼µæ©è½ã
+ */
+
+ER
+UDP_DEL_CEP (ID cepid)
+{
+	T_UDP_CEP	*cep;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	return UDP_DELETE_CEP(cep);
+	}
+
+#endif	/* of #ifdef __udp_del_cep */
+
+#ifdef __udp_set_opt
+
+/*
+ *  udp_set_option -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãè¨­å®ããã
+ *
+ *    udp_set_opt ããå¼åºãããã¡ã¤ã³é¢æ°
+ */
+
+static ER
+UDP_SET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
+{
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	return E_PAR;
+	}
+
+/*
+ *  udp_set_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®è¨­å®ãæ¡å¼µæ©è½ã
+ *
+ *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ */
+
+ER
+UDP_SET_OPT (ID cepid, int_t optname, void *optval, int_t optlen)
+{
+	T_UDP_CEP	*cep;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	return UDP_SET_OPTION(cep, optname, optval, optlen);
+	}
+
+#endif	/* of #ifdef __udp_set_opt */
+
+#ifdef __udp_get_opt
+
+/*
+ *  udp_get_option -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ãç²å¾ããã
+ *
+ *    udp_get_opt ããå¼åºãããã¡ã¤ã³é¢æ°
+ */
+
+static ER
+UDP_GET_OPTION (T_UDP_CEP *cep, int_t optname, void *optval, int_t optlen)
+{
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	return E_PAR;
+	}
+
+/*
+ *  udp_get_opt -- UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã®ç²å¾ãæ¡å¼µæ©è½ã
+ *
+ *  æ³¨æ: è¨­å®å¯è½ãª UDP éä¿¡ç«¯ç¹ãªãã·ã§ã³ã¯ç¡ããããE_PAR ãè¿ãããã
+ */
+
+ER
+UDP_GET_OPT (ID cepid, int_t optname, void *optval, int_t optlen)
+{
+	T_UDP_CEP	*cep;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* ã¡ã¤ã³é¢æ°ãå¼ã³åºãã*/
+	return UDP_GET_OPTION(cep, optname, optval, optlen);
+	}
+
+#endif	/* of #ifdef __udp_get_opt */
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+#ifdef UDP_CFG_NON_BLOCKING
+
+#else	/* of #ifdef UDP_CFG_NON_BLOCKING */
+
+#ifdef __udp_can_snd
+
+/*
+ *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+ER
+UDP_CAN_SND (T_UDP_CEP *cep, ER error)
+{
+	if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¨­å®ããã*/
+		cep->error = error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		error = rel_wai(cep->snd_tskid);
+		cep->snd_tskid = TA_NULL;
+		}
+	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+		error = EV_NOPND;
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_can_snd */
+
+#ifdef __udp_can_rcv
+
+/*
+ *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+ER
+UDP_CAN_RCV (T_UDP_CEP *cep, ER error)
+{
+	if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¨­å®ããã*/
+		cep->error = error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		error = rel_wai(cep->rcv_tskid);
+		cep->rcv_tskid = TA_NULL;
+		}
+	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+		error = EV_NOPND;
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_can_rcv */
+
+#ifdef __udp_snd_dat
+
+/*
+ *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+UDP_SND_DAT (ID cepid, T_IPEP *p_dstaddr, void *data, int_t len, TMO tmout)
+{
+	T_UDP_CEP	*cep;
+	ER		error;
+
+	/* p_dstaddr ã¾ãã¯ data ã NULL ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL || data == NULL || tmout == TMO_NBLK)
+		return E_PAR;
+
+	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
+		return E_PAR;
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/*
+	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 */
+	if (cep->myaddr.portno == UDP_PORTANY) {
+		if ((error = UDP_ALLOC_AUTO_PORT(cep)) != E_OK)
+			return error;
+		}
+	
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if (cep->snd_tskid != TA_NULL) {
+
+		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		error = E_QOVR;
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+		}
+	else {
+		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		get_tid(&(cep->snd_tskid));
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ããªã»ããããã*/
+		cep->error = E_OK;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		/* ãã±ãããéä¿¡ããã*/
+		error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout);
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¿ãã*/
+		if (error == E_RLWAI)
+			error = cep->error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+		}
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_snd_dat */
+
+#ifdef __udp_rcv_dat
+
+/*
+ *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+UDP_RCV_DAT (ID cepid, T_IPEP *p_dstaddr, void *data, int_t len, TMO tmout)
+{
+	T_NET_BUF	*input;
+	T_UDP_CEP	*cep;
+	T_UDP_HDR	*udph;
+	ER_UINT		error;
+	uint_t		ulen, uhoff;
+
+	/* p_dstaddr ã¾ãã¯ data ã NULL ãlen < 0 ããtmout ã TMO_NBLK ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL || data == NULL || len < 0 || tmout == TMO_NBLK)
+		return E_PAR;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+	syscall(wai_sem(cep->semid_lock));
+
+	if (cep->rcv_tskid != TA_NULL) {
+
+		/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		error = E_QOVR;
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+		}
+	else {
+
+		/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+		get_tid(&(cep->rcv_tskid));
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ããªã»ããããã*/
+		cep->error = E_OK;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+
+		/* å
+¥åãããã¾ã§å¾
+ã¤ã*/
+		if (cep->cb_netbuf != NULL) {
+
+			/*
+			 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
+			 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
+			 *  ãã§ã«å
+¥åæ¸ã¿ã§ããã
+			 */
+			input = cep->cb_netbuf;
+			cep->cb_netbuf = NULL;
+			}
+		else if ((error = trcv_dtq(cep->rcvqid, (intptr_t*)&input, tmout)) != E_OK) {
+
+#ifdef UDP_CFG_EXTENTIONS
+
+			/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¿ãã*/
+			if (error == E_RLWAI)
+				error = cep->error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+			cep->rcv_tskid = TA_NULL;
+			return error;
+			}
+
+		/* p_dstaddr ãè¨­å®ããã*/
+		uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
+		udph = GET_UDP_HDR(input, uhoff);
+		p_dstaddr->portno = ntohs(udph->sport);
+		IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input);
+
+		/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+		ulen = ntohs(udph->ulen);
+		if (ulen - UDP_HDR_SIZE > len)
+			error = E_BOVR;
+		else {
+			len   =    (uint_t)(ulen - UDP_HDR_SIZE);
+			error = (ER_UINT)(ulen - UDP_HDR_SIZE);
+			}
+
+		memcpy(data, GET_UDP_SDU(input, uhoff), (size_t)len);
+
+		syscall(rel_net_buf(input));
+
+		cep->rcv_tskid = TA_NULL;
+		}
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_rcv_dat */
+
+#endif	/* of #ifdef UDP_CFG_NON_BLOCKING */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq_nblk.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet/udpn_usrreq_nblk.c	(revision 313)
@@ -0,0 +1,427 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)udp_usrreq.c	8.6 (Berkeley) 5/23/95
+ * $FreeBSD: src/sys/netinet/udp_usrreq.c,v 1.49.2.2 1999/08/29 16:29:58 peter Exp $
+ */
+
+#ifdef __udp_can_snd_nblk
+
+/*
+ *  udp_can_snd -- ãã³ãã£ã³ã°ãã¦ããéä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+ER
+UDP_CAN_SND (T_UDP_CEP *cep, ER error)
+{
+	if (cep->snd_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)error);
+#else
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_SND_DAT, (void*)&error);
+#endif
+		else
+			error = E_OBJ;
+		cep->snd_p_dstaddr = NULL;
+		}
+	else if (cep->snd_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¨­å®ããã*/
+		cep->error = error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		error = rel_wai(cep->snd_tskid);
+		cep->snd_tskid = TA_NULL;
+		}
+	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+		error = EV_NOPND;
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_can_snd_nblk */
+
+#ifdef __udp_can_rcv_nblk
+
+/*
+ *  udp_can_rcv -- ãã³ãã£ã³ã°ãã¦ããåä¿¡ã®ã­ã£ã³ã»ã«
+ */
+
+ER
+UDP_CAN_RCV (T_UDP_CEP *cep, ER error)
+{
+	if (cep->rcv_p_dstaddr != NULL) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+		if (IS_PTR_DEFINED(cep->callback))
+
+#ifdef TCP_CFG_NON_BLOCKING_COMPAT14
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)error);
+#else
+			(*cep->callback)(GET_UDP_CEPID(cep), TFN_UDP_RCV_DAT, (void*)&error);
+#endif
+		else
+			error = E_OBJ;
+		cep->rcv_p_dstaddr = NULL;
+		}
+	else if (cep->rcv_tskid != TA_NULL) {	/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+
+#ifdef UDP_CFG_EXTENTIONS
+
+		/* å¾
+ã¡ä¸­ã«çºçããã¨ã©ã¼æ
+å ±ãè¨­å®ããã*/
+		cep->error = error;
+
+#endif	/* of #ifdef UDP_CFG_EXTENTIONS */
+
+		error = rel_wai(cep->rcv_tskid);
+		cep->rcv_tskid = TA_NULL;
+		}
+	else					/* ã©ã¡ãã§ããªããªããã³ãã£ã³ã°ãã¦ããªã */
+		error = EV_NOPND;
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_can_rcv_nblk */
+
+#ifdef __udp_snd_dat_nblk
+
+/*
+ *  udp_snd_dat -- ãã±ããã®éä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+UDP_SND_DAT (ID cepid, T_IPEP *p_dstaddr, void *data, int_t len, TMO tmout)
+{
+	T_UDP_CEP	*cep;
+	ER		error;
+
+	/* p_dstaddr ã¾ãã¯ data ã NULL ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL || data == NULL)
+		return E_PAR;
+
+	/* ãã¼ã¿é·ããã§ãã¯ããã*/
+	if (len < 0 || len + IP_HDR_SIZE + UDP_HDR_SIZE > IF_MTU)
+		return E_PAR;
+
+#if (API_PROTO == API_PROTO_IPV6) && !defined(API_CFG_IP4MAPPED_ADDR)
+
+	/*
+	 * API ã IPv6 ã§ IPv4 å°å½±ã¢ãã¬ã¹ãèªãããã¦ããªãã®ã«ããããããã
+	 * IPv4 å°å½±ã¢ãã¬ã¹ãæå®ããããã¨ã©ã¼
+	 */
+	if (in6_is_addr_ipv4mapped(&p_dstaddr->ipaddr))
+		return E_PAR;
+
+#endif	/* of #if (API_PROTO == API_PROTO_IPV6) && !defined(DAPI_CFG_IP4MAPPED_ADDR) */
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/*
+	 *  èªãã¼ãçªå·ã UDP_PORTANY ãªããèªåã§å²ãå½ã¦ãã
+	 */
+	if (cep->myaddr.portno == UDP_PORTANY) {
+		if ((error = UDP_ALLOC_AUTO_PORT(cep)) != E_OK)
+			return error;
+		}
+
+	/*
+	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 */
+	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		syscall(wai_sem(cep->semid_lock));
+
+		if (cep->snd_p_dstaddr != NULL) {
+
+			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_QOVR;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else if (cep->snd_tskid != TA_NULL) {
+
+			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_OBJ;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else {
+
+			cep->snd_p_dstaddr = p_dstaddr;
+			cep->snd_data	= data;
+			cep->snd_len	= len;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+
+			cep->flags |= UDP_CEP_FLG_POST_OUTPUT;
+			sig_sem(SEM_UDP_POST_OUTPUT);
+			error = E_WBLK;
+			}
+		}
+	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+	
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		syscall(wai_sem(cep->semid_lock));
+
+		if (cep->snd_p_dstaddr != NULL) {
+
+			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_OBJ;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else if (cep->snd_tskid != TA_NULL) {
+
+			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_QOVR;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else {
+
+			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			get_tid(&(cep->snd_tskid));
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* ãã±ãããéä¿¡ããã*/
+			error = UDP_SEND_DATA(cep, p_dstaddr, data, len, tmout);
+			}
+		}
+
+	return error;
+	}
+
+#endif	/* of #ifdef __udp_snd_dat_nblk */
+
+#ifdef __udp_rcv_dat_nblk
+
+/*
+ *  udp_rcv_dat -- ãã±ããã®åä¿¡ãæ¨æºæ©è½ã
+ */
+
+ER_UINT
+UDP_RCV_DAT (ID cepid, T_IPEP *p_dstaddr, void *data, int_t len, TMO tmout)
+{
+	T_NET_BUF	*input;
+	T_UDP_CEP	*cep;
+	T_UDP_HDR	*udph;
+	ER_UINT		error;
+	uint_t		ulen, uhoff;
+
+	/* p_dstaddr ã¾ãã¯ data ã NULL ããlen < 0 ãªãã¨ã©ã¼ */
+	if (p_dstaddr == NULL || data == NULL || len < 0)
+		return E_PAR;
+
+	/* UDP éä¿¡ç«¯ç¹ ID ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEPID(cepid))
+		return E_ID;
+
+	/* UDP éä¿¡ç«¯ç¹ãå¾ãã*/
+	cep = GET_UDP_CEP(cepid);
+
+	/* UDP éä¿¡ç«¯ç¹ããã§ãã¯ããã*/
+	if (!VALID_UDP_CEP(cep))
+		return E_NOEXS;
+
+	/*
+	 * ã¿ã¤ã ã¢ã¦ãããã§ãã¯ããã
+	 */
+
+	if (tmout == TMO_NBLK) {	/* ãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		syscall(wai_sem(cep->semid_lock));
+
+		if (cep->rcv_p_dstaddr != NULL)
+
+			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_QOVR;
+
+		else if (cep->rcv_tskid != TA_NULL)
+
+			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_OBJ;
+		else {
+			cep->rcv_p_dstaddr = p_dstaddr;
+			cep->rcv_data	= data;
+			cep->rcv_len	= len;
+			error = E_WBLK;
+			}
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+		syscall(sig_sem(cep->semid_lock));
+		return error;
+		}
+	else {				/* éãã³ãã­ãã­ã³ã°ã³ã¼ã« */
+
+		/* éä¿¡ç«¯ç¹ãã­ãã¯ããã*/
+		syscall(wai_sem(cep->semid_lock));
+
+		if (cep->rcv_p_dstaddr != NULL) {
+
+			/* ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_OBJ;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else if (cep->rcv_tskid != TA_NULL) {
+
+			/* éãã³ãã­ãã­ã³ã°ã³ã¼ã«ã§ãã³ãã£ã³ã°ä¸­ */
+			error = E_QOVR;
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+			}
+		else {
+
+			/* ç¾å¨ã®ã¿ã¹ã¯è­å¥å­ãè¨é²ããã*/
+			get_tid(&(cep->rcv_tskid));
+
+			/* éä¿¡ç«¯ç¹ãã­ãã¯ãè§£é¤ããã*/
+			syscall(sig_sem(cep->semid_lock));
+
+			/* å
+¥åãããã¾ã§å¾
+ã¤ã*/
+			if (cep->cb_netbuf != NULL) {
+
+				/*
+				 *  ããã«ããå ´åã¯ãã³ã¼ã«ããã¯é¢æ°ã®ä¸­ãã
+				 *  udp_rcv_dat ãå¼ã³åºãã¦ãããã¨ã«ãªãã
+				 *  ãã§ã«å
+¥åæ¸ã¿ã§ããã
+				 */
+				input = cep->cb_netbuf;
+				cep->cb_netbuf = NULL;
+				}
+			else if ((error = trcv_dtq(cep->rcvqid, (intptr_t*)&input, tmout)) != E_OK) {
+				cep->rcv_tskid = TA_NULL;
+				return error;
+				}
+
+			/* p_dstaddr ãè¨­å®ããã*/
+			uhoff = (uint_t)GET_UDP_HDR_OFFSET(input);
+			udph = GET_UDP_HDR(input, uhoff);
+			p_dstaddr->portno = ntohs(udph->sport);
+			IN_COPY_TO_HOST(&p_dstaddr->ipaddr, input);
+
+			/* ãã¼ã¿ããããã¡ã«ç§»ãã*/
+			ulen = ntohs(udph->ulen);
+			if (ulen - UDP_HDR_SIZE > len)
+				error = E_BOVR;
+			else {
+				len   =     (int_t)(ulen - UDP_HDR_SIZE);
+				error = (ER_UINT)(ulen - UDP_HDR_SIZE);
+				}
+
+			memcpy(data, GET_UDP_SDU(input, uhoff), (size_t)len);
+
+			syscall(rel_net_buf(input));
+
+			cep->rcv_tskid = TA_NULL;
+			}
+		return error;
+		}
+	}
+
+#endif	/* of #ifdef __udp_rcv_dat_nblk */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah.h	(revision 313)
@@ -0,0 +1,95 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ah.h,v 1.7 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: ah.h,v 1.16 2001/09/04 08:43:19 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _AH_H_
+#define _AH_H_
+
+/*
+ *  RFC2402 èªè¨¼ããã
+ */
+
+typedef struct t_ip6_ah_hdr {
+	uint8_t		next;	/* Next Header				*/
+	uint8_t		len;	
+	/* 4 ãªã¯ãããåä½ã®é·ãããã ãããã¼ã¿é· + 1 ãå
+¥ãã	*/
+	uint16_t	reserved;
+	uint32_t	spi;	/* Security Parameter Index (SPI)	*/
+	uint32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	} T_IP6_AH_HDR;
+
+#endif	/* of #ifndef _AH_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah6.h	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ah6.h,v 1.4 2001/06/11 12:39:03 ume Exp $	*/
+/*	$KAME: ah.h,v 1.13 2000/10/18 21:28:00 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _AH6_H_
+#define _AH6_H_
+
+/*
+ *  é¢æ°
+ */
+
+extern uint_t ah6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+
+#endif	/* of #ifndef _AH6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ah_input.c	(revision 313)
@@ -0,0 +1,132 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ah_input.c,v 1.12 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: ah_input.c,v 1.67 2002/01/07 11:39:56 kjc Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet6/nd6.h>
+#include <netinet6/ah.h>
+#include <netinet6/ah6.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  ah6_input -- èªè¨¼ãããã®å
+¥åé¢æ°
+ *
+ *    æ¬å®è£
+ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ */
+
+uint_t
+ah6_input (T_NET_BUF **input, uint_t *offp, uint_t *nextp)
+{
+	syscall(rel_net_buf(*input));
+	return IPPROTO_DONE;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/dest6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/dest6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/dest6.c	(revision 313)
@@ -0,0 +1,180 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/dest6.c,v 1.7 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: dest6.c,v 1.34 2002/01/08 02:40:55 k-sugyou Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet6/nd6.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  dest6_input -- çµç¹ãªãã·ã§ã³ãããã®å
+¥åé¢æ°
+ *
+ *    æ¬å®è£
+ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
+¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
+ */
+
+uint_t
+dest6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_IP6_DEST_HDR	*desth;
+	ER_UINT		optlen;
+	uint_t		len, off = *offp;
+	uint8_t		*opt;
+
+	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	if (input->len - off < sizeof(T_IP6_DEST_HDR))
+		goto buf_rel;
+
+	desth  = (T_IP6_DEST_HDR *)(input->buf + off);
+	len    = (desth->len + 1) << 3;
+
+	/* çµç¹ãªãã·ã§ã³ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < off + len)
+		goto buf_rel;
+
+	*nextp = *offp - IF_HDR_SIZE + offsetof(T_IP6_DEST_HDR, next);
+	*offp += len;
+	opt    = (uint8_t *)desth + sizeof(T_IP6_DEST_HDR);
+
+	for (len -= sizeof(T_IP6_DEST_HDR); len > 0; len -= optlen) {
+		switch (*opt) {
+		case IP6OPT_PAD1:
+			optlen = 1;
+			break;
+		case IP6OPT_PADN:
+			if (len < IP6OPT_MINLEN)
+				goto buf_rel;
+			optlen = *(opt + 1) + 2;
+			break;
+		default:
+			if (len < IP6OPT_MINLEN)
+				goto buf_rel;
+			optlen = ip6_unknown_opt(input, opt);
+			if (optlen == IP6_OPT_RET_ERR)
+				goto buf_rel;
+			else if (optlen == IP6_OPT_RET_REL)
+				return IPPROTO_DONE;
+			optlen += 2;
+			break;
+			}
+
+		opt += optlen;
+		}
+
+	return desth->next;
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp.h	(revision 313)
@@ -0,0 +1,141 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/esp.h,v 1.6 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: esp.h,v 1.19 2001/09/04 08:43:19 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _ESP_H_
+#define _ESP_H_
+
+/*
+ *  RFC2406 æå·åããã
+ */
+
+typedef struct t_esp_hdr {
+	int32_t	spi;	/* Security Parameter Index (SPI)	*/
+	int32_t	seq;	/* ã·ã¼ã±ã³ã¹çªå·			*/
+	} T_ESP_HDR;
+
+typedef struct t_esp_tail {
+	int8_t	padlen;	/* ããã£ã³ã°é·				*/	
+	int8_t	next;	/* Next Header				*/
+	} T_ESP_TAIL;
+
+struct t_secas_var;
+
+struct t_esp_algorithm {
+	size_t padbound;	/* pad boundary, in byte */
+	int_t ivlenval;		/* iv length, in byte */
+	int_t (*mature) (struct t_secas_var *);
+	int_t keymin;	/* in bits */
+	int_t keymax;	/* in bits */
+	//int_t (*schedlen) (const struct t_esp_algorithm *);
+	int32_t (*schedlen) (const struct t_esp_algorithm *);
+	const char *name;
+	int_t (*ivlen) (const struct t_esp_algorithm *, struct t_secas_var *);
+	int_t (*decrypt) (T_NET_BUF *, size_t,
+		struct t_secas_var *, const struct t_esp_algorithm *, int_t,
+			T_NET_BUF *, size_t);
+	int_t (*encrypt) (T_NET_BUF *, size_t, size_t, int8_t*,
+		struct t_secas_var *, const struct t_esp_algorithm *, int_t,
+			T_NET_BUF *, size_t);
+	/* not supposed to be called directly */
+	int_t (*schedule) (const struct t_esp_algorithm *, struct t_secas_var *);
+	int_t (*blockdecrypt) (const struct t_esp_algorithm *,
+		struct t_secas_var *, int8_t *, int8_t *);
+	int_t (*blockencrypt) (const struct t_esp_algorithm *,
+		struct t_secas_var *, int8_t *, int8_t *);
+};
+
+typedef struct t_esp_algorithm T_ESP_ALGORITHM;
+
+#define MAXIVLEN	16
+
+/*
+ * é¢æ°
+ */
+
+extern const struct t_esp_algorithm *esp_algorithm_lookup (int_t);
+extern int_t esp_max_ivlen (void);
+extern int_t esp_schedule (const struct t_esp_algorithm *, struct t_secas_var *);
+extern int_t esp4_input(T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+
+#ifdef T_IPSEC_REQUEST_DEFINED
+
+extern int_t esp4_output(T_NET_BUF *m, T_IPSEC_REQUEST *isr, T_NET_BUF** result);
+
+#endif	/* of #ifdef T_IPSEC_REQUEST_DEFINED */
+
+#endif	/* of #ifndef _ESP_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp6.h	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/esp6.h,v 1.4 2001/06/11 12:39:04 ume Exp $	*/
+/*	$KAME: esp.h,v 1.16 2000/10/18 21:28:00 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _ESP6_H_
+#define _ESP6_H_
+
+/*
+ *  é¢æ°
+ */
+
+extern uint_t esp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+
+#endif	/* of #ifndef _ESP6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/esp_input.c	(revision 313)
@@ -0,0 +1,139 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/esp_input.c,v 1.14 2002/08/24 04:48:13 ume Exp $	*/
+/*	$KAME: esp_input.c,v 1.62 2002/01/07 11:39:57 kjc Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet6/nd6.h>
+#include <netinet6/ah.h>
+#include <netinet6/ah6.h>
+#include <netinet6/esp.h>
+#include <netinet6/esp6.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  esp6_input -- æå·åãããã®å
+¥åé¢æ°
+ *
+ *    æ¬å®è£
+ã§ã¯ããã¼ã¿ã°ã©ã ãç ´æ£ããã
+ */
+
+uint_t
+esp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+#if 0
+	*nextp = <T_ESP_TAIL ã® next ãã£ã¼ã«ãã®ä½ç½®ï¼IPv6 ãããã®å
+é ­ããã®ãªãã»ããï¼>;
+	*offp  = <æ¬¡ãããã®ä½ç½®ï¼input->buf ããã®ãªãã»ããï¼>;
+#endif
+	syscall(rel_net_buf(*inputp));
+	return IPPROTO_DONE;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/frag6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/frag6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/frag6.c	(revision 313)
@@ -0,0 +1,725 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/frag6.c,v 1.9 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: frag6.c,v 1.33 2002/01/07 11:34:48 kjc Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_var.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet6/nd6.h>
+
+#ifdef _IP6_CFG
+
+#ifdef IP6_CFG_FRAGMENT
+
+/*
+ *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
+å
+ */
+
+static T_NET_BUF	*ip6_frag_queue[NUM_IP6_FRAG_QUEUE];
+static T_IN6_ADDR	 ip6_frag_dest [NUM_IP6_FRAG_QUEUE];
+
+/*
+ *  ip6_get_frag_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãç²å¾ããã
+ */
+
+const T_NET_BUF **
+ip6_get_frag_queue (void)
+{
+	return (const T_NET_BUF **)ip6_frag_queue;
+	}
+
+/*
+ *  frag6_free_queue -- ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã
+ *
+ *    æ³¨æ: ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
+åãã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static void
+frag6_free_queue (T_NET_BUF **queue)
+{
+	T_NET_BUF 	*frag, *next;
+	T_QIP6_HDR	*qip6h;
+
+	frag = *queue;
+	while (frag != NULL) {
+		qip6h = GET_QIP6_HDR(frag);
+		next  = qip6h->next_frag;
+		syscall(rel_net_buf(frag));
+		frag = next;
+		}
+	*queue = NULL;
+	}
+
+/*
+ *  frag6_timer -- ãã¼ã¿ã°ã©ã åæ§æç®¡çã¿ã¤ã
+ */
+
+void
+frag6_timer (void)
+{
+	T_NET_BUF	*frag;
+	T_QIP6_HDR	*qip6h;
+	T_IP6_FRAG_HDR	*qip6fh;
+	int_t		ix;
+
+	syscall(wai_sem(SEM_IP6_FRAG_QUEUE));
+	for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
+		frag = ip6_frag_queue[ix];
+		if (frag != NULL) {
+			qip6h = GET_QIP6_HDR(frag);
+			if (qip6h->ftim > 0 && -- qip6h->ftim == 0) {
+
+				qip6fh = (T_IP6_FRAG_HDR *)(frag->buf + qip6h->foff);
+				if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) == 0) {
+
+					/*
+					 *  å
+é ­ã®æ­çã®ãªãã»ããã 0 ã®æã®ã¿
+					 *  ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã
+					 */
+
+					/* å
+é ­ã®æ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ããå¤ãã*/
+					ip6_frag_queue[ix] = qip6h->next_frag;
+
+					/* ãã¦å
+ã¢ãã¬ã¹ãå
+ã«æ»ãã*/
+					GET_IP6_HDR(frag)->dst = ip6_frag_dest[ix];
+
+					/* ICMPv6 ã¨ã©ã¼ã¡ãã»ã¼ã¸ãéä¿¡ããã*/
+					icmp6_error(frag, ICMP6_TIME_EXCEEDED,
+					                  ICMP6_TIME_EXCEED_REASSEMBLY, 0);
+					}
+
+				/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_TMOUT], 1);
+				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1);
+				frag6_free_queue(&ip6_frag_queue[ix]);
+				}
+			}
+		}
+	syscall(sig_sem(SEM_IP6_FRAG_QUEUE));
+	}
+
+#endif	/* #ifdef IP6_CFG_FRAGMENT */
+
+/*
+ *  frag6_input -- æ­çãããã®å
+¥åé¢æ°
+ */
+
+uint_t
+frag6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_IP6_HDR	*ip6h;
+	T_IP6_FRAG_HDR	*ip6fh;
+	T_NET_BUF	*input = *inputp;
+	uint_t		off = *offp;
+
+#ifdef IP6_CFG_FRAGMENT
+
+	T_QIP6_HDR	*qip6h, *rip6h;
+	T_IP6_FRAG_HDR	*qip6fh = NULL;
+	T_NET_BUF	**ip6fq = NULL, *prev, *next, *frag;
+	int_t		ix;
+	int32_t		unfraglen, diff;
+	uint16_t	fragpartlen, qfragpartlen, fragoff, qfragoff, plen;
+	uint8_t		ftim, *prev_next;
+	uint_t		nextproto = IPPROTO_DONE;
+
+#endif	/* #ifdef IP6_CFG_FRAGMENT */
+
+	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	if (input->len - off < sizeof(T_IP6_FRAG_HDR))
+		goto buf_rel;
+
+	/* 
+	 *  å·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã¨æ­çããããåæã«ä½¿ç¨ãããã¨ã¯
+	 *  ã§ããªãããã¤ã­ã¼ãé·ãã 0 ãªããå·¨å¤§ãã¤ã­ã¼ããªãã·ã§ã³ã
+	 *  æå®ããã¦ãããã¨ã«ãªãã®ã§ ICMP ã§ã¨ã©ã¼ãéä¿¡è
+ã«
+	 *  éç¥ããã
+	 */
+	ip6h = GET_IP6_HDR(input);
+	if (ip6h->plen == 0) {
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   off - IF_HDR_SIZE);
+		NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmFails, 1);
+		return IPPROTO_DONE;
+		}
+
+	/*
+	 *  ãªãã»ããã 0 ã§ãæçµãã©ã°ã¡ã³ãã§ããã°ã
+	 *  åå²ä¸è¦ã®ãã¼ã¿ã°ã©ã ãªã®ã§ã
+	 *  æ¬¡ããããæãå¤æ°ãèª¿æ´ãã¦çµäºããã
+	 */
+	ip6fh = (T_IP6_FRAG_HDR *)(input->buf + off);
+	if (ip6fh->off_flag == 0) {
+		*nextp = *offp - IF_HDR_SIZE + offsetof(T_IP6_FRAG_HDR, next);
+		*offp = off + sizeof(T_IP6_FRAG_HDR);
+		return ip6fh->next;
+		}
+
+#ifdef IP6_CFG_FRAGMENT
+
+	/*
+	 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããã
+	 */
+	if ((ip6fh->off_flag & IP6F_MORE_FRAG) && 
+	    ((ntohs(ip6h->plen) - (off - IF_HDR_SIZE)) & 0x7) != 0) {
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   offsetof(T_IP6_HDR, plen));
+		NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmFails, 1);
+		return nextproto;
+		}
+	NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmReqds, 1);
+
+	syscall(wai_sem(SEM_IP6_FRAG_QUEUE));
+
+	/*
+ 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
+åãããå¯¾å¿ããã¨ã³ããªãæ¢ãã
+ 	 */
+	for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
+		if (ip6_frag_queue[ix] != NULL) {
+			qip6h  = GET_QIP6_HDR(ip6_frag_queue[ix]);
+			qip6fh = (T_IP6_FRAG_HDR *)(ip6_frag_queue[ix]->buf + qip6h->foff);
+			if (ip6fh->ident == qip6fh->ident               &&
+			    IN6_ARE_ADDR_EQUAL(&ip6h->src, &qip6h->src) &&
+			    IN6_ARE_ADDR_EQUAL(&ip6h->dst, &ip6_frag_dest[ix])) {
+				ip6fq = &ip6_frag_queue[ix];
+			    	break;
+			    	}
+			}
+		}
+
+ 	if (ip6fq == NULL) {
+
+		/*
+	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+		 */
+		unfraglen = 0;
+		fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
+		if (fragoff == 0) {
+
+			/*
+		 	 *  å
+¥åããæ­çãå
+é ­ã®æ­ç
+			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+			 */
+			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
+			}
+
+		/*
+		 *             off
+		 *  |<--------------------------->|
+		 *  |          off - IF_HDR_SIZE  |
+		 *  |        |<------------------>|
+		 *  |        | off - IF_HDR_SIZE + IP6_FRAG_HDR_SIZE |
+		 *  |        |<------------------------------------->|
+		 *  +--------+----------+---------+------------------+-------------+
+		 *  | IF HDR | IPv6 HDR | EXT HDR |     FRAG HDR     |   Payload   |
+		 *  +--------+----------+---------+------------------+-------------+
+		 *                      |<---------------------------------------->|
+		 *                      |             Payload Size                 |
+		 *           |<--------------------------------------------------->|
+		 *           |         IP6_HDR_SIZE + Payload Size                 |
+		 *                                                   |<----------->|
+		 *                                                   | fragpartlen |
+		 */
+		fragpartlen = sizeof(T_IP6_HDR) + ntohs(ip6h->plen) - (off - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+		if (unfraglen + fragoff + fragpartlen > IPV6_MAXPACKET) {
+			icmp6_error(input, ICMP6_PARAM_PROB,
+			                   ICMP6_PARAMPROB_HEADER,
+			                   (off - IF_HDR_SIZE) +
+			                   offsetof(T_IP6_FRAG_HDR, off_flag));
+			goto sig_ret;
+			}
+
+		/*
+	 	 *  ip6fq == NULL ã§ããã°ãå¯¾å¿ããã¨ã³ããªã¯ç¡ãã®ã§ã
+	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼é
+åã«ãã¨ã³ããªãè¿½å ããã
+	 	 */
+		for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
+
+			/* ç©ºãã¨ã³ããªãæ¢ãã*/
+			if (ip6_frag_queue[ix] == NULL) {
+				ip6fq = &ip6_frag_queue[ix];
+				break;
+				}
+			}
+
+		/*
+		 *  ip6fq == NULL ã§ããã°ãç©ºãã¨ã³ããªãç¡ãã®ã§ã
+		 *  ã¿ã¤ã ã¢ã¦ãï¼hlimï¼ãç­ãã¨ã³ããªãéæ¾ããã
+		 */
+ 		if (ip6fq == NULL) {
+
+		 	ftim = IPV6_MAXHLIM;
+			for (ix = NUM_IP6_FRAG_QUEUE; ix -- > 0; ) {
+				if (ip6_frag_queue[ix] != NULL) {
+					rip6h  = GET_QIP6_HDR(ip6_frag_queue[ix]);
+					if (rip6h->ftim < ftim) {
+						ftim  = rip6h->ftim;
+						ip6fq = &ip6_frag_queue[ix];
+						}
+					}
+				}
+			frag6_free_queue(ip6fq);
+			}
+
+		/*
+		 *  ã¨ã³ããªãè¨­å®ããã
+		 */
+		*ip6fq = input; 
+		ip6_frag_dest[ip6fq - ip6_frag_queue] = ip6h->dst;
+		qip6h  = GET_QIP6_HDR(*ip6fq);
+		qip6h->ftim = IPV6_FRAGTTL;
+		qip6h->foff = off;
+		qip6h->flen = fragpartlen;
+		qip6h->next_frag = NULL;
+ 		}
+ 	else {
+
+		/*
+	 	 *  æ­çã®æ­£å½æ§ããã§ãã¯ããã
+		 */
+		unfraglen = 0;
+		fragoff = ntohs(((T_IP6_FRAG_HDR *)((*ip6fq)->buf + GET_QIP6_HDR(*ip6fq)->foff))->off_flag & IP6F_OFF_MASK);
+		if (fragoff == 0) {
+
+			/*
+		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æåã®æ­çãå
+é ­ã®æ­ç
+			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+			 */
+			unfraglen = (GET_QIP6_HDR(*ip6fq)->foff - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
+			}
+
+		fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
+		if (fragoff == 0) {
+
+			/*
+		 	 *  å
+¥åããæ­çãå
+é ­ã®æ­ç
+			 *  åå²ã§ããªãé¨åã®é·ã unfraglen ãè¨ç®ããã
+			 */
+			unfraglen = (off - IF_HDR_SIZE) - sizeof(T_IP6_HDR);
+			}
+
+		/*
+		 *             off
+		 *  |<--------------------------->|
+		 *  |          off - IF_HDR_SIZE  |
+		 *  |        |<------------------>|
+		 *  |        | off - IF_HDR_SIZE + IP6_FRAG_HDR_SIZE |
+		 *  |        |<------------------------------------->|
+		 *  +--------+----------+---------+------------------+-------------+
+		 *  | IF HDR | IPv6 HDR | EXT HDR |     FRAG HDR     |   Payload   |
+		 *  +--------+----------+---------+------------------+-------------+
+		 *                      |<---------------------------------------->|
+		 *                      |             Payload Size                 |
+		 *           |<--------------------------------------------------->|
+		 *           |         IP6_HDR_SIZE + Payload Size                 |
+		 *                                                   |<----------->|
+		 *                                                   | fragpartlen |
+		 */
+		fragpartlen = sizeof(T_IP6_HDR) + ntohs(ip6h->plen) - (off - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+		if (unfraglen + fragoff + fragpartlen > IPV6_MAXPACKET) {
+			icmp6_error(input, ICMP6_PARAM_PROB,
+			                   ICMP6_PARAMPROB_HEADER,
+			                   (off - IF_HDR_SIZE) +
+			                   offsetof(T_IP6_FRAG_HDR, off_flag));
+			goto sig_ret;
+			}
+		
+		if (ntohs(ip6fh->off_flag & IP6F_OFF_MASK) == 0) {
+
+			/*
+		 	 *  å
+¥åããæ­çãå
+é ­ã®æ­ç
+		 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®æå¾ã®æ­çãã
+		 	 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
+ãã¦ããªãããã§ãã¯ããã
+			 */
+
+			/* æå¾ã®æ­çãæ¢ç´¢ããã*/
+			next = *ip6fq;
+			while ((qip6h = GET_QIP6_HDR(next))->next_frag != NULL)
+				next = qip6h->next_frag;
+
+			/* æå¾ã®æ­çã®ãªãã»ããã¨æ­çãµã¤ãºãè¨ç®ããã*/
+			qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
+			fragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
+			fragpartlen = sizeof(T_IP6_HDR) + ntohs(qip6h->plen) - (qip6h->foff - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+			if (unfraglen + fragoff + fragpartlen > IPV6_MAXPACKET) {
+
+				/*
+				 *  ãã¼ã¿ã°ã©ã ã®æå¤§é·ãè¶
+ãã¦ããå ´åã¯ã
+			 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼å
+¨ä½ãç ´æ£ããã
+			 	 */
+				frag6_free_queue(ip6fq);
+				syscall(rel_net_buf(input));
+				goto sig_ret;
+				}
+			}
+
+		/* ECN ã®æ­£å½æ§ãã§ãã¯ã¯æªå®è£
+ */
+
+		/*
+		 *  æ­çãã¨ã³ããªã«æ¿å
+¥ããã
+	 	 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãããå
+¥åããæ­çããåã®æ­çãæ¢ç´¢ããã
+		 */
+		prev = NULL;
+		next = *ip6fq;
+		while (next != NULL) {
+			qip6h  = GET_QIP6_HDR(next);
+			qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
+			if (ntohs(ip6fh->off_flag & IP6F_OFF_MASK) <= ntohs(qip6fh->off_flag & IP6F_OFF_MASK))
+				break;
+			prev = next;
+			next = qip6h->next_frag;
+			}
+
+		/*
+		 *  prev ã¯ãå
+¥åããæ­çããåã®æ­çããã ã NULL ã®å ´åã¯ã
+		 *  å
+¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãåã®æ­çã
+		 *  next ã¯ãå
+¥åããæ­çããå¾ã®æ­çããã ã NULL ã®å ´åã¯ã
+		 *  å
+¥åããæ­çããã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã§æãå¾ã®æ­çã
+		 */
+		fragoff = ntohs(ip6fh->off_flag & IP6F_OFF_MASK);
+		if (prev != NULL) {
+
+			/*
+			 *  åã®æ­çã¨ãå
+¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *
+			 *    qfragoff
+			 *    |   qfragparglen
+			 *    |<------------------>|
+			 *    +--------------------+
+			 *    |        prev        |
+			 *    +--------------------+
+			 *
+			 *                         +--------------------+
+			 *                         |        input       |
+			 *                         +--------------------+
+			 *                         |
+			 *                         fragoff
+			 */
+			qip6h  = GET_QIP6_HDR(prev);
+			qip6fh = (T_IP6_FRAG_HDR *)(prev->buf + qip6h->foff);
+			qfragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
+			qfragpartlen = sizeof(T_IP6_HDR) + ntohs(qip6h->plen) - (off - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+
+			diff = ((int32_t)qfragoff + qfragpartlen) - fragoff;
+			if (diff > 0) {
+
+				/* éãªã£ã¦ããã°ãå
+¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				syscall(rel_net_buf(input));
+				goto sig_ret;
+				}
+			}
+
+		if (next != NULL) {
+
+			/*
+			 *  å¾ã®æ­çã¨ãå
+¥åããæ­çãéãªã£ã¦ããªãããã§ãã¯ããã
+			 *
+			 *    fragoff
+			 *    |    fragparglen
+			 *    |<------------------>|
+			 *    +--------------------+
+			 *    |       input        |
+			 *    +--------------------+
+			 *
+			 *                         +--------------------+
+			 *                         |         next       |
+			 *                         +--------------------+
+			 *                         |
+			 *                         qfragoff
+			 */
+			qip6h  = GET_QIP6_HDR(next);
+			qip6fh = (T_IP6_FRAG_HDR *)(next->buf + qip6h->foff);
+			qfragoff = ntohs(qip6fh->off_flag & IP6F_OFF_MASK);
+			fragpartlen = sizeof(T_IP6_HDR) + ntohs(ip6h->plen) - (off - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+
+			diff = ((int32_t)fragoff + fragpartlen) - qfragoff;
+			if (diff > 0) {
+
+				/* éãªã£ã¦ããã°ãå
+¥åããæ­çãç ´æ£ãã¦çµäºããã*/
+				syscall(rel_net_buf(input));
+				goto sig_ret;
+				}
+			}
+
+		/* å
+¥åããæ­çãè¨­å®ããã*/
+		qip6h  = GET_QIP6_HDR(input);
+		qip6h->foff = off;
+		qip6h->flen = sizeof(T_IP6_HDR) + ntohs(qip6h->plen) - (off - IF_HDR_SIZE + sizeof(T_IP6_FRAG_HDR));
+
+		if (prev == NULL) {
+			*ip6fq = input;
+			qip6h->ftim = IPV6_FRAGTTL;
+			}
+		else
+			GET_QIP6_HDR(prev)->next_frag = input;
+		qip6h->next_frag = next;
+
+		/*
+		 *  å
+¨ã¦ã®æ­çãåä¿¡ããããã§ãã¯ããã
+		 */
+		plen = 0;
+		frag = *ip6fq;
+		while (frag != NULL) {
+			qip6h  = GET_QIP6_HDR(frag);
+			qip6fh = (T_IP6_FRAG_HDR *)(frag->buf + qip6h->foff);
+			if (ntohs(qip6fh->off_flag & IP6F_OFF_MASK) != plen) {
+
+				/* æ­çãé£ç¶ãã¦ããªãã*/
+				goto sig_ret;
+				}
+			plen += qip6h->flen;
+			frag = qip6h->next_frag;
+			}
+		if (ntohs(qip6fh->off_flag & IP6F_MORE_FRAG) != 0) {
+
+			/* æå¾ã®æ­çãåä¿¡ãã¦ããªãã*/
+			goto sig_ret;
+			}
+
+		/*
+		 *  å
+¨ã¦ã®æ­çãåä¿¡ããã®ã§ãåæ§æããã
+		 */
+
+		/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+		qip6h  = GET_QIP6_HDR(*ip6fq);
+		qip6fh = (T_IP6_FRAG_HDR *)((*ip6fq)->buf + qip6h->foff);
+		if (tget_net_buf(inputp, qip6h->foff + plen, TMO_IP6_FRAG_GET_NET_BUF) == E_OK) {
+
+			/*
+			 *  æ­çãããã®ç´åã®ãããã® NEXT ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãç²å¾ãã
+			 *  å
+ã«æ»ãã
+			 */
+			if ((prev_next = ip6_get_prev_hdr(*ip6fq, qip6h->foff)) == NULL) {
+				syscall(rel_net_buf(input));
+				goto sig_ret;
+				}
+			*prev_next = qip6fh->next;
+			input = *inputp;
+
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_OK], 1);
+			NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmOKs, 1);
+
+			/*
+			 *  IPv6 ãããã¨åå²ã§ããªãé¨åã
+			 *  ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ã®ä¸­ã®å
+é ­ã®æ­çããã³ãã¼ããã
+			 */
+			memcpy(input->buf, (*ip6fq)->buf, qip6h->foff);
+
+			/* éä¿¡å
+ã¢ãã¬ã¹ãå
+ã«æ»ãã*/
+			ip6h = GET_IP6_HDR(input);
+			ip6h->dst = ip6_frag_dest[ip6fq - ip6_frag_queue];
+
+			/* offp ããåæ§æããæ­çã®å
+é ­ã«è¨­å®ããã*/
+			*offp = qip6h->foff;
+
+			/* ãããã¯ã¼ã¯ãããã¡é·ãè¨­å®ããã*/
+			input->len = plen + qip6h->foff;
+
+			/*
+			 *  å
+¨ã¦ã®æ­çãã³ãã¼ããã
+			 */
+			frag = *ip6fq;
+			off  = qip6h->foff;
+			while (frag != NULL) {
+				qip6h  = GET_QIP6_HDR(frag);
+				memcpy(input->buf + off,
+				       frag->buf + qip6h->foff + sizeof(T_IP6_FRAG_HDR),
+				       qip6h->flen);
+				off += qip6h->flen;
+				frag = qip6h->next_frag;
+				}
+
+			/* ãã¤ã­ã¼ãé·ãè¨­å®ããã*/
+			ip6h->plen = htons(plen);
+
+			*nextp = offsetof(T_IP6_HDR, next);
+			nextproto = ip6h->next;
+			}
+		else {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_NO_BUF], 1);
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_IN_DROP], 1);
+			NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmFails, 1);
+			}
+
+		/* ãã¼ã¿ã°ã©ã åæ§æã­ã¥ã¼ãè§£æ¾ããã*/
+		frag6_free_queue(ip6fq);
+ 		}
+
+sig_ret:
+	syscall(sig_sem(SEM_IP6_FRAG_QUEUE));
+	return nextproto;
+
+#else	/* #ifdef IP6_CFG_FRAGMENT */
+
+	/*
+	 *  ãã¼ã¿ã°ã©ã ã®åå²ã»åæ§æè¡ããªãå ´åã¯ãå
+¨æ­çãç ´æ£ãã
+	 *  æå¾ã®æ­çãåä¿¡ããã¨ãã
+	 *  ICMP ã¨ã©ã¼ãéä¿¡è
+ã«éç¥ããã
+	 */
+	if ((ip6fh->off_flag & IP6F_MORE_FRAG) == 0) {
+		icmp6_error(input, ICMP6_TIME_EXCEEDED,
+		                   ICMP6_TIME_EXCEED_REASSEMBLY, 0);
+		NET_COUNT_MIB(in6_stats.ipv6IfStatsReasmFails, 1);
+		return IPPROTO_DONE;
+		}
+
+#endif	/* #ifdef IP6_CFG_FRAGMENT */
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/icmp6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/icmp6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/icmp6.c	(revision 313)
@@ -0,0 +1,750 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/icmp66.c,v 1.6.2.6 2001/07/10 09:44:16 ume Exp $	*/
+/*	$KAME: icmp66.c,v 1.211 2001/04/04 05:56:20 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_icmp6.c	8.2 (Berkeley) 1/4/94
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp_var.h>
+
+#include <netinet6/nd6.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  å¤æ°
+ */
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+T_ICMP6_IFSTAT icmp6_ifstat;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  icmp6_output -- ICMP6 ãã±ãããéä¿¡ããã
+ */
+
+static void
+icmp6_output (T_NET_BUF *output, uint_t off)
+{
+	T_IN6_IFADDR	*ia;
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IP6_HDR	*ip6h;
+	T_ICMP6_HDR	*icmp6h;
+
+	/*
+	 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 */
+	ip6h = GET_IP6_HDR(output);
+	if ((ia = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutErrors, 1);
+		syscall(rel_net_buf(output));
+		return;
+		}
+	ip6h->src = ia->addr;
+
+	icmp6h = GET_ICMP6_HDR(output, off);
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	icmp6h->sum = 0;
+	icmp6h->sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)icmp6h - output->buf, 
+	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
+	               output->len - GET_IF_IP6_HDR_SIZE(output));
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	ip6_output(output, 0, TMO_ICMP_OUTPUT);
+	}
+
+/*
+ *  icmp6_echo_request -- ã¨ã³ã¼è¦æ±ãåä¿¡ããã¨ãã®å¦ç
+ */
+
+static void
+icmp6_echo_request (T_NET_BUF *input, uint_t off)
+{
+	T_IP6_HDR	*ip6h;
+	T_ICMP6_HDR	*icmp6h;
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia;
+	T_IN6_ADDR	dst;
+	uint_t		diff;
+
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInEchos, 1);
+
+	ip6h       = GET_IP6_HDR(input);
+
+	/*
+	 *  IPv6 ãããã¨ ICMPv6 ãããéã®æ¡å¼µããããé¤å»ããã
+	 */
+	diff = off - IF_IP6_HDR_SIZE;
+	if (diff > 0) {
+		/* ICMPv6 ããããåã«è©°ããã*/
+		memmove(input->buf + IF_IP6_HDR_SIZE, input->buf + off, input->len - off);
+		off = IF_IP6_HDR_SIZE;
+
+		/* ãã¤ã­ã¼ãé·ãèª¿æ´ããã*/
+		ip6h->plen  = htons(ntohs(ip6h->plen) - diff);
+		input->len -= diff;
+		}
+
+	icmp6h = GET_ICMP6_HDR(input, off);
+	if (icmp6h->code != 0) {
+		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
+		syscall(rel_net_buf(input));
+		return;
+		}
+
+	/*
+	 *  ã¡ãã»ã¼ã¸ã®åãã¨ã³ã¼è¦æ± (128) ãã
+	 *  ã¨ã³ã¼å¿ç­ (129) ã«å¤æ´ãã¦éãè¿ãã
+	 */
+	icmp6h->type = ICMP6_ECHO_REPLY;
+
+	/* IPv6 ãããã®çºä¿¡å
+ã¢ãã¬ã¹ã¨å®å
+ã¢ãã¬ã¹ãå
+¥æ¿ããã*/
+	dst 	  = ip6h->dst;
+	ip6h->dst = ip6h->src;
+	ip6h->src = dst;
+
+	/*
+	 *  å
+ã®å®å
+ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã®å ´åã¯ã
+	 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 */
+	if (IN6_IS_ADDR_MULTICAST(&dst)) {
+		if ((ia = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
+			syscall(rel_net_buf(input));
+			return;
+			}
+		else
+			ip6h->src = ia->addr;
+		}
+
+	/* æ¬¡ãããã¨ããããªããããè¨­å®ããã*/
+	ip6h->next = IPPROTO_ICMPV6;
+	ip6h->hlim = IP6_DEFTTL;
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	icmp6h->sum = 0;
+	icmp6h->sum = in6_cksum(input, IPPROTO_ICMPV6, (uint8_t*)icmp6h - input->buf, 
+	                        ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE));
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_OCTETS],
+	               input->len - GET_IF_IP6_HDR_SIZE(input));
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutEchoReplies, 1);
+	ip6_output(input, 0, TMO_ICMP_OUTPUT);
+	}
+
+/*
+ *  icmp6_notify_error -- ã¨ã©ã¼ãéç¥ããã
+ */
+
+static void
+icmp6_notify_error(T_NET_BUF *input, uint_t poff)
+{
+	T_ICMP6_HDR	*icmp6h;
+	ER_UINT		loff;
+	uint_t		len, next;
+
+	len  = input->len - poff;
+
+	/* ãã¼ã¿ã°ã©ã é·ã ICMP6 ãããé· + IP6 ãããé·ä»¥ä¸ãªãä½ãããªãã*/
+	if (len < ICMP6_HDR_SIZE + IP6_HDR_SIZE)
+		return;
+
+	icmp6h = GET_ICMP6_HDR(input, poff);
+
+	/* æçµããããæ¢ç´¢ããã*/
+	loff = ip6_lasthdr(input, poff + ICMP6_HDR_SIZE, IPPROTO_IPV6, &next);
+
+	/* æçµãããã TCP/UDP ã®ã¿å¯¾å¿ããã*/
+	if (loff >= 0 && (next == IPPROTO_TCP || next == IPPROTO_UDP)) {
+
+		memcpy(GET_IP6_HDR(input), input->buf + (loff + ICMP6_HDR_SIZE),
+		                           input->len - (loff + ICMP6_HDR_SIZE));
+		input->len -= loff + ICMP6_HDR_SIZE;
+
+#if defined(SUPPORT_TCP)
+
+		if (next == IPPROTO_TCP)
+
+			tcp_notify(input, icmp6h->code == ICMP6_DST_UNREACH_NOPORT ? EV_CNNRF : EV_HURCH);
+
+#endif	/* of #if defined(SUPPORT_TCP) */
+
+#if defined(SUPPORT_UDP) && TNUM_UDP6_CEPID > 0
+
+		if (next == IPPROTO_UDP)
+
+			udp6_notify(input, icmp6h->code == ICMP6_DST_UNREACH_NOPORT ? EV_CNNRF : EV_HURCH);
+
+#endif	/* of #if defined(SUPPORT_UDP) && TNUM_UDP6_CEPID > 0 */
+
+		}
+	else
+		syslog(LOG_NOTICE, "[ICMP6] error code: %d.", icmp6h->code);
+	}
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+/*
+ *  icmp6_mtudisc_update -- Path MTU ãæ´æ°ããã
+ */
+
+static void
+icmp6_mtudisc_update(T_NET_BUF *input, uint_t off, uint32_t mtu)
+{
+	T_IP6_HDR	*pip6h;
+
+	pip6h = (T_IP6_HDR*)GET_ICMP6_SDU(input, off);
+
+	if (mtu < IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR) + 8)
+		return;
+
+	if (mtu > IF_MTU)
+		return;
+
+	in6_hostcache_update(&pip6h->dst, mtu);
+	}
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+#if defined(NUM_IN6_REDIRECT_ROUTE_ENTRY)
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  icmp6_redirect_input -- åãç´ãã¡ãã»ã¼ã¸ã®å¦ç
+ */
+
+static void
+icmp6_redirect_input (T_NET_BUF *input, uint_t off)
+{
+	T_IP6_HDR		*ip6h;
+	const T_IN6_ADDR	*gw;
+	T_ND_REDIRECT_HDR	*rdh;
+	T_ND_OPT_HDR		*opth;
+	T_IFNET			*ifp = IF_GET_IFNET();
+	bool_t			router, onlink;
+	uint_t			lladdr_len = 0;
+	uint8_t			*lladdr = NULL;
+	uint8_t			nd_opt_off[ND_OPT_OFF_ARRAY_SIZE];
+
+	ip6h = GET_IP6_HDR(input);
+
+	/*
+	 *  IP ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
+	 *    ã»ãªã³ã¯ã­ã¼ã«ã«ä»¥å¤ããéããã¦ããã¡ãã»ã¼ã¸
+	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 */
+	if (!IN6_IS_ADDR_LINKLOCAL(&ip6h->src) || ip6h->hlim != IPV6_MAXHLIM)
+		goto err_ret;
+
+	rdh  = (T_ND_REDIRECT_HDR *)(input->buf + off);
+
+	/* åãç´ãã®çµç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å ´åã¯ç ´æ£ããã*/
+	if (IN6_IS_ADDR_MULTICAST(&rdh->dst))
+		goto err_ret;
+
+	/* ã¿ã¼ã²ããã¢ãã¬ã¹ãçµè·¯è¡¨ã«ç»é²ããã¦ããããã§ãã¯ããã*/
+	if ((gw = in6_rtalloc(ifp, &rdh->dst)) != NULL) {
+		/* GW ã¢ãã¬ã¹ã¨éä¿¡å
+ã¢ãã¬ã¹ãç°ãªã£ã¦ããã°ç ´æ£ããã*/
+		if (!IN6_ARE_ADDR_EQUAL(gw, &ip6h->src))
+			goto err_ret;
+		}
+	else	/* çµè·¯è¡¨ã«ãªããã°ç ´æ£ããã*/
+		goto err_ret;
+
+	router = onlink = false;
+
+	/*
+	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã§ããã°ã
+	 *  ã¿ã¼ã²ããã¯ã«ã¼ã¿
+	 */
+	if (IN6_IS_ADDR_LINKLOCAL(&rdh->target))
+		router = true;
+
+	/*
+	 *  ã¿ã¼ã²ããã¢ãã¬ã¹ã¨çµç¹ã¢ãã¬ã¹ãåä¸ã§ããã°ããªã³ãªã³ã¯
+	 */
+	if (IN6_ARE_ADDR_EQUAL(&rdh->target, &rdh->dst))
+		onlink = true;
+		
+	/*
+	 *  ã«ã¼ã¿ã§ãããªã³ãªã³ã¯ã§ããªããã°ã¨ã©ã¼
+	 */
+	if (!router && !onlink)
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	if (nd6_options(nd_opt_off, input->buf +  off + ND_REDIRECT_HDR_SIZE,
+	                            input->len - (off + ND_REDIRECT_HDR_SIZE)) != E_OK)
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹) */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
+		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ND_REDIRECT_HDR_SIZE) +
+		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
+	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+		lladdr     = (uint8_t *)(opth + 1);
+		lladdr_len = (opth->len << 3);
+		}
+
+	/*
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 */
+	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
+		goto err_ret;
+
+	/* åãç´ãã®ã«ã¼ã¿ã®ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	nd6_cache_lladdr(ifp, &rdh->target, (T_IF_ADDR *)lladdr, ND_REDIRECT, 
+	                 onlink ? ND_REDIRECT_ONLINK : ND_REDIRECT_ROUTER);
+
+	/* ã«ã¼ãã£ã³ã°è¡¨ã«ç»é²ããã*/
+	in6_rtredirect(&rdh->target, &rdh->dst, 128, IN_RTF_REDIRECT, TMO_IN_REDIRECT);
+
+	syscall(rel_net_buf(input));
+	return;
+
+err_ret:
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+	}
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+#endif	/* of #if defined(NUM_IN6_REDIRECT_ROUTE_ENTRY) */
+
+/*
+ *  icmp6_input -- ICMP6 ã®å
+¥åé¢æ°
+ */
+
+uint_t
+icmp6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_IP6_HDR	*ip6h;
+	T_ICMP6_HDR	*icmp6h;
+	uint_t		len, off = *offp;
+	uint8_t		code;
+
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_OCTETS],
+	               input->len - GET_IF_IP6_HDR_SIZE(input));
+	NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInMsgs, 1);
+
+	/* ICMP6 ãããã®é·ãããã§ãã¯ããã*/
+	len  = input->len - off;
+	if (len < ICMP6_HDR_SIZE) {
+		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInErrors, 1);
+		goto buf_rel;
+		}
+
+	ip6h   = GET_IP6_HDR(input);
+	icmp6h = GET_ICMP6_HDR(input, off);
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	if ((in6_cksum(input, IPPROTO_ICMPV6, off, ntohs(ip6h->plen) - (off - IF_IP6_HDR_SIZE)) & 0xffff) != 0) {
+		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInErrors, 1);
+		goto buf_rel;
+		}
+
+	code = icmp6h->code;
+
+	/* ã¡ãã»ã¼ã¸ã®åã«ããåå²ããã*/
+	switch (icmp6h->type) {
+
+	case ICMP6_DST_UNREACH:			/* å®å
+å°éä¸å¯è½		*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInDestUnreachs, 1);
+		icmp6_notify_error(input, off);
+		break;
+
+	case ICMP6_ECHO_REQUEST:		/* ã¨ã³ã¼è¦æ±			*/
+		icmp6_echo_request(input, off);
+		return IPPROTO_DONE;
+		break;
+
+	case ICMP6_ECHO_REPLY:			/* ã¨ã³ã¼å¿ç­			*/
+
+#ifdef ICMP_CFG_CALLBACK_ECHO_REPLY
+
+		icmp6_echo_reply(input, off);
+
+#endif	/* of #ifdef ICMP_CFG_CALLBACK_ECHO_REPLY */
+
+		break;
+
+	case ND_ROUTER_ADVERT:			/* ã«ã¼ã¿éç¥			*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRouterAdvertisements, 1);
+		if (code != 0 || len < ROUTER_ADVERT_HDR_SIZE)
+			goto buf_rel;
+		nd6_ra_input(input, off);
+		return IPPROTO_DONE;
+		break;
+
+	case ND_NEIGHBOR_SOLICIT:		/* è¿é£è¦è«			*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborSolicits, 1);
+		if (code != 0 || len < NEIGHBOR_SOLICIT_HDR_SIZE)
+			goto buf_rel;
+		nd6_ns_input(input, off);
+		return IPPROTO_DONE;
+		break;
+
+	case ND_NEIGHBOR_ADVERT:		/* è¿é£éç¥			*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInNeighborAdvertisements, 1);
+		if (code != 0 || len < NEIGHBOR_ADVERT_HDR_SIZE)
+			goto buf_rel;
+		nd6_na_input(input, off);
+		return IPPROTO_DONE;
+		break;
+
+	case ND_REDIRECT:			/* åãç´ã			*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInRedirects, 1);
+
+#if defined(NUM_IN6_REDIRECT_ROUTE_ENTRY)
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+		if (code != 0 || len < ND_REDIRECT_HDR_SIZE)
+			goto buf_rel;
+		icmp6_redirect_input(input, off);
+		return IPPROTO_DONE;
+
+#else	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+
+		syslog(LOG_WARNING, "[ICMP6] redirect ignored.");
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+#else	/* of #if defined(NUM_IN6_REDIRECT_ROUTE_ENTRY) */
+
+		syslog(LOG_WARNING, "[ICMP6] redirect ignored.");
+
+#endif	/* of #if defined(NUM_IN6_REDIRECT_ROUTE_ENTRY) */
+
+		break;
+
+	case ICMP6_PACKET_TOO_BIG:		/* ãã±ãããå¤§ããããã	*/
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+		icmp6_mtudisc_update(input, off, ntohl(icmp6h->icmp6_mtu));
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInPktTooBigs, 1);
+		break;
+
+	case ICMP6_TIME_EXCEEDED:		/* TTL ãè¶
+éããã		*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInTimeExcds, 1);
+		break;
+
+	case ICMP6_PARAM_PROB:			/* IPv6 ããããä¸æ­£ã		*/
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInParmProblems, 1);
+		break;
+
+	case MLD_LISTENER_QUERY:		/* ãã«ãã­ã£ã¹ãåä¿¡è
+ç
+§ä¼	*/
+	case MLD_LISTENER_REPORT:		/* ãã«ãã­ã£ã¹ãåä¿¡è
+å ±å	*/
+	case MLD_LISTENER_DONE:			/* ãã«ãã­ã£ã¹ãåä¿¡è
+çµäº	*/
+	case ND_ROUTER_SOLICIT:			/* ã«ã¼ã¿è¦è«			*/
+	case ICMP6_ROUTER_RENUMBERING:		/* ã«ã¼ã¿çªå·åè¨­å®		*/
+	case ICMP6_FQDN_QUERY:			/* FQDN ç
+§ä¼			*/
+	case ICMP6_FQDN_REPLY:			/* FQDN å¿ç­			*/
+		syslog(LOG_INFO, "[ICMP6] unsupported type: %d.", icmp6h->type);
+		break;
+
+	default:
+		syslog(LOG_WARNING, "[ICMP6] unknown type: %d.", icmp6h->type);
+		NET_COUNT_ICMP6(net_count_icmp6[NC_ICMP6_IN_ERR_PACKETS], 1);
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpInErrors, 1);
+		break;
+		}
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+/*
+ *  icmp6_error -- ICMP6 ã¨ã©ã¼éä¿¡é¢æ°
+ */
+
+void
+icmp6_error (T_NET_BUF *input, uint8_t type, uint8_t code, uint32_t param)
+{
+	T_NET_BUF	*output;
+	T_IP6_HDR	*ip6h;
+	T_ICMP6_HDR	*icmp6h;
+	ER_UINT		off;
+	uint_t		next, len;
+
+	ip6h = GET_IP6_HDR(input);
+
+	/*
+	 *  å®å
+ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã®å ´åã¯ã
+	 *  ä»¥ä¸ã®æ¡ä»¶ä»¥å¤ã®ã¨ãã¯å¦çãè¡ããªãã
+	 *
+	 *    ã»ãã¼ã¿ã°ã©ã ãå¤§ããããã
+	 *    ã»IPv6 ãããã®ä¸æ­£ã§ããªãã·ã§ã³ãèªè­ã§ããªãã
+	 */
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst) &&
+	    !((type == ICMP6_PACKET_TOO_BIG) ||
+	      (type == ICMP6_PARAM_PROB && code == ICMP6_PARAMPROB_OPTION)))
+		goto buf_rel;
+
+	/*
+	 *  å§ç¹ã¢ãã¬ã¹ããä»¥ä¸ã®å ´åã¯å¦çãè¡ããªãã
+	 *
+	 *    ã»ç¡æå®
+	 *    ã»ãã«ãã­ã£ã¹ã
+	 */
+	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) ||
+	    IN6_IS_ADDR_MULTICAST  (&ip6h->src))
+		goto buf_rel;
+
+	/* æå¾ã®ããããæ¢ç´¢ããã*/
+	off = ip6_lasthdr(input, 0, IPPROTO_IPV6, &next);
+
+	/*
+	 *  ã¿ã¤ãããã¨ã©ã¼ãåãç´ãã® ICMP6 ãã±ããã®ã¨ã©ã¼ã«ã¯è¿ç­ããªãã
+	 */
+	if (off >= 0 && next == IPPROTO_ICMPV6) {
+		T_ICMP6_HDR	*icmp6h;
+
+		if (input->len - off < ICMP6_HDR_SIZE)
+			goto buf_rel;
+
+		icmp6h = GET_ICMP6_HDR(input, off);
+		if (icmp6h->type <  ICMP6_ECHO_REQUEST ||
+		    icmp6h->type == ND_REDIRECT)
+			goto buf_rel;
+		}
+
+	/* DoS æ»æã«å¯¾ããé²å¾¡ã¯æªå®è£
+ */
+
+	/*
+	 *  éãè¿ãã¡ãã»ã¼ã¸é·ããICMPv6 ã®æå¤§ãã¤ã­ã¼ãé·ã«èª¿æ´ããã
+	 *  IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE)
+	 */
+	if (input->len - IF_HDR_SIZE > IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE))
+		len = IPV6_MMTU - (IP6_HDR_SIZE + ICMP6_HDR_SIZE);
+	else
+		len = input->len - IF_HDR_SIZE;
+
+	/* éä¿¡ç¨ã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+	if (in6_get_datagram(&output, len + ICMP6_HDR_SIZE, 0,
+	                     &ip6h->src, &in6_addr_unspecified,
+	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
+	                     NBA_SEARCH_ASCENT, TMO_ICMP_OUTPUT) != E_OK)
+		goto buf_rel;
+
+	/* ICMP6 ããããè¨­å®ããã*/
+ 	icmp6h = GET_ICMP6_HDR(output, IF_IP6_ICMP6_HDR_OFFSET);
+ 	icmp6h->type       = type;
+ 	icmp6h->code       = code;
+ 	icmp6h->icmp6_pptr = htonl(param);
+ 
+ 	/* ã¨ã©ã¼ãã¼ã¿ãè¨­å®ããã*/
+ 	memcpy(GET_ICMP6_SDU(output, IF_IP6_ICMP6_HDR_OFFSET), (uint8_t *)ip6h, len);
+
+#ifdef SUPPORT_MIB
+
+	switch (type) {
+	case ICMP6_DST_UNREACH:
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutDestUnreachs, 1);
+		break;
+
+	case ICMP6_PARAM_PROB:
+		NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutParmProblems, 1);
+		break;
+
+	default:
+		break;
+
+		}
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+	/* éä¿¡ããã*/
+	icmp6_output(output, IF_IP6_HDR_SIZE);
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.c	(revision 313)
@@ -0,0 +1,133 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_timer.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/if_ether.h>
+
+#include <netinet6/in6.h>
+#include <netinet6/in6_var.h>
+
+#include <net/if_var.h>
+
+#if defined(_IP6_CFG) && defined(SUPPORT_ETHER)
+
+/*
+ *  ether_map_ipv6_multicast -- IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ããã¤ã¼ãµãããã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã¸ã®å¤æ
+ */
+
+void
+ether_map_ipv6_multicast (T_ETHER_ADDR *eaddr, const T_IN6_ADDR *maddr)
+{
+	eaddr->lladdr[0] = UINT_C(0x33);
+	eaddr->lladdr[1] = UINT_C(0x33);
+	eaddr->lladdr[2] = maddr->s6_addr8[12];
+	eaddr->lladdr[3] = maddr->s6_addr8[13];
+	eaddr->lladdr[4] = maddr->s6_addr8[14];
+	eaddr->lladdr[5] = maddr->s6_addr8[15];
+	}
+
+#endif /* of #if defined(_IP6_CFG) && defined(SUPPORT_ETHER) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/if6_ether.h	(revision 313)
@@ -0,0 +1,88 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifndef _IF6_ETHER_H_
+#define _IF6_ETHER_H_
+
+/*
+ *  é¢æ°
+ */
+
+extern void ether_map_ipv6_multicast (T_ETHER_ADDR *eaddr, const T_IN6_ADDR *maddr);
+
+#endif	/* of #ifndef _IF6_ETHER_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.c	(revision 313)
@@ -0,0 +1,547 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6.c,v 1.21 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: in6.c,v 1.259 2002/01/21 11:37:50 keiichi Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.c	8.2 (Berkeley) 11/15/93
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_types.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+#include <netinet6/in6.h>
+#include <netinet6/in6_var.h>
+#include <netinet6/nd6.h>
+#include <netinet6/in6_ifattach.h>
+
+#include <net/if_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+const T_IN6_ADDR in6_addr_unspecified =
+	IPV6_ADDR_UNSPECIFIED_INIT;
+
+const T_IN6_ADDR in6_addr_linklocal_allnodes =
+	IPV6_ADDR_LINKLOCAL_ALLNODES_INIT;
+
+const T_IN6_ADDR in6_addr_linklocal_allrouters =
+	IPV6_ADDR_LINKLOCAL_ALLROUTERS_INIT;
+
+/*
+ *  in6_addmulti -- ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã
+ */
+
+static ER
+in6_addmulti (T_IFNET *ifp, T_IN6_ADDR *maddr)
+{
+	ER	error = E_OK;
+
+	if ((error = if_addmulti(ifp, maddr, AT_INET6)) != E_OK)
+		return error;
+
+	return error;
+	}
+
+/*
+ *  in6_ifinit -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹æ
+å ±ãè¨­å®ããåæåããã
+ */
+
+static ER
+in6_ifinit (T_IFNET *ifp, T_IN6_IFADDR *ia, const T_IN6_ADDR *addr, uint_t prefix_len)
+{
+	/* ã¢ãã¬ã¹ã¨ãã¬ãã£ãã¯ã¹é·ãè¨­å®ããã*/
+	ia->addr       = *addr;
+	ia->prefix_len = prefix_len;
+
+	/* ãã©ã°ãåæåããã*/
+	ia->flags = 0;
+
+	/*
+	 *  åãã¦ã¢ãã¬ã¹ãè¨­å®ãããã¨ããã¤ã³ã¿ãã§ã¼ã¹ç¬èªã®åæåãè¡ãã
+	 */
+
+	return E_OK;
+	}
+
+/*
+ *  in6_ifainit -- ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½ã®åæå
+ */
+
+void
+in6_ifainit (void)
+{
+	T_IN6_IFADDR	*ia = NULL;
+	T_IFNET		*ifp = IF_GET_IFNET();
+	int_t 		ix;
+
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		memset(ia, sizeof(T_IN6_IFADDR), 0);
+		ia->router_index = IN6_RTR_IX_UNREACH;
+		ia->prefix_index = ND6_PREFIX_IX_INVALID;
+		}
+	}
+
+/*
+ *  in6_if2idlen -- ã¤ã³ã¿ãã§ã¼ã¹ ID é·ãè¿ãã
+ */
+
+int_t
+in6_if2idlen (T_IFNET *ifp)
+{
+#if IF_TYPE == IFT_ETHER
+	return 64;
+#else
+	return 64;
+#endif
+	}
+
+/*
+ *  in6_addr2ifaix -- ã¢ãã¬ã¹ããã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ
+å ±ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ */
+
+int_t
+in6_addr2ifaix (const T_IN6_ADDR *addr)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia;
+	int_t 		ix;
+
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		if ((ia->flags & IN6_IFF_DEFINED) != 0 &&
+		    in6_are_prefix_equal(addr, &ia->addr, ia->prefix_len))
+			return ix;
+		}
+
+	return IPV6_IFADDR_IX_INVALID;
+	}
+
+/*
+ *  in6_addr2maix -- ã¢ãã¬ã¹ãããã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®ã¤ã³ããã¯ã¹ã«å¤æããã
+ */
+
+int_t
+in6_addr2maix (const T_IN6_ADDR *addr)
+{
+	if (addr->s6_addr8[0] == 0xff) {
+		if (addr->s6_addr8[1] == 0x02) {
+			if (addr->s6_addr8[11] == 0x01 && addr->s6_addr8[12] == 0xff)
+				return IPV6_MADDR_IX_SOL_NODE;
+			else
+				return IPV6_MADDR_IX_LL_ALL_NODE;
+			}
+		else
+			return IPV6_MADDR_IX_EXTRA;
+		}
+	else
+		return IPV6_MADDR_IX_EXTRA;
+	}
+
+/*
+ *  in6_update_ifa -- ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
+å ±ãæ´æ°ããã
+ */
+
+ER
+in6_update_ifa (T_IFNET *ifp, T_IN6_IFADDR *ia, const T_IN6_ADDR *addr,
+                uint_t prefix_len, uint32_t vltime, uint32_t pltime,
+                int_t router_index, int_t prefix_index, uint_t flags)
+{
+	T_IN6_ADDR	llsol;
+	ER		error = E_OK;
+	SYSTIM		now;
+
+	/* å¼æ°ããã§ãã¯ããã*/
+	if (addr == NULL)
+		return E_PAR;
+
+	/*
+	 *  æå¹æéããã§ãã¯ããã
+	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+	 */
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	if (((vltime != ND6_INFINITE_LIFETIME) && (vltime + now < now)) || vltime == 0)
+		return E_PAR;
+
+	if ((pltime != ND6_INFINITE_LIFETIME) && (pltime + now < now))
+		return E_PAR;
+
+	/* ã¤ã³ã¿ãã§ã¼ã¹ãåæåããã*/
+	if ((error = in6_ifinit(ifp, ia, addr, prefix_len)) != E_OK)
+		return error;
+
+	if (IN6_IS_ADDR_LINKLOCAL(addr)) {
+
+		/* è¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		llsol.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
+		llsol.s6_addr32[1] = 0x00000000;
+		llsol.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
+		llsol.s6_addr32[3] = addr->s6_addr32[3];
+		llsol.s6_addr8[12] = 0xff;
+		if ((error = in6_addmulti(ifp, &llsol)) != E_OK)
+			return error;
+
+		/* å
+¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãç»é²ããã*/
+		llsol.s6_addr32[2] = 0x00000000;
+		llsol.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
+		if ((error = in6_addmulti(ifp, &llsol)) != E_OK)
+			return error;
+
+		}
+
+	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	ia->router_index = router_index;
+
+	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹ãè¨­å®ããã*/
+	ia->prefix_index = prefix_index;
+
+	/* ãã©ã°ãè¨­å®ããã*/
+	ia->flags  = flags & ~(IN6_IFF_DUPLICATED | IN6_IFF_NODAD);
+	ia->flags |= IN6_IFF_DEFINED;
+
+ 	/*
+ 	 *  ã¢ãã¬ã¹æå¹æéãè¨­å®ããã
+	 *  vltime (æå¹æé) ã¨ pltime (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+ 	 */
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+ 	ia->lifetime.vltime = vltime;
+ 	if (vltime != ND6_INFINITE_LIFETIME)
+ 		ia->lifetime.expire = now + vltime;
+ 	else
+ 		ia->lifetime.expire = 0;
+
+ 	ia->lifetime.pltime = pltime;
+ 	if (pltime != ND6_INFINITE_LIFETIME)
+ 		ia->lifetime.preferred = now + pltime;
+ 	else
+ 		ia->lifetime.preferred = 0;
+
+	/* è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã*/
+	nd6_ifattach(ifp);
+
+	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+	if ((flags & IN6_IFF_NODAD) == 0) {
+		ia->flags |= IN6_IFF_TENTATIVE;
+		nd6_dad_start(ifp, ia, NULL);
+		}
+
+	return error;
+	}
+
+/*
+ * in6ifa_ifpwithix -- ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
+ *                     å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ */
+
+T_IN6_IFADDR *
+in6ifa_ifpwithix (T_IFNET *ifp, int_t ix)
+{
+	return ix < NUM_IN6_IFADDR_ENTRY? &ifp->in6_ifaddrs[ix] : NULL;
+	}
+
+/*
+ * in6ifa_ifpwithrtrix -- ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹çªå·ããããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
+ *                        å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ */
+
+T_IN6_IFADDR *
+in6ifa_ifpwithrtrix (T_IFNET *ifp, int_t router_index)
+{
+	int_t ix;
+
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
+		if (ifp->in6_ifaddrs[ix].router_index == router_index)
+			return &ifp->in6_ifaddrs[ix];
+	return NULL;
+	}
+
+/*
+ * in6_ifawithifp -- å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹æ
+å ±ãã
+ *                   ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ */
+
+T_IN6_IFADDR *
+in6_ifawithifp (T_IFNET *ifp, const T_IN6_ADDR *dst)
+{
+	uint_t	scope;
+	int_t	ix;
+
+	/* å®å
+ã¢ãã¬ã¹ã¨åãã¹ã³ã¼ãã®ã¢ãã¬ã¹ãè¿ãã*/
+	if ((ix = in6_addr2ifaix(dst)) != IPV6_IFADDR_IX_INVALID)
+		return &ifp->in6_ifaddrs[ix];
+	else if ((ix = in6_addr2maix(dst)) == IPV6_MADDR_IX_SOL_NODE ||
+	          ix                       == IPV6_MADDR_IX_LL_ALL_NODE)
+		return &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
+	else {
+		scope = in6_addrscope(dst);
+		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+			if ((ifp->in6_ifaddrs[ix].flags & IN6_IFF_DEFINED) &&
+			    (ifp->in6_ifaddrs[ix].flags & IN6_IFF_DETACHED) == 0 &&
+			    in6_addrscope(&ifp->in6_ifaddrs[ix].addr) == scope) {
+				return &ifp->in6_ifaddrs[ix];
+				}
+			}
+		return NULL;
+		}
+	}
+
+/*
+ * in6_addrwithifp -- å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+ *                    ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ããã
+ */
+
+const T_IN6_ADDR *
+in6_addrwithifp (T_IFNET *ifp, T_IN6_ADDR *src, const T_IN6_ADDR *dst)
+{
+	T_IN6_IFADDR *ifaddr;
+
+	if ((ifaddr = in6_ifawithifp(ifp, dst)) == NULL)
+		return NULL;
+	else {
+		*src = ifaddr->addr;
+		return src;
+		}
+	}
+
+/*
+ * in6_if_up -- ã¤ã³ã¿ãã§ã¼ã¹èµ·åå¾ã®éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã
+ */
+
+void
+in6_if_up (T_IFNET *ifp)
+{
+#if 0						/* ä¿ç */
+	int_t dad_delay, ix;
+#endif	/* of #if 0 */
+
+	in6_ifattach(ifp);
+
+#if 0						/* ä¿ç */
+	/* éè¤ã¢ãã¬ã¹æ¤åºãè¡ãã*/
+	dad_delay = 0;
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; )
+		if ((ifp->in6_ifaddrs[ix].flags & IN6_IFF_DEFINED) &&
+		    (ifp->in6_ifaddrs[ix].flags & IN6_IFF_TENTATIVE))
+			nd6_dad_start(ifp, &ifp->in6_ifaddrs[ix], &dad_delay);
+#endif	/* of #if 0 */
+
+#if NUM_ND6_RTR_SOL_RETRY > 0
+
+	/* ã«ã¼ã¿è¦è«ãåºåããã*/
+	nd6_rtrsol_ctl();
+
+#endif	/* of #if NUM_ND6_RTR_SOL_RETRY > 0 */
+	}
+
+/*
+ *  in6_are_prefix_equal -- ãã¬ãã£ãã¯ã¹ãåä¸ãèª¿ã¹ãã
+ */
+
+bool_t
+in6_are_prefix_equal (const T_IN6_ADDR *addr, const T_IN6_ADDR *prefix, uint_t prefix_len)
+{
+	uint_t bitlen, bytelen;
+
+	bytelen = prefix_len / 8;
+	if (memcmp(&addr->s6_addr, &prefix->s6_addr, bytelen))
+		return false;
+
+	bitlen = prefix_len % 8;
+	if (  addr->s6_addr[bytelen] >> (8 - bitlen) !=
+	    prefix->s6_addr[bytelen] >> (8 - bitlen))
+		return false;
+
+	return true;
+	}
+
+/*
+ *  in6_ifaddr_timer -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®ç®¡çã¿ã¤ãã¼
+ */
+
+void
+in6_ifaddr_timer (T_IFNET *ifp)
+{
+	T_IN6_IFADDR	*ia;
+	SYSTIM		now;
+	int_t		ix;
+
+	syscall(get_tim(&now));
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+
+		if ((ia->flags & IN6_IFF_DEFINED) == 0)
+			;
+		else if (IFA6_IS_INVALID(ia, now)) {
+
+			/*
+			 *  æå¹æéãéããã®ã§åé¤ããã
+			 */
+			ia->flags &= ~IN6_IFF_DEFINED;
+			}
+
+		else if (IFA6_IS_DEPRECATED(ia, now)) {
+
+			/*
+			 *  æ¨å¥¨æå¹æéãéããã®ã§éæ¨å¥¨ã«ããã
+			 */
+			ia->flags |= IN6_IFF_DEPRECATED;
+			}
+		}
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6.h	(revision 313)
@@ -0,0 +1,320 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6.h,v 1.7.2.4 2001/07/04 09:45:23 ume Exp $	*/
+/*	$KAME: in6.h,v 1.89 2001/05/27 13:28:35 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.h	8.3 (Berkeley) 1/3/94
+ */
+ 
+#ifndef _IN6_H_
+#define _IN6_H_
+
+/*
+ *  IPv6 ã¢ãã¬ã¹æ§é 
+ *
+ *    RFC4291ï¼RFC1884ãRFC2373ãRFC3513 ã®ã¢ãããã¼ãï¼
+ */
+
+/*
+ *  IPv6 ã¢ãã¬ã¹
+ */
+
+struct t_in6_addr {
+	union {
+		uint8_t		__u6_addr8[16];
+		uint16_t	__u6_addr16[8];
+		uint32_t	__u6_addr32[4];
+		} __u6_addr;
+	};
+
+#define s6_addr		__u6_addr.__u6_addr8
+#define s6_addr8	__u6_addr.__u6_addr8
+#define s6_addr16	__u6_addr.__u6_addr16
+#define s6_addr32	__u6_addr.__u6_addr32
+
+#ifndef T_IN6_ADDR_DEFINED
+
+typedef struct t_in6_addr T_IN6_ADDR;
+
+#define T_IN6_ADDR_DEFINED
+
+#endif	/* of #ifndef T_IN6_ADDR_DEFINED */
+
+/*
+ *  IPv6 ã¢ãã¬ã¹ã®åæåãã¼ã¿
+ */
+
+#define IPV6_ADDR_UNSPECIFIED_INIT	\
+	{{{ UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00) }}}
+
+#define IPV6_ADDR_LINKLOCAL_ALLNODES_INIT	\
+	{{{ UINT_C(0xff), UINT_C(0x02), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x01) }}}
+
+#define IPV6_ADDR_LINKLOCAL_ALLROUTERS_INIT	\
+	{{{ UINT_C(0xff), UINT_C(0x02), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), \
+	    UINT_C(0x00), UINT_C(0x00), UINT_C(0x00), UINT_C(0x02) }}}
+
+/*
+ *  ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯
+ */
+
+/* ç¡æå® */
+
+#define IN6_IS_ADDR_UNSPECIFIED(a)	\
+	(memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR)) == 0)
+
+/* ã«ã¼ãããã¯ */
+
+#define IN6_IS_ADDR_LOOPBACK(a)		\
+	(memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR) - 1) == 0 && \
+	 (a)->s6_addr8[15] == 0x01)
+
+/*
+ *  ã¹ã³ã¼ã ID
+ */
+
+#define IPV6_ADDR_SCOPE_NODELOCAL	UINT_C(0x01)
+#define IPV6_ADDR_SCOPE_LINKLOCAL	UINT_C(0x02)
+#define IPV6_ADDR_SCOPE_SITELOCAL	UINT_C(0x05)
+#define IPV6_ADDR_SCOPE_ORGLOCAL	UINT_C(0x08)
+#define IPV6_ADDR_SCOPE_GLOBAL		UINT_C(0x0e)
+
+/*
+ *  ã¦ãã­ã£ã¹ãã»ã¹ã³ã¼ã
+ *
+ *  æ³¨æ: ä¸ä½ 10 ãããã®ã¿ãã§ãã¯ããªããã°ãªããªããRFC2373 åç
+§
+ */
+
+/* ãªã³ã¯ã­ã¼ã«ã« */
+
+#define IN6_IS_ADDR_LINKLOCAL(a)	\
+	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0x80)))
+
+/* ãµã¤ãã­ã¼ã«ã« */
+
+#define IN6_IS_ADDR_SITELOCAL(a)	\
+	(((a)->s6_addr8[0] == UINT_C(0xfe)) && (((a)->s6_addr8[1] & UINT_C(0xc0)) == UINT_C(0xc0)))
+
+/* éç´å¯è½ã¦ãã­ã£ã¹ã (ã°ã­ã¼ãã«) */
+
+#define IN6_IS_ADDR_AGGREGATE_UNICAST(a)	\
+	(((a)->s6_addr8[0] & UINT_C(0xe0)) == UINT_C(0x20))
+
+/*
+ *  ãã«ãã­ã£ã¹ã
+ */
+
+#define IN6_IS_ADDR_MULTICAST(a)	((a)->s6_addr8[0] == UINT_C(0xff))
+
+/*
+ *  åä¸ã®ãã§ãã¯
+ */
+
+#define IN6_ARE_ADDR_EQUAL(a,b)		(memcmp((a), (b), sizeof(T_IN6_ADDR)) == 0)
+
+/*
+ *  çµè·¯å¶å¾¡ç¨å®ç¾©
+ */
+
+#define IPV6_RTHDR_TYPE_0		UINT_C(0)	/* IPv6 çµè·¯å¶å¾¡ãããã¿ã¤ã 0	*/
+
+/*
+ *  è¦å®å¤ã¨å¶éå¤
+ */
+
+#define IPV6_DEFAULT_MULTICAST_HOPS	1	/* ãã«ãã­ã£ã¹ãæã®ããããªãããã®è¦å®å¤	*/
+#define ND6_INFINITE_LIFETIME		0xffffffff	/* ã¢ãã¬ã¹ã®ç¡å¶éæå¹æé		*/
+
+/*
+ *  ITRON TCP/IPv6 ã¢ãã¬ã¹/ãã¼ãçªå·ã®å®ç¾©
+ */
+
+typedef struct t_ipv6ep {
+	T_IN6_ADDR	ipaddr;		/* IPv6 ã¢ãã¬ã¹	*/
+	uint16_t	portno;		/* ãã¼ãçªå·	*/
+	} T_IPV6EP;
+
+#define T_IPV6EP_DEFINED
+
+/*
+ *  ITRON/TCP/IP ç¨ IP ã¢ãã¬ã¹ã®å®ç¾©
+ */
+
+#define IPV6_ADDRANY		IPV6_ADDR_UNSPECIFIED_INIT
+
+/*
+ *  åççæç¨ IPv6 TCP åä»å£
+ */
+
+typedef struct t_tcp6_crep {
+	/* æ¨æº */
+	ATR		repatr;		/* åä»å£å±æ§		*/
+	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹	*/
+	/* å®è£
+ä¾å­ */
+	} T_TCP6_CREP;
+
+/*
+ *  åççæç¨ IPv6 UDP éä¿¡ç«¯ç¹
+ */
+
+typedef struct t_udp6_ccep {
+	/* æ¨æº */
+	ATR		cepatr;		/* UDP éä¿¡ç«¯ç¹å±æ§		*/
+	T_IPV6EP	myaddr;		/* èªåã®ã¢ãã¬ã¹		*/
+	FP		callback;	/* ã³ã¼ã«ããã¯é¢æ°		*/
+	/* å®è£
+ä¾å­ */
+	} T_UDP6_CCEP;
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+extern const T_IN6_ADDR in6_addr_unspecified;
+extern const T_IN6_ADDR in6_addr_linklocal_allnodes;
+extern const T_IN6_ADDR in6_addr_linklocal_allrouters;
+
+#define ipv6_addrany	in6_addr_unspecified
+
+/*
+ *  TINET ç¬èª API
+ */
+
+extern char *ipv62str (char *buf, const T_IN6_ADDR *p_addr);
+extern uint_t in6_get_maxnum_ifaddr (void);
+extern const T_IN6_ADDR *in6_get_ifaddr (int_t index);
+extern ER in6_upd_ifaddr (T_IN6_ADDR *addr, uint_t prefixlen,
+                          uint32_t vltime, uint32_t pltime);
+extern ER in6_del_ifaddr (T_IN6_ADDR *addr);
+extern T_IN6_ADDR *in6_make_ipv4mapped (T_IN6_ADDR *dst, T_IN4_ADDR src);
+extern bool_t in6_is_addr_ipv4mapped (const T_IN6_ADDR *addr);
+
+#endif	/* of #ifndef _IN6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.c	(revision 313)
@@ -0,0 +1,213 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6_ifattach.c,v 1.2.2.5 2001/08/13 16:26:17 ume Exp $	*/
+/*	$KAME: in6_ifattach.c,v 1.118 2001/05/24 07:44:00 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+#include <netinet6/in6.h>
+#include <netinet6/in6_var.h>
+#include <netinet6/nd6.h>
+#include <netinet6/in6_ifattach.h>
+
+#include <net/if_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ * EUI64 ã®å®ç¾©
+ */
+
+#define EUI64_UBIT		0x02
+
+#ifdef SUPPORT_ETHER
+
+/*
+ * get_mac6_ifid -- MAC (6 ãªã¯ããã) ã¢ãã¬ã¹ã§ãã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã
+ */
+
+static ER
+get_mac6_ifid (T_IFNET *ifp, T_IN6_ADDR *ifra_addr)
+{
+	ifra_addr->s6_addr[ 8] = ifp->ic->ifaddr.lladdr[0] ^ EUI64_UBIT;
+	ifra_addr->s6_addr[ 9] = ifp->ic->ifaddr.lladdr[1];
+	ifra_addr->s6_addr[10] = ifp->ic->ifaddr.lladdr[2];
+	ifra_addr->s6_addr[11] = UINT_C(0xff);
+	ifra_addr->s6_addr[12] = UINT_C(0xfe);
+	ifra_addr->s6_addr[13] = ifp->ic->ifaddr.lladdr[3];
+	ifra_addr->s6_addr[14] = ifp->ic->ifaddr.lladdr[4];
+	ifra_addr->s6_addr[15] = ifp->ic->ifaddr.lladdr[5];
+
+	return E_OK;
+	}
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_PPP
+
+/*
+ * get_rand_ifid -- ä¹±æ°ã«ãããã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã
+ */
+
+static ER
+get_rand_ifid (T_IFNET *ifp, T_IN6_ADDR *ifra_addr)
+{
+	return E_OK;
+	}
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef IP6_CFG_AUTO_LINKLOCAL
+
+/*
+ *  in6_ifattach_linklocal -- ã¤ã³ã¿ãã§ã¼ã¹ã«ãªã³ã¯ã­ã¼ã«ã«ã»ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ */
+
+static ER
+in6_ifattach_linklocal (T_IFNET *ifp)
+{
+	T_IN6_ADDR	addr;
+	ER		error = E_OK;
+
+	/*
+	 *  ãªã³ã¯ã­ã¼ã«ã«ã»ãã¬ãã£ãã¯ã¹ fe80::/64 ãè¨­å®ããã
+	 */
+	addr.s6_addr32[0] = IPV6_ADDR_INT32_ULL;
+	addr.s6_addr32[1] = ULONG_C(0);
+
+	/* ã¤ã³ã¿ãã§ã¼ã¹è­å¥å­ãè¨­å®ããã*/
+	if ((error = IF_IN6_IFID(ifp, &addr)) != E_OK)
+		return error;
+
+	/* ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹æ
+å ±ãæ´æ°ããã*/
+	if ((error = in6_update_ifa(ifp, &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL],
+	                            &addr, 64, ND6_INFINITE_LIFETIME,
+	                                       ND6_INFINITE_LIFETIME, 
+	                                       IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0)) != E_OK)
+		return error;
+
+	return error;
+	}
+
+#endif	/* of #ifdef IP6_CFG_AUTO_LINKLOCAL */
+
+/*
+ *  in6_ifattach -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãå²ãå½ã¦ãã
+ */
+
+ER
+in6_ifattach (T_IFNET *ifp)
+{
+	ER error = E_OK;
+
+#ifdef IP6_CFG_AUTO_LINKLOCAL
+
+	if ((ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL].flags & IN6_IFF_DEFINED) == 0)
+		if ((error = in6_ifattach_linklocal(ifp)) != E_OK)
+			return error;
+
+#endif	/* of #ifdef IP6_CFG_AUTO_LINKLOCAL */
+
+	return error;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_ifattach.h	(revision 313)
@@ -0,0 +1,87 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6_ifattach.h,v 1.3 2001/06/11 12:39:05 ume Exp $	*/
+/*	$KAME: in6_ifattach.h,v 1.14 2001/02/08 12:48:39 jinmei Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _IN6_IFATTACH_H_
+#define _IN6_IFATTACH_H_
+
+/*
+ *  é¢æ°
+ */
+
+extern ER in6_ifattach (T_IFNET *ifp);
+
+#endif	/* of #ifndef _IN6_IFATTACH_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_rename.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_rename.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_rename.h	(revision 313)
@@ -0,0 +1,193 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _IN6_RENAME_H_
+#define _IN6_RENAME_H_
+
+/*
+ *  TCP/IPv6 ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨åã®ãªãã¼ã 
+ */
+
+/* netinet6/in6.c */
+
+#define in6_are_prefix_equal	_tinet_in6_are_prefix_equal
+#define in6ifa_ifpwithrtrix	_tinet_in6ifa_ifpwithrtrix
+#define in6_if_up		_tinet_in6_if_up
+#define in6_if2idlen		_tinet_in6_if2idlen
+#define in6_ifaddr_timer	_tinet_in6_ifaddr_timer
+#define in6ifa_ifpwithix	_tinet_in6ifa_ifpwithix
+#define in6_addr2maix		_tinet_in6_addr2maix
+#define in6_ifawithifp		_tinet_in6_ifawithifp
+#define in6_addr2ifaix		_tinet_in6_addr2ifaix
+#define in6_update_ifa		_tinet_in6_update_ifa
+#define in6_ifainit		_tinet_in6_ifainit
+#define in6_addrwithifp		_tinet_in6_addrwithifp
+#define in6_addr_loopback	_tinet_in6_addr_loopback
+
+/* netinet6/in6_ifattach.c */
+
+#define in6_ifattach		_tinet_in6_ifattach
+
+/* netinet6/in6_subr.c */
+
+#define inn6_is_dstaddr_accept	_tinet_inn6_is_dstaddr_accept
+#define in6_lookup_ifaddr	_tinet_in6_lookup_ifaddr
+#define in6_rtalloc		_tinet_in6_rtalloc
+#define in6_get_ifaddr		_tinet_in6_get_ifaddr
+#define in6_cksum		_tinet_in6_cksum
+#define in6_gateway_lookup	_tinet_in6_gateway_lookup
+#define in6_is_dstaddr_accept	_tinet_in6_is_dstaddr_accept
+#define in6_hostcache_getmtu	_tinet_in6_hostcache_getmtu
+#define in6_set_header		_tinet_in6_set_header
+#define in6_get_datagram	_tinet_in6_get_datagram
+#define in6_rtredirect		_tinet_in6_rtredirect
+#define get_ip6_hdr_size	_tinet_get_ip6_hdr_size
+#define in6_plen2pmask		_tinet_in6_plen2pmask
+#define in6_rtnewentry		_tinet_in6_rtnewentry
+#define in6_rtinit		_tinet_in6_rtinit
+#define in6_rttimer		_tinet_in6_rttimer
+#define in6_lookup_multi	_tinet_in6_lookup_multi
+#define in6_hostcache_update	_tinet_in6_hostcache_update
+#define in6_init		_tinet_in6_init
+
+/* netinet6/if6_ether.c */
+
+#define ether_map_ipv6_multicast	\
+				_tinet_ether_map_ipv6_multicast
+
+/* netinet6/ip6_input.c */
+
+#define ip6_input		_tinet_ip6_input
+#define ip6_lasthdr		_tinet_ip6_lasthdr
+#define ip6_unknown_opt		_tinet_ip6_unknown_opt
+#define ip6_init		_tinet_ip6_init
+#define ip6_nexthdr		_tinet_ip6_nexthdr
+#define ip6_remove_exthdrs	_tinet_ip6_remove_exthdrs
+#define ip6_get_prev_hdr	_tinet_ip6_get_prev_hdr
+
+/* netinet6/ip6_output.c */
+
+#define ip6_output		_tinet_ip6_output
+#define linkmtu			_tinet_linkmtu
+
+/* netinet6/dest6.c */
+
+#define dest6_input		_tinet_dest6_input
+
+/* netinet6/rout6.c */
+
+#define route6_input		_tinet_route6_input
+
+/* netinet6/frag6.c */
+
+#define frag6_input		_tinet_frag6_input
+#define frag6_timer		_tinet_frag6_timer
+#define ip6_get_frag_queue	_tinet_ip6_get_frag_queue
+
+/* netinet6/ah_input.c */
+
+#define ah6_input		_tinet_ah6_input
+
+/* netinet6/esp_input.c */
+
+#define esp6_input		_tinet_esp6_input
+
+/* netinet6/icmp6.c */
+
+#define icmp6_input		_tinet_icmp6_input
+#define icmp6_error		_tinet_icmp6_error
+#define icmp6_echo_reply	_tinet_icmp6_echo_reply
+
+/* netinet6/nd6.c */
+
+#define nd6_ifattach		_tinet_nd6_ifattach
+#define nd6_is_addr_neighbor	_tinet_nd6_is_addr_neighbor
+#define nd6_cache_lladdr	_tinet_nd6_cache_lladdr
+#define nd6_output_hold		_tinet_nd6_output_hold
+#define nd6_init		_tinet_nd6_init
+#define nd6_output		_tinet_nd6_output
+#define nd6_options		_tinet_nd6_options
+#define nd6_storelladdr		_tinet_nd6_storelladdr
+#define nd6_lookup		_tinet_nd6_lookup
+#define nd6_get_drl		_tinet_nd6_get_drl
+#define nd6_get_cache		_tinet_nd6_get_cache
+#define nd6_timer		_tinet_nd6_timer
+
+/* netinet6/nd6_nbr.c */
+
+#define nd6_dad_start		_tinet_nd6_dad_start
+#define nd6_ns_input		_tinet_nd6_ns_input
+#define nd6_na_input		_tinet_nd6_na_input
+#define nd6_ns_output		_tinet_nd6_ns_output
+#define nd6_na_output		_tinet_nd6_na_output
+
+/* netinet6/nd6_rtr.c */
+
+#define nd6_get_prl		_tinet_nd6_get_prl
+#define nd6_router_lookup	_tinet_nd6_router_lookup
+#define nd6_onlink_prefix_lookup	\
+				_tinet_nd6_onlink_prefix_lookup
+#define nd6_defrtrlist_del	_tinet_nd6_defrtrlist_del
+#define nd6_prefix_onlink	_tinet_nd6_prefix_onlink
+#define nd6_get_drl		_tinet_nd6_get_drl
+#define nd6_rtrsol_ctl		_tinet_nd6_rtrsol_ctl
+#define nd6_defrtrlist_timer	_tinet_nd6_defrtrlist_timer
+#define nd6_ra_input		_tinet_nd6_ra_input
+#define nd6_prelist_timer	_tinet_nd6_prelist_timer
+#define nd6_prefix_offlink	_tinet_nd6_prefix_offlink
+#define nd6_defrtrlist_lookup	_tinet_nd6_defrtrlist_lookup
+#define ip6_defhlim		_tinet_ip6_defhlim
+#define nd6_reachable_time	_tinet_nd6_reachable_time
+#define nd6_base_reachable_time	_tinet_nd6_base_reachable_time
+#define nd6_recalc_reachtm_interval	\
+				_tinet_nd6_recalc_reachtm_interval
+#define nd6_retrans_time	_tinet_nd6_retrans_time
+
+/* netinet6/scope6.c */
+
+#define in6_addrscope		_tinet_in6_addrscope
+
+#endif	/* of #ifndef _IN6_RENAME_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_subr.c	(revision 313)
@@ -0,0 +1,963 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1985, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+
+#include <netinet6/nd6.h>
+#include <netinet6/ah.h>
+
+#include <net/if_var.h>
+
+/*
+ *  in6_make_ipv4mapped -- IPv4 å°å½±ã¢ãã¬ã¹ãçæããã
+ *
+ *  æ³¨æ:
+ *    src ã¯ãã¹ããã¤ããªã¼ãã¼
+ *
+ */
+
+T_IN6_ADDR *
+in6_make_ipv4mapped (T_IN6_ADDR *dst, T_IN4_ADDR src)
+{
+	dst->s6_addr32[0] = ULONG_C(0x00000000);
+	dst->s6_addr32[1] = ULONG_C(0x00000000);
+	dst->s6_addr32[2] = IPV6_ADDR_INT32_0000FFFF;
+	dst->s6_addr32[3] = htonl(src);
+
+	return dst;
+	}
+
+#ifdef _IP6_CFG
+
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  in6_rtinit -- ã«ã¼ãã£ã³ã°è¡¨ãåæåããã
+ */
+
+void
+in6_rtinit (void)
+{
+	int_t ix;
+
+	for (ix = 0; ix < NUM_IN6_STATIC_ROUTE_ENTRY; ix ++)
+		routing6_tbl[ix].flags = IN_RTF_DEFINED;
+
+	for ( ; ix < NUM_IN6_ROUTE_ENTRY; ix ++)
+		routing6_tbl[ix].flags = 0;
+	}
+
+/*
+ *  in6_rtnewentry -- æ°ããã¨ã³ããªãç²å¾ããã
+ */
+
+T_IN6_RTENTRY *
+in6_rtnewentry (uint8_t flags, uint32_t tmo)
+{
+	SYSTIM		now;
+	T_IN6_RTENTRY	*rt, *frt = NULL;
+	int_t		ix;
+
+	/* ç©ºãã¨ã³ããªãæ¢ãã*/
+	for (ix = NUM_IN6_STATIC_ROUTE_ENTRY; ix < NUM_IN6_ROUTE_ENTRY; ix ++) {
+		rt = &routing6_tbl[ix];
+		if ((routing6_tbl[ix].flags & IN_RTF_DEFINED) == 0) {
+			frt = rt;
+			break;
+			}
+		}
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	if (frt == NULL) {
+		/* ç©ºãããªããã°ãæå¹æéããã£ã¨ãç­ãã¨ã³ããªãç©ºãã«ããã*/
+		T_IN6_RTENTRY	*srt = NULL;
+		int_t		diff, sdiff = INT_MAX;
+
+		syscall(wai_sem(SEM_IN6_ROUTING_TBL));
+		for (ix = NUM_IN6_STATIC_ROUTE_ENTRY; ix < NUM_IN6_ROUTE_ENTRY; ix ++) {
+			rt = &routing6_tbl[ix];
+			diff = (int_t)(rt->expire - now);
+			if (diff <= 0) {	/* rt->expire <= now */
+				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				frt = rt;
+				break;
+				}
+			else if (diff < sdiff) {
+				srt = rt;
+				sdiff = diff;
+				}
+			}
+		if (frt == NULL)
+			frt = srt;
+		frt->flags = 0;
+		syscall(sig_sem(SEM_IN6_ROUTING_TBL));
+		}
+
+	frt->flags  = (uint8_t)(flags | IN_RTF_DEFINED);
+	frt->expire = now + tmo / SYSTIM_HZ;
+	return frt;
+	}
+
+/*
+ *  in6_rttimer -- ã«ã¼ãã£ã³ã°è¡¨ã®ç®¡çã¿ã¤ãã¼
+ */
+
+void
+in6_rttimer (void)
+{
+	SYSTIM	now;
+	int_t	ix;
+
+	/* expire ã®åä½ã¯ [s]ã*/
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	syscall(wai_sem(SEM_IN6_ROUTING_TBL));
+	for (ix = NUM_IN6_STATIC_ROUTE_ENTRY; ix < NUM_IN6_ROUTE_ENTRY; ix ++)
+		if ((routing6_tbl[ix].flags & IN_RTF_DEFINED) &&
+		    (int_t)(routing6_tbl[ix].expire - now) <= 0)
+			routing6_tbl[ix].flags = 0;
+	syscall(sig_sem(SEM_IN6_ROUTING_TBL));
+	}
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+/*
+ *  ãã¹ãã­ã£ãã·ã¥
+ */
+
+static T_IN6_HOSTCACHE_ENTRY in6_hostcache[NUM_IN6_HOSTCACHE_ENTRY];
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+/*
+ *  in6_lookup_ifaddr -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãæ¢ç´¢ããã
+ */
+
+T_IN6_IFADDR *
+in6_lookup_ifaddr (T_IFNET *ifp, const T_IN6_ADDR *addr)
+{
+	int_t ix;
+
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+		if ((ifp->in6_ifaddrs[ix].flags & IN6_IFF_DEFINED) &&
+		    IN6_ARE_ADDR_EQUAL(addr, &ifp->in6_ifaddrs[ix].addr))
+			return &ifp->in6_ifaddrs[ix];
+		}
+	return NULL;
+	}
+
+/*
+ *  in6_lookup_multi -- ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæ¤ç´¢ããã
+ */
+
+bool_t
+in6_lookup_multi (T_IFNET *ifp, const T_IN6_ADDR *maddr)
+{
+	int_t ix;
+
+	for (ix = MAX_IN6_MADDR_CNT; ix -- > 0; )
+		if (IN6_ARE_ADDR_EQUAL(maddr, &ifp->in6_maddrs[ix]))
+			return true;
+	return false;
+	}
+
+/*
+ *  in6_set_header -- IPv6 ããããè¨­å®ããã
+ */
+
+ER
+in6_set_header (T_NET_BUF *nbuf, uint_t len,
+                const T_IN6_ADDR *dstaddr, const T_IN6_ADDR *srcaddr,
+                uint8_t next, uint8_t hlim)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IP6_HDR	*ip6h;
+	T_IN6_IFADDR	*ia;
+
+	/*
+	 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 */
+	if (srcaddr == NULL || !IN6_IS_ADDR_UNSPECIFIED(srcaddr))
+		;
+	else if ((ia = in6_ifawithifp(ifp, dstaddr)) == NULL)
+		return E_SYS;
+	else
+		srcaddr = &ia->addr;
+
+	/* IPv6 ããããè¨­å®ããã*/
+	ip6h		= GET_IP6_HDR(nbuf);
+	ip6h->vcf	= htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
+	ip6h->plen	= htons(len);
+	ip6h->next	= next;
+	ip6h->hlim	= hlim;
+
+	if (dstaddr == NULL)
+		memset(&ip6h->dst, 0, sizeof(T_IN6_ADDR));
+	else
+		ip6h->dst = *dstaddr;
+
+	if (srcaddr == NULL)
+		memset(&ip6h->src, 0, sizeof(T_IN6_ADDR));
+	else
+		ip6h->src = *srcaddr;
+
+	return E_OK;
+	}
+
+/*
+ *  in6_get_datagram -- IPv6 ãã¼ã¿ã°ã©ã ãç²å¾ããããããè¨­å®ããã
+ */
+
+ER
+in6_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+                  const T_IN6_ADDR *dstaddr, const T_IN6_ADDR *srcaddr,
+                  uint8_t next, uint8_t hlim, ATR nbatr, TMO tmout)
+{
+	ER		error;
+	uint_t		align;
+
+	/* ãã¼ã¿é·ã¯ 4 ãªã¯ãããå¢çã«èª¿æ´ããã	*/
+	align = (len + 3) >> 2 << 2;
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã	*/
+	if ((error = tget_net_buf_ex(nbuf, IF_IP6_HDR_SIZE + align,
+	                                   IF_IP6_HDR_SIZE + maxlen, nbatr, tmout)) != E_OK)
+		return error;
+
+	/*
+	 *  ããå¤§ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ãç²å¾ããå ´åã®ã¿é·ããèª¿æ´ããã
+	 *  ããå°ããªãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã®ç²å¾ã¯ãéä¿¡ã¦ã£ã³ããããã¡ã®
+	 *  çã³ãã¼æ©è½ã§ä½¿ç¨ãããå®éã«éä¿¡ããã¾ã§ããã¼ã¿ãµã¤ãºã¯æ±ºå®ã§ããªãã
+	 */
+	if ((nbatr & NBA_SEARCH_ASCENT) != 0)
+		(*nbuf)->len = IF_IP6_HDR_SIZE + len;
+
+	/* IPv6 ããããè¨­å®ããã*/
+	if ((error = in6_set_header(*nbuf, len, dstaddr, srcaddr, next, hlim)) != E_OK)
+		return error;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset(GET_IP6_SDU(*nbuf) + len, 0, align - len);
+
+	return E_OK;
+	}
+
+/*
+ *  in6_get_maxnum_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®å¯è½ãªæå¤§ã¢ãã¬ã¹æ°ãè¿ãã
+ */
+
+uint_t
+in6_get_maxnum_ifaddr (void)
+{
+	return NUM_IN6_IFADDR_ENTRY;
+	}
+
+/*
+ *  in6_get_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ããã¢ãã¬ã¹ãè¿ãã
+ */
+
+const T_IN6_ADDR *
+in6_get_ifaddr (int_t index)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+
+	if (index < NUM_IN6_IFADDR_ENTRY &&
+	    (ifp->in6_ifaddrs[index].flags & IN6_IFF_DEFINED))
+		return &ifp->in6_ifaddrs[index].addr;
+	else
+		return NULL;
+	}
+
+/*
+ *  ipv62str -- IPv6 ã¢ãã¬ã¹ãæå­åã«å¤æããã
+ */
+
+char *
+ipv62str (char *buf, const T_IN6_ADDR *p_addr)
+{
+	static char	addr_sbuf[NUM_IPV6ADDR_STR_BUFF][sizeof("0123:4567:89ab:cdef:0123:4567:255.255.255.255")];
+	static int_t	bix = NUM_IPV6ADDR_STR_BUFF;
+
+	bool_t	omit = false, zero = false;
+	char	*start;
+	int_t	ix, len6;
+
+	if (buf == NULL) {
+		syscall(wai_sem(SEM_IP2STR_BUFF_LOCK));
+		buf = addr_sbuf[-- bix];
+		if (bix <= 0)
+			bix = NUM_IPV6ADDR_STR_BUFF;
+		syscall(sig_sem(SEM_IP2STR_BUFF_LOCK));
+		}
+
+	start = buf;
+	if (p_addr == NULL || IN6_IS_ADDR_UNSPECIFIED(p_addr)) {
+		*buf ++ = '0';
+		*buf ++ = ':';
+		*buf ++ = ':';
+		*buf ++ = '0';
+		}
+	else {
+		if (IN6_IS_ADDR_V4MAPPED(p_addr))
+			len6 = sizeof(T_IN6_ADDR) / 2 - 2;
+		else
+			len6 = sizeof(T_IN6_ADDR) / 2;
+		for (ix = 0; ix < len6; ix ++) {
+			if (omit) {
+				buf += convert_hexdigit(buf, ntohs(p_addr->s6_addr16[ix]), 16, 0, ' '); 
+				if (ix < 7)
+					*buf ++ = ':';
+				}
+			else if (ix > 0 && ix < 7 && p_addr->s6_addr16[ix] == 0)
+				zero = true;
+			else {
+				if (zero) {
+					omit = true;
+					*buf ++ = ':';
+					}
+				buf += convert_hexdigit(buf, ntohs(p_addr->s6_addr16[ix]), 16, 0, ' '); 
+				if (ix < 7)
+					*buf ++ = ':';
+				}
+			}
+
+		if (len6 == sizeof(T_IN6_ADDR) / 2 - 2) {
+			T_IN4_ADDR ipv4addr;
+
+			ipv4addr = ntohl(p_addr->s6_addr32[3]);
+			buf += convert_hexdigit(buf, (uint_t)((ipv4addr >> 24) & 0xff), 10, 0, ' ');
+			*(buf ++) = '.';
+			buf += convert_hexdigit(buf, (uint_t)((ipv4addr >> 16) & 0xff), 10, 0, ' ');
+			*(buf ++) = '.';
+			buf += convert_hexdigit(buf, (uint_t)((ipv4addr >>  8) & 0xff), 10, 0, ' ');
+			*(buf ++) = '.';
+			buf += convert_hexdigit(buf, (uint_t)((ipv4addr      ) & 0xff), 10, 0, ' ');
+			}
+		}
+	*buf = '\0';
+	return start;
+	}
+
+/*
+ *  in6_cksum -- IPv6 ã®ãã©ã³ã¹ãã¼ãå±¤ãããã®ãã§ãã¯ãµã ãè¨ç®ããã
+ *
+ *  æ³¨æ: æ»ãå¤ã¯ãããã¯ã¼ã¯ãã¤ããªã¼ã
+ */
+
+uint16_t
+in6_cksum (T_NET_BUF *nbuf, uint8_t proto, uint_t off, uint_t len)
+{
+	uint32_t	sum;
+	uint_t		align;
+
+	/* 4 ãªã¯ãããå¢çã®ãã¼ã¿é· */
+	align = (len + 3) >> 2 << 2;
+
+	/* 4 ãªã¯ãããå¢çã¾ã§ããã£ã³ã°ã§åããã*/
+	if (align > len)
+		memset((uint8_t*)nbuf->buf + off + len, 0, align - len);
+
+	sum = in_cksum_sum(nbuf->buf + off, align)
+	    + in_cksum_sum(&GET_IP6_HDR(nbuf)->src, sizeof(T_IN6_ADDR) * 2)
+	    + len + proto;
+	sum = in_cksum_carry(sum);
+
+	return ~htons((uint16_t)sum);
+	}
+
+/*
+ *  get_ip6_hdr_size -- æ¡å¼µããããå«ãã IPv6 ãããé·ãè¿ãã
+ */
+
+uint_t
+get_ip6_hdr_size (T_NET_BUF *nbuf)
+{
+	T_IP6_HDR	*iph = GET_IP6_HDR(nbuf);
+	uint_t		size = IP6_HDR_SIZE, hsize;
+	uint8_t		curr = iph->next, next;
+	uint8_t		*hdr = ((uint8_t *)iph) + IP6_HDR_SIZE;
+
+	while (1) {
+		next = *hdr;
+		if (curr ==IPPROTO_NONE)		/* æ¬¡ãããç¡ã			*/
+			break;
+		else if (curr == IPPROTO_FRAGMENT)	/* æ­çå			*/
+			hsize = sizeof(T_IP6_FRAG_HDR);
+		else if (curr == IPPROTO_AH)		/* IPv6 èªè¨¼			*/
+			hsize = (((T_IP6_AH_HDR *)hdr)->len + 2) * 4;
+		else if (curr == IPPROTO_HOPOPTS ||	/* ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
+		         curr == IPPROTO_DSTOPTS ||	/* IPv6 çµç¹ãªãã·ã§ã³		*/
+		         curr == IPPROTO_ROUTING)	/* çµè·¯å¶å¾¡			*/
+			hsize = (((T_IP6_EXT_HDR *)hdr)->len + 1) * 8;
+		else
+			break;
+		size += hsize;
+		hdr  += hsize;
+		curr = next;
+		}
+	return size;
+	}
+
+/*
+ *  in6_plen2pmask -- ãã¬ãã£ãã¯ã¹é·ãããã¹ã¯ãçæããã
+ */
+
+void
+in6_plen2pmask (T_IN6_ADDR *mask, uint_t prefix_len)
+{
+	uint8_t	*ptr, bit;
+
+	memset(mask->s6_addr + prefix_len / 8, 0, (128 - prefix_len + 7) / 8);
+	for (ptr = mask->s6_addr; prefix_len > 0; ptr ++) {
+		for (bit = 0x80; bit && (prefix_len > 0); prefix_len --) {
+			*ptr |= bit;
+			bit >>= 1;
+			}
+		}
+	}
+
+/*
+ *  in6_rtalloc -- ã«ã¼ãã£ã³ã°è¡¨ãæ¢ç´¢ããã
+ */
+
+const T_IN6_ADDR *
+in6_rtalloc (T_IFNET *ifp, const T_IN6_ADDR *dst)
+{
+	if (IN6_IS_ADDR_LINKLOCAL(dst) || IN6_IS_ADDR_MULTICAST(dst))
+		return dst;
+	else {
+		T_IN6_IFADDR	*ia;
+		SYSTIM		now;
+		int_t		ix;
+
+		/*
+		 *  ãµã¤ãã­ã¼ã«ã«ã¢ãã¬ã¹ãéç´å¯è½ï¼ã°ã­ã¼ãã«ï¼ã¢ãã¬ã¹ã®å ´åã¯ã
+		 *  åä¸ãªã³ã¯å
+ã®ãã¼ãã§ãããããã§ãã¯ããã
+		 */
+
+		syscall(get_tim(&now));
+		now /= SYSTIM_HZ;
+
+		/* æ¨å¥¨æå¹æéå
+ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+			ia = &ifp->in6_ifaddrs[ix];
+			if (IFA6_IS_READY(ia) &&
+			    in6_are_prefix_equal(dst, &ia->addr, ia->prefix_len) &&
+			    (int32_t)(ia->lifetime.preferred - now) > 0) {
+		                   /* ia->lifetime.preferred > now */
+				return dst;
+				}
+			}
+
+		/* æå¹æéå
+ã®ã¢ãã¬ã¹ãæ¢ç´¢ããã*/
+		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+			ia = &ifp->in6_ifaddrs[ix];
+			if (IFA6_IS_READY(ia) &&
+			    in6_are_prefix_equal(dst, &ia->addr, ia->prefix_len) &&
+			    (int32_t)(ia->lifetime.expire - now) > 0)
+		                   /* ia->lifetime.expire > now */
+				return dst;
+			}
+
+		/*
+		 *  ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+		 */
+		if (nd6_onlink_prefix_lookup (dst) != NULL)
+			return dst;
+
+		/*
+		 *  éççµè·¯è¡¨ãæ¢ç´¢ããã
+		 */
+
+#if NUM_IN6_ROUTE_ENTRY > 0
+
+		syscall(wai_sem(SEM_IN6_ROUTING_TBL));
+		for (ix = NUM_IN6_ROUTE_ENTRY; ix --; ) {
+			if ((routing6_tbl[ix].flags & IN_RTF_DEFINED) &&
+			    in6_are_prefix_equal(dst, &routing6_tbl[ix].target,
+			                               routing6_tbl[ix].prefix_len)) {
+
+				/*
+				 *  åãç´ãã«ããã¨ã³ããªã¯ãæå¹æéãåããæå»ãå»¶é·ããã
+				 *  expire ã®åä½ã¯ [s]ã
+				 *  TMO_IN_REDIRECT ã®åä½ã¯ [ms]ã
+				 */
+				if (ix > NUM_IN6_STATIC_ROUTE_ENTRY) {
+					SYSTIM	now;
+
+					syscall(get_tim(&now));
+					routing6_tbl[ix].expire = now / SYSTIM_HZ + TMO_IN_REDIRECT / 1000;
+					}
+
+				syscall(sig_sem(SEM_IN6_ROUTING_TBL));
+				return &routing6_tbl[ix].gateway;
+				}
+			}
+		syscall(sig_sem(SEM_IN6_ROUTING_TBL));
+
+#endif	/* of #if NUM_IN6_ROUTE_ENTRY > 0 */
+
+		/*
+		 *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+		 */
+		return nd6_router_lookup();
+		}
+	}
+
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+/*
+ *  in6_gateway_lookup -- ã«ã¼ãã£ã³ã°è¡¨ã®ã«ã¼ã¿ãæ¢ç´¢ããã
+ */
+
+T_IN6_RTENTRY *
+in6_gateway_lookup (const T_IN6_ADDR *gw)
+{
+	int_t	ix;
+
+	for (ix = NUM_IN6_ROUTE_ENTRY; ix --; )
+		if ((routing6_tbl[ix].flags & IN_RTF_DEFINED) &&
+		    IN6_ARE_ADDR_EQUAL(&routing6_tbl[ix].gateway, gw))
+			return &routing6_tbl[ix];
+	return NULL;
+	}
+
+/*
+ *  in6_rtredirect -- ã«ã¼ãã£ã³ã°è¡¨ã«ã¨ã³ããªãç»é²ããã
+ *
+ *    æ³¨æ: å¼æ° tmo ã®åä½ã¯ [ms]ã
+ */
+
+void
+in6_rtredirect (const T_IN6_ADDR *gateway, const T_IN6_ADDR *target, uint_t prefix_len, uint8_t flags, uint32_t tmo)
+{
+	T_IN6_RTENTRY	*frt;
+
+	frt = in6_rtnewentry(flags, tmo);
+	frt->gateway    = *gateway;
+	frt->target     = *target;
+	frt->prefix_len = prefix_len;
+	}
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+/*
+ *  in6_hostcache_lookup -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ¢ç´¢ããã
+ */
+
+static T_IN6_HOSTCACHE_ENTRY*
+in6_hostcache_lookup (const T_IN6_ADDR *dst)
+{
+	int_t ix;
+
+	for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
+		if (IN6_ARE_ADDR_EQUAL(dst, &in6_hostcache[ix].dst))
+			return &in6_hostcache[ix];
+		}
+	return NULL;
+	}
+
+/*
+ *  in6_hostcache_update -- IPv6 ãã¹ãã­ã£ãã·ã¥ãæ´æ°ããã
+ */
+
+void
+in6_hostcache_update (T_IN6_ADDR *dst, uint32_t mtu)
+{
+	T_IN6_HOSTCACHE_ENTRY	*hc;
+	SYSTIM	now, old;
+	int_t	ix, oix;
+
+	syscall(get_tim(&now));
+
+	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	if ((hc = in6_hostcache_lookup (dst)) == NULL) {
+
+		/* ç©ºãã®ãã¹ãã­ã£ãã·ã¥ãæ¢ãã*/
+		for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
+			if (IN6_IS_HOSTCACHE_FREE(&in6_hostcache[ix]))
+				break;
+			}
+
+		if (ix < 0) {
+			/*
+			 *  ç©ºããç¡ãæã¯ãæå¹æéã®åããæéãã
+			 *  æãç­ããã¹ãã­ã£ãã·ã¥ãç½®æããã
+			 */
+			old = now - 1;
+			oix = 0;
+			for (ix = NUM_IN6_HOSTCACHE_ENTRY; ix -- > 0; ) {
+				hc = &in6_hostcache[ix];
+				if (IN6_IS_HOSTCACHE_BUSY(hc) && (int32_t)(hc->expire - old) < 0) {
+				                                        /* hc->expire < old */
+					oix = ix;
+					old = hc->expire;
+					}
+				}
+			ix = oix;
+			}
+		hc = &in6_hostcache[ix];
+		}
+	else if (mtu > hc->mtu &&
+	         (int32_t)(hc->expire - now) >= (IN6_HOSTCACHE_EXPIRE - IN6_HOSTCACHE_INCREASE)) {
+
+		/*
+		 *  æ¢ã«ç»é²ããã¦ãã¦ãæ°ãã MTU ããç»é²ããã¦ãã MTU ããå¤§ããã¨ãã
+		 *  IN6_HOSTCACHE_INCREASEï¼æ¨å¥¨ 10 åï¼éã¯æ´æ°ããªãã
+		 */
+		return;
+		}
+	hc->dst    = *dst;
+	hc->expire = now + IN6_HOSTCACHE_EXPIRE;
+	hc->mtu    = mtu;
+	}
+
+/*
+ *  in6_hostcache_getmtu -- IPv6 ãã¹ãã­ã£ãã·ã¥ããã MTU ãåå¾ããã
+ *
+ *    æ»ãå¤ã 0 ã§ããã°ããã¹ãã­ã£ãã·ã¥ã«ç»é²ããã¦ããªãã
+ */
+
+uint32_t
+in6_hostcache_getmtu (const T_IN6_ADDR *dst)
+{
+	T_IN6_HOSTCACHE_ENTRY	*hc;
+
+	/* æ¢ã«ç»é²ããã¦ãããæ¢ç´¢ããã*/
+	if ((hc = in6_hostcache_lookup(dst)) == NULL)
+		return 0;
+	else
+		return hc->mtu;
+	}
+
+/*
+ *  in6_hostcache_timer -- IPv6 ãã¹ãã­ã£ãã·ã¥æ´æ°ã¿ã¤ãã¼
+ *
+ *    1ç§å¨æã§èµ·åãããã
+ */
+
+static void
+in6_hostcache_timer (void)
+{
+	static int_t interval = IN6_HOSTCACHE_PRUNE / SYSTIM_HZ;
+
+	SYSTIM	now;
+
+	interval --;
+	if (interval <= 0) {
+		syscall(get_tim(&now));
+		interval = IN6_HOSTCACHE_PRUNE / SYSTIM_HZ;
+		}
+	}
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+/*
+ *  in6_timer -- IPv6 å
+±éã¿ã¤ãã¼
+ *
+ *    1ç§å¨æã§èµ·åãããã
+ */
+
+static void
+in6_timer (void)
+{
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+	in6_rttimer();
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+
+#ifdef IP6_CFG_FRAGMENT
+
+	frag6_timer();
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+	in6_hostcache_timer();
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+	timeout((callout_func)in6_timer, NULL, IN_TIMER_TMO);
+	}
+
+/*
+ *  in6_init -- IPv6 å
+±éæ©è½ãåæåããã
+ */
+
+void
+in6_init (void)
+{
+#if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0
+
+	in6_rtinit();
+
+#endif	/* of #if NUM_IN6_REDIRECT_ROUTE_ENTRY > 0 */
+
+	timeout((callout_func)nd6_timer, NULL, ND6_TIMER_TMO);
+	timeout((callout_func)in6_timer, NULL, IN_TIMER_TMO);
+	}
+
+/*
+ *  in6_is_dstaddr_accept -- å®å
+ã¢ãã¬ã¹ã¨ãã¦æ­£ããããã§ãã¯ããã
+ */
+
+bool_t
+in6_is_dstaddr_accept (const T_IN6_ADDR *myaddr, const T_IN6_ADDR *dstaddr)
+{
+	if (IN6_IS_ADDR_UNSPECIFIED(myaddr))
+		return in6_lookup_ifaddr(IF_GET_IFNET(), dstaddr) != NULL;
+	else
+		return IN6_ARE_ADDR_EQUAL(dstaddr, myaddr);
+	}
+
+#if defined(DHCP6_CLI_CFG)
+
+/*
+ *  in6_add_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã« IPv6 ã¢ãã¬ã¹ãè¨­å®ããã
+ *
+ *    vltime ã¨ pltime ã®åä½ã¯[s]
+ */
+
+static ER
+in6_add_ifaddr (T_IN6_ADDR *addr, uint_t prefix_len,
+                uint32_t vltime, uint32_t pltime)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia = NULL;
+	int_t		ix;
+
+	/* ç©ºãã®ã¨ã³ããªã¼ãæ¢ãã*/
+	ix = 0;
+	while (true) {
+		ia = in6ifa_ifpwithix(ifp, ix ++);
+
+		/* ç©ºããç¡ããã°ã¨ã©ã¼ */
+		if (ia == NULL)
+			return E_OBJ;
+
+		if ((ia->flags & IN6_IFF_DEFINED) == 0)
+			break;
+		}
+
+	/* ç»é²ããã*/
+	return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime,
+	                      IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0);
+	}
+
+/*
+ *  in6_upd_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãæ´æ°ããã
+ *
+ *    ç»é²ããã¦ããªããã°ãè¿½å ããã
+ *    vltime ã¨ pltime ã®åä½ã¯[s]
+ */
+
+ER
+in6_upd_ifaddr (T_IN6_ADDR *addr, uint_t prefix_len,
+                uint32_t vltime, uint32_t pltime)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia;
+	int_t		ix;
+
+	/*
+	 *  ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã
+	 *  ç¡ããã°ç»é²ããã
+	 */
+	if ((ix = in6_addr2ifaix(addr)) == IPV6_IFADDR_IX_INVALID)
+		return in6_add_ifaddr(addr, prefix_len, vltime, pltime);
+
+	/*
+	 *  ã¤ã³ããã¯ã¹çªå·ãããã¨ã³ããªã¼ã«å¤æããã
+	 *  ã¨ã©ã¼ã«ãªããªãã¯ãã§ããããç¢ºèªããã
+	 */
+	if ((ia = in6ifa_ifpwithix (ifp, ix)) == NULL)
+		return E_OBJ;
+
+	/* æ´æ°ããã*/
+	return in6_update_ifa(ifp, ia, addr, prefix_len, vltime, pltime,
+	                      IN6_RTR_IX_UNREACH, ND6_PREFIX_IX_INVALID, 0);
+	}
+
+/*
+ *  in6_del_ifaddr -- ã¤ã³ã¿ãã§ã¼ã¹ã«è¨­å®ããã¦ãã IPv6 ã¢ãã¬ã¹ãåé¤ããã
+ */
+
+ER
+in6_del_ifaddr (T_IN6_ADDR *addr)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	int_t		ix;
+
+	/* ã¢ãã¬ã¹ãä¸è´ããã¨ã³ããªã¼ãæ¢ãã*/
+	if ((ix = in6_addr2ifaix(addr)) != IPV6_IFADDR_IX_INVALID) {
+
+		/* ã¨ã³ããªã¼ãç¡å¹ã«ããã*/
+		ifp->in6_ifaddrs[ix].flags &= ~IN6_IFF_DEFINED;
+		return E_OK;
+		}
+	return E_PAR;
+	}
+
+#endif	/* of #if defined(DHCP6_CLI_CFG) */
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/in6_var.h	(revision 313)
@@ -0,0 +1,390 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6_var.h,v 1.3.2.2 2001/07/03 11:01:52 ume Exp $	*/
+/*	$KAME: in6_var.h,v 1.56 2001/03/29 05:34:31 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1985, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in_var.h	8.1 (Berkeley) 6/10/93
+ */
+
+#ifndef _IN6_VAR_H_
+#define _IN6_VAR_H_
+
+/*
+ *  ã¢ãã¬ã¹ã®å®ç¾©
+ */
+
+#ifdef _NET_CFG_BYTE_ORDER
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+#define IPV6_ADDR_INT32_ONE		ULONG_C(0x00000001)
+#define IPV6_ADDR_INT32_TWO		ULONG_C(0x00000002)
+#define IPV6_ADDR_INT32_0000FFFF	ULONG_C(0x0000ffff)
+#define IPV6_ADDR_INT32_MNL		ULONG_C(0xff010000)
+#define IPV6_ADDR_INT32_MLL		ULONG_C(0xff020000)
+#define IPV6_ADDR_INT32_ULL		ULONG_C(0xfe800000)
+#define IPV6_ADDR_INT16_ULL		UINT_C(0xfe80)
+#define IPV6_ADDR_INT16_USL		UINT_C(0xfec0)
+#define IPV6_ADDR_INT16_MLL		UINT_C(0xff02)
+
+#elif _NET_CFG_BYTE_ORDER == _NET_CFG_LITTLE_ENDIAN
+
+#define IPV6_ADDR_INT32_ONE		ULONG_C(0x01000000)
+#define IPV6_ADDR_INT32_TWO		ULONG_C(0x02000000)
+#define IPV6_ADDR_INT32_0000FFFF	ULONG_C(0xffff0000)
+#define IPV6_ADDR_INT32_MNL		ULONG_C(0x000001ff)
+#define IPV6_ADDR_INT32_MLL		ULONG_C(0x000002ff)
+#define IPV6_ADDR_INT32_ULL		ULONG_C(0x000080fe)
+#define IPV6_ADDR_INT16_ULL		UINT_C(0x80fe)
+#define IPV6_ADDR_INT16_USL		UINT_C(0xc0fe)
+#define IPV6_ADDR_INT16_MLL		UINT_C(0x02ff)
+
+#endif	/* #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+#endif	/* of #ifdef _NET_CFG_BYTE_ORDER */
+
+/*
+ *  ç¹å¥ãªã¢ãã¬ã¹ã®ãã§ãã¯
+ */
+
+/* IPv4 äºæ */
+
+#ifdef _NET_CFG_BYTE_ORDER
+#define IN6_IS_ADDR_V4COMPAT(a)		\
+	(memcmp((void *)(a), (void *)&in6_addr_unspecified, sizeof(T_IN6_ADDR) - 4) == 0 && \
+	 (a)->s6_addr32[3] > IPV6_ADDR_INT32_ONE)
+#endif
+
+/* IPv4 å°å½± */
+
+#ifdef _NET_CFG_BYTE_ORDER
+#define IN6_IS_ADDR_V4MAPPED(a)		\
+	(((a)->s6_addr32[0] == ULONG_C(0x00000000)) && \
+	 ((a)->s6_addr32[1] == ULONG_C(0x00000000)) && \
+	 ((a)->s6_addr32[2] == IPV6_ADDR_INT32_0000FFFF))
+#endif
+
+/* è¦è«ãã«ãã­ã£ã¹ã */
+
+#ifdef _NET_CFG_BYTE_ORDER
+#define IN6_IS_ADDR_NS_MULTICAST(a)	\
+	(((a)->s6_addr32[0] == IPV6_ADDR_INT32_MLL) && \
+	 ((a)->s6_addr32[1] == ULONG_C(0x00000000)) && \
+	 ((a)->s6_addr32[2] == IPV6_ADDR_INT32_ONE) && \
+	 ((a)->s6_addr8[12] == UINT_C(0xff)))
+#endif
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  ã¢ãã¬ã¹æå¹æéæ§é ä½
+ */
+
+typedef struct in6_addr_lifetime {
+
+	/*
+	 * expire ã¨ perferred ã¯ãã·ã¹ãã ãèµ·åãã¦ããã®çµéæé
+	 */
+	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
+	uint32_t	preferred;	/* æ¨å¥¨æå¹æéãåããæå» [s]	*/
+
+	/*
+	 * vltime ã¨ pltime ã¯ãè¿½å /å¤æ´ãã¦ããã®ç¸å¯¾æé
+	 */
+	uint32_t	vltime;		/* æå¹æé [ms]			*/
+	uint32_t	pltime;		/* æ¨å¥¨æå¹æé [ms]		*/
+	} T_IN6_ADDR_LIFETIME;
+
+/*
+ *  ã¤ã³ã¿ãã§ã¼ã¹ã¢ãã¬ã¹æ§é ä½
+ */
+
+typedef struct t_in6_ifaddr {
+	T_IN6_ADDR		addr;		/* IPv6 ã¢ãã¬ã¹		*/
+	T_IN6_ADDR_LIFETIME	lifetime;	/* æå¹æé		*/
+	uint8_t			flags;		/* ãã©ã°		*/
+	uint8_t			prefix_len;	/* ãã¬ãã£ãã¯ã¹é·	*/
+	uint8_t			router_index;	/* ã«ã¼ã¿ã¤ã³ããã¯ã¹	*/
+	uint8_t			prefix_index;	/* ãã¬ãã£ãã¯ã¹ã¤ã³ããã¯ã¹	*/
+	uint8_t			na_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥ã®å
+¥ååæ°	*/
+	uint8_t			ns_icount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®å
+¥ååæ°	*/
+	uint8_t			ns_ocount;	/* éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ã®åºååæ°	*/
+	} T_IN6_IFADDR;
+
+/*
+ *  ã¢ãã¬ã¹ç¶æ
+ãã©ã°
+ */
+
+#define IN6_IFF_ANYCAST		UINT_C(0x01)	/* ã¨ãã¼ã­ã£ã¹ã	*/
+#define IN6_IFF_DEFINED		UINT_C(0x02)	/* å®ç¾©æ¸ã¿		*/
+#define IN6_IFF_TENTATIVE	UINT_C(0x04)	/* éè¤æ¤åºä¸­		*/
+#define IN6_IFF_DUPLICATED	UINT_C(0x08)	/* éè¤ãæ¤åºãã	*/
+#define IN6_IFF_DEPRECATED	UINT_C(0x10)	/* éæ¨å¥¨		*/
+#define IN6_IFF_NODAD		UINT_C(0x20)	/* éè¤æ¤åºä¸è¦		*/
+#define IN6_IFF_AUTOCONF	UINT_C(0x40)	/* èªåè¨­å®ããã	*/
+#define IN6_IFF_DETACHED	UINT_C(0x80)	/* éä½¿ç¨		*/
+
+/*
+ *  ã¢ãã¬ã¹ã®æå¹æ§ãã§ãã¯
+ */
+
+#define IFA6_IS_READY(a)	(((a)->flags & IN6_IFF_DEFINED) != 0 && \
+				 ((a)->flags & (IN6_IFF_TENTATIVE|IN6_IFF_DUPLICATED|IN6_IFF_DETACHED)) == 0)
+#define IFA6_IS_NOTREADY(a)	(((a)->flags & IN6_IFF_DEFINED) == 0 ||	\
+				 ((a)->flags & (IN6_IFF_TENTATIVE|IN6_IFF_DUPLICATED|IN6_IFF_DETACHED)) != 0)
+
+#define IFA6_IS_DEPRECATED(a,n)	\
+	((a)->lifetime.preferred != 0 && (int32_t)((a)->lifetime.preferred - ((n / SYSTIM_HZ))) < 0)
+
+#define IFA6_IS_INVALID(a,n)	\
+	((a)->lifetime.expire != 0 && (int32_t)((a)->lifetime.expire - ((n / SYSTIM_HZ))) < 0)
+
+/*
+ *  ã«ã¼ã¿ã®ã¤ã³ããã¯ã¹
+ */
+
+#define IN6_RTR_IX_UNREACH	0xff
+
+/*
+ *  å¶éå¤
+ */
+
+#define IP6_HDR_NEST_LIMIT	50	/* IPv6 ãããã®ãã¹ãå¶éå¤	*/
+
+/*
+ *  ã¢ãã¬ã¹æ
+å ±é
+åã®ã¤ã³ããã¯ã¹
+ */
+
+#define IPV6_IFADDR_IX_LINKLOCAL	0
+#define IPV6_IFADDR_IX_INVALID		0xff
+
+/*
+ *  IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®ã¤ã³ããã¯ã¹
+ */
+
+#define IPV6_MADDR_IX_SOL_NODE		0	/* è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹			*/
+#define IPV6_MADDR_IX_LL_ALL_NODE	1	/* å
+¨ãã¼ãã»ãªã³ã¯ã­ã¼ã«ã«ã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹	*/
+#define IPV6_MADDR_IX_EXTRA		2
+
+#define MAX_IN6_MADDR_CNT		MAX_IF_MADDR_CNT
+						/* IPv6 ãã«ãã­ã£ã¹ãã¢ãã¬ã¹é
+åã®æå¤§ãµã¤ãº	*/
+
+/* ã«ã¼ãã£ã³ã°è¡¨ã¨ã³ããªæ§é ä½ */
+
+typedef struct t_in6_rtentry {
+	T_IN6_ADDR	target;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
+	T_IN6_ADDR	gateway;	/* ã²ã¼ãã¦ã§ã¤ã® IP ã¢ãã¬ã¹	*/
+	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
+	uint8_t		flags;		/* ãã©ã°			*/
+	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	} T_IN6_RTENTRY;
+
+/*
+ *  ãã¹ãã­ã£ãã·ã¥
+ */
+
+/* ãã¹ãã­ã£ãã·ã¥æ§é ä½ */
+
+typedef struct t_in6_hostcache_entry {
+	T_IN6_ADDR	dst;		/* ç®æ¨ãããã¯ã¼ã¯ã¢ãã¬ã¹	*/
+	uint32_t	expire;		/* æå¹æéãåããæå» [s]	*/
+	uint32_t	mtu;		/* Path MTU			*/
+	} T_IN6_HOSTCACHE_ENTRY;
+
+#define IN6_HOSTCACHE_EXPIRE	(60*60*SYSTIM_HZ)	/* æå¹æé	*/
+#define IN6_HOSTCACHE_PRUNE	(5*60*SYSTIM_HZ)	/* æ´æ°éé	*/
+#define IN6_HOSTCACHE_INCREASE	(10*60*SYSTIM_HZ)	/* å¢å ããå ´åã®ä¿è­·æé	*/
+
+#define IN6_IS_HOSTCACHE_FREE(e)	IN6_IS_ADDR_UNSPECIFIED(&((e)->dst))
+#define IN6_IS_HOSTCACHE_BUSY(e)	(!IN6_IS_HOSTCACHE_FREE(e))
+
+/*
+ *  ã«ã¼ãã£ã³ã°è¡¨
+ */
+
+extern T_IN6_RTENTRY routing6_tbl[];
+
+/*
+ *  åæ¹åç
+§
+ */
+
+#ifndef T_IFNET_DEFINED
+
+typedef struct t_ifnet T_IFNET;
+
+#define T_IFNET_DEFINED
+
+#endif	/* of #ifndef T_IFNET_DEFINED */
+
+/*
+ *  å¤æ°
+ */
+
+extern uint32_t linkmtu;
+
+/*
+ *  é¢æ°ã·ãã¥ã¬ã¼ã·ã§ã³ãã¯ã­
+ */
+
+#define IN6_COPY_TO_HOST(dst,nbuf)	memcpy(dst,&GET_IP6_HDR(nbuf)->src,sizeof(T_IN6_ADDR))
+#define INN6_IS_DSTADDR_ACCEPT(addr,nbuf)	\
+					in6_is_dstaddr_accept(addr,&GET_IP6_HDR(nbuf)->dst)
+
+/*
+ *  é¢æ°
+ */
+
+extern void in6_ifainit (void);
+extern int_t in6_addr2maix (const T_IN6_ADDR *addr);
+extern ER in6_update_ifa (T_IFNET *ifp, T_IN6_IFADDR *ia, const T_IN6_ADDR *addr,
+                          uint_t prefix_len, uint32_t vltime, uint32_t pltime,
+                          int_t router_index, int_t prefix_index, uint_t flags);
+extern ER in6_set_header (T_NET_BUF *nbuf, uint_t len,
+                          const T_IN6_ADDR *dstaddr, const T_IN6_ADDR *srcaddr,
+                          uint8_t next, uint8_t hlim);
+extern ER in6_get_datagram (T_NET_BUF **nbuf, uint_t len, uint_t maxlen,
+                            const T_IN6_ADDR *dstaddr, const T_IN6_ADDR *srcaddr,
+                            uint8_t next, uint8_t hlim, ATR nbatr, TMO tmout);
+extern uint16_t in6_cksum (T_NET_BUF *nbuf, uint8_t proto, uint_t off, uint_t len);
+extern T_IN6_IFADDR *in6ifa_ifpwithix (T_IFNET *ifp, int_t ix);
+extern T_IN6_IFADDR *in6ifa_ifpwithrtrix (T_IFNET *ifp, int_t rtr_ix);
+extern T_IN6_IFADDR *in6_ifawithifp (T_IFNET *ifp, const T_IN6_ADDR *dst);
+extern const T_IN6_ADDR *in6_addrwithifp (T_IFNET *ifp, T_IN6_ADDR *src, const T_IN6_ADDR *dst);
+extern void ip6_input (T_NET_BUF *input);
+extern T_IN6_IFADDR *in6_lookup_ifaddr (T_IFNET *ifp, const T_IN6_ADDR *addr);
+extern bool_t in6_lookup_multi (T_IFNET *ifp, const T_IN6_ADDR *maddr);
+extern bool_t in6_is_dstaddr_accept (const T_IN6_ADDR *myaddr, const T_IN6_ADDR *dstaddr);
+extern bool_t inn6_is_dstaddr_accept (const T_IN6_ADDR *myaddr, T_NET_BUF *input);
+extern const T_IN6_ADDR *in6_rtalloc (T_IFNET *ifp, const T_IN6_ADDR *dst);
+extern int_t in6_if2idlen (T_IFNET *ifp);
+extern int_t in6_addr2ifaix (const T_IN6_ADDR *addr);
+extern void in6_plen2pmask (T_IN6_ADDR *mask, uint_t prefix_len);
+extern bool_t in6_are_prefix_equal (const T_IN6_ADDR *addr, const T_IN6_ADDR *prefix,
+                                  uint_t prefix_len);
+extern void in6_ifaddr_timer (T_IFNET *ifp);
+extern T_IN6_RTENTRY *in6_gateway_lookup (const T_IN6_ADDR *src);
+extern void in6_rtredirect (const T_IN6_ADDR *gateway, const T_IN6_ADDR *target,
+                            uint_t prefix_len, uint8_t flags, uint32_t tmo);
+extern void in6_init (void);
+extern void in6_if_up (T_IFNET *ifp);
+extern void in6_hostcache_update (T_IN6_ADDR *dst, uint32_t mtu);
+extern uint32_t in6_hostcache_getmtu (const T_IN6_ADDR *dst);
+extern uint_t in6_addrscope (const T_IN6_ADDR *addr);
+extern const T_NET_BUF**ip6_get_frag_queue (void);
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+#endif	/* of #ifndef _IN6_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6.cfg	(revision 313)
@@ -0,0 +1,80 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  IPv6 ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ */
+
+#ifdef _IP6_CFG
+
+/* è¿é£ã­ã£ãã·ã¥ */
+
+CRE_SEM(SEM_ND6_CACHE, { TA_TPRI, 1, 1 });
+
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã */
+
+CRE_SEM(SEM_ND6_DEFRTRLIST, { TA_TPRI, 1, 1 });
+
+#endif	/* of #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+#ifdef IP6_CFG_FRAGMENT
+
+/* åå²ããã */
+
+CRE_SEM(SEM_IP6_FRAG_QUEUE, { TA_TPRI, 1, 1 });
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+#if NUM_IN6_ROUTE_ENTRY > 0
+
+/* ã«ã¼ãã£ã³ã°è¡¨ */
+
+CRE_SEM(SEM_IN6_ROUTING_TBL, { TA_TPRI, 1, 1 });
+
+#endif	/* of #if NUM_IN6_ROUTE_ENTRY > 0 */
+
+#endif	/* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_input.c	(revision 313)
@@ -0,0 +1,686 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ip6_input.c,v 1.11.2.10 2001/07/24 19:10:18 brooks Exp $	*/
+/*	$KAME: ip6_input.c,v 1.194 2001/05/27 13:28:35 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_input.c	8.2 (Berkeley) 1/4/94
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "tinet_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "tinet_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp_var.h>
+
+#include <netinet6/nd6.h>
+#include <netinet6/ah6.h>
+#include <netinet6/esp6.h>
+
+#include <net/if_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  é¢æ°
+ */
+
+static uint_t ip6_no_header_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+
+/*
+ *  ä¸ä½ãã­ãã³ã«é¸ææ§é ä½
+ */
+
+typedef struct t_proto_switch {
+	uint_t (*func)(T_NET_BUF **, uint_t *, uint_t *);	/* å
+¥åé¢æ°		*/
+	uint_t proto;						/* ãã­ãã³ã«çªå·	*/
+	} T_PROTO_SWITCH;
+
+static const T_PROTO_SWITCH proto_switch[] = {
+	{ esp6_input,	IPPROTO_ESP		},	/* IPv6 æå·åããã	*/
+	{ ah6_input,	IPPROTO_AH		},	/* IPv6 èªè¨¼ããã	*/
+	{ frag6_input,	IPPROTO_FRAGMENT	},	/* æ­çããã		*/
+	{ route6_input,	IPPROTO_ROUTING		},	/* çµè·¯å¶å¾¡ããã	*/
+	{ dest6_input,	IPPROTO_DSTOPTS		},	/* IPv6 çµç¹ãªãã·ã§ã³	*/
+	{ ip6_no_header_input,
+			IPPROTO_NONE		},	/* æ¬¡ãããç¡ã		*/
+	{ icmp6_input,	IPPROTO_ICMPV6		},
+
+#if defined(SUPPORT_TCP)
+
+	{ tcp_input,	IPPROTO_TCP		},
+
+#endif	/* of #if defined(SUPPORT_TCP) */
+
+#if defined(SUPPORT_UDP) && TNUM_UDP6_CEPID > 0
+
+	{ udp6_input,	IPPROTO_UDP		},
+
+#endif	/* of #if defined(SUPPORT_UDP) && TNUM_UDP6_CEPID > 0 */
+
+	};
+
+#ifdef SUPPORT_MIB
+
+T_IN6_IFSTAT in6_ifstat;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  get_upper_proto -- ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãè¿ãã
+ */
+
+static uint_t (*
+get_upper_proto(uint_t proto))(T_NET_BUF **, uint_t *, uint_t *)
+{
+	int_t ix;
+
+	for (ix = sizeof(proto_switch) / sizeof(T_PROTO_SWITCH); ix -- > 0; )
+		if (proto_switch[ix].proto == proto)
+			return proto_switch[ix].func;
+	return NULL;
+	}
+
+/*
+ *  ip6_no_header_input -- æ¬¡ããããç¡ãã®å ´åã®å
+¥åå¦ç
+ */
+
+static uint_t
+ip6_no_header_input (T_NET_BUF **input, uint_t *offp, uint_t *nextp)
+{
+	syscall(rel_net_buf(*input));
+	return IPPROTO_DONE;
+	}
+
+/*
+ *  ip6_hopopts_input -- ä¸­ç¶ç¹ãªãã·ã§ã³å
+¥åå¦ç
+ *
+ *    æ¬å®è£
+ã§ã¯ãããã£ã³ã°ä»¥å¤ã®ãªãã·ã§ã³ãå
+¨ã¦æªç¥ãªãã·ã§ã³ã¨ãã¦å¦çããã
+ *
+ *    æ»ãå¤:
+ *
+ *      0 ä»¥ä¸ 		æ­£å¸¸
+ *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
+ *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ */
+
+static ER_UINT
+ip6_hopopts_input (T_NET_BUF *input, uint_t *offp, uint_t *nextp)
+{
+	T_IP6_HBH_HDR	*hbh;
+	ER_UINT		optlen;
+	uint_t		len;
+	uint8_t		*opt;
+
+	hbh    = (T_IP6_HBH_HDR *)(input->buf + *offp);
+	len    = (hbh->len + 1) << 3;
+	*nextp = *offp - IF_HDR_SIZE + offsetof(T_IP6_HBH_HDR, next);
+	*offp += len;
+	opt    = (uint8_t *)hbh + sizeof(T_IP6_HBH_HDR);
+
+	for (len -= sizeof(T_IP6_HBH_HDR); len > 0; len -= optlen) {
+		switch (*opt) {
+		case IP6OPT_PAD1:
+			optlen = 1;
+			break;
+		case IP6OPT_PADN:
+			if (len < IP6OPT_MINLEN)
+				return IP6_OPT_RET_ERR;
+			optlen = *(opt + 1) + 2;
+			break;
+		case IP6OPT_JUMBO:
+		case IP6OPT_NSAP_ADDR:
+		case IP6OPT_TUNNEL_LIMIT:
+		case IP6OPT_RTR_ALERT:
+		default:
+			if (len < IP6OPT_MINLEN)
+				return IP6_OPT_RET_ERR;
+			optlen = ip6_unknown_opt(input, opt);
+			if (optlen < 0)
+				return optlen;
+			optlen += 2;
+			break;
+			}
+
+		opt += optlen;
+		}
+
+	return *offp;
+	}
+
+/*
+ *  ip6_get_prev_hdr -- ç´åã®æ¡å¼µãããã® next ãã£ã¼ã«ãã®ã¢ãã¬ã¹ãè¿ãã
+ *
+ *    æ³¨æ: off ã«ã¯ IF_HDR_SIZE ãå«ã¾ãã¦ããã
+ */
+
+uint8_t *
+ip6_get_prev_hdr (T_NET_BUF *nbuf, uint_t off)
+{
+	T_IP6_HDR	*ip6h;
+	T_IP6_EXT_HDR	*ip6eh;
+	uint_t		len;
+	uint8_t		next;
+
+	ip6h = GET_IP6_HDR(nbuf);
+	if (off == IF_HDR_SIZE + sizeof(T_IP6_HDR))
+		return &ip6h->next;
+	else {
+		next  = ip6h->next;
+		len   = IF_HDR_SIZE + sizeof(T_IP6_HDR);
+		ip6eh = NULL;
+
+		while (len < off) {
+			ip6eh = (T_IP6_EXT_HDR *)(nbuf->buf + len);
+
+			switch (next) {
+			case IPPROTO_FRAGMENT:
+				len += sizeof(T_IP6_FRAG_HDR);
+				break;
+			case IPPROTO_AH:
+				len += (ip6eh->len + 2) << 2;
+				break;
+			default:
+				len += (ip6eh->len + 2) << 3;
+				break;
+				}
+			next  = ip6eh->next;
+			}
+
+		if (ip6eh == NULL)
+			return NULL;
+		else
+			return &ip6eh->next;
+		}
+	}
+
+/*
+ *  ip6_init -- IPv6 ã®åæåé¢æ°
+ */
+
+void
+ip6_init (void)
+{
+	in6_init();
+	in6_ifainit();
+	}
+
+/*
+ *  ip6_input -- IPv6 ã®å
+¥åé¢æ°
+ */
+
+void
+ip6_input (T_NET_BUF *input)
+{
+	T_IP6_HDR	*ip6h;
+	T_IN6_IFADDR	*ia6;
+	T_IFNET		*ifp;
+	ER_UINT		noff;
+	uint_t		next, nest, plen, offp, nextp;
+	uint_t		(*func)(T_NET_BUF **, uint_t *, uint_t *);
+
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_OCTETS], input->len - IF_HDR_SIZE);
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_PACKETS], 1);
+	NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInReceives, 1);
+
+	/* IP ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < IF_IP6_HDR_SIZE) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	ip6h = GET_IP6_HDR(input);
+
+	/* ãã¼ã¸ã§ã³ããã§ãã¯ããã*/
+	if (IP6_VCF_V(ntohl(ip6h->vcf)) != IPV6_VERSION) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_VER], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInHdrErrors, 1);
+		goto buf_rel;
+		}
+
+	/*
+	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã
+	 *
+	 *    ã»å§ç¹ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
+	 *    ã»çµç¹ã¢ãã¬ã¹ãæªå®ç¾©
+	 *
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãã«ã¼ãããã¯ã§ãªãã¨ãã
+	 *  æ¬¡ã®ãã¼ã¿ã°ã©ã ãç ´æ£ããã
+	 *
+	 *    ã»å§ç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
+	 *    ã»çµç¹ã¢ãã¬ã¹ãã«ã¼ãããã¯
+	 *
+	 *  æªæã®ããã¦ã¼ã¶ã TCP/UDP ã¹ã¿ãã¯ã®æ··ä¹±ã
+	 *  ã»ã­ã¥ãªãã£ãã§ãã¯ããã¤ãã¹ãããããIPv4
+	 *  ãããã¢ãã¬ã¹ãæªç¨ãããã¨ãé²ããã
+	 *  ä»¥ä¸ã®ãã¼ã¿ã°ã©ã ã¯ç ´æ£ããã  
+	 *
+	 *    ã»å§ç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
+	 *    ã»çµç¹ã¢ãã¬ã¹ã ::ffff:127.0.0.1
+	 */
+
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->src) ||
+	    IN6_IS_ADDR_UNSPECIFIED(&ip6h->dst)) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+	if (IN6_IS_ADDR_V4MAPPED(&ip6h->src) ||
+	    IN6_IS_ADDR_V4MAPPED(&ip6h->dst)) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#ifdef SUPPORT_LOOP
+
+#else	/* of #ifdef SUPPORT_LOOP */
+
+	if (IN6_IS_ADDR_LOOPBACK(&ip6h->src) ||
+	    IN6_IS_ADDR_LOOPBACK(&ip6h->dst)) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+		goto buf_rel;
+		}
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+	ifp = IF_GET_IFNET();
+
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
+		/* å®å
+ããã«ãã­ã£ã¹ãã®å ´åã®å¦ç */
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInMcastPkts, 1);
+		if (!in6_lookup_multi(ifp, &ip6h->dst)) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+			goto buf_rel;
+			}
+		}
+	else {
+		if ((ia6 = in6_lookup_ifaddr(ifp, &ip6h->dst)) == NULL) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+			goto buf_rel;
+			}
+
+		/*  ã¢ãã¬ã¹ãæªè§£æ±ºã®å ´åã¯ãã¼ã¿ã°ã©ã ãç ´æ£ããã*/
+		if (IFA6_IS_NOTREADY(ia6)) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_ADDR], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInAddrErrors, 1);
+			goto buf_rel;
+			}
+		}
+
+	/* ãªãã»ãããè¨­å®ããã*/
+	offp  = GET_IP6_NEXT_HDR(input) - input->buf;
+
+	/* ãã¤ã­ã¼ãé·ãåãåºãã*/
+	plen = ntohs(ip6h->plen);
+
+
+	/* æ¬¡ãããã®ä½ç½®ãåæåããã*/
+	nextp = offsetof(T_IP6_HDR, next);
+
+	/*
+	 *  ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³ãããã®ãã§ãã¯
+	 */
+	if (ip6h->next == IPPROTO_HOPOPTS) {
+
+		/* ä¸­ç¶ç¹ãããã®é·ãããã§ãã¯ããã*/
+		if (plen < sizeof(T_IP6_HBH_HDR)) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInHdrErrors, 1);
+			goto buf_rel;
+			}
+
+		if ((noff = ip6_hopopts_input(input, &offp, &nextp)) < 0) {
+			if (noff == IP6_OPT_RET_ERR) {
+				NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PACKETS], 1);
+				NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInHdrErrors, 1);
+				goto buf_rel;
+				}
+			else if (noff == IP6_OPT_RET_REL) {
+				NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PACKETS], 1);
+				NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInHdrErrors, 1);
+				return;
+				}
+			}
+
+		/*
+		 *  ãã¤ã­ã¼ãé·ã 0 ã§ãä¸­ç¶ç¹ãªãã·ã§ã³ãããã¨ãã¯ã
+		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãå«ã¾ããªããã°ãªããªãã
+		 *  ãã®ã¨ããå·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ã«ãã
+		 *  ãã¤ã­ã¼ãé·ããã§ãã¯ããå¿
+è¦ãããããæ¬å®è£
+ã§ã¯ã
+		 *  å·¨å¤§ãã¤ã­ã¼ãã»ãªãã·ã§ã³ãæªç¥ã®ãªãã·ã§ã³ã¨ãã¦
+		 *  æ±ãã®ã§ãä½ãããªãã
+		 */
+		next = ((T_IP6_HBH_HDR *)(ip6h + 1))->next;
+		}
+	else
+		next = ip6h->next;
+
+	/* IPv6 ãã¼ã¿ã°ã©ã é·ããã§ãã¯ããã*/
+	if (input->len - IF_IP6_HDR_SIZE < plen) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_SHORT], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInTruncatedPkts, 1);
+		goto buf_rel;
+		}
+	else if (input->len > IF_IP6_HDR_SIZE + plen)
+		input->len = IF_IP6_HDR_SIZE + plen;
+
+	/* ä¸ä½ãã­ãã³ã«å¦çé¢æ°ãå¼ã³åºãã*/
+	nest = 0;
+	while (next != IPPROTO_DONE) {
+		if (++ nest > IP6_HDR_NEST_LIMIT) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PROTO], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1);
+			goto buf_rel;
+			}
+		else if ((func = get_upper_proto(next)) == NULL) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PROTO], 1);
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PACKETS], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsInUnknownProtos, 1);
+
+			/* icmp6_error ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã*/
+			icmp6_error(input, ICMP6_PARAM_PROB,
+			                   ICMP6_PARAMPROB_NEXT_HEADER, nextp);
+			return;
+			}
+		else {
+			next = (*func)(&input, &offp, &nextp);
+			}
+		}
+	return;
+
+buf_rel:
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  ip6_nexthdr -- æ¬¡ã®ãããã®ãªãã»ãããè¿ãã
+ *
+ *    æ»ãå¤ == -1 : æå¾ã®ããããã¾ãã¯ã¨ã©ã¼ã
+ *    æ»ãå¤ >   0 : ããã«ããããç¶ãã
+ */
+
+ER_UINT
+ip6_nexthdr (T_NET_BUF *nbuf, uint_t off, uint_t proto, uint_t *nextp)
+{
+	T_IP6_FRAG_HDR	*ip6fh;
+	T_IP6_EXT_HDR	*ip6eh;
+
+	switch (proto) {
+
+	case IPPROTO_IPV6:				/* IPv6 */
+		if (nbuf->len < off + IP6_HDR_SIZE)
+			return (ER_UINT)-1;
+		*nextp = ((T_IP6_HDR *)(nbuf->buf + off))->next;
+		return off + IP6_HDR_SIZE;
+		break;
+
+	case IPPROTO_FRAGMENT:			/* æ­çããã */
+		if (nbuf->len < off + sizeof(T_IP6_FRAG_HDR))
+			return (ER_UINT)-1;
+
+		/* ä¸­éã®ãã©ã°ã¡ã³ãã®å ´åã¯å¦çããããã*/
+		ip6fh = (T_IP6_FRAG_HDR *)(nbuf->buf + off);
+		if (ntohs(ip6fh->off_flag) & IP6F_MORE_FRAG)
+			return (ER_UINT)-1;
+
+		*nextp = ip6fh->next;
+		return off + sizeof(T_IP6_FRAG_HDR);
+		break;
+
+	case IPPROTO_AH:		/* IPv6 èªè¨¼ããã			*/
+	case IPPROTO_HOPOPTS:		/* IPv6 ä¸­ç¶ç¹ (Hop-by-Hop) ãªãã·ã§ã³	*/
+	case IPPROTO_ROUTING:		/* çµè·¯å¶å¾¡ããã			*/
+	case IPPROTO_DSTOPTS:		/* IPv6 çµç¹ãªãã·ã§ã³			*/
+		if (nbuf->len < off + sizeof(T_IP6_EXT_HDR))
+			return (ER_UINT)-1;
+
+		ip6eh = (T_IP6_EXT_HDR *)(nbuf->buf + off);
+		*nextp =  ip6eh->next;
+		if (proto == IPPROTO_AH)
+			return off + ((ip6eh->len + 2) << 2);
+		else
+			return off + ((ip6eh->len + 1) << 3);
+		break;
+		}
+
+	return (ER_UINT)-1;
+	}
+
+/*
+ *  ip6_lasthdr -- æå¾ã®ãããã®ãªãã»ãããè¿ãã
+ */
+
+ER_UINT
+ip6_lasthdr (T_NET_BUF *nbuf, uint_t off, uint_t proto, uint_t *nextp)
+{
+	ER_UINT	newoff;
+
+	while (1) {
+		newoff = ip6_nexthdr(nbuf, off, proto, nextp);
+		if (newoff < 0)
+			return (ER_UINT)off;
+		off   = newoff;
+		proto = *nextp;
+		}
+	return (ER_UINT)0u;
+	}
+
+/*
+ *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
+ *
+ *    æ»ãå¤:
+ *
+ *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
+ *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
+ *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ */
+
+ER_UINT
+ip6_unknown_opt (T_NET_BUF *input, uint8_t *opt)
+{
+	switch (IP6OPT_TYPE(*opt)) {
+	case IP6OPT_TYPE_SKIP:		/* ç¡è¦ããã			*/
+		return *(opt + 1);
+		break;
+	case IP6OPT_TYPE_ICMP:		/* ç ´æ£ãã¦ããã«ãã­ã£ã¹ãã§ãªããã° ICMP ãè¿éããã	*/
+		if (IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst))
+			return IP6_OPT_RET_ERR;
+		/* no break; */
+	case IP6OPT_TYPE_FORCEICMP:	/* ç ´æ£ãã¦ãICMP ãè¿éããã	*/
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_OPTION,
+		                   (opt - input->buf) - IF_HDR_SIZE);
+		return IP6_OPT_RET_REL;
+		break;
+	/*case IP6OPT_TYPE_DISCARD:	ãã¼ã¿ã°ã©ã ãç ´æ£ããã	*/
+		}
+
+	return IP6_OPT_RET_ERR;
+	}
+
+/*
+ *  ip6_remove_exthdrs -- IPv6 æ¡å¼µããããåé¤ããä»¥éãåã«è©°ããã
+ */
+
+ER
+ip6_remove_exthdrs (T_NET_BUF *nbuf)
+{
+	ER_UINT	off;
+	uint_t	next;
+
+	/* éå§ãªãã»ããã IP ãããã«è¨­å®ããã*/
+	off = ((uint8_t *)GET_IP6_HDR(nbuf)) - nbuf->buf;
+
+	/* æçµããããæ¢ç´¢ããã*/
+	off = ip6_lasthdr(nbuf, off, IPPROTO_IPV6, &next);
+
+	if (off <= 0)
+		return E_OBJ;
+	else {
+		uint_t sdu;
+
+		sdu = GET_IP6_SDU(nbuf) - nbuf->buf;
+		if (off > sdu) {
+			memmove(nbuf->buf + sdu, nbuf->buf + off, off - sdu);
+			GET_IP6_HDR(nbuf)->plen -= off - sdu;
+			nbuf->len              -= off - sdu;
+			}
+		}
+	return E_OK;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_output.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_output.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_output.c	(revision 313)
@@ -0,0 +1,393 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ip6_output.c,v 1.43 2002/10/31 19:45:48 ume Exp $	*/
+/*	$KAME: ip6_output.c,v 1.279 2002/01/26 06:12:30 jinmei Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_output.c	8.3 (Berkeley) 1/21/94
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+
+#include <netinet6/nd6.h>
+
+#include <net/if_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+/* ãªã³ã¯ MTU */
+
+uint32_t	linkmtu = IF_MTU;
+
+/*
+ *  å±æå¤æ°
+ */
+
+#ifdef IP6_CFG_FRAGMENT
+
+static uint32_t	ip6_id;
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+/*
+ *  ip6_output -- IPv6 ã®åºåé¢æ°
+ */
+
+ER
+ip6_output (T_NET_BUF *output, uint16_t flags, TMO tmout)
+{
+	T_IP6_HDR		*ip6h;
+	const T_IN6_ADDR	*gw;
+	T_IFNET			*ifp = IF_GET_IFNET();
+	ER			error = E_OK;
+
+#ifdef IP6_CFG_FRAGMENT
+
+	T_IP6_HDR	*fip6h;
+	T_IP6_FRAG_HDR	*fip6f;
+	T_NET_BUF	*frag;
+	uint32_t	mtu, id;
+	uint16_t	plen, foff, flen;
+	uint8_t		nextproto;
+	bool_t		alwaysfrag = false;
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+	ip6h = GET_IP6_HDR(output);
+
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_OCTETS],
+	              GET_IP6_HDR_SIZE(output) + GET_IP6_SDU_SIZE(output));
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutRequests, 1);
+
+	/*
+	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ä»¥å¤ã«ã¯ãéä¿¡å
+ã¢ãã¬ã¹ã«
+	 *  ç¡æå®ãæå®ã§ããªãã
+	 */
+	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && (flags & IPV6_OUT_FLG_DAD) == 0) {
+		error = E_PAR;
+		goto drop;
+		}
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ã«ã¯ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãæå®ã§ããªãã*/
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->src)) {
+		error = E_PAR;
+		goto drop;
+		}
+
+	/*
+	 *  çµè·¯é¸æãè¡ãã
+	 */
+	if ((gw = in6_rtalloc(ifp, &ip6h->dst)) == NULL) {
+		error = E_PAR;
+		goto drop;
+		}
+
+	if (!IN6_IS_ADDR_MULTICAST(&ip6h->dst)) {
+		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		}
+	else {
+		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã®å¦ç */
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutMcastPkts, 1);
+		if (flags & IPV6_OUT_FLG_HOP_LIMIT)
+			ip6h->hlim = IPV6_OUT_GET_HOP_LIMIT(flags);
+		else
+			ip6h->hlim = IPV6_DEFAULT_MULTICAST_HOPS;
+		}
+
+	/* Traffic Class ã¨ Flow Label ããµãã¼ãããªãã®ã§ 0 ã«è¨­å®ããã*/
+	ip6h->vcf = htonl(IP6_MAKE_VCF(IPV6_VERSION, 0));
+
+#ifdef IP6_CFG_FRAGMENT
+
+
+#if NUM_IN6_HOSTCACHE_ENTRY > 0
+
+	mtu = in6_hostcache_getmtu(&ip6h->dst);
+
+	if (0 < mtu && mtu <= IPV6_MMTU) {
+
+		/*
+		 *  Path MTU ãç»é²ããã¦ããå ´åã
+		 *  MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ã®å ´åã¯ã
+		 *  MTU ã IPv6 MMTU ã«è¨­å®ãåå²ãã¦éä¿¡ããã
+		 */
+		mtu = IPV6_MMTU;
+		alwaysfrag = true;
+		}
+	else if (mtu == 0)
+		mtu  = linkmtu;
+
+#else	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+	mtu  = linkmtu;
+
+#endif	/* of #if NUM_IN6_HOSTCACHE_ENTRY > 0 */
+
+	plen = ntohs(ip6h->plen);
+	if (plen + IP6_HDR_SIZE <= mtu && !alwaysfrag) {
+
+		/* åå²ããå¿
+è¦ããªãã¨ãã®å¦ç */
+		if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) {
+			NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
+			NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutDiscards, 1);
+			}
+		}
+	else {
+
+		/* æ­ç ID ãè¨­å®ããã*/
+		id = ip6_id ++;
+
+		/* MTU ã IPv6 ã®æå¤§ãã±ãããµã¤ãºãè¶
+ããªãããã«ããã*/
+		if (mtu > IPV6_MAXPACKET)
+			mtu = IPV6_MAXPACKET;
+
+		/*
+		 *  MTU ãããåå²ä¸è½é¨åï¼TINET-1.4 ã§ã¯ãåå²ãããä»¥å¤ã®
+		 *  æ¡å¼µãããã®åºåã¯æªå®è£
+ã®ãã 0 ãªã¯ãããï¼
+		 *  ã¨æ­çãããã®ãµã¤ãºãå¼ããã¨ãã8 ãªã¯ãããä»¥ä¸ãªããã°
+		 *  åå²ãã¦éä¿¡ã§ããªãããã¨ã©ã¼ã«ããã
+		 */
+		if (((mtu - sizeof(T_IP6_FRAG_HDR)) & ~7) < 8) {
+			error = E_PAR;
+			goto drop;
+			}
+
+		/*
+		 *  IPv6 ãããã® next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ãæ­çãããã
+		 *  æ­çãããã®  next ãã£ã¼ã«ãã«è¨­å®ããå¤ã¯ã
+		 *  å
+ã®ãã¼ã¿ã°ã©ã ã® next ãã£ã¼ã«ãã®å¤ã
+		 */
+		nextproto  = ip6h->next;
+		ip6h->next = IPPROTO_FRAGMENT;
+
+		/* åå²ãã¦éä¿¡ããã*/
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT], 1);
+		for (foff = 0; foff < plen; foff += flen) {
+
+			/* æ­çã®é·ããè¨ç®ãã8 ãªã¯ãããå¢çã«èª¿æ´ããã*/
+			if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen)
+				flen = (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) >> 3 << 3;
+			else
+				flen = plen - foff;
+
+			/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããã*/
+			if (tget_net_buf(&frag, flen + IF_IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR), TMO_IP6_FRAG_GET_NET_BUF) == E_OK) {
+
+				/* IPv6 ããããã³ãã¼ããã*/
+				fip6h = GET_IP6_HDR(frag);
+				*fip6h = *ip6h;
+
+				/* IPv6 ããããåããã*/
+				fip6h->plen	= htons(flen + sizeof(T_IP6_FRAG_HDR));
+
+				/* æ­çããããåããã*/
+				fip6f = (T_IP6_FRAG_HDR *)GET_IP6_NEXT_HDR(frag);
+				fip6f->off_flag	= htons((uint16_t)(foff & ~7));
+				if (foff + (mtu - (IP6_HDR_SIZE + sizeof(T_IP6_FRAG_HDR))) < plen)
+					fip6f->off_flag	|= IP6F_MORE_FRAG;
+				fip6f->reserved	= 0;
+				fip6f->ident	= htonl(id);
+				fip6f->next	= nextproto;
+
+				/* SDU ãã³ãã¼ããã*/
+				memcpy((uint8_t*)(fip6f + 1), GET_IP6_NEXT_HDR(output) + foff, flen);
+				NET_COUNT_IP6(net_count_ip6[NC_IP6_FRAG_OUT_FRAGS], 1);
+				NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragCreates, 1);
+
+				/* éä¿¡ããã*/
+				if ((error = nd6_output(ifp, frag, gw, NULL, tmout)) != E_OK) {
+					NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragFails, 1);
+					goto drop;
+					}
+				}
+			else {
+				/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ã§ããªããã°ãéä¿¡ããããããã*/
+				error = E_NOMEM;
+				goto drop;
+				}
+			}
+
+		/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+		if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+			syscall(rel_net_buf(output));
+			}
+		else
+			output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutFragOKs, 1);
+		}
+
+#else	/* #ifdef IP6_CFG_FRAGMENT */
+
+	if ((error = nd6_output(ifp, output, gw, NULL, tmout)) != E_OK) {
+		NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
+		NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutDiscards, 1);
+		}
+
+#endif	/* #ifdef IP6_CFG_FRAGMENT */
+
+	return error;
+
+drop:
+	/* IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ããã§ãã¯ããã*/
+	if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+		syscall(rel_net_buf(output));
+		}
+	else
+		output->flags &= (uint8_t)~NB_FLG_NOREL_IFOUT;
+
+	NET_COUNT_IP6(net_count_ip6[NC_IP6_OUT_ERR_PACKETS], 1);
+	NET_COUNT_MIB(in6_ifstat.ipv6IfStatsOutDiscards, 1);
+	return error;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_var.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_var.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ip6_var.h	(revision 313)
@@ -0,0 +1,323 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/ip6_var.h,v 1.10 2002/10/16 01:54:45 sam Exp $	*/
+/*	$KAME: ip6_var.h,v 1.62 2001/05/03 14:51:48 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)ip_var.h	8.1 (Berkeley) 6/10/93
+ */
+ 
+#ifndef _IP6_VAR_H_
+#define _IP6_VAR_H_
+
+/*
+ *  IPv6 ãããã»ãã¤ã­ã¼ãã¢ã¯ã»ã¹ãã¯ã­
+ */
+
+#define IF_IP6_HDR_SIZE			(IF_HDR_SIZE + IP6_HDR_SIZE)
+
+#define GET_IP6_HDR(nbuf)		((T_IP6_HDR*)((nbuf)->buf + IF_HDR_SIZE))
+#define GET_IP6_SDU(nbuf)		((uint8_t*)((nbuf)->buf) + GET_IF_IP6_HDR_SIZE(nbuf))
+#define GET_IP6_NEXT_HDR(nbuf)		((uint8_t*)((nbuf)->buf) + IF_IP6_HDR_SIZE)
+
+#define GET_IP6_HDR_SIZE(nbuf)		(get_ip6_hdr_size(nbuf))
+#define GET_IP6_SDU_SIZE(nbuf)		(ntohs(GET_IP6_HDR(nbuf)->plen))
+#define GET_IF_IP6_HDR_SIZE(nbuf)	(IF_HDR_SIZE + (GET_IP6_HDR_SIZE(nbuf)))
+
+#define SET_IP6_CF(nbuf,cf)		(GET_IP6_HDR(nbuf)->vcf=htonl(IP6_MAKE_VCF(IP6_VCF_V(ntohl(GET_IP6_HDR(nbuf)->vcf)),cf)))
+#define SET_IP6_SDU_SIZE(nbuf,slen)	(GET_IP6_HDR(nbuf)->plen=htons(slen))
+
+/* ip6_output ã®ãã©ã° */
+
+#define IPV6_OUT_FLG_DAD		0x0100	/* éè¤ã¢ãã¬ã¹æ¤åº	*/
+#define IPV6_OUT_FLG_HOP_LIMIT		0x0200	/* ããããªãããæå®	*/
+
+/* ããããªããããã©ã°ãä»ãæãããããªãããå¤ãæä½ãããã¯ã­ */
+
+#define IPV6_OUT_GET_HOP_LIMIT(f)	((f)&0x00ff)
+#define IPV6_OUT_SET_HOP_LIMIT(f,l)	((f)|(l))
+
+/*
+ *  ip6_unknown_opt -- æªç¥ã®ãªãã·ã§ã³ã®å¦ç
+ *
+ *    æ»ãå¤:
+ *
+ *      0 ä»¥ä¸ 			æ­£å¸¸ããªãã·ã§ã³é·ã
+ *      IP6_OPT_RET_ERR (-1)	ã¨ã©ã¼ãå¼åºå´ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
+ *      IP6_OPT_RET_REL (-2)	ã¨ã©ã¼ããããã¯ã¼ã¯ãããã¡ã¯éæ¾ããã¦ããã
+ */
+
+#define IP6_OPT_RET_ERR		(-1)
+#define IP6_OPT_RET_REL		(-2)
+
+/*
+ *  IPv6 ã® MMTU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ */
+
+#if defined(IF_HDR_SIZE)
+
+typedef struct t_net_buf_ipv6_mmtu {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		unit;	/* ã¤ã³ã¿ãã§ã¼ã¹çªå·	*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_HDR_SIZE + IPV6_MMTU];
+				/* ãããã¡æ¬ä½		*/
+	} T_NET_BUF_IPV6_MMTU;
+
+#endif	/* of #if defined(IF_HDR_SIZE) */
+
+/*
+ *  65536 ãªã¯ããããµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ */
+
+typedef struct t_net_buf6_65536 {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		halign[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IF_IP6_HDR_SIZE + 65536];
+				/* ãããã¡æ¬ä½		*/
+#if defined(IF_PDU_HDR_PADDING)
+	uint8_t		padding[IF_PDU_HDR_PADDING];
+#endif				/* ãããã®ä½å		*/
+	} T_NET_BUF6_65536;
+
+#ifdef IP6_CFG_FRAGMENT
+
+/*
+ *  åæ§æã­ã¥ã¼ç¨ IPv6 ãããã®å®ç¾©
+ */
+
+typedef struct t_qip6_hdr {
+	uint32_t		vcf;		/* Version:        4 bit		*/
+					/* Traffic Class:  8 bit		*/
+					/* Flow Label:    20 bit		*/
+	uint16_t	plen;		/* Payload Length			*/
+	uint8_t		next;		/* Next Header				*/
+	uint8_t		hlim;		/* Hop Limit				*/
+	T_IN6_ADDR	src;		/* Source Address			*/
+	T_NET_BUF	*next_frag;	/* æ¬¡ã® IPv6 ãã©ã°ã¡ã³ã	*/
+	uint16_t	foff;		/* æ­çãããã®ãªãã»ãã		*/
+	uint16_t	flen;		/* æ­çé·				*/
+	uint16_t	ftim;		/* åæ§æã¿ã¤ã ã¢ã¦ã			*/
+	uint16_t	dummy1;
+	uint8_t		dummy2[sizeof(T_IN6_ADDR) - (sizeof(T_NET_BUF*) + sizeof(uint16_t) * 4)];
+	} T_QIP6_HDR;
+
+#define QIP6_HDR_SIZE			(sizeof(T_QIP6_HDR))
+#define IF_QIP6_HDR_SIZE		(IF_HDR_SIZE + QIP6_HDR_SIZE)
+
+#define GET_QIP6_HDR(nbuf)		((T_QIP6_HDR*)((nbuf)->buf + IF_HDR_SIZE))
+#define GET_QIP6_SDU(nbuf)		((uint8_t*)(nbuf)->buf + GET_IF_QIP6_HDR_SIZE(nbuf))
+
+#define GET_QIP6_HDR_SIZE(iph)		((uint8_t)IP6_VHL_HL((iph)->vhl) << 2)
+#define GET_IF_QIP6_HDR_SIZE(nbuf)	(IF_HDR_SIZE + (GET_QIP6_HDR_SIZE(GET_QIP6_HDR(nbuf))))
+
+/*
+ *  ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡
+ */
+
+typedef struct t_net_buf6_reassm {
+	uint16_t	len;	/* ãã¼ã¿ã®é·ã		*/
+	uint8_t		idix;	/* mpfid ã®ã¤ã³ããã¯ã¹	*/
+	uint8_t		flags;	/* ãã©ã°		*/
+#ifdef IF_ETHER_NIC_NET_BUF_ALIGN
+	uint8_t		nalign[IF_ETHER_NIC_NET_BUF_ALIGN];
+#endif
+#if CPU_NET_ALIGN == 4 && IF_HDR_ALIGN != 4
+	uint8_t		align[4 - IF_HDR_ALIGN];
+#endif
+	uint8_t		buf[IP6_CFG_FRAG_REASSM_SIZE];
+				/* ãããã¡æ¬ä½		*/
+	} T_NET_BUF6_REASSM;
+
+#endif	/* of #ifdef IP6_CFG_FRAGMENT */
+
+/*
+ *  TCP ã®åæ§æã­ã¥ã¼ã«ããã IPv6 ãããã®å®ç¾©
+ */
+
+typedef struct t_ip6_tcp_q_hdr {
+	uint8_t vc;		/* Version:        4 bit		*/
+	uint8_t cf;		/* Traffic Class:  8 bit		*/
+			/* Flow Label:     4 bit (20 bit)	*/
+	uint16_t thoff;	/* TCP ãããã®ãªãã»ãã		*/
+	uint16_t plen;	/* Payload Length			*/
+	uint8_t next;	/* Next Header				*/
+	uint8_t hlim;	/* Hop Limit				*/
+	T_IN6_ADDR src;	/* Source Address			*/
+	T_IN6_ADDR dst;	/* Destination Address			*/
+	} T_IP6_TCP_Q_HDR;
+
+#ifdef SUPPORT_MIB
+
+/*
+ *  SNMP ã® ç®¡çæ
+å ±ãã¼ã¹ (MIB)
+ */
+
+typedef struct t_in6_ifstat {
+	uint32_t	ipv6IfStatsInReceives;
+	uint32_t	ipv6IfStatsInHdrErrors;
+/*	uint32_t	ipv6IfStatsInTooBigErrors;*/
+/*	uint32_t	ipv6IfStatsInNoRoutes;*/
+	uint32_t	ipv6IfStatsInAddrErrors;
+	uint32_t	ipv6IfStatsInUnknownProtos;
+	uint32_t	ipv6IfStatsInTruncatedPkts;
+/*	uint32_t	ipv6IfStatsInDiscards;*/
+/*	uint32_t	ipv6IfStatsInDelivers;*/
+/*	uint32_t	ipv6IfStatsOutForwDatagrams;*/
+	uint32_t	ipv6IfStatsOutRequests;
+	uint32_t	ipv6IfStatsOutDiscards;
+	uint32_t	ipv6IfStatsOutFragOKs;
+	uint32_t	ipv6IfStatsOutFragFails;
+	uint32_t	ipv6IfStatsOutFragCreates;
+	uint32_t	ipv6IfStatsReasmReqds;
+	uint32_t	ipv6IfStatsReasmOKs;
+	uint32_t	ipv6IfStatsReasmFails;
+	uint32_t	ipv6IfStatsInMcastPkts;
+	uint32_t	ipv6IfStatsOutMcastPkts;
+} T_IN6_IFSTAT;
+
+extern T_IN6_IFSTAT in6_ifstat;
+
+#endif	/* of #ifdef SUPPORT_MIB */
+
+/*
+ *  å¤æ°
+ */
+
+extern uint8_t	ip6_defhlim;
+
+/*
+ *  é¢æ°
+ */
+
+extern ER ip6_output (T_NET_BUF *output, uint16_t flags, TMO tmout);
+extern void ip6_init (void);
+extern uint8_t *ip6_get_prev_hdr (T_NET_BUF *nbuf, uint_t off);
+extern uint_t get_ip6_hdr_size (T_NET_BUF *nbuf);
+extern ER_UINT ip6_nexthdr (T_NET_BUF *nbuf, uint_t off, uint_t proto, uint_t *nextp);
+extern ER_UINT ip6_lasthdr (T_NET_BUF *nbuf, uint_t off, uint_t proto, uint_t *nextp);
+extern ER_UINT ip6_unknown_opt (T_NET_BUF *input, uint8_t *opt);
+extern uint_t dest6_input  (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern uint_t route6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern uint_t frag6_input  (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp);
+extern void frag6_timer (void);
+extern ER ip6_remove_exthdrs (T_NET_BUF *nbuf);
+
+#endif	/* of #ifndef _IP6_VAR_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ipsec.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ipsec.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/ipsec.cfg	(revision 313)
@@ -0,0 +1,54 @@
+
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *  Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  IPsec ã§ä½¿ç¨ããã«ã¼ãã«ãªãã¸ã§ã¯ã
+ */
+
+#ifdef SUPPORT_IPSEC
+
+#endif	/* of #ifdef SUPPORT_IPSEC */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.c	(revision 313)
@@ -0,0 +1,731 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/nd6.c,v 1.20 2002/08/02 20:49:14 rwatson Exp $	*/
+/*	$KAME: nd6.c,v 1.144 2001/05/24 07:44:00 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * XXX
+ * KAME 970409 note:
+ * BSD/OS version heavily modifies this code, related to llinfo.
+ * Since we don't have BSD/OS version of net/route.c in our hand,
+ * I left the code mostly as it was in 970310.  -- itojun
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+
+#include <netinet6/nd6.h>
+
+#include <net/if_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  è¿é£ã­ã£ãã·ã¥
+ */
+
+static T_LLINFO_ND6 nd6_cache[NUM_ND6_CACHE_ENTRY];
+
+/*
+ *  nd6_free -- ã«ã¼ã¿ãåé¤ããã
+ */
+
+static void
+nd6_free (T_LLINFO_ND6	*ln)
+{
+	T_DEF_ROUTER	*dr;
+
+	dr = nd6_defrtrlist_lookup(&ln->addr);
+	if (dr != NULL) {
+		ln->state = ND6_LLINFO_INCOMPLETE;
+
+		/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+		nd6_defrtrlist_del(dr);
+		}
+	}
+
+/*
+ *  nd6_timer -- è¿é£æ¢ç´¢ç®¡çã¿ã¤ãã¼
+ */
+
+void
+nd6_timer (void)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_LLINFO_ND6	*ln;
+	SYSTIM		now;
+	int_t		ix;
+
+	/* è¿é£ã­ã£ãã·ã¥ã®å¦ç */
+	syscall(wai_sem(SEM_ND6_CACHE));
+	syscall(get_tim(&now));
+	for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
+		ln = &nd6_cache[ix];
+		if (ln->state >= ND6_LLINFO_NO_STATE && (int32_t)(ln->expire - now) < 0) {
+		                                               /* ln->expire < now */
+
+			switch (ln->state) {
+
+			case ND6_LLINFO_INCOMPLETE:	/* æªè§£æ±º		*/
+				if (ln->asked < ND6_MAX_MCAST_QUERY) {
+					/*
+					 *  ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 */
+					ln->asked ++;
+					ln->expire = now + ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					nd6_ns_output(ifp, &in6_addr_unspecified, &ln->addr, ln, false);
+					}
+				else  {
+					if (ln->hold != NULL) {
+						/*
+						 *  æçµçã«ã¯ãä¿çããã¦ãããããã¯ã¼ã¯ãããã¡ã
+						 *  ããã°ãICMP6 ERROR ãèªåèªèº«ã«è¿ãããã¨ã
+						 *  ãããã¯ã¼ã¯ãããã¡ãéæ¾ããã
+						 *  ããããç¾å¨ãicmp6_error ã®å®è£
+ãä¸å®å
+¨ã®ããã
+						 *  ãããã¯ã¼ã¯ãããã¡ã®éæ¾ã®ã¿è¡ãã
+						 */
+#if 0	/* ä¿ç */
+						icmp6_error(ln->hold, ICMP6_DST_UNREACH,
+						                      ICMP6_DST_UNREACH_ADDR, 0);
+#endif	/* #if 0 */
+						syscall(rel_net_buf(ln->hold));
+						ln->hold = NULL;
+						}
+					nd6_free(ln);
+					memset((void*)ln, 0, sizeof(*ln));
+					}
+				break;
+
+			case ND6_LLINFO_REACHABLE:	/* å°éå¯è½		*/
+				if (ln->expire) {
+					ln->expire = now + ND6_GCOLLECTION_TIME;
+					ln->state = ND6_LLINFO_STALE;
+					}
+				break;
+
+			case ND6_LLINFO_STALE:		/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
+				if (ln->expire) {
+					if (ln->hold != NULL) {
+						syscall(rel_net_buf(ln->hold));
+						ln->hold = NULL;
+						}
+					nd6_free(ln);
+					memset((void*)ln, 0, sizeof(*ln));
+					}
+				break;
+
+			case ND6_LLINFO_DELAY:		/* å°éå¯è½æ§ã®ç¢ºèªå¾
+æ©	*/
+				ln->asked = 1;
+				ln->expire = now + ND6_RETRANS_TIME;		/* è¿é£æ¢ç´¢éä¿¡éé */
+				ln->state = ND6_LLINFO_PROBE;
+				nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
+				break;
+
+			case ND6_LLINFO_PROBE:		/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+				if (ln->asked < ND6_MAX_UCAST_QUERY) {
+					/*
+					 *  ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°ä»¥ä¸ã®å ´åã®å¦ç
+					 */
+					ln->asked ++;
+					ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+					nd6_ns_output(ifp, &ln->addr, &ln->addr, ln, false);
+					}
+				else {
+					if (ln->hold != NULL) {
+						syscall(rel_net_buf(ln->hold));
+						ln->hold = NULL;
+						}
+					nd6_free(ln);
+					memset((void*)ln, 0, sizeof(*ln));
+					}
+				break;
+
+				}
+			}
+		}
+	syscall(sig_sem(SEM_ND6_CACHE));
+
+	/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®å¦ç */
+	nd6_defrtrlist_timer();
+
+	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®å¦ç */
+	nd6_prelist_timer();
+
+	/* ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ã®å¦ç */
+	in6_ifaddr_timer(ifp);
+
+	/*
+	 *  å°éå¯è½ç¶æ
+ã®æå¹æéã®æ´æ°
+	 */
+	if ((int32_t)(nd6_recalc_reachtm_interval - now) < 0) {
+	           /* nd6_recalc_reachtm_interval < now */
+		nd6_recalc_reachtm_interval	= now + ND6_RECALC_REACHTM_INTERVAL;
+		nd6_reachable_time		= ND6_CALC_REACH_TIME(nd6_base_reachable_time);
+		}
+	timeout((callout_func)nd6_timer, NULL, ND6_TIMER_TMO);
+	}
+
+/*
+ *  nd6_get_cache -- è¿é£ã­ã£ãã·ã¥ãç²å¾ããã
+ */
+
+const T_LLINFO_ND6 *
+nd6_get_cache (void)
+{
+	return nd6_cache;
+	}
+
+/*
+ *  nd6_ifattach -- è¿é£æ¢ç´¢ã®åæè¨­å®ãè¡ãã
+ */
+
+void
+nd6_ifattach (T_IFNET *ifp)
+{
+	}
+
+/*
+ *  nd6_output_hold -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ä¿çããã¦ãã
+ *                     ã¢ãã¬ã¹è§£æ±ºå¾
+ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã
+ *
+ *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
+ã§å¼åºããã¨ã
+ */
+
+ER
+nd6_output_hold (T_IFNET *ifp, T_LLINFO_ND6 *ln)
+{
+	SYSTIM now;
+
+	/* ã¢ãã¬ã¹è§£æ±ºå¾
+ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	if (ln->hold) {
+
+		/* ã¿ã¤ã ã¢ã¦ãã®å¦ç */
+		if (ln->tmout != TMO_FEVR) {
+
+			/*
+			 *  ã¿ã¤ã ã¢ã¦ãã®æå®ãæ°¸ä¹
+ã§ãªããæéãéãã¦ããã°ã
+			 *  åºåããªãã§çµäºããã
+			 */
+			syscall(get_tim(&now));
+			if ((int32_t)(ln->tmout - now) < 0) {
+			           /* ln->tmout < now */
+				syscall(rel_net_buf(ln->hold));
+				ln->hold = NULL;
+				return E_TMOUT;
+				}
+			}
+				
+		nd6_output(ifp, ln->hold, &ln->addr, ln, TMO_FEVR);
+		ln->hold = NULL;
+		}
+	return E_OK;
+	}
+
+/*
+ *  nd6_lookup -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ¢ç´¢ããã
+ *
+ *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
+ã§å¼åºããã¨ã
+ *
+ */
+
+T_LLINFO_ND6 *
+nd6_lookup (const T_IN6_ADDR *addr, bool_t create)
+{
+	SYSTIM	min = 0xffffffff;
+	int_t	ix, fix = -1, mix = -1;
+
+	for (ix = NUM_ND6_CACHE_ENTRY; ix -- > 0; ) {
+		if (nd6_cache[ix].state == 0) {
+			/* æªä½¿ç¨ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			if (fix == -1)
+				fix = ix;
+			}
+		else if (IN6_ARE_ADDR_EQUAL(addr, &nd6_cache[ix].addr)) {
+			return &nd6_cache[ix];
+			}
+		else if ((int32_t)(nd6_cache[ix].expire - min) < 0) {	/* nd6_cache[ix].expire < min */
+			/* æå¹æéãæç­ã¨ã³ããªã®ã¤ã³ããã¯ã¹ãè¨é²ããã*/
+			min = nd6_cache[ix].expire;
+			mix = ix;
+			}
+		}
+
+	if (create) {
+		if (fix == -1)  {
+			if (nd6_cache[mix].hold != NULL) {
+				syscall(rel_net_buf(nd6_cache[mix].hold));
+				}
+			fix = mix;
+			}
+		syscall(get_tim(&nd6_cache[fix].expire));
+		nd6_cache[fix].addr   = *addr;
+		nd6_cache[fix].state  = ND6_LLINFO_NO_STATE;
+		return &nd6_cache[fix];
+		}
+	else
+		return NULL;
+	}
+
+/*
+ *  nd6_cache_lladdr -- è¿é£æ¢ç´¢ã­ã£ãã·ã¥ã«ç»é²ããã
+ */
+
+T_LLINFO_ND6 *
+nd6_cache_lladdr (T_IFNET *ifp, const T_IN6_ADDR *from,
+                  T_IF_ADDR *lladdr, uint8_t type, uint8_t code)
+{
+	T_LLINFO_ND6	*ln;
+	SYSTIM		now;
+	bool_t		newentry, olladdr, llchange, doupdate;
+	int_t		newstate = ND6_LLINFO_INCOMPLETE;
+
+	/* ã¢ãã¬ã¹ãç¡æå®ãªãä½ãããªãã*/
+	if (IN6_IS_ADDR_UNSPECIFIED(from))
+		return NULL;
+
+	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	syscall(wai_sem(SEM_ND6_CACHE));
+	if ((ln = nd6_lookup(from, false)) == NULL) {
+		ln = nd6_lookup(from, true);
+		newentry = true;
+		}
+	else
+		newentry = false;
+
+	olladdr = ln->state > ND6_LLINFO_INCOMPLETE;
+	if (!olladdr || lladdr == NULL)
+		llchange = false;
+	else if (memcmp(lladdr, &ln->ifaddr, sizeof(T_IF_ADDR)))
+		llchange = true;
+	else
+		llchange = false;
+
+	/*
+	 *  ç¶æ
+é·ç§»è¡¨
+	 *
+	 *  nd_na_flags
+	 *  newnetry olladdr lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+	 *
+	 *      F       F       N       -    (1)
+	 *      F       T       N       -    (2)
+	 *      F       F       Y       -    (3) L * -> STALE
+	 *      F       T       Y       F    (4) L
+	 *      F       T       Y       T    (5) L * -> STALE
+	 *      T       -       N       -    (6)   * -> NO_STATE
+	 *      T       -       Y       -    (7) L * -> STALE
+	 */
+
+	/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+	if (lladdr != NULL) {
+		ln->ifaddr = *(T_IF_ADDR *)lladdr;
+		}
+
+	if (newentry) {
+		if (lladdr != NULL)					/* (7) */
+			newstate = ND6_LLINFO_STALE;
+		else							/* (6) */
+			newstate = ND6_LLINFO_NO_STATE;
+		doupdate = true;
+		}
+	else {
+		if ((!olladdr && lladdr != NULL) ||			/* (3) */
+		    ( olladdr && lladdr != NULL && llchange)) {		/* (5) */
+			newstate = ND6_LLINFO_STALE;
+			doupdate = true;
+			}
+		else							/* (1),(2),(4) */
+			doupdate = false;
+		}
+
+	/* è¿é£ã­ã£ãã·ã¥ã¨ã³ããªãæ´æ°ããã*/
+	if (doupdate) {
+		ln->state = newstate;
+
+		syscall(get_tim(&now));
+		if (ln->state == ND6_LLINFO_STALE) {
+			ln->expire = now + ND6_GCOLLECTION_TIME;
+
+			/* ã¢ãã¬ã¹è§£æ±ºå¾
+ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+			nd6_output_hold(ifp, ln);
+			}
+		else if (ln->state == ND6_LLINFO_INCOMPLETE)
+			ln->expire = now;
+		}
+	syscall(sig_sem(SEM_ND6_CACHE));
+
+
+	/* ã«ã¼ã¿éç¥ã®å¦ç */
+	switch (type) {
+
+	case ND_NEIGHBOR_SOLICIT:
+		if (newentry)
+			ln->flags &= ~ND6_LLIF_ROUTER;
+		break;
+
+	case ND_REDIRECT:
+		if (code == ND_REDIRECT_ROUTER)
+			ln->flags |=  ND6_LLIF_ROUTER;
+		else if (newentry)
+			ln->flags &= ~ND6_LLIF_ROUTER;
+		break;
+
+	case ND_ROUTER_SOLICIT:
+		ln->flags &= ~ND6_LLIF_ROUTER;
+		break;
+
+	case ND_ROUTER_ADVERT:
+		if ((!newentry && (olladdr || lladdr != NULL)) ||
+		    ( newentry && lladdr))
+			ln->flags |=  ND6_LLIF_ROUTER;
+		break;
+		}
+
+	return ln;
+	}
+
+/*
+ *  nd6_is_addr_neighbor -- æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããããã§ãã¯ããã
+ */
+
+bool_t
+nd6_is_addr_neighbor (T_IFNET *ifp, const T_IN6_ADDR *addr)
+{
+	if (IN6_IS_ADDR_LINKLOCAL(addr))
+		return true;
+
+	if (nd6_onlink_prefix_lookup(addr) != NULL)
+		return true;
+
+	if (nd6_lookup(addr, false) != NULL)
+		return true;
+
+	return false;
+	}
+
+/*
+ *  nd6_output -- è¿é£æ¢ç´¢ã®åºåé¢æ°
+ *
+ *    æ³¨æ: ã»ããã© SEM_ND6_CACHE ã«ããã­ãã¯ç¶æ
+ã§å¼åºããã¨ã
+ */
+
+ER
+nd6_output (T_IFNET *ifp, T_NET_BUF *output, const T_IN6_ADDR *dst, T_LLINFO_ND6 *ln, TMO tmout)
+{
+	ER	error = E_OK;
+	SYSTIM	now;
+
+	/*
+	 *  ãã¦å
+ã¢ãã¬ã¹ããã«ãã­ã£ã¹ãããè¿é£ã­ã£ãã·ã¥ã
+	 *  ä¸è¦ã®å ´åã¯ç´ã¡ã«éä¿¡ããã
+	 */
+	if (!(IN6_IS_ADDR_MULTICAST(dst) || !IF_IN6_NEED_CACHE(ifp))) {
+		if (ln == NULL) {
+			/* è¿é£ã­ã£ãã·ã¥ãæªå®ç¾©ã®å ´å */
+			if (nd6_is_addr_neighbor(ifp, dst)) {
+				/*
+				 *  æå®ãããã¢ãã¬ã¹ã®ãã¼ããåä¸ãªã³ã¯ã«ããæã¯ã
+				 *  è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããæªå®ç¾©ã®å ´åã¯ç»é²ããã
+				 */
+				ln = nd6_lookup(dst, true);
+				}
+			else {
+				error = E_CLS;
+				goto err_ret;
+				}
+			}
+
+		/*
+		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
+ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãåãã£ã¦ãã¦ãã
+		 *  å°éå¯è½æ§ãç¢ºèªããã¦ããªãã¨ãã¯ãå°éä¸è½éç¥ãéå§ããã
+		 */
+		if (ln->state == ND6_LLINFO_STALE) {
+			syscall(get_tim(&now));
+			ln->expire = now + ND6_DELAY_TIME;
+			ln->asked = 0;
+			ln->state = ND6_LLINFO_DELAY;
+			}
+
+		/*
+		 *  è¿é£ã­ã£ãã·ã¥ã®ç¶æ
+ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´åã¯
+		 *  è¿é£æ¢ç´¢ãè¡ãã
+		 */
+		if (ln->state <= ND6_LLINFO_INCOMPLETE) {
+
+			/* ã¿ã¤ã ã¢ã¦ãã®æå®ããã¼ãªã³ã°ãªãã¿ã¤ã ã¢ã¦ãã§çµäºããã*/
+			if (tmout == TMO_POL) {
+				error = E_TMOUT;
+				goto err_ret;
+				}
+
+			if (ln->state == ND6_LLINFO_NO_STATE)
+				ln->state = ND6_LLINFO_INCOMPLETE;
+
+			/* ãã§ã«ãæªè§£æ±ºã®ãããã¯ã¼ã¯ãããã¡ãããã°ãéæ¾ããã*/
+			if (ln->hold != NULL) {
+				syscall(rel_net_buf(ln->hold));
+				}
+
+			/*
+			 *  éä¿¡ããã³ãã£ã³ã°ããã
+			 *  IF ã§ãããã¯ã¼ã¯ãããã¡ãéæ¾ããªããã©ã°ãè¨­å®ããã¦ããã¨ãã¯ã
+			 *  éä¿¡ããã³ãã£ã³ã°ããªãã
+			 */
+			if ((output->flags & NB_FLG_NOREL_IFOUT) == 0) {
+				ln->hold = output;
+
+				/* ã¿ã¤ã ã¢ã¦ãã®è¨­å® */
+				if (tmout == TMO_FEVR)
+					ln->tmout = tmout;
+				else {
+					syscall(get_tim(&now));
+					ln->tmout = now + tmout;
+					}
+				}
+			else {
+				output->flags &= ~NB_FLG_NOREL_IFOUT;
+				syscall(get_tim(&now));
+				ln->tmout = now + tmout;
+				}
+
+			if (ln->expire) {
+				if (ln->asked < ND6_MAX_MCAST_QUERY) {
+					syscall(get_tim(&now));
+					if ((int32_t)(ln->expire - now) < 0) {
+					           /* ln->expire < now */
+						ln->expire += ND6_RETRANS_TIME;	/* è¿é£æ¢ç´¢éä¿¡éé */
+						ln->asked ++;
+						nd6_ns_output(ifp, &in6_addr_unspecified, dst, ln, false);
+						}
+					}
+				}
+			return error;
+			}
+		}
+
+	/*
+	 *  éè¤ãæ¤åºãããã¤ã³ã¿ãã§ã¼ã¹ã«ã¯åºåããªãã
+	 */
+	if ((ifp->flags & ND6_IFF_IFDISABLED) != 0) {
+		return E_OK;
+		}
+
+	IF_SET_PROTO(output, IF_PROTO_IPV6);
+	error = IF_OUTPUT(output, dst, ln ? & ln->ifaddr : NULL, tmout);
+	return error;
+
+err_ret:
+	syscall(rel_net_buf(output));
+	return error;
+	}
+
+/*
+ *  nd6_storelladdr -- åºåãããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿ãã
+ */
+
+ER
+nd6_storelladdr (T_IF_ADDR *out, const T_IN6_ADDR *dst, T_IF_ADDR *ifa)
+{
+	if (IN6_IS_ADDR_MULTICAST(dst)) {
+		IF_IN6_RESOLVE_MULTICAST(out, dst);
+		}
+	else {
+		*out = *ifa;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  nd6_option -- è¿é£æ¢ç´¢ãªãã·ã§ã³ã®å¦ç
+ *
+ *    æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã
+ */
+
+ER
+nd6_options (uint8_t *opt, void *nh, uint_t len)
+{
+	T_ND_OPT_HDR	*opth;
+	ER		error = E_OK;
+	int_t		pi_count = 0;	/* ãã¬ãã£ãã¯ã¹æ
+å ±ã®åæ° */
+
+	opth = (T_ND_OPT_HDR *)nh;
+	memset(opt, 0, ND_OPT_OFF_ARRAY_SIZE);
+
+	while (error == E_OK && ((uint8_t *)opth - (uint8_t *)nh) < (256 - 8) && len > 0) {
+
+		/* ãªãã·ã§ã³é·ã 0 ã®æã¯ãä¸æ­£ãªãªãã·ã§ã³ã¨ãã¦å¦çããã*/
+		if (opth->len == 0) {
+			error = E_PAR;
+			break;
+			}
+
+		/* ãªãã·ã§ã³ã®ã¿ã¤ãã«ããåå²ããã*/
+		switch (opth->type) {
+		case ND_OPT_SOURCE_LINKADDR:		/* éä¿¡å
+ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+		case ND_OPT_TARGET_LINKADDR:		/* å¯¾è±¡ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹	*/
+		case ND_OPT_REDIRECTED_HEADER:		/* ãªãã¤ã¬ã¯ãã»ããã				*/
+		case ND_OPT_MTU:			/* MTU						*/
+			if (opt[ND_OPT_OFF_ARRAY_IX(opth->type)]) {
+				/* ãã¬ãã£ãã¯ã¹æ
+å ±ä»¥å¤ã®åããªãã·ã§ã³ãè¤æ°æå®ããã¦ããã*/
+				error = E_PAR;
+				}
+			else {
+				opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
+				}
+			break;
+		case ND_OPT_PREFIX_INFORMATION:		/* ãã¬ãã£ãã¯ã¹æ
+å ±				*/
+			if (!opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)]) {
+				/*
+				 *  ãã¬ãã£ãã¯ã¹æ
+å ±ã¯æåã«ç¾ãããªãã»ããã®ã¿è¨é²ããã
+				 */
+				opt[ND_OPT_OFF_ARRAY_IX(opth->type)] = (uint8_t *)opth - (uint8_t *)nh + 8;
+				}
+			pi_count ++;
+			break;
+		default:
+			/*
+			 *  å°æ¥å®ç¾©ããããã­ãã³ã«ã¸ã®æ¡å¼µã«å¯¾å¿ããããã
+			 *  èªè­ã§ããªããªãã·ã§ã³ã¯åã«ç¡è¦ããå¦çãç¶è¡ããã
+			 */
+			break;
+			}
+		len -= opth->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
+		opth = (T_ND_OPT_HDR *)((uint8_t *)opth + (opth->len << 3));
+		}
+
+	opt[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)] = pi_count;
+	return error;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6.h	(revision 313)
@@ -0,0 +1,297 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/nd6.h,v 1.10 2002/04/19 04:46:23 suz Exp $	*/
+/*	$KAME: nd6.h,v 1.76 2001/12/18 02:10:31 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+ 
+#ifndef _ND6_H_
+#define _ND6_H_
+
+/*
+ *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹æ§é ä½ï¼T_IFNETï¼ã®ãã©ã°
+ */
+
+#define ND6_IFF_IFDISABLED	UINT_C(0x01)	/* ã¤ã³ã¿ãã§ã¼ã¹ãç¡å¹ã«ããã*/
+
+/*
+ *  è¿é£ã­ã£ãã·ã¥ 
+ */
+
+typedef struct t_llinfo_nd6 {
+	T_IN6_ADDR	addr;
+	T_NET_BUF	*hold;
+	TMO		tmout;
+	SYSTIM		expire;		/* [ms] æå¹æéãåããæå»	*/
+	T_IF_ADDR	ifaddr;
+	uint8_t		state;
+	uint8_t		asked;
+	uint8_t		flags;
+	} T_LLINFO_ND6;
+
+/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
+ */
+
+#define ND6_LLINFO_FREE			0	/* æªä½¿ç¨		*/
+#define ND6_LLINFO_NO_STATE		1	/* ç¶æ
+æªå®ç¾©		*/
+#define ND6_LLINFO_INCOMPLETE		2	/* æªè§£æ±º		*/
+#define ND6_LLINFO_REACHABLE		3	/* å°éå¯è½		*/
+#define ND6_LLINFO_STALE		4	/* å°éå¯è½æ§ã¯æªç¢ºèª	*/
+#define ND6_LLINFO_DELAY		5	/* å°éå¯è½æ§ã®ç¢ºèªå¾
+æ©	*/
+#define ND6_LLINFO_PROBE		6	/* å°éå¯è½æ§ãç¢ºèªä¸­	*/
+
+#define ND6_IS_LLINFO_PROBREACH(n)	((n)->state > ND6_LLINFO_INCOMPLETE)
+
+/* è¿é£ã­ã£ãã·ã¥ã®å¶å¾¡ããã */
+
+#define ND6_LLIF_ROUTER			UINT_C(0x80)	/* ã«ã¼ã¿		*/
+#define ND6_LLIF_ASKED			UINT_C(0x40)	/* éç¥æ¸ã¿		*/
+#define ND6_LLIF_STATE_MASK		UINT_C(0x07)	/* ç¶æ
+ãã¹ã¯		*/
+
+/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæå¹æéã®å®ç¾© */
+
+#define ND6_SLOW_TMO			((60*60)/NET_TIMER_HZ)
+							/* 1 [æé]				*/
+							/* è¿é£æ¢ç´¢ã­ã£ãã·ã¥æ´æ°ã¿ã¤ã ã¢ã¦ã	*/
+
+#define ND6_MAX_DAD_TRY			15		/* éè¤ã¢ãã¬ã¹æ¤åºã®åéåæ°		*/
+#define ND6_MAX_MCAST_QUERY		3		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
+#define ND6_MAX_UCAST_QUERY		3		/* ã¦ãã­ã£ã¹ãã¢ãã¬ã¹è¦è«ã®åéåæ°	*/
+
+#define ND6_GCOLLECTION_TIME		(60*60*24*SYSTIM_HZ)
+							/* ã´ãæ¾ãå¨æã1 æ¥			*/
+#define	ND6_DELAY_TIME			(5*SYSTIM_HZ)	/* ç¢ºèªå¾
+æ©é
+å»¶				*/
+#define ND6_FIRST_DAD_DELAY_TIME	(1*SYSTIM_HZ)	/* æåã®éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
+å»¶	*/
+#define ND6_DAD_DELAY_TIME		(5*SYSTIM_HZ/10)
+							/* éè¤ã¢ãã¬ã¹æ¤åºéä¿¡é
+å»¶		*/
+
+/* è¿é£æ¢ç´¢ç¨ã¿ã¤ãã®è¨­å® */
+
+#define ND6_TIMER_TMO			((SYSTIM_HZ/NET_TIMER_CYCLE)/5)	/* 0.2[s] éé		*/
+
+/*
+ *  å°éå¯è½ç¶æ
+ã®æå¹æé
+ */
+
+#define	ND6_DEF_REACHABLE_TIME		(30*SYSTIM_HZ)	/* å°éå¯è½ç¶æ
+ã®æå¹æéã®æ¢å®å¤		*/
+#define	ND6_MAX_REACHABLE_TIME		(60*60*SYSTIM_HZ)
+							/* å°éå¯è½ç¶æ
+ã®æå¹æéã®æ¢å®å¤		*/
+#define	ND6_RECALC_REACHTM_INTERVAL	(60*60*2*SYSTIM_HZ)
+							/* å°éå¯è½ç¶æ
+ã®æå¹æéåè¨ç®éé	*/
+
+#define	ND6_MIN_REACHTM_RAND_FACTOR	512		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 0.5		*/
+
+#if 1							/* ã¿ã¤ãã¼ã®èµ·åééãèæ
+®ããè¦å®ããç­ãè¨­å®	*/
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1484		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.45			*/
+#else
+#define	ND6_MAX_REACHTM_RAND_FACTOR	1536		/* æå°ä¹±æ°è£æ­£å¤ã1,024 * 1.5			*/
+#endif
+
+/* å°éå¯è½ç¶æ
+ã®æå¹æéã®è¨ç®ãã¯ã­ */
+
+#define ND6_CALC_REACH_TIME(b)		\
+	 ((ND6_MIN_REACHTM_RAND_FACTOR * ((uint32_t)(b) >> 10)) + \
+	  (net_rand() & ((ND6_MAX_REACHTM_RAND_FACTOR - ND6_MIN_REACHTM_RAND_FACTOR) * ((uint32_t)(b) >> 10))))
+
+/*
+ *  è¿é£æ¢ç´¢ã®éä¿¡éé
+ */
+
+#define ND6_DEF_RETRANS_TIME		(1*SYSTIM_HZ)
+
+/*
+ *  ã«ã¼ã¿éç¥ã«ããå¤æ´ããããã¨ãããå¤
+ */
+
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+/* ã«ã¼ã¿éç¥ãåä¿¡ããå ´åã¯ãéç¥ãããå¤ */
+
+#define	ND6_REACHABLE_TIME		nd6_reachable_time
+#define ND6_RETRANS_TIME		nd6_retrans_time
+
+#else	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+/* ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã®å¤ã¯æ¢å®å¤ */
+
+#define	ND6_REACHABLE_TIME		ND6_DEF_REACHABLE_TIME
+#define ND6_RETRANS_TIME		ND6_DEF_RETRANS_TIME
+
+#endif	/* #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ */
+
+typedef struct t_def_router {
+	T_IN6_ADDR	addr;
+	SYSTIM		expire;		/* [ms] æå¹æéãåããæå»	*/
+	uint32_t	lifetime;	/* [ms] æå¹æé			*/
+	uint16_t	plistmap;	/* ãã¬ãã£ãã¯ã¹ããã		*/
+	uint8_t		flags;		/* ã«ã¼ã¿éç¥ã®ãã©ã°		*/
+	uint8_t		state;
+	} T_DEF_ROUTER;
+
+/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç¶æ
+ */
+
+#define ND6_DEF_RTR_BUSY		0xff	/* ä½¿ç¨ä¸­		*/
+
+/* ãã¬ãã£ãã¯ã¹ã®ã¤ã³ããã¯ã¹ */
+
+#define ND6_PREFIX_IX_INVALID		0xff
+
+/*
+ *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ */
+
+typedef struct t_nd6_prefix {
+	T_IN6_ADDR	prefix;		/* ãã¬ãã£ãã¯ã¹		*/
+	uint32_t	expire;		/* [s] æå¹æéãåããæå»	*/
+	uint32_t	preferred;	/* [s] æ¨å¥¨æå¹æéãåããæå»	*/
+	uint32_t	vltime;		/* [s] æå¹æé			*/
+	uint32_t	pltime;		/* [s] æ¨å¥¨æå¹æé		*/
+	uint16_t	routermap;	/* ã«ã¼ã¿ããã			*/
+	uint8_t		flags;		/* ãã©ã°			*/
+	uint8_t		prefix_len;	/* ãã¬ãã£ãã¯ã¹é·		*/
+	} T_ND6_PREFIX;
+
+/* ãã©ã° */
+
+#define ND6_PREFIX_FLAG_ONLINK		UINT_C(0x80)	/* ãªã³ãªã³ã¯ãã¬ãã£ãã¯ã¹	*/
+#define ND6_PREFIX_FLAG_AUTO		UINT_C(0x40)	/* ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®*/
+
+#define ND6_PREFIX_STATE_BUSY		UINT_C(0x01)	/* ä½¿ç¨ä¸­		*/
+#define ND6_PREFIX_STATE_ONLINK		UINT_C(0x02)	/* ãªã³ãªã³ã¯ç¶æ
+	*/
+#define ND6_PREFIX_STATE_DETACHED	UINT_C(0x04)	/* éä½¿ç¨ç¶æ
+	*/
+
+/*
+ *  å¤æ°
+ */
+
+extern SYSTIM	nd6_base_reachable_time;
+extern SYSTIM	nd6_reachable_time;
+extern SYSTIM	nd6_recalc_reachtm_interval;
+extern SYSTIM	nd6_retrans_time;
+
+/*
+ *  é¢æ°
+ */
+
+extern void nd6_ifattach (T_IFNET *ifp);
+extern void nd6_ns_output (T_IFNET *ifp, const T_IN6_ADDR *daddr,
+                           const T_IN6_ADDR *taddr, T_LLINFO_ND6 *ln, bool_t dad);
+extern void nd6_na_output (T_IFNET *ifp, const T_IN6_ADDR *daddr,
+                           const T_IN6_ADDR *taddr, uint32_t flags, bool_t tlladdr);
+extern void nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ia, int_t *tick);
+extern ER nd6_output (T_IFNET *ifp, T_NET_BUF *output,
+                      const T_IN6_ADDR *dst, T_LLINFO_ND6 *ln, TMO tmout);
+extern void nd6_na_input (T_NET_BUF *input, uint_t off);
+extern void nd6_ns_input (T_NET_BUF *input, uint_t off);
+extern void nd6_ra_input (T_NET_BUF *input, uint_t off);
+extern ER nd6_storelladdr (T_IF_ADDR *out, const T_IN6_ADDR *dst, T_IF_ADDR *ifa);
+extern ER nd6_options (uint8_t *opt, void *nh, uint_t len);
+extern T_LLINFO_ND6 *nd6_lookup (const T_IN6_ADDR *addr, bool_t create);
+extern ER nd6_output_hold (T_IFNET *ifp, T_LLINFO_ND6 *ln);
+extern T_LLINFO_ND6 *nd6_cache_lladdr (T_IFNET *ifp, const T_IN6_ADDR *from, 
+                                       T_IF_ADDR *lladdr, uint8_t type, uint8_t code);
+extern void nd6_defrtrlist_timer (void);
+extern void nd6_prelist_timer (void);
+extern void nd6_rtrsol_ctl (void);
+extern const T_IN6_ADDR *nd6_router_lookup (void);
+extern T_DEF_ROUTER *nd6_defrtrlist_lookup (const T_IN6_ADDR *src);
+extern void nd6_defrtrlist_del (T_DEF_ROUTER *dr);
+extern void nd6_timer (void);
+extern const T_DEF_ROUTER *nd6_get_drl (uint_t *count);
+extern const T_ND6_PREFIX *nd6_get_prl (void);
+extern const T_LLINFO_ND6 *nd6_get_cache (void);
+extern ER nd6_prefix_onlink (T_ND6_PREFIX *pr);
+extern ER nd6_prefix_offlink (T_ND6_PREFIX *pr);
+extern T_ND6_PREFIX *nd6_onlink_prefix_lookup (const T_IN6_ADDR *dst);
+
+#endif	/* of #ifndef _ND6_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_nbr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_nbr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_nbr.c	(revision 313)
@@ -0,0 +1,891 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/nd6_nbr.c,v 1.13 2002/10/16 01:54:45 sam Exp $	*/
+/*	$KAME: nd6_nbr.c,v 1.86 2002/01/21 02:33:04 jinmei Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+
+#include <netinet6/nd6.h>
+
+#include <net/if6_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  å±æé¢æ°
+ */
+
+static void nd6_dad_timer (T_IN6_IFADDR *ifa);
+static void nd6_dad_duplicated (T_IFNET *ifp, T_IN6_IFADDR *ifa);
+static void nd6_dad_ns_output (T_IFNET *ifp, T_IN6_IFADDR *ifa);
+static void nd6_dad_ns_input (T_IFNET *ifp, T_IN6_IFADDR *ifa);
+static void nd6_dad_na_input (T_IFNET *ifp, T_IN6_IFADDR *ifa);
+
+/*
+ *  nd6_dad_duplicated -- éè¤ã¢ãã¬ã¹ãæ¤åºããæã®å¦ç
+ */
+
+static void
+nd6_dad_duplicated (T_IFNET *ifp, T_IN6_IFADDR *ifa)
+{
+	if ((ifa->flags & IN6_IFF_TENTATIVE) == 0)
+		syslog(LOG_ERROR, "[ND6 DAD DUP] no pending.");
+	else {
+		syslog(LOG_ERROR, "[ND6 DAD DUP] dup IPv6 addr: %s.", ipv62str(NULL, &ifa->addr));
+		ifa->flags &= ~IN6_IFF_TENTATIVE;
+		ifa->flags |=  IN6_IFF_DUPLICATED;
+
+		/* ã¿ã¤ãã¼ãåæ­¢ããã*/
+		untimeout((callout_func)nd6_dad_timer, ifa);
+
+		/*
+		 *  ãã IPv6 ã¢ãã¬ã¹ããã¦ãã¼ã¯ã«å²ãå½ã¦ãã
+		 * ï¼ã¤ã¼ãµãããç¨ã® EUI-64ï¼ãã¼ãã¦ã§ã¢ã¢ãã¬ã¹ããã¼ã¹ã¨ãã
+		 *  ã¤ã³ã¿ãã§ã¼ã¹ ID ã§çæãããã®ã§ããã°ã
+		 *  ãã®ã¤ã³ã¿ãã§ã¼ã¹ã§ã® IPv6 ã®åä½ã¯ç¡å¹ã«ãã¹ãã§ãã
+		 * ï¼RFC2462bis-03 ã»ã¯ã·ã§ã³ 5.4.5ï¼ã
+		 */
+		if (IN6_IS_ADDR_LINKLOCAL(&ifa->addr))
+			ifp->flags |= ND6_IFF_IFDISABLED;
+		}
+	}
+
+/*
+ *  nd6_dad_ns_output -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«ãåºåããã
+ */
+
+static void
+nd6_dad_ns_output (T_IFNET *ifp, T_IN6_IFADDR *ifa)
+{
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_DAD_OUT_PACKETS], 1);
+
+	ifa->ns_ocount ++;
+	nd6_ns_output(ifp, &in6_addr_unspecified, &ifa->addr, NULL, true);
+	}
+
+/*
+ *  nd6_dad_ns_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) è¦è«å
+¥å
+ */
+
+static void
+nd6_dad_ns_input (T_IFNET *ifp, T_IN6_IFADDR *ifa)
+{
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NS_IN_PACKETS], 1);
+
+	/*
+	 *  ã¾ã ãéè¤ã¢ãã¬ã¹æ¤åºè¦è«ãåºåãã¦ããªãå ´å
+	 */
+	if (ifa->ns_ocount == 0)
+		nd6_dad_duplicated(ifp, ifa);
+	else
+		ifa->ns_icount ++;
+	}
+
+/*
+ *  nd6_dad_na_input -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) éç¥å
+¥å
+ */
+
+static void
+nd6_dad_na_input (T_IFNET *ifp, T_IN6_IFADDR *ifa)
+{
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NA_IN_PACKETS], 1);
+	ifa->na_icount ++;
+	nd6_dad_duplicated(ifp, ifa);
+	}
+
+/*
+ *  nd6_dad_timer -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ã¿ã¤ãã¼
+ */
+
+static void
+nd6_dad_timer (T_IN6_IFADDR *ifa)
+{
+	T_IFNET *ifp = IF_GET_IFNET();
+
+	if (ifa->flags & IN6_IFF_DUPLICATED) {
+		syslog(LOG_ERROR, "[ND6 DAD] dup IPv6 addr: %s.", ipv62str(NULL, &ifa->addr));
+		return;
+		}
+
+	if ((ifa->flags & IN6_IFF_TENTATIVE) == 0) {
+		syslog(LOG_ERROR, "[ND6 DAD] no tentative IPv6 addr: %s.", ipv62str(NULL, &ifa->addr));
+		return;
+		}
+
+	if (ifa->ns_ocount < NUM_IP6_DAD_COUNT) {
+		nd6_dad_ns_output(ifp, ifa);
+
+		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
+		}
+	else if (ifa->na_icount || ifa->ns_icount)
+		nd6_dad_duplicated(ifp, ifa);
+	else {
+		ifa->flags &= ~IN6_IFF_TENTATIVE;
+		syslog(LOG_NOTICE, "[ND6 DAD] no dup IPv6 addr: %s.", ipv62str(NULL, &ifa->addr));
+		}
+	}
+
+/*
+ *  nd6_ns_input -- è¿é£è¦è«ã®å
+¥åå¦çã
+ */
+
+void
+nd6_ns_input (T_NET_BUF *input, uint_t off)
+{
+	T_IFNET			*ifp = IF_GET_IFNET();
+	T_IP6_HDR		*ip6h;
+	T_NEIGHBOR_SOLICIT_HDR	*nsh;
+	T_ND_OPT_HDR		*opth;
+	T_IN6_IFADDR		*ifa;
+	bool_t			tlladdr;
+	uint_t			lladdr_len = 0;
+	uint32_t		flags;
+	uint8_t			*lladdr = NULL;
+	uint8_t			nd_opt_off[ND_OPT_OFF_ARRAY_SIZE];
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NS_IN_PACKETS], 1);
+
+	ip6h = GET_IP6_HDR(input);
+
+	/*
+	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
+	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 *    ã»ãããé·ãç­ã
+	 */
+	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_SOLICIT_HDR_SIZE)
+		goto err_ret;
+
+	nsh  = (T_NEIGHBOR_SOLICIT_HDR *)(input->buf + off);
+
+	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
+		/*
+		 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéè¤ã¢ãã¬ã¹æ¤åº
+		 *  ãã¦å
+ã¢ãã¬ã¹ã¯ãè¦è«ãã«ãã­ã£ã¹ãã§ãªããã°ãªããªãã
+		 */
+		if (!IN6_IS_ADDR_NS_MULTICAST(&ip6h->dst))
+			goto err_ret;
+		}
+
+	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	if (IN6_IS_ADDR_MULTICAST(&nsh->target))
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_SOLICIT_HDR_SIZE),
+	                            input->len - (off + NEIGHBOR_SOLICIT_HDR_SIZE)) != E_OK)
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (å§ç¹ãªã³ã¯ã¢ãã¬ã¹) */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
+		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_SOLICIT_HDR_SIZE) +
+		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
+	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+		lladdr     = (uint8_t *)(opth + 1);
+		lladdr_len = (opth->len << 3);
+		}
+
+	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src) && lladdr != NULL)
+		goto err_ret;
+
+	/* å®å
+ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãè¿é£éç¥ã«ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãä»ããã*/
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst))
+		tlladdr = true;
+	else
+		tlladdr = false;
+
+	/*
+	 *  ç®çã¢ãã¬ã¹ããèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«
+	 *  å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ãèª¿ã¹ãã
+	 *  ãªããä»£çãµã¼ãã¹ã¯å®è£
+ãã¦ããªãã
+	 */
+	ifa = in6_lookup_ifaddr(ifp, &nsh->target);
+
+	if (ifa == NULL)
+		goto free_ret;
+
+	/* æ¢ç´¢çµæã¢ãã¬ã¹ãéè¤ãã¦ããã°å¿ç­ããªãã§çµäºããã*/
+	if (ifa->flags & IN6_IFF_DUPLICATED)
+		goto err_ret;
+
+	/*
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 */
+	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
+		goto err_ret;
+
+	/*
+	 *  å§ç¹ã¢ãã¬ã¹ãèªåã®ã¢ãã¬ã¹ã¨ä¸è´ããã°éè¤ãã¦ããã
+	 */
+	if (IN6_ARE_ADDR_EQUAL(&ifa->addr, &ip6h->src))
+		goto free_ret;
+
+	/* éè¤æ¤åºä¸­ã«ãè¿é£è¦è«ãåä¿¡ããã¨ãã®å¦ç */
+	if (ifa->flags & IN6_IFF_TENTATIVE) {
+		if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src))
+			nd6_dad_ns_input(ifp, ifa);
+		goto free_ret;
+		}
+
+	if ((ifa->flags & IN6_IFF_ANYCAST) || !tlladdr)
+		flags = 0;
+	else
+		flags = ND_NA_FLG_OVERRIDE;
+
+	/*
+	 *  å§ç¹ã¢ãã¬ã¹ãç¡æå®ãªããéä¿¡ç¸æã¯éè¤ã¢ãã¬ã¹æ¤åºä¸­ã§ã
+	 *  ç´æ¥éä¿¡ãããã¨ã¯ã§ããªãã®ã§ãå
+¨ãã¼ããã«ãã­ã£ã¹ã
+	 *  ã¢ãã¬ã¹ã«éä¿¡ããã
+	 */
+	if (IN6_IS_ADDR_UNSPECIFIED(&ip6h->src)) {
+		nd6_na_output(ifp, &in6_addr_linklocal_allnodes, &nsh->target, flags, tlladdr);
+		goto free_ret;
+		}
+
+	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_NEIGHBOR_SOLICIT, 0);
+
+	nd6_na_output(ifp, &ip6h->src, &nsh->target, flags | ND_NA_FLG_SOLICITED, tlladdr);
+
+free_ret:
+	syscall(rel_net_buf(input));
+	return;
+
+err_ret:
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  nd6_ns_output -- è¿é£è¦è«ãåºåããã
+ */
+
+void
+nd6_ns_output (T_IFNET *ifp, const T_IN6_ADDR *daddr,
+               const T_IN6_ADDR *taddr, T_LLINFO_ND6 *ln, bool_t dad)
+{
+	T_NEIGHBOR_SOLICIT_HDR	*nsh;
+	T_NET_BUF		*output;
+	T_IP6_HDR		*ip6h;
+	T_IF_ADDR		*mac = NULL;
+	uint_t			len;
+	uint16_t		ipflags = 0;
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NS_OUT_PACKETS], 1);
+
+	if (IN6_IS_ADDR_MULTICAST(taddr))
+		return;
+
+	/* è¿é£è¦è«ãã¤ã­ã¼ãé·ãè¨ç®ããã*/
+	if (!dad && IF_SOFTC_TO_IFADDR(ifp->ic))
+		len = (NEIGHBOR_SOLICIT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
+	else
+		len = (NEIGHBOR_SOLICIT_HDR_SIZE + 7) >> 3 << 3;
+
+	/*
+	 *  è¦è«ãã«ãã­ã£ã¹ãã»ã¢ãã¬ã¹å®ã®è¿é£æ¢ç´¢ã§ã¯ã
+	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
+	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 */
+	if (IN6_IS_ADDR_UNSPECIFIED(daddr) || IN6_IS_ADDR_MULTICAST(daddr))
+		ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	if (in6_get_datagram(&output, len, 0, daddr, NULL,
+	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
+	                     NBA_SEARCH_ASCENT, TMO_ND6_NS_OUTPUT) != E_OK)
+		return;
+
+	ip6h = GET_IP6_HDR(output);
+
+	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
+
+		/* å®å
+ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ãè¦è«ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã*/
+		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
+		ip6h->dst.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
+		ip6h->dst.s6_addr32[3] = taddr->s6_addr32[3];
+		ip6h->dst.s6_addr8[12] = 0xff;
+		}
+
+	/* éä¿¡å
+ã¢ãã¬ã¹ã®è¨­å® */
+	if (!dad) {
+
+		/* éè¤ã¢ãã¬ã¹æ¤åºã§ã¯ãªãæã®éä¿¡å
+ã¢ãã¬ã¹æ±ºå®å¦çã*/
+		T_IN6_ADDR *saddr;
+
+		if (ln && ln->hold) {
+			/*
+			 * éä¿¡ããã³ãã£ã³ã°ããã¦ãããã¼ã¿ã°ã©ã ã®
+			 * éä¿¡å
+ã¢ãã¬ã¹ãå©ç¨ããã
+			 */
+			if (ln->hold->len > IF_IP6_HDR_SIZE)
+				saddr = &GET_IP6_HDR(ln->hold)->src;
+			else
+				saddr = NULL;
+			}
+		else
+			saddr = NULL;
+
+		if (saddr && in6_lookup_ifaddr(ifp, saddr))
+			ip6h->src = *saddr;
+		else {
+			/*
+			 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+			 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+			 */
+			T_IN6_IFADDR *ifa;
+
+			if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
+				syscall(rel_net_buf(output));
+				return;
+				}
+			ip6h->src = ifa->addr;
+			}
+		}
+	else {
+
+		/* éè¤ã¢ãã¬ã¹æ¤åºæã®éä¿¡å
+ã¢ãã¬ã¹ã¯ç¡æå®ã*/
+		memset(&ip6h->src, 0, sizeof(T_IN6_ADDR));
+		}
+
+ 	/* è¿é£è¦è«ããããè¨­å®ããã*/
+ 	nsh = GET_NEIGHBOR_SOLICIT_HDR(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET);
+ 	nsh->hdr.type        = ND_NEIGHBOR_SOLICIT;
+ 	nsh->hdr.code        = 0;
+ 	nsh->hdr.data.data32 = 0;
+ 	nsh->target          = *taddr;
+
+	if (!dad && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
+
+		/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã¨ãã¦ãæ¢ç´¢ç®æ¨ã® MAC ã¢ãã¬ã¹ãè¨­å®ããã*/
+		T_ND_OPT_HDR	*opth;
+		uint_t		optlen;
+
+		opth   = (T_ND_OPT_HDR *)GET_NEIGHBOR_SOLICIT_SDU(output, IF_IP6_NEIGHBOR_SOLICIT_HDR_OFFSET);
+		optlen = (ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
+		memset(opth, 0, optlen);
+		opth->type = ND_OPT_SOURCE_LINKADDR;
+		opth->len  = optlen >> 3;
+		memcpy((uint8_t *)opth + sizeof(T_ND_OPT_HDR), mac, sizeof(T_IF_ADDR));
+		}
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	nsh->hdr.sum = 0;
+	nsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nsh - output->buf, len);
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
+	               output->len - GET_IF_IP6_HDR_SIZE(output));
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutNeighborSolicits, 1);
+	ip6_output(output, ipflags | IPV6_OUT_FLG_DAD, TMO_ND6_NS_OUTPUT);
+	}
+
+/*
+ *  nd6_na_input -- è¿é£éç¥ã®å
+¥åå¦çã
+ */
+
+void
+nd6_na_input (T_NET_BUF *input, uint_t off)
+{
+	T_IFNET			*ifp = IF_GET_IFNET();
+	T_IP6_HDR		*ip6h;
+	T_NEIGHBOR_ADVERT_HDR	*nah;
+	T_ND_OPT_HDR		*opth;
+	T_IN6_IFADDR		*ifa;
+	T_LLINFO_ND6		*ln;
+	SYSTIM			now;
+	bool_t			llchange;
+	uint_t			lladdr_len = 0;
+	uint8_t			*lladdr = NULL;
+	uint8_t			nd_opt_off[ND_OPT_OFF_ARRAY_SIZE];
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NS_IN_PACKETS], 1);
+
+	ip6h = GET_IP6_HDR(input);
+
+	/*
+	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
+	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 *    ã»ãããé·ãç­ã
+	 */
+	if (ip6h->hlim != IPV6_MAXHLIM || input->len - off < NEIGHBOR_ADVERT_HDR_SIZE)
+		goto err_ret;
+
+	nah  = (T_NEIGHBOR_ADVERT_HDR *)(input->buf + off);
+
+	/* ç®çã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	if (IN6_IS_ADDR_MULTICAST(&nah->target))
+		goto err_ret;
+
+	/* è¿é£è¦è«ã¸ã®å¿ç­ã§ãå®å
+ã¢ãã¬ã¹ããã«ãã­ã£ã¹ããªãã¨ã©ã¼ */
+	if ((nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) &&
+	    IN6_IS_ADDR_MULTICAST(&ip6h->dst))
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	if (nd6_options(nd_opt_off, input->buf + (off + NEIGHBOR_ADVERT_HDR_SIZE), 
+	                            input->len - (off + NEIGHBOR_ADVERT_HDR_SIZE)) != E_OK)
+		goto err_ret;
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ (ç®çãªã³ã¯ã¢ãã¬ã¹) */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)]) {
+		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + NEIGHBOR_ADVERT_HDR_SIZE) +
+		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_TARGET_LINKADDR)] - 8);
+	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+		lladdr     = (uint8_t *)(opth + 1);
+		lladdr_len = (opth->len << 3);
+		}
+
+	ifa = in6_lookup_ifaddr(ifp, &nah->target);
+
+	/*
+	 *  ç®çã¢ãã¬ã¹ãèªåã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã«å²ãå½ã¦ããã¦ããã¢ãã¬ã¹ã®
+	 *  ããããã«ä¸è´ããã¨ãã¯ãéè¤ãã¦ãããã¨ãæå³ãã¦ããã
+	 */
+	if (ifa) {
+		if (ifa->flags & IN6_IFF_TENTATIVE)
+			nd6_dad_na_input(ifp, ifa);
+		else
+			syslog(LOG_ERROR, "[ND6 NA INPUT] dup IPv6 addr: %s.", ipv62str(NULL, &ifa->addr));
+		goto err_ret;
+		}
+
+	/*
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 */
+	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
+		goto err_ret;
+
+	/* è¿é£ã­ã£ãã·ã¥ãæ¢ç´¢ããã*/
+	syscall(wai_sem(SEM_ND6_CACHE));
+	if ((ln = nd6_lookup(&nah->target, false)) == NULL)
+		goto free_ret;
+
+	/* è¿é£ã­ã£ãã·ã¥ã®ç¶æ
+ãããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹æªè§£æ±ºã®å ´å */
+	if (ln->state == ND6_LLINFO_INCOMPLETE) {
+		/* éç¥ããããã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ã®é·ãã 0 ã®å ´å */
+		if (lladdr == NULL)
+			goto free_ret;
+
+		ln->ifaddr = *(T_IF_ADDR *)lladdr;
+		if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) {
+			ln->state = ND6_LLINFO_REACHABLE;
+			/*ln->byhint = 0*/;
+			if (ln->expire) {
+				syscall(get_tim(&now));
+				ln->expire = now + ND6_REACHABLE_TIME;
+				}
+			}
+		else {
+			syscall(get_tim(&now));
+			ln->expire = now + ND6_GCOLLECTION_TIME;
+			ln->state  = ND6_LLINFO_STALE;
+			}
+
+		if ((nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) != 0)
+			ln->flags |=  ND6_LLIF_ROUTER;
+		else
+			ln->flags &= ~ND6_LLIF_ROUTER;
+		if ((ln->flags & ND6_LLIF_ROUTER) != 0)
+			/*pfxlist_onlink_check()*/;
+		}
+	else {
+		if (lladdr == NULL)
+			llchange = false;
+		else if (memcmp(lladdr, &ln->ifaddr, sizeof(T_IF_ADDR)))
+			llchange = true;
+		else
+			llchange = false;
+
+		/*
+		 *  ç¶æ
+é·ç§»è¡¨
+		 *
+		 *  nd_na_flags_reserved
+		 *  OVERRIDE    SOLICTED lladdr llchange å¦ç (L: lladdr ãç»é²ãã)
+		 *
+		 *      F           F       N      -    (2c)
+		 *      F           F       Y      F    (2b) L
+		 *      F           F       Y      T    (1)    REACHABLE -> STALE
+		 *      F           T       N      -    (2c)           * -> REACHABLE
+		 *      F           T       Y      F    (2b) L         * -> REACHABLE
+		 *      F           T       Y      T    (1)    REACHABLE -> STALE
+		 *      T           F       N      -    (2a)
+		 *      T           F       Y      F    (2a) L
+		 *      T           F       Y      T    (2a) L         *-> STALE
+		 *      T           T       N      -    (2a)           * -> REACHABLE
+		 *      T           T       Y      F    (2a) L         * -> REACHABLE
+		 *      T           T       Y      T    (2a) L         * -> REACHABLE
+		 */
+		if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && llchange)) {	/* (1) */
+			/* ç¶æ
+ã REACHABLE ãªã STALE ã«é·ç§»ããã*/
+			if (ln->state == ND6_LLINFO_REACHABLE) {
+				syscall(get_tim(&now));
+				ln->expire = now + ND6_GCOLLECTION_TIME;
+				ln->state  = ND6_LLINFO_STALE;
+				}
+			goto free_ret;
+			}
+		else if ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) ||						/* (2a) */
+		         ((nah->nd_na_flags_reserved & ND_NA_FLG_OVERRIDE) == 0 && (lladdr != NULL && !llchange)) ||	/* (2b) */
+		         lladdr == NULL) {										/* (2c) */
+
+			/* ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã¦ããã°æ´æ°ããã*/
+			if (lladdr != NULL)
+				ln->ifaddr = *(T_IF_ADDR *)lladdr;
+
+			/* è¿é£è¦è«ã¸ã®å¿ç­ãªã REACHABLE ã«é·ç§»ããã*/
+			if (nah->nd_na_flags_reserved & ND_NA_FLG_SOLICITED) {
+				ln->state = ND6_LLINFO_REACHABLE;
+				/*ln->byhint = 0*/;
+				if (ln->expire) {
+					syscall(get_tim(&now));
+					ln->expire = now + ND6_REACHABLE_TIME;
+					}
+				}
+			/*
+			 *  ãã¼ã¿ãªã³ã¯å±¤ã®ã¢ãã¬ã¹ãéç¥ããã
+			 *  ç°ãªãã¢ãã¬ã¹ãªãæ´æ°ããã
+			 */
+			else if (lladdr != NULL && llchange) {
+				syscall(get_tim(&now));
+				ln->expire = now + ND6_GCOLLECTION_TIME;
+				ln->state  = ND6_LLINFO_STALE;
+				}
+			}
+
+		/* ã«ã¼ã¿éç¥ãã©ã°ã®å¦ç */
+		if ((ln->flags        & ND6_LLIF_ROUTER ) != 0 &&
+		    (nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) == 0) {
+			/*
+			 *  éä¿¡ç¸æãã«ã¼ã¿éç¥ãã©ã°ãç¡å¹ã«ããå ´åã
+			 *  ãã£ãã©ã«ãã»ã«ã¼ã¿ãªã¹ãããå¯¾è±¡ã®ã«ã¼ã¿ãåé¤ãã
+			 *  è¿é£æ¢ç´¢ã­ã£ãã·ã¥ãæ´æ°ããã
+			 */
+			T_DEF_ROUTER	*dr = NULL;
+
+			syscall(wai_sem(SEM_ND6_DEFRTRLIST));
+			if ((dr = nd6_defrtrlist_lookup(&ln->addr)) != NULL) {
+				nd6_defrtrlist_del(dr);
+				}
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			}
+		if ((nah->nd_na_flags_reserved & ND_NA_FLG_ROUTER) != 0)
+			ln->flags |=  ND6_LLIF_ROUTER;
+		else
+			ln->flags &= ~ND6_LLIF_ROUTER;
+		}
+
+	ln->asked = 0;
+
+	/* ã¢ãã¬ã¹è§£æ±ºå¾
+ã¡ã®ãã¼ã¿ã°ã©ã ãããã°éä¿¡ããã*/
+	nd6_output_hold(ifp, ln);
+
+free_ret:
+	syscall(sig_sem(SEM_ND6_CACHE));
+	syscall(rel_net_buf(input));
+	return;
+
+err_ret:
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+	}
+
+/*
+ *  nd6_na_output -- è¿é£éç¥ãåºåããã
+ */
+
+void
+nd6_na_output (T_IFNET *ifp, const T_IN6_ADDR *daddr,
+               const T_IN6_ADDR *taddr, uint32_t flags, bool_t tlladdr)
+{
+	T_NEIGHBOR_ADVERT_HDR	*nah;
+	T_NET_BUF		*output;
+	T_IP6_HDR		*ip6h;
+	T_IN6_IFADDR		*ifa;
+	T_IF_ADDR		*mac = NULL;
+	uint_t			len;
+	uint16_t		ipflags = 0;
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_NA_OUT_PACKETS], 1);
+
+	/*
+	 *  è¿é£éç¥ãã¤ã­ã¼ãé·ãè¨ç®ããã
+	 *  tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã
+	 */
+	if (tlladdr && IF_SOFTC_TO_IFADDR(ifp->ic))
+		len = (NEIGHBOR_ADVERT_HDR_SIZE + ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
+	else
+		len = (NEIGHBOR_ADVERT_HDR_SIZE + 7) >> 3 << 3;
+
+	/*
+	 *  ä»ã®ãªã³ã¯ããã®å½é ããããã¼ã¿ã°ã©ã ã
+	 *  æé¤ãããããããããªãããã« IPV6_MAXHLIM (255) ãè¨­å®ããã
+	 */
+	ipflags = IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM);
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	if (in6_get_datagram(&output, len, 0, daddr, NULL,
+	                     IPPROTO_ICMPV6, IPV6_MAXHLIM,
+	                     NBA_SEARCH_ASCENT, TMO_ND6_NA_OUTPUT) != E_OK)
+		return;
+
+	ip6h = GET_IP6_HDR(output);
+
+	if (IN6_IS_ADDR_UNSPECIFIED(daddr)) {
+		/*
+		 *  å®å
+ã¢ãã¬ã¹ãç¡æå®ã®å ´åã¯ã
+		 *  ãªã³ã¯ã­ã¼ã«ã«å
+¨ãã¼ãã»ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ãè¨­å®ããã
+		 */
+		ip6h->dst.s6_addr32[0] = IPV6_ADDR_INT32_MLL;
+		ip6h->dst.s6_addr32[1] = 0;
+		ip6h->dst.s6_addr32[2] = 0;
+		ip6h->dst.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
+		flags &= ~ND_NA_FLG_SOLICITED;
+		}
+	else
+		ip6h->dst = *daddr;
+
+	/*
+	 *  å®å
+ã¢ãã¬ã¹ã«ãµããããéä¿¡å
+ã¢ãã¬ã¹ãã
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ããæ¢ç´¢ãã¦å©ç¨ããã
+	 */
+	if ((ifa = in6_ifawithifp(ifp, &ip6h->dst)) == NULL) {
+		syscall(rel_net_buf(output));
+		return;
+		}
+	ip6h->src = ifa->addr;
+
+ 	/* è¿é£éç¥ããããè¨­å®ããã*/
+ 	nah = GET_NEIGHBOR_ADVERT_HDR(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET);
+ 	nah->hdr.type        = ND_NEIGHBOR_ADVERT;
+ 	nah->hdr.code        = 0;
+ 	nah->target          = *taddr;
+
+	/* tlladdr ãçãªããããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹ãè¿½å ããã*/
+	if (tlladdr && (mac = IF_SOFTC_TO_IFADDR(ifp->ic)) != NULL) {
+
+		T_ND_OPT_HDR	*opth;
+		uint_t		optlen;
+
+		opth   = (T_ND_OPT_HDR *)GET_NEIGHBOR_ADVERT_SDU(output, IF_IP6_NEIGHBOR_ADVERT_HDR_OFFSET);
+		optlen = (ND_OPT_HDR_SIZE + sizeof(T_IF_ADDR) + 7) >> 3 << 3;
+		memset(opth, 0, optlen);
+		opth->type = ND_OPT_TARGET_LINKADDR;
+		opth->len  = optlen >> 3;
+		memcpy((uint8_t *)opth + sizeof(T_ND_OPT_HDR), mac, sizeof(T_IF_ADDR));
+		}
+	else
+		flags &= ~ND_NA_FLG_OVERRIDE;
+
+	nah->nd_na_flags_reserved = flags;
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	nah->hdr.sum = 0;
+	nah->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)nah - output->buf, len);
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
+	               output->len - GET_IF_IP6_HDR_SIZE(output));
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutNeighborAdvertisements, 1);
+	ip6_output(output, ipflags, TMO_ND6_NS_OUTPUT);
+	}
+
+/*
+ *  nd6_dad_start -- éè¤ã¢ãã¬ã¹æ¤åº (DAD) ãéå§ããã
+ *
+ *    ç¬¬3å¼æ°ã®tick ã¯ãã¤ã³ã¿ãã§ã¼ã¹ãèµ·åããã¦ãããéè¤æ¤åºã
+ *    éä¿¡ããã¾ã§ã®æå°é
+å»¶å¤ã§ããã
+ */
+
+void
+nd6_dad_start (T_IFNET *ifp, T_IN6_IFADDR *ifa, int_t *tick)
+{
+	/* ãã©ã°ããã§ãã¯ããã*/
+	if (!(ifa->flags & IN6_IFF_TENTATIVE))
+		return;
+
+#if NUM_IP6_DAD_COUNT == 0
+
+	ifa->flags &= ~IN6_IFF_TENTATIVE;
+
+#else	/* of #if NUM_IP6_DAD_COUNT == 0 */
+
+	if (ifa->flags & IN6_IFF_ANYCAST) {
+		ifa->flags &= ~IN6_IFF_TENTATIVE;
+		return;
+		}
+	else if ((ifa->flags & IN6_IFF_TENTATIVE) == 0)
+		return;
+
+	/* éè¤ã¢ãã¬ã¹æ¤åºã«ã¦ã³ã¿ããªã»ããããã*/
+	ifa->ns_icount = ifa->na_icount = ifa->ns_ocount = 0;
+
+	/*
+	 *  éè¤ã¢ãã¬ã¹æ¤åºè¦è«ãéä¿¡ããããã ããã¤ã³ã¿ãã§ã¼ã¹ã
+	 *  åæåããç´å¾ã«ãæåã«éä¿¡ããå ´åã¯ãã©ã³ãã ãªé
+å»¶ãè¡ãã
+	 */
+	if (tick == NULL) {
+		nd6_dad_ns_output(ifp, ifa);
+
+		/* ã¿ã¤ã ã¢ã¦ããè¿é£æ¢ç´¢ã®éä¿¡ééã«è¨­å®ããã*/
+		timeout((callout_func)nd6_dad_timer, ifa, ND6_RETRANS_TIME * NET_TIMER_HZ / SYSTIM_HZ);
+		}
+	else {
+		int_t ntick;
+
+		if (*tick == 0)	/* æåã®éä¿¡ */
+			ntick = net_rand() % (ND6_FIRST_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ);
+		else
+			ntick = *tick + net_rand() % (ND6_DAD_DELAY_TIME * NET_TIMER_HZ / SYSTIM_HZ);
+		*tick = ntick;
+		timeout((callout_func)nd6_dad_timer, ifa, ntick);
+		}
+
+#endif	/* of #if NUM_IP6_DAD_COUNT == 0 */
+
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_rtr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_rtr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/nd6_rtr.c	(revision 313)
@@ -0,0 +1,1490 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/nd6_rtr.c,v 1.11 2002/04/19 04:46:23 suz Exp $	*/
+/*	$KAME: nd6_rtr.c,v 1.111 2001/04/27 01:37:15 jinmei Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+#include <t_syslog.h>
+#include "kernel_cfg.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+#include "kernel_id.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_var.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+
+#include <netinet6/nd6.h>
+#include <netinet6/in6_ifattach.h>
+
+#include <net/if_var.h>
+
+/*
+ *  å¤é¨é¢æ°ã®å®ç¾©
+ */
+
+extern const char *itron_strerror (ER ercd);
+
+#ifdef _IP6_CFG
+
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+/*
+ *  å
+¨åå¤æ°
+ */
+
+SYSTIM	nd6_base_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤		*/
+SYSTIM	nd6_reachable_time		= ND6_DEF_REACHABLE_TIME;	/* ã«ã¼ã¿ããéç¥ãããå¤ã®è£æ­£å¤	*/
+SYSTIM	nd6_recalc_reachtm_interval	= ND6_RECALC_REACHTM_INTERVAL;	/* å°éå¯è½ç¶æ
+ã®æå¹æéåè¨ç®éé	*/
+SYSTIM	nd6_retrans_time		= ND6_DEF_RETRANS_TIME;		/* è¿é£æ¢ç´¢ã®éä¿¡éé			*/
+uint8_t	ip6_defhlim			= IPV6_DEFHLIM;			/* ããããªãããã®è¦å®å¤		*/
+
+/*
+ *  å±æå¤æ°
+ */
+
+/*
+ *  ãã¬ãã£ãã¯ã¹ã»ãªã¹ã
+ */
+
+static T_ND6_PREFIX nd6_prefix[NUM_ND6_PREFIX_ENTRY];
+
+/*
+ *  ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ã
+ */
+
+static T_DEF_ROUTER	nd6_def_router[NUM_ND6_DEF_RTR_ENTRY];
+static uint_t		def_router_count = 0;				/* ãªã¹ãã«ããã«ã¼ã¿æ° */
+
+/*
+ *  make_mask -- ãããç¨ã®ãã¹ã¯ãçæããã
+ */
+
+static uint_t
+make_mask (int_t index)
+{
+	uint_t	mask;
+	int_t	ix;
+
+	/* ãã¹ã¯ãçæããã*/
+	mask = 1;
+	for (ix = index; ix -- > 0; )
+		mask <<= 1;
+
+	return mask;
+	}
+
+/*
+ *  find_pfxlist_reachable_router --
+ *      æå®ãããã¬ãã£ãã¯ã¹ãéç¥ããã«ã¼ã¿ããªã³ã¯ä¸ã«å­å¨ããããã§ãã¯ããã
+ */
+
+static T_DEF_ROUTER *
+find_pfxlist_reachable_router (T_ND6_PREFIX *pr)
+{
+	T_DEF_ROUTER	*dr = NULL;
+	T_LLINFO_ND6	*ln;
+	uint_t		mask;
+	int_t		ix;
+
+	mask = 1;
+	for (ix = 0; ix < def_router_count; ix ++) {
+		if ((pr->routermap & mask) != 0) {
+			if ((ln = nd6_lookup(&nd6_def_router[ix].addr, false)) != NULL &&
+			    ND6_IS_LLINFO_PROBREACH(ln))
+				return dr;
+			}
+		mask <<= 1;
+		}
+	return NULL;
+	}
+
+/*
+ *  pfxlist_onlink_check -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ãªã³ãªã³ã¯ç¶æ
+ããã§ãã¯ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static void
+pfxlist_onlink_check (void)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_ND6_PREFIX	*pr = NULL;
+	T_IN6_IFADDR	*ia;
+	ER		error;
+	int_t		ix;
+
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) != 0 &&
+		    find_pfxlist_reachable_router(pr))
+			break;
+		}
+
+	if (ix >= 0) {
+		/*
+		 *  ãªã³ãªã³ã¯ç¶æ
+ã®ãã¬ãã£ãã¯ã¹ãæä½ä¸ã¤å­å¨ããã¨ãã®å¦çã
+		 *  åãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
+ããããããéç¥ãã¦ããã«ã¼ã¿ã®
+		 *  ç¶æ
+ã«å¾ã£ã¦è¨­å®ããã
+		 */
+
+		
+		for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+			pr = &nd6_prefix[ix];
+
+			if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0)
+				continue;
+
+			if ((pr->flags & ND6_PREFIX_STATE_DETACHED) == 0 &&
+			    find_pfxlist_reachable_router(pr) == NULL)
+				pr->flags |= ND6_PREFIX_STATE_DETACHED;
+
+			if ((pr->flags & ND6_PREFIX_STATE_DETACHED) != 0 &&
+			    find_pfxlist_reachable_router(pr) != NULL)
+				pr->flags &= ~ND6_PREFIX_STATE_DETACHED;
+			}
+		}
+	else {
+		/*
+		 *  ã©ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã§ã¯ãªãã
+		 *  ãã£ãã©ã«ãã«ã¼ã¿ãå­å¨ããªãã¨ãã®å¦çã
+		 *  ãã¹ã¦ã®ãã¬ãã£ãã¯ã¹ãä½¿ç¨å¯è½ç¶æ
+ã«è¨­å®ããã
+		 */
+
+		
+		for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+			pr = &nd6_prefix[ix];
+
+			if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0)
+				continue;
+
+			if ((pr->flags & ND6_PREFIX_STATE_DETACHED) != 0)
+				pr->flags &= ~ND6_PREFIX_STATE_DETACHED;
+			}
+		}
+
+	/*
+	 *  åãã¬ãã£ãã¯ã¹æ¯ã«ãéç¥ãã¦ããã«ã¼ã¿ã®ç¶æ
+ã¨
+	 *  ãªã³ãªã³ã¯ã®ç¶æ
+ãä¸è´ããªããã°ããªã³ãªã³ã¯ç¶æ
+ãæ´æ°ããã
+	 */
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+
+		if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0)
+			continue;
+
+		if ((pr->flags & ND6_PREFIX_STATE_DETACHED) != 0 &&
+		    (pr->flags & ND6_PREFIX_STATE_ONLINK  ) != 0) {
+			if ((error = nd6_prefix_offlink(pr)) != E_OK)
+				syslog(LOG_ERROR, "[ND6 RTR] prefix offlink failed: %s", itron_strerror(error));
+			}
+
+		if ((pr->flags & ND6_PREFIX_STATE_DETACHED) == 0 &&
+		    (pr->flags & ND6_PREFIX_STATE_ONLINK  ) == 0 &&
+		    (pr->flags & ND6_PREFIX_FLAG_ONLINK   ) == 0) {
+			if ((error = nd6_prefix_onlink(pr)) != E_OK)
+				syslog(LOG_ERROR, "[ND6 RTR] prefix onlink failed: %s", itron_strerror(error));
+			}
+		}
+
+	/*
+	 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
+	 *  å°ãªãã¨ã 1 å°å­å¨ãããç¢ºèªããã
+	 */
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0 &&
+		     ia->prefix_index != ND6_PREFIX_IX_INVALID) {
+			pr = &nd6_prefix[ia->prefix_index];
+			if (find_pfxlist_reachable_router(pr) != NULL)
+				break;
+			}
+		}
+
+	if (ix >= 0) {
+		/*
+		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
+		 *  å°ãªãã¨ã 1 å°å­å¨ããæã®å¦çã
+		 */
+		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+			ia = &ifp->in6_ifaddrs[ix];
+			if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0 &&
+			     ia->prefix_index != ND6_PREFIX_IX_INVALID) {
+				pr = &nd6_prefix[ia->prefix_index];
+				if (find_pfxlist_reachable_router(pr) != NULL)
+					ia->flags &= ~IN6_IFF_DETACHED;
+				else
+					ia->flags |= IN6_IFF_DETACHED;
+				}
+			}
+		}
+	else {
+		/*
+		 *  ãªã³ã¯ä¸ã«ãã¬ãã£ãã¯ã¹ãéç¥ãã¦ããã«ã¼ã¿ã
+		 *  1 å°å­å¨ããªãæã¯å
+¨ã¦ã®ã¢ãã¬ã¹ãå©ç¨ã§ããããã«ããã
+		 */
+		for (ix = NUM_IN6_IFADDR_ENTRY; ix -- > 0; ) {
+			ia = &ifp->in6_ifaddrs[ix];
+			if ((ia->flags & (IN6_IFF_DEFINED | IN6_IFF_AUTOCONF)) != 0)
+				ia->flags &= ~IN6_IFF_DETACHED;
+			}
+		}
+	}
+
+/*
+ *  pfxrtr_add -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static void
+pfxrtr_add (int_t prefix_index, int_t rtr_index)
+{
+	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªããªã³ã¯ããã*/
+	nd6_prefix[prefix_index].routermap |= make_mask(rtr_index);
+	nd6_def_router[rtr_index].plistmap |= make_mask(prefix_index);
+
+	pfxlist_onlink_check();
+	}
+
+/*
+ *  nd6_pfxrtr_lookup -- ãã¬ãã£ãã¯ã¹ã¨ã³ããªããã«ã¼ã¿ãæ¢ç´¢ããã
+ */
+
+static uint_t
+pfxrtr_lookup (const T_ND6_PREFIX *pr, int_t rtr_index)
+{
+	return (pr->routermap & make_mask(rtr_index)) == 0 ? IN6_RTR_IX_UNREACH : rtr_index;
+	}
+
+/*
+ *  defrouter_select -- åªå
+ãã£ãã©ã«ãã»ã«ã¼ã¿ãé¸æããªããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static void
+defrouter_select (void)
+{
+	T_DEF_ROUTER	*dr = NULL, router;
+	T_LLINFO_ND6	*ln;
+	int_t		ix, tix;
+
+	for (ix = 0; ix < def_router_count; ix ++) {
+		dr = &nd6_def_router[ix];
+		if ((ln = nd6_lookup(&dr->addr, false)) != NULL && ND6_IS_LLINFO_PROBREACH(ln)) {
+		
+			/* é¸æããã«ã¼ã¿ãå
+é ­ã«ç§»ãã*/
+			router = *dr;
+			for (tix = ix; tix > 0; tix --)
+				nd6_def_router[tix] = nd6_def_router[tix - 1];
+			nd6_def_router[0] = router;
+			break;
+			}
+		}
+	}
+
+/*
+ *  defrtrlist_update -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ´æ°ããã
+ *
+ *  	æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
+ *      ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+ */
+
+static int_t
+defrtrlist_update (T_IN6_ADDR *src, uint32_t lifetime, uint8_t flags)
+{
+	T_DEF_ROUTER	*dr, *fdr = NULL;
+	SYSTIM		now;
+	int_t		ix;
+
+	syscall(get_tim(&now));
+	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
+
+	/* ç»é²æ¸ãèª¿ã¹ãã*/
+	if ((fdr = nd6_defrtrlist_lookup(src)) != NULL) {
+		/* ç»é²æ¸ã¿ã®å ´åã®å¦ç */
+		if (lifetime == 0) {
+			nd6_defrtrlist_del(fdr);
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			return -1;
+			}
+		else {
+			fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+			fdr->flags    = flags;
+			fdr->expire   = now + fdr->lifetime;
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			return fdr - nd6_def_router;
+			}
+		}
+	else if (lifetime == 0) {
+		syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+		return -1;
+		}
+
+	if (fdr == NULL && def_router_count < NUM_ND6_DEF_RTR_ENTRY) {
+		/*
+		 *  def_router_count < NUM_ND6_DEF_RTR_ENTRY ã§ããã°ã
+		 *  nd6_def_router[def_router_count]; ãç©ºãã¨ã³ããª
+		 */
+		fdr = &nd6_def_router[def_router_count];
+		}
+
+	/* ç©ºãã¨ã³ããªããªããã°ãæå¹æéãç­ãã¨ã³ããªãåé¤ããã*/
+	if (fdr == NULL) {
+		T_DEF_ROUTER	*sdr = NULL;
+		int32_t		diff, sdiff = 0xffffffff;
+
+		for (ix = def_router_count; ix -- > 0; ) {
+			dr = &nd6_def_router[ix];
+			diff = (int32_t)(dr->expire - now);
+			if (diff <= 0) {	/* dr->expire <= now */
+				/* æ¢ã«ãæå¹æéãéãã¦ããã*/
+				sdr = dr;
+				break;
+				}
+			else if (diff < sdiff)
+				sdr = dr;
+			}
+		if (sdr != NULL) {
+			fdr = sdr;
+			nd6_defrtrlist_del(fdr);
+			}
+		}
+
+	/* åã¡ã³ãã«å¤ãè¨­å®ããã*/
+	fdr->plistmap = 0;
+	fdr->addr     = *src;
+	fdr->lifetime = lifetime * SYSTIM_HZ;		/* lifetime ã®åä½ã¯ç§ */
+	fdr->flags    = flags;
+	fdr->expire   = now + fdr->lifetime;
+	fdr->state    = ND6_DEF_RTR_BUSY;
+	def_router_count ++;
+
+	/*
+	 *  ãã£ãã©ã«ãã«ã¼ã¿ã¨ãã¦ç»é²ãããã
+	 *  æ¢ã«ãã£ãã©ã«ãã«ã¼ã¿ãããã°é¸æããªãããªãã
+	 */
+	if (fdr - nd6_def_router != 0)
+		defrouter_select();
+
+	syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+	return fdr - nd6_def_router;
+	}
+
+/*
+ *  in6_ifadd -- ã¤ã³ã¿ãã§ã¼ã¹ã«ã¢ãã¬ã¹ãè¿½å ããã
+ */
+
+static ER
+in6_ifadd (T_ND6_PREFIX *pr, T_IN6_IFADDR *ia, int_t router_index)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_ADDR	mask, addr;
+	T_IN6_IFADDR	*lla;
+	int_t		ix;
+
+	lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
+
+	/*
+	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã
+	 */
+	if ((lla->flags & IN6_IFF_DEFINED) == 0)
+		return E_OBJ;
+
+	/*
+	 *  ã«ã¼ã¿ããéç¥ããããã¬ãã£ãã¯ã¹é·ãã
+	 *  ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ãã¬ãã£ãã¯ã¹é·ã¨
+	 *  ç°ãªã£ã¦ããã°ã¨ã©ã¼
+	 */
+	if (lla->prefix_len != pr->prefix_len)
+		return E_PAR;
+
+	/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+	in6_plen2pmask(&mask, pr->prefix_len);
+
+	/* ã¢ãã¬ã¹ãçæããã*/
+	for (ix = 0; ix < 4; ix ++)
+		addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
+		                   | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]);
+
+	/* ãã©ã°ãåæåããã*/
+	ia->flags = 0;
+
+	return in6_update_ifa(ifp, ia, &addr,
+	                      pr->prefix_len, pr->vltime, pr->pltime,
+	                      router_index, pr - nd6_prefix, IN6_IFF_AUTOCONF);
+	}
+
+/*
+ *  nd6_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ */
+
+static T_ND6_PREFIX *
+nd6_prefix_lookup (const T_IN6_ADDR *prefix, uint_t plen)
+{
+	T_ND6_PREFIX	*pr;
+	int_t		ix;
+
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_STATE_BUSY) &&
+		     pr->prefix_len == plen && IN6_ARE_ADDR_EQUAL(&pr->prefix, prefix))
+			return pr;
+		}
+
+	return NULL;
+	}
+
+/*
+ *  prelist_remove -- ãã¬ãã£ãã¯ã¹ãªã¹ããããã¬ãã£ãã¯ã¹ãåé¤ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static void
+prelist_remove (T_ND6_PREFIX *pr)
+{
+	ER	error = E_OK;
+	uint_t	mask;
+	int_t	rix;
+
+	/* æå¹æéåãã«ããã*/
+	pr->vltime = 0;
+	pr->pltime = 0;
+
+	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0 &&
+	    (error = nd6_prefix_offlink(pr)) != E_OK) {
+		syslog(LOG_ERROR, "[ND6 RTR] prefix remove failed: %s", itron_strerror(error));
+		return;
+		}
+
+	/*  ãã¬ãã£ãã¯ã¹ã¨ã³ããªã¨ãã£ãã©ã«ãã«ã¼ã¿ã»ã¨ã³ããªã®ãªã³ã¯ãè§£é¤ããã*/
+	pr->routermap = 0;
+	mask = make_mask(pr - nd6_prefix);
+	for (rix = def_router_count; rix --; )
+		nd6_def_router[rix].plistmap &= ~mask;
+
+	/* ãã¬ãã£ãã¯ã¹ãç¡å¹ã«ããã*/
+	pr->flags &= ~ND6_PREFIX_STATE_BUSY;
+
+	pfxlist_onlink_check();
+	}
+
+/*
+ *  nd6_prefix_onlink -- ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨å¯è½ã«ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+ER
+nd6_prefix_onlink (T_ND6_PREFIX *pr)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*lla, *ia = NULL;
+	int_t		ix;
+
+	/* æ¢ã«ãªã³ãªã³ã¯ç¶æ
+ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) != 0)
+		return E_OBJ;
+
+	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªç»é²ã§ããã°ä½ãããªãã*/
+	lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
+	if ((lla->flags & IN6_IFF_DEFINED) == 0)
+		return E_OK;
+
+	/*
+	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
+	 *  ã¢ãã¬ã¹æ
+å ±ãæ¢ãã
+	 */
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		if (ia->prefix_index == (pr - nd6_prefix))
+			break;
+		}
+
+	if (ix >= 0) {
+
+		/* ã¢ãã¬ã¹æ
+å ±ãä½¿ç¨å¯è½ã«ããã*/
+		ia->flags &= ~IN6_IFF_DETACHED;
+
+		/* ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«è¨­å®ããã*/
+		pr->flags |= ND6_PREFIX_STATE_ONLINK;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  nd6_prefix_offlink -- ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã¢ãã¬ã¹ãä½¿ç¨ä¸å¯ã«ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+ER
+nd6_prefix_offlink (T_ND6_PREFIX *pr)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia = NULL;
+	int_t		ix;
+
+	/* æ¢ã«ãªããªã³ã¯ç¶æ
+ã«ãªã£ã¦ããå ´åã¯ã¨ã©ã¼ã*/
+	if ((pr->flags & ND6_PREFIX_STATE_ONLINK) == 0)
+		return E_OBJ;
+
+	/*
+	 *  æå®ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
+	 *  ã¢ãã¬ã¹æ
+å ±ãæ¢ãã
+	 */
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		if (ia->prefix_index == (pr - nd6_prefix))
+			break;
+		}
+
+	if (ix >= 0) {
+
+		/* ã¢ãã¬ã¹æ
+å ±ãä½¿ç¨ä¸å¯ã«ããã*/
+		ia->flags |= IN6_IFF_DETACHED;
+
+		/* ãã¬ãã£ãã¯ã¹ããªããªã³ã¯ã«è¨­å®ããã*/
+		pr->flags &= ~ND6_PREFIX_STATE_ONLINK;
+		}
+
+	return E_OK;
+	}
+
+/*
+ *  in6_init_prefix_ltimes -- ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã
+ */
+
+static ER
+in6_init_prefix_ltimes (T_ND6_PREFIX *pr)
+{
+	SYSTIM		now;
+
+	/* æ¨å¥¨æå¹æéãæå¹æéããé·ãã¨ãã¯ã¨ã©ã¼ */
+	if (pr->pltime > pr->vltime)
+		return E_PAR;
+
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	if (pr->pltime == ND6_INFINITE_LIFETIME)
+		pr->preferred = 0;
+	else
+		pr->preferred = pr->pltime + now;
+
+	if (pr->vltime == ND6_INFINITE_LIFETIME)
+		pr->expire = 0;
+	else
+		pr->expire = pr->vltime + now;
+
+	return E_OK;
+	}
+
+/*
+ *  nd6_prelist_add -- ãã¬ãã£ãã¯ã¹ãªã¹ãã«ãã¬ãã£ãã¯ã¹ãè¿½å ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+static T_ND6_PREFIX *
+nd6_prelist_add (T_ND_OPT_PREFIX_INFO *pi, int_t rtr_index)
+{
+	T_ND6_PREFIX	*pr = NULL;
+	int_t		ix;
+
+	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããç©ºãã®ãã¬ãã£ãã¯ã¹ã¨ã³ããªãæ¢ç´¢ããã*/
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix --; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_STATE_BUSY) == 0)
+			break;
+		}
+
+	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã«ç©ºãããªããã°ã¨ã©ã¼ */
+	if (ix < 0)
+		return NULL;
+
+	pr->flags |= ND6_PREFIX_STATE_BUSY;
+
+	/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+	pr->prefix     = pi->prefix;
+	pr->prefix_len = pi->prefix_len;
+
+	/* ãã©ã°ãè¨­å®ããã*/
+	if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0)
+		pr->flags |= ND6_PREFIX_FLAG_ONLINK;
+	if ((pi->flags & ND_OPT_PI_FLAG_AUTO) != 0)
+		pr->flags |= ND6_PREFIX_FLAG_AUTO;
+
+	/* ãã¬ãã£ãã¯ã¹ã®æå¹æéãè¨­å®ããã*/
+	pr->vltime = ntohl(pi->valid);
+	pr->pltime = ntohl(pi->preferred);
+	in6_init_prefix_ltimes(pr);
+
+	if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) != 0) {
+		if (nd6_prefix_onlink(pr) != E_OK)
+			return NULL;
+		}
+
+	/* ã«ã¼ã¿ããããåæåããã*/
+	pr->routermap = 0;
+
+	/* ã«ã¼ã¿ãè¿½å ããã*/
+	pfxrtr_add(pr - nd6_prefix, rtr_index);
+
+	return pr;
+	}
+
+/*
+ *  prelist_update -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã
+ */
+
+static void
+prelist_update (T_ND_OPT_PREFIX_INFO *pi, uint_t router_index)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_ND6_PREFIX	*pr;
+	T_IN6_IFADDR	*ia = NULL;
+	int_t		ix, ifidlen;
+
+	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
+	if ((pr = nd6_prefix_lookup(&pi->prefix, pi->prefix_len)) != NULL) {
+		/*
+		 *  ç»é²æ¸ã¿ã®å ´åã¯ããã¬ãã£ãã¯ã¹ãªã¹ããæ´æ°ããã
+		 */
+
+		/*
+		 *  ãã©ã°ã®æ´æ°ã®æ³¨æ:
+		 *    on-link ãããã¨ autonomous ãããã¯
+		 *    1 ãã 0 ã«å¤æ´ãã¦ã¯ãªããªãã
+		 */
+
+		if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0)
+			pr->flags |= ND6_PREFIX_FLAG_ONLINK;
+		if ((pi->flags & ND_OPT_PI_FLAG_AUTO) != 0)
+			pr->flags |= ND6_PREFIX_FLAG_AUTO;
+
+		if ((pi->flags & ND_OPT_PI_FLAG_ONLINK) != 0) {
+			/*
+			 *  éç¥ããããã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã®æã¯ã
+			 *  æå¹æéãæ´æ°ããã
+			 */
+			pr->vltime = ntohl(pi->valid);
+			pr->pltime = ntohl(pi->preferred);
+			in6_init_prefix_ltimes(pr);
+			}
+
+		if ((pi->flags & ND_OPT_PI_FLAG_ONLINK  ) != 0 &&
+		    (pr->flags & ND6_PREFIX_STATE_ONLINK) == 0) {
+			/*
+			 *  ãªããªã³ã¯ã®ãã¬ãã£ãã¯ã¹ããªã³ãªã³ã¯ã«ãªã£ãæã®å¦çãå®è¡ããã
+			 */
+			if (nd6_prefix_onlink(pr) != E_OK) {
+				syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+				syslog(LOG_ERROR, "[ND6 RTR] prefix update failed.");
+				return;
+				}
+			}
+
+		if (router_index != IN6_RTR_IX_UNREACH && pfxrtr_lookup(pr, router_index) == IN6_RTR_IX_UNREACH)
+			pfxrtr_add(pr - nd6_prefix, router_index);
+		}
+	else {	/* æªç»é²ã®å ´å */
+
+		/* æå¹æé 0 ã®ãã¬ãã£ãã¯ã¹ã¯è¿½å ããªãã*/
+		if (pi->valid == 0) {
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			return;
+			}
+
+		/* ãªããªã³ã¯ã§ã¢ãã¬ã¹èªåè¨­å®ã«ä½¿ç¨ããªããã°è¿½å ããªãã*/
+		if ((pi->flags & (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) !=
+		                 (ND_OPT_PI_FLAG_ONLINK | ND_OPT_PI_FLAG_AUTO)) {
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			return;
+			}
+
+		/* ãã¬ãã£ãã¯ã¹ãè¿½å ããã*/
+		if ((pr = nd6_prelist_add(pi, router_index)) == NULL) {
+			syslog(LOG_ERROR, "[ND6 RTR] prefix add failed.");
+			syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+			return;
+			}
+
+#if 1		/* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ãè¡¨ç¤ºããã*/
+		syslog(LOG_NOTICE, "[ND6 RTR] add prefix: flags[MOH]: %02x, addr: %s\n"
+		                   "                                      from: %s.",
+		                   nd6_def_router[router_index].flags,
+		                   ipv62str(NULL, &pi->prefix),
+		                   ipv62str(NULL, &nd6_def_router[router_index].addr));
+#endif
+		if ((pr->flags & ND6_PREFIX_FLAG_ONLINK) == 0) {
+			/*
+			 *  ãªããªã³ã¯ã»ãã¬ãã£ãã¯ã¹ã®å ´åã¯ãæå¹æéã 0 ã«è¨­å®ããã
+			 *  ãã¨ã§æå¹æéåãã¨ãªãããªã¹ãããåé¤ãããã
+			 */
+			pr->vltime = 0;
+			pr->pltime = 0;
+			in6_init_prefix_ltimes(pr);
+			}
+		}
+
+	/*
+	 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ãè¡ãã
+	 */
+	if ((pr->flags & ND6_PREFIX_FLAG_AUTO) == 0) {
+		syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+		return;
+		}
+
+	/*
+	 *  éç¥ããããã¬ãã£ãã¯ã¹ãå²ãå½ã¦ããã¦ããã¤ã³ã¿ãã§ã¼ã¹ã®
+	 *  ã¢ãã¬ã¹æ
+å ±ãæ¢ãã
+	 */
+	for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
+		ia = &ifp->in6_ifaddrs[ix];
+		if ((ia->flags & IN6_IFF_DEFINED) != 0 &&
+		    ia->prefix_len == pr->prefix_len &&
+		    in6_are_prefix_equal(&ia->addr, &pr->prefix, pr->prefix_len))
+			break;
+		}
+
+	if (ix >= 0) {	/* ç»é²æ¸ã¿ã®ã¨ã */
+		if ((ia->flags & IN6_IFF_AUTOCONF) == 0) {
+			/*
+			 *  ã¹ãã¼ãã¬ã¹ã»ã¢ãã¬ã¹èªåè¨­å®ã«ãã
+			 *  è¨­å®ããã¦ããªããã°æ´æ°ããªãã
+			 */
+			;
+			}
+		else if (ia->flags & IN6_IFF_TENTATIVE) {
+			/*
+			 *  éè¤æ¤åºä¸­ãªãæ´æ°ããªãã
+			 */
+			;
+			}
+		else {
+			T_IN6_ADDR	mask, addr;
+			T_IN6_IFADDR	*lla;
+			uint32_t		vltime;
+			SYSTIM		now;
+			int_t		ix;
+
+			/* æå¹æéãè¨­å®ããã*/
+			syscall(get_tim(&now));
+
+			if (ia->lifetime.vltime == ND6_INFINITE_LIFETIME)
+				vltime = ND6_INFINITE_LIFETIME;
+			else if (IFA6_IS_INVALID(ia, now))
+				vltime = 0;
+			else
+				vltime = ia->lifetime.expire - now / SYSTIM_HZ;
+
+			if (pr->vltime > (2 * 60 * 60) || pr->vltime > vltime) {
+				/*
+				 *  lifetime.expireãpi->valid (æå¹æé) ã¨
+				 *  pi->preferred (æ¨å¥¨æå¹æé) ã®åä½ã¯ [s]ã
+				 *  éç¥ãããæå¹æéã 2 æéä»¥ä¸ããç¾å¨ã®æ®ãæéãã
+				 *  é·ããã°ãæ°ããæå¹æéã«ã¯ãéç¥ãããæå¹æéãè¨­å®ããã
+				 */
+				vltime = pr->vltime;
+				}
+			else if (vltime <= (2 * 60 * 60))
+				;
+			else {
+				/*
+				 *  IPsec ã¯æªå®è£
+ã®ããã2 æéãè¨­å®ããã
+				 */
+				vltime = 2 * 60 * 60;
+				}
+
+			lla = &ifp->in6_ifaddrs[IPV6_IFADDR_IX_LINKLOCAL];
+
+			/* ãã¬ãã£ãã¯ã¹ãã¹ã¯ãçæããã*/
+			in6_plen2pmask(&mask, pr->prefix_len);
+
+			/* ã¢ãã¬ã¹ãçæããã*/
+			for (ix = 0; ix < 4; ix ++)
+				addr.s6_addr32[ix] = (pr->prefix.s6_addr32[ix] &  mask.s6_addr32[ix])
+				                   | ( lla->addr.s6_addr32[ix] & ~mask.s6_addr32[ix]);
+
+			in6_update_ifa(ifp, ia, &addr, pr->prefix_len, vltime,
+			               pr->pltime, router_index, pr - nd6_prefix,
+			               IN6_IFF_AUTOCONF | IN6_IFF_NODAD);
+			}
+		}
+
+	else { /* æªç»é²ã®ã¨ã */
+
+		/*
+		 *  ãã¬ãã£ãã¯ã¹é·ããã§ãã¯ããã
+		 *  ããããã¬ãã£ãã¯ã¹é·ã¨ã¤ã³ã¿ãã§ã¼ã¹ ID ã®åè¨ã
+		 *  128 ãããã«ä¸è´ããªãæã¯ããã¬ãã£ãã¯ã¹æ
+å ±ãç¡è¦ããã
+		 */
+		if ((ifidlen = in6_if2idlen(ifp)) < 0)
+			syslog(LOG_ERROR, "[ND6 RTR] IFID undefined.");
+		else if (ifidlen + pr->prefix_len != 128)
+			syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len: %d.", pr->prefix_len);
+		else {
+
+			for (ix = NUM_IN6_IFADDR_ENTRY; ix --; ) {
+				ia = &ifp->in6_ifaddrs[ix];
+				if ((ia->flags & IN6_IFF_DEFINED) == 0) {
+					in6_ifadd(pr, ia, router_index);
+					pfxlist_onlink_check();
+					break;
+					}
+				}
+
+			if (ix < 0)
+				syslog(LOG_ERROR, "[ND6 RTR] prefix update failed.");
+			}
+		}
+	syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+	}
+
+/*
+ *  nd6_prelist_timer -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ */
+
+void
+nd6_prelist_timer (void)
+{
+	T_ND6_PREFIX	*pr;
+	SYSTIM		now;
+	int_t		ix;
+
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;		/* æå¹æéã®åä½ã¯ [s] */
+
+	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_STATE_BUSY) != 0 && (int32_t)(pr->expire - now) <= 0)
+		                                                       /* pr->expire <= now */
+			prelist_remove(pr);
+		}
+	syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+	}
+
+/*
+ *  nd6_rs_output -- ã«ã¼ã¿è¦è«ãåºåããã
+ */
+
+static void
+nd6_rs_output (void)
+{
+	T_ROUTER_SOLICIT_HDR	*rsh;
+	T_NET_BUF		*output;
+	T_IN6_IFADDR		*ifa;
+	const T_IN6_ADDR	*saddr;
+	uint16_t		len;
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RS_OUT_PACKETS], 1);
+
+	/*
+	 *  éä¿¡å
+ã¢ãã¬ã¹ã«ã¯ããªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ãè¨­å®ãããã
+	 *  ã¾ã è¨­å®ããããªããã°ãç¡æå®ãè¨­å®ããã
+	 */
+	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) != NULL && !IFA6_IS_NOTREADY(ifa))
+		saddr = &ifa->addr;
+	else
+		saddr = &in6_addr_unspecified;
+
+	len = (ROUTER_SOLICIT_HDR_SIZE + 7) >> 3 << 3;
+
+	/* ãããã¯ã¼ã¯ãããã¡ãç²å¾ããIPv6 ããããè¨­å®ããã*/
+	if (in6_get_datagram(&output, len, 0, &in6_addr_linklocal_allrouters,
+	                     saddr, IPPROTO_ICMPV6,
+	                     IPV6_MAXHLIM, NBA_SEARCH_ASCENT, TMO_ND6_RS_OUTPUT) != E_OK)
+		return;
+
+ 	/* ã«ã¼ã¿è¦è«ããããè¨­å®ããã*/
+ 	rsh = GET_ROUTER_SOLICIT_HDR(output, IF_IP6_ROUTER_SOLICIT_HDR_OFFSET);
+ 	rsh->hdr.type       = ND_ROUTER_SOLICIT;
+ 	rsh->hdr.code       = 0;
+ 	rsh->nd_rs_reserved = 0;
+
+	/* ãã§ãã¯ãµã ãè¨ç®ããã*/
+	rsh->hdr.sum = 0;
+	rsh->hdr.sum = in6_cksum(output, IPPROTO_ICMPV6, (uint8_t*)rsh - output->buf, len);
+
+	/* éä¿¡ããã*/
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_OCTETS],
+	               output->len - GET_IF_IP6_HDR_SIZE(output));
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_OUT_PACKETS], 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutMsgs, 1);
+	NET_COUNT_MIB(icmp6_ifstat.ipv6IfIcmpOutRouterSolicits, 1);
+	ip6_output(output, IPV6_OUT_SET_HOP_LIMIT(IPV6_OUT_FLG_HOP_LIMIT, IPV6_MAXHLIM), TMO_ND6_RS_OUTPUT);
+	}
+
+/*
+ *  nd6_defrtrlist_lookup -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããæ¢ç´¢ããã
+ */
+
+T_DEF_ROUTER *
+nd6_defrtrlist_lookup (const T_IN6_ADDR *src)
+{
+	T_DEF_ROUTER	*dr = NULL;
+	int_t		ix;
+
+	for (ix = def_router_count; ix -- > 0; ) {
+		dr = &nd6_def_router[ix];
+		if (IN6_ARE_ADDR_EQUAL(&dr->addr, src)) {
+			return dr;
+			}
+		}
+	return NULL;
+	}
+
+/*
+ *  nd6_router_lookup -- ã«ã¼ã¿ã®ã¢ãã¬ã¹ãè¿ãã
+ *
+ */
+
+const T_IN6_ADDR *
+nd6_router_lookup (void)
+{
+	if (def_router_count > 0)
+		return &nd6_def_router[0].addr;
+	else
+		return NULL;
+	}
+
+/*
+ *  nd6_defrtrlist_del -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãããã«ã¼ã¿ãåé¤ããã
+ *
+ *    æ³¨æ: ãã®é¢æ°ãå¼ã³åºãã¨ãã¯ãSEM_ND6_DEFRTRLIST ã§ã
+ *          ã­ãã¯ãã¦ããå¼ã³åºããã¨ã
+ */
+
+void
+nd6_defrtrlist_del (T_DEF_ROUTER *dr)
+{
+	T_IFNET		*ifp = IF_GET_IFNET();
+	T_IN6_IFADDR	*ia;
+	T_ND6_PREFIX	*pr;
+	uint_t		mask;
+	int_t		ix, rix, pix, rtrix = dr - nd6_def_router;
+
+	if ((ia = in6ifa_ifpwithrtrix(ifp, rtrix)) != NULL) {
+		/*
+		 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ãã¬ãã£ãã¯ã¹ãéç¥ãã
+		 *  ã«ã¼ã¿ãå°éä¸è½ã«ããã
+		 */
+		ia->router_index = IN6_RTR_IX_UNREACH;
+		}
+
+	/* ãã¬ãã£ãã¯ã¹ãªã¹ãããã«ã¼ã¿ãåé¤ããã*/
+	mask = make_mask(rtrix);
+	for (pix = NUM_ND6_PREFIX_ENTRY; pix --; )
+		nd6_prefix[pix].routermap &= ~mask;
+
+	/* åé¤ããã«ã¼ã¿ä»¥éãåã«è©°ããã*/
+	for (rix = rtrix + 1; rix < def_router_count; rix ++)
+		nd6_def_router[rix - 1] = nd6_def_router[rix];
+
+	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®ã«ã¼ã¿ãæ´æ°ããã*/
+	if (dr != nd6_def_router) {
+
+		/* ãã¹ã¯ãçæããã*/
+		mask = 1;
+		for (ix = rtrix - 1; ix -- > 0; )
+			mask = (mask << 1) | 1;
+
+		for (pix = NUM_ND6_PREFIX_ENTRY; pix --; ) {
+			pr = &nd6_prefix[pix];
+			pr->routermap = (pr->routermap & mask) | (((pr->routermap & ~mask) >> 1) & ~mask);
+			}
+		}
+	def_router_count --;
+
+	/* ãã¬ãã£ãã¯ã¹ã®ãªã³ãªã³ã¯ç¶æ
+ãç¢ºèªããã*/
+	pfxlist_onlink_check();
+
+	/*
+	 *  åé¤ããã«ã¼ã¿ãåªå
+ãã£ãã©ã«ãã«ã¼ã¿ã®å ´åã¯ã
+	 *  åªå
+ãã£ãã©ã«ãã«ã¼ã¿ãé¸æããªããã
+	 */
+	if (rtrix == 0)
+		defrouter_select();
+	}
+
+/*
+ *  nd6_defrtrlist_timer -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã®ç®¡çã¿ã¤ãã¼
+ */
+
+void
+nd6_defrtrlist_timer (void)
+{
+	T_DEF_ROUTER	*dr;
+	SYSTIM		now;
+	int_t		ix;
+
+	syscall(get_tim(&now));
+
+	syscall(wai_sem(SEM_ND6_DEFRTRLIST));
+	for (ix = def_router_count; ix -- > 0; ) {
+		dr = &nd6_def_router[ix];
+		if ((int32_t)(dr->expire - now) <= 0) {
+		           /* dr->expire <= now */
+			nd6_defrtrlist_del(dr);
+			}
+		}
+	syscall(sig_sem(SEM_ND6_DEFRTRLIST));
+	}
+
+/*
+ *  nd6_get_drl -- ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ããç²å¾ããã
+ */
+
+const T_DEF_ROUTER *
+nd6_get_drl (uint_t *count)
+{
+	*count = def_router_count;
+	return nd6_def_router;
+	}
+
+/*
+ *  nd6_get_prl -- ãã¬ãã£ãã¯ã¹ã»ãªã¹ããç²å¾ããã
+ */
+
+const T_ND6_PREFIX *
+nd6_get_prl (void)
+{
+	return nd6_prefix;
+	}
+
+#endif	/* of #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+/*
+ *  nd6_ra_input -- ã«ã¼ã¿éç¥ã®å
+¥åå¦çã
+ */
+
+void
+nd6_ra_input (T_NET_BUF *input, uint_t off)
+{
+#if NUM_ND6_DEF_RTR_ENTRY > 0
+
+	T_IFNET			*ifp = IF_GET_IFNET();
+	T_IP6_HDR		*ip6h;
+	T_ROUTER_ADVERT_HDR	*rah;
+	T_ND_OPT_HDR		*opth;
+	SYSTIM			now;
+	int_t			rix;
+	uint_t			lladdr_len = 0;
+	uint32_t		advrea;
+	uint8_t			*lladdr = NULL;
+	uint8_t			nd_opt_off[ND_OPT_OFF_ARRAY_SIZE];
+
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1);
+
+	ip6h = GET_IP6_HDR(input);
+
+	/*
+	 *  ãããã®ãã§ãã¯ãä»¥ä¸ã®å ´åã¯ç ´æ£ããã
+	 *    ã»ããããªãããã IPV6_MAXHLIM (255) ä»¥å¤
+	 *    ã»ãããé·ãç­ã
+	 *    ã»å§ç¹ã¢ãã¬ã¹ãããªã³ã¯ã­ã¼ã«ã«ã§ã¯ãªã (RFC2461)
+	 */
+	if (ip6h->hlim != IPV6_MAXHLIM                ||
+	    input->len - off < ROUTER_ADVERT_HDR_SIZE ||
+	    !IN6_IS_ADDR_LINKLOCAL(&ip6h->src))
+		goto err_ret;
+
+	rah  = GET_ROUTER_ADVERT_HDR(input, off);
+
+	/* è¿é£æ¢ç´¢ãªãã·ã§ã³ã®ãªãã»ãããè¨é²ããã*/
+	if (nd6_options(nd_opt_off, input->buf + (off + ROUTER_ADVERT_HDR_SIZE),
+	                            input->len - (off + ROUTER_ADVERT_HDR_SIZE)) != E_OK)
+		goto err_ret;
+	/*
+	 *  å°éå¯è½ç¶æ
+ã®æå¹æéã®æ´æ°
+
+	 */
+	if (rah->reachable) {
+		advrea = ntohl(rah->reachable) * SYSTIM_HZ / 1000;	/* rah->reachable ã®åä½ã¯ ms */
+		if (advrea <= ND6_MAX_REACHABLE_TIME &&
+		    advrea != nd6_base_reachable_time) {
+			syscall(get_tim(&now));
+			nd6_recalc_reachtm_interval
+				= now + ND6_RECALC_REACHTM_INTERVAL;
+			nd6_base_reachable_time	= advrea;
+			nd6_reachable_time
+				= ND6_CALC_REACH_TIME(nd6_base_reachable_time);
+			}
+		}
+
+	/* è¿é£æ¢ç´¢ã®éä¿¡ééã®æ´æ° */
+	if (rah->retransmit) {
+		nd6_retrans_time = ntohl(rah->retransmit) * SYSTIM_HZ / 1000;
+									/* rah->retransmit ã®åä½ã¯ ms */
+		}
+
+	/* ããããªãããã®è¦å®å¤ã®æ´æ° */
+	if (rah->nd_ra_current_hoplimit) {
+		ip6_defhlim = rah->nd_ra_current_hoplimit;
+		}
+
+	/* ãã£ãã©ã«ãã«ã¼ã¿ãªã¹ãã®æ´æ° */
+	rix = defrtrlist_update(&ip6h->src,
+	                       ntohs(rah->nd_ra_router_lifetime),
+	                       rah->nd_ra_flags);		/* rah->nd_ra_router_lifetime ã®åä½ã¯ç§ */
+
+	/* ãã¬ãã£ãã¯ã¹ãªã¹ãã®æ´æ° */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)]) {
+		T_ND_OPT_PREFIX_INFO	*pi;
+		uint_t			pi_off, pi_count;
+
+		pi_count = nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFO_COUNT)];
+		pi_off   = off + ROUTER_ADVERT_HDR_SIZE
+		               + nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_PREFIX_INFORMATION)] - 8;
+	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+		while (pi_count -- > 0) {
+			pi = (T_ND_OPT_PREFIX_INFO*)(input->buf + pi_off);
+			if (pi->type != ND_OPT_PREFIX_INFORMATION)
+				/* ãªãã·ã§ã³ã¿ã¤ãããã¬ãã£ãã¯ã¹æ
+å ±ã§ãªããã°ä½ãããªãã*/
+				;
+			else if (pi->len != 4)
+			    	/* ãã¬ãã£ãã¯ã¹æ
+å ±ã®é·ãã 32 (8Ã4) ã§ãªããã°ä¸æ­£ */
+				syslog(LOG_NOTICE, "[ND6 RTR] prefix opt len: %d.", pi->len);
+			else if (pi->prefix_len > 128)
+				/* ãã¬ãã£ãã¯ã¹é·ã¯ 128 ãããä»¥ä¸ */
+				syslog(LOG_NOTICE, "[ND6 RTR] prefix len: %d.", pi->prefix_len);
+			else if (IN6_IS_ADDR_MULTICAST(&pi->prefix) ||
+			         IN6_IS_ADDR_LINKLOCAL(&pi->prefix))
+				/* ãã«ãã­ã£ã¹ãã¨ãªã³ã¯ã­ã¼ã«ã«ã¯ä¸æ­£ */
+				syslog(LOG_NOTICE, "[ND6 RTR] invalid addr: %s from %s.",
+				                   ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src));
+#if 0	/* FreeBSD 6.3 ã§åé¤ããã¦ããã*/
+			else if (IN6_IS_ADDR_AGGREGATE_UNICAST(&pi->prefix) &&		
+			         (pi->prefix_len != 64)                       )
+				/* éç´å¯è½ã¦ãã­ã£ã¹ãã§ããã¬ãã£ãã¯ã¹é·ã 64 ãããä»¥å¤ã¯ä¸æ­£ */
+				syslog(LOG_NOTICE, "[ND6 RTR] invalid prefix len for global: %d.", pi->prefix_len);
+#endif
+			else if (ntohl(pi->preferred) > ntohl(pi->valid))
+				/* æ¨å¥¨æå¹æéãæå¹æéããé·ããã°ä¸æ­£ */
+				syslog(LOG_NOTICE, "[ND6 RTR] preferred(%d) > valid time(%d).", ntohl(pi->preferred), ntohl(pi->valid));
+			else {
+#if 0	/* ãã¬ãã£ãã¯ã¹ãæªç»é²ã®å ´åã ãè¡¨ç¤ºããã*/
+				syslog(LOG_NOTICE, "[ND6 RTR] update prefix: flags[MOH]: %02x, addr: %s\n"
+				                   "                                         from: %s.",
+				                   rah->nd_ra_flags, ipv62str(NULL, &pi->prefix), ipv62str(NULL, &ip6h->src));
+#endif
+				if (rix >= 0) {
+					/*
+					 *  defrtrlist_update ã®æ»ãå¤ã¯ãã«ã¼ã¿ã®ã¤ã³ããã¯ã¹ã
+					 *  ãã ããå¤ã -1 ãªãããã¬ãã£ãã¯ã¹ã»ãªã¹ãã¯æ´æ°ããªãã
+					 */
+					prelist_update(pi, rix);	/* ãã¬ãã£ãã¯ã¹ã»ãªã¹ããæ´æ°ããã*/
+					}
+				}
+			pi_off += pi->len << 3;		/* ãªãã·ã§ã³é·ã®åä½ã¯ 8 ãã¤ã */
+			}
+		}
+
+	/* MTU ã®æ´æ° */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)]) {
+		T_ND_OPT_MTU_HDR	*optmtuh;
+		uint32_t			mtu;
+
+		optmtuh = (T_ND_OPT_MTU_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) +
+		                               nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_MTU)] - 8);
+
+		/*
+		 *  å¤ã®ãã§ãã¯
+		 *
+		 *    ãªãã·ã§ã³é·: 1
+		 *    äºç´:         0
+		 */
+		if (optmtuh->len != 1 || optmtuh->reserved != 0)
+			goto err_ret;
+
+		/* MTU ã IPv6 MMTUï¼1280 ãªã¯ãããï¼ä»¥ä¸ãªãç¡è¦ããã*/
+		mtu = ntohl(optmtuh->mtu);
+		if (mtu >= IPV6_MMTU) {
+			if (mtu <= (linkmtu > IF_MTU ? linkmtu : IF_MTU))
+				linkmtu = mtu;
+			}
+		}
+
+	/*
+	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã
+	 */
+	if (nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)]) {
+		opth = (T_ND_OPT_HDR *)((uint8_t *)(input->buf + off + ROUTER_ADVERT_HDR_SIZE) +
+		                        nd_opt_off[ND_OPT_OFF_ARRAY_IX(ND_OPT_SOURCE_LINKADDR)] - 8);
+	 	/* æ³¨æ: ãªãã·ã§ã³ãªãã»ããé
+åã«ã¯ããªãã»ãã + 8 ãè¨­å®ããã¦ããã*/
+		lladdr     = (uint8_t *)(opth + 1);
+		lladdr_len = (opth->len << 3);
+		}
+
+	/*
+	 *  ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ã®ã¢ãã¬ã¹é·ãä¸è´ããªããã°ã¨ã©ã¼
+	 */
+	if (lladdr && lladdr_len != ((sizeof(T_IF_ADDR) + sizeof(T_ND_OPT_HDR) + 7) & ~7))
+		goto err_ret;
+
+	/* è¿é£ã­ã£ãã·ã¥ã«ç»é²ããã*/
+	nd6_cache_lladdr(ifp, &ip6h->src, (T_IF_ADDR *)lladdr, ND_ROUTER_ADVERT, 0);
+
+	/*
+	 *  ã«ã¼ã¿ã®å§ç¹ãªã³ã¯ã¢ãã¬ã¹ãè¿é£ã­ã£ãã·ã¥ã«ç»é²ããã®ã§ã
+	 *  ãªã³ãªã³ã¯ç¶æ
+ãå¤åããå¯è½æ§ããããããããããã§ãã¯ããã
+	 */
+	pfxlist_onlink_check();
+
+	syscall(rel_net_buf(input));
+	return;
+
+err_ret:
+	NET_COUNT_ICMP6(net_count_nd6[NC_ICMP6_IN_ERR_PACKETS], 1);
+	syscall(rel_net_buf(input));
+
+#else	/* of #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+
+	/*
+	 *  ã«ã¼ã¿éç¥ãåä¿¡ããªãå ´åã¯ãç ´æ£ãã¦çµäºããã
+	 */
+	NET_COUNT_ICMP6(net_count_nd6[NC_ND6_RA_IN_PACKETS], 1);
+	syscall(rel_net_buf(input));
+
+#endif	/* of #if NUM_ND6_DEF_RTR_ENTRY > 0 */
+	}
+
+#if NUM_ND6_RTR_SOL_RETRY > 0
+
+/*
+ *  nd6_rtrsol_ctl -- ã«ã¼ã¿è¦è«åºåã®å¶å¾¡
+ */
+
+void
+nd6_rtrsol_ctl (void)
+{
+	T_IN6_IFADDR	*ifa;
+	int_t		try;
+
+	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®ã¢ãã¬ã¹æ
+å ±ãå¾ãã*/
+	if ((ifa = in6ifa_ifpwithix(IF_GET_IFNET(), IPV6_IFADDR_IX_LINKLOCAL)) == NULL)
+		return;
+
+	/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºãå¾
+ã¤ã*/
+	do {
+		/* ãªã³ã¯ã­ã¼ã«ã«ã¢ãã¬ã¹ã®éè¤æ¤åºçµäºå¾
+ã¡æéãè¨­å®ããã*/
+		syscall(dly_tsk(net_rand() % TMO_ND6_RTR_SOL_DELAY));
+
+		/* å¾
+ã£ã¦ããéã«éè¤ãæ¤åºããããçµäºããã*/
+		if (ifa->flags & IN6_IFF_DUPLICATED)
+			return;
+
+		} while (!((ifa->flags & IN6_IFF_DEFINED) && (ifa->flags & IN6_IFF_TENTATIVE) == 0));
+
+	for (try = 0; try < NUM_ND6_RTR_SOL_RETRY; try ++) {
+
+		/* ãã£ãã©ã«ãã«ã¼ã¿ã»ãªã¹ãã«ã¨ã³ããªãããã°çµäº */
+		if (def_router_count > 0)
+			return;
+
+		/* ã«ã¼ã¿è¦è«ãåºåããã*/
+		nd6_rs_output();
+
+		/* åºåã® 2 åç®ä»¥éã®é
+å»¶æéãè¨­å®ããã*/
+		syscall(dly_tsk(TMO_ND6_RTR_SOL_INTERVAL));
+		}
+	}
+
+#endif	/* of #if NUM_ND6_RTR_SOL_RETRY > 0 */
+
+/*
+ *  nd6_onlink_prefix_lookup -- ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã
+ */
+
+T_ND6_PREFIX *
+nd6_onlink_prefix_lookup (const T_IN6_ADDR *dst)
+{
+	SYSTIM		now;
+	T_ND6_PREFIX	*pr;
+	int_t		ix;
+
+	syscall(get_tim(&now));
+	now /= SYSTIM_HZ;
+
+	/* æ¨å¥¨æå¹æéå
+ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_STATE_BUSY)  &&
+		    (pr->flags & ND6_PREFIX_FLAG_ONLINK) &&
+		    in6_are_prefix_equal(dst, &pr->prefix, pr->prefix_len) &&
+		    (int32_t)(pr->preferred - now) > 0) {
+		           /* pr->preferred > now */
+			return pr;
+			}
+		}
+
+	/* æå¹æéå
+ã®ãã¬ãã£ãã¯ã¹ãæ¢ç´¢ããã*/
+	for (ix = NUM_ND6_PREFIX_ENTRY; ix -- > 0; ) {
+		pr = &nd6_prefix[ix];
+		if ((pr->flags & ND6_PREFIX_STATE_BUSY)  &&
+		    (pr->flags & ND6_PREFIX_FLAG_ONLINK) &&
+		    in6_are_prefix_equal(dst, &pr->prefix, pr->prefix_len) &&
+		    (int32_t)(pr->expire - now) > 0) {
+		           /* pr->expire > now */
+			return pr;
+			}
+		}
+
+	return NULL;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/route6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/route6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/route6.c	(revision 313)
@@ -0,0 +1,249 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/route6.c,v 1.6 2002/10/16 01:54:45 sam Exp $	*/
+/*	$KAME: route6.c,v 1.24 2001/03/14 03:07:05 itojun Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/if.h>
+#include <net/if_loop.h>
+#include <net/if_ppp.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/ppp_ipcp.h>
+#include <net/net_buf.h>
+#include <net/net_count.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/ip_icmp.h>
+#include <netinet6/nd6.h>
+
+#ifdef _IP6_CFG
+
+#if 0
+/*
+ *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
+ *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
+ */
+
+/*
+ *  ip6_rthdr0 -- ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å
+¥åé¢æ°
+ */
+
+static ER
+ip6_rthdr0 (T_NET_BUF *input, T_IP6_RT0_HDR *rt0h)
+{
+	if (rt0h->segleft == 0) {
+		/* ä¸­ç¶ãã¼ãæ°ã¯ 0 ãªã®ã§ãçµç¹ãã¼ã */
+		return E_OK;
+		}
+
+	/* len ã¨ segleft ã®æ­£å½æ§ãã§ãã¯ */
+#ifdef IP6_CFG_COMPAT_RFC1883
+	if ((rt0h->len % 2) || (rt0h->len > 46)) {
+#else
+	if (rt0h->len % 2) {
+#endif
+		/*
+		 *  len ã¯å¶æ°ã§ã(23 * 2) ã¾ã§ã
+		 *  ãã ãã(23 * 2) ã®å¶éã¯ RFC 2462 ã§åé¤ããã¦ããã
+		 */
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   ((uint8_t*)&rt0h->len - input->buf) - IF_HDR_SIZE);
+		return E_PAR;
+		}
+
+	/* len ãä¸­ç¶ãã¼ãæ°ã¨çç¾ãã¦ããªãããã§ãã¯ããã*/
+	if ((rt0h->len / 2) < rt0h->segleft) {
+		/*
+		 *  len ã¯ 8ãªã¯ãããåä½ãsegleft ã¯ 16ãªã¯ãããåä½ãªã®ã§ã
+		 *  len / 2 == segleft ã¨ãªãã¯ãã
+		 *  len / 2 <  segleft ã¯ã¨ã©ã¼ã
+		 */
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   ((uint8_t*)&rt0h->segleft - input->buf) - IF_HDR_SIZE);
+		return E_PAR;
+		}
+
+	/*
+	 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
+	 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
+ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
+	 *  å
+¥åãã¼ã¿ã°ã©ã ã®å¦çãçµäºããã
+	 */
+	syscall(rel_net_buf(input));
+	return E_PAR;
+	}
+
+#endif
+
+/*
+ *  route6_input -- çµè·¯å¶å¾¡ãããã®å
+¥åé¢æ°
+ */
+
+uint_t
+route6_input (T_NET_BUF **inputp, uint_t *offp, uint_t *nextp)
+{
+	T_NET_BUF	*input = *inputp;
+	T_IP6_RT_HDR	*rth;
+	uint_t		len, off = *offp;
+
+	/* ãããã¯ã¼ã¯ãããã¡ã®æ®ãã®é·ãããã§ãã¯ããã*/
+	if (input->len - off < sizeof(T_IP6_RT_HDR))
+		goto buf_rel;
+
+	rth = (T_IP6_RT_HDR *)(input->buf + off);
+	len = (rth->len + 1) << 3;
+
+	/* çµè·¯å¶å¾¡ãããã®é·ãããã§ãã¯ããã*/
+	if (input->len < off + len)
+		goto buf_rel;
+
+#if 0
+	/*
+	 *  éä¿¡å¸¯åãé£ãã¤ã¶ãæ»æã¸ã®å¯¾å¿ã®ããã
+	 *  ã¿ã¤ã 0 çµè·¯å¶å¾¡ãããã®å¦çãè¡ããªãã
+	 */
+	if (rth->type == IPV6_RTHDR_TYPE_0) {
+		if (ip6_rthdr0(input, (T_IP6_RT0_HDR*)rth) != E_OK) {
+
+			/* ã¨ã©ã¼ã®å ´åã¯ãip6_rthdr0 ã§ãããã¡ãéæ¾ãã¦ããã*/
+			return IPPROTO_DONE;
+			}
+		}
+	else if (rth->segleft != 0) {
+
+		/*
+		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
+		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
+ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
+		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 */
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   ((uint8_t*)&rth->type - input->buf) - IF_HDR_SIZE);
+		return IPPROTO_DONE;
+		}
+#else
+	if (rth->segleft != 0) {
+
+		/*
+		 *  æ®ãã®ä¸­ç¶ãã¼ãæ°ã 1 ä»¥ä¸ã§ããã°ããã®ãã¼ãã¯æçµçãª
+		 *  çµç¹ãã¼ãã§ã¯ãªããæ¬å®è£
+ã§ã¯ãä¸­ç¶ãããªãã®ã§ã
+		 *  ICMP6 ã¨ã©ã¼ãè¿éãã¦å¦çãçµäºããã
+		 */
+		icmp6_error(input, ICMP6_PARAM_PROB,
+		                   ICMP6_PARAMPROB_HEADER,
+		                   ((uint8_t*)&rth->type - input->buf) - IF_HDR_SIZE);
+		return IPPROTO_DONE;
+		}
+#endif
+
+	*nextp = *offp - IF_HDR_SIZE + offsetof(T_IP6_RT_HDR, next);
+	*offp += len;
+	return rth->next;
+
+buf_rel:
+	syscall(rel_net_buf(input));
+	return IPPROTO_DONE;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/scope6.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/scope6.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/scope6.c	(revision 313)
@@ -0,0 +1,186 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*	$FreeBSD: src/sys/netinet6/in6.c,v 1.21 2002/04/19 04:46:22 suz Exp $	*/
+/*	$KAME: in6.c,v 1.259 2002/01/21 11:37:50 keiichi Exp $	*/
+
+/*
+ * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. Neither the name of the project nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1991, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)in.c	8.2 (Berkeley) 11/15/93
+ */
+
+#include <string.h>
+
+#ifdef TARGET_KERNEL_ASP
+
+#include <kernel.h>
+#include <sil.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include <s_services.h>
+#include <t_services.h>
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+#include <netinet6/in6.h>
+#include <netinet6/in6_var.h>
+
+#ifdef _IP6_CFG
+
+/*
+ *  in6_addrscope -- ã¢ãã¬ã¹ã®ã¹ã³ã¼ã ID ãè¿ãã
+ */
+
+uint_t
+in6_addrscope (const T_IN6_ADDR *addr)
+{
+	uint_t scope;
+
+	if (addr->s6_addr8[0] == 0xfe) {
+		if      ((addr->s6_addr8[1] & 0xc0) == 0x80)
+			return IPV6_ADDR_SCOPE_LINKLOCAL;
+		else if ((addr->s6_addr8[1] & 0xc0) == 0xc0)
+			return IPV6_ADDR_SCOPE_SITELOCAL;
+		else
+			return IPV6_ADDR_SCOPE_GLOBAL;
+		}
+
+	else if (addr->s6_addr8[0] == 0xff) {
+		scope = addr->s6_addr8[1] & 0x0f;
+		if (scope == IPV6_ADDR_SCOPE_NODELOCAL ||
+		    scope == IPV6_ADDR_SCOPE_SITELOCAL ||
+		    scope == IPV6_ADDR_SCOPE_SITELOCAL)
+			return scope;
+		else
+			return IPV6_ADDR_SCOPE_GLOBAL;
+		}
+
+	else if (memcmp(addr, &in6_addr_unspecified, sizeof(T_IN6_ADDR) - 1) == 0) {
+		if      (addr->s6_addr8[15] == 1)
+			return IPV6_ADDR_SCOPE_NODELOCAL;
+		else if (addr->s6_addr8[15] == 0)
+			return IPV6_ADDR_SCOPE_LINKLOCAL;
+		}
+
+	return IPV6_ADDR_SCOPE_GLOBAL;
+	}
+
+#endif /* of #ifdef _IP6_CFG */
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_input.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_input.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_input.c	(revision 313)
@@ -0,0 +1,136 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ *  udp_reply_no_port -- éä¿¡å
+ã«ãã¼ããå®ç¾©ããã¦ããªããã¨ãéç¥ããã
+ */
+
+void
+UDP_REPLY_NO_PORT (T_NET_BUF *input, uint_t off)
+{
+	T_UDP_HDR	*udph;
+
+	udph = (T_UDP_HDR *)(input->buf + off);
+
+#if defined(_IP4_CFG)
+
+	if (GET_IP_VER(input)==IPV6_VERSION) {
+
+		/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã¯ ICMP ã¨ã©ã¼ãéç¥ããªãã*/
+		if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) {
+			syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
+
+			/* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/
+			icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
+			}
+		else
+			syscall(rel_net_buf(input));
+		}
+	else /*if (GET_IP_VER(input)==IPV4_VERSION)*/ {
+
+		/* ã­ã¼ã«ã« IP ã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã®ã¿ ICMP ã¨ã©ã¼ãéç¥ããã*/
+		if (ntohl(GET_IP4_HDR(input)->dst) == IF_GET_IFNET()->in4_ifaddr.addr) {
+			syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
+
+			icmp_error(ICMP4_UNREACH_PORT, input);
+			/* icmp_error ã§ã¯ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããªãã®ã§ä¸ã¸æããã*/
+			}
+		syscall(rel_net_buf(input));
+		}
+
+#else	/* of #if defined(_IP4_CFG) */
+
+	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
+
+	/* ãã«ãã­ã£ã¹ãã¢ãã¬ã¹ã«å±ãããã¼ã¿ã°ã©ã ã¯ ICMP ã¨ã©ã¼ãéç¥ããªãã*/
+	if (!IN6_IS_ADDR_MULTICAST(&GET_IP6_HDR(input)->dst)) {
+		syslog(LOG_INFO, "[UDP] unexp port: %d.", ntohs(udph->dport));
+
+		/* icmp6_error ã§ããããã¯ã¼ã¯ãããã¡ input ãè¿å´ããã*/
+		icmp6_error(input, ICMP6_DST_UNREACH, ICMP6_DST_UNREACH_NOPORT, 0);
+		}
+	else
+		syscall(rel_net_buf(input));
+
+#endif	/* of #if defined(_IP4_CFG) */
+
+	NET_COUNT_UDP(net_count_udp.in_err_packets, 1);
+	NET_COUNT_MIB(udp_stats.udpInErrors, 1);
+	NET_COUNT_MIB(udp_stats.udpNoPorts, 1);
+	}
Index: rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_subr.c
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_subr.c	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/netinet6/udp6_subr.c	(revision 313)
@@ -0,0 +1,172 @@
+/*
+ *  TINET (UDP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ * Copyright (c) 1982, 1986, 1988, 1990, 1993, 1995
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must ceproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+/*
+ *  udp6_is_dstaddr_accept -- UDP ã®ãã¦å
+ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *
+ *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *
+ *      ã»ãã¦å
+ã¢ãã¬ã¹ããã«ãã­ã£ã¹ã
+ */
+
+static bool_t
+udp6_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *input)
+{
+	T_IP6_HDR	*ip6h;
+
+	ip6h = GET_IP6_HDR(input);
+
+	if (IN6_IS_ADDR_MULTICAST(&ip6h->dst))
+		return true;
+	else
+		return INN6_IS_DSTADDR_ACCEPT(myaddr, input);
+	}
+
+#if defined(_IP4_CFG) && defined(API_CFG_IP4MAPPED_ADDR)
+
+#ifdef DHCP_CFG
+
+/*
+ *  udpn_is_dstaddr_accept -- UDP ã®ãã¦å
+ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *
+ *    DHCP_CFG ãå®ç¾©ããã¦ããã¨ãã¯ãä»¥ä¸ã®ãã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *
+ *      ã»ãã¦å
+ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ *      ã»ã­ã¼ã«ã«ã¢ãã¬ã¹ãæªå®ç¾©
+ */
+
+static bool_t
+udpn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *input)
+{
+	T_IFNET *ifp = IF_GET_IFNET();
+
+	if        (GET_IP_VER(input)==IPV6_VERSION)
+		return udp6_is_dstaddr_accept(myaddr, input);
+	else /*if (GET_IP_VER(input)==IPV4_VERSION)*/ {
+		T_IP4_HDR	*ip4h;
+
+		ip4h = GET_IP4_HDR(input);
+
+		if (ifp->in4_ifaddr.addr == IPV4_ADDRANY    ||
+		    ntohl(ip4h->dst) == IPV4_ADDR_BROADCAST ||
+		    ntohl(ip4h->dst) == ((ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask))
+			return true;
+		else
+			return inn_is_dstaddr_accept(myaddr, input);
+		}
+	}
+
+#else	/* of #ifdef DHCP_CFG */
+
+/*
+ *  udpn_is_dstaddr_accept -- UDP ã®ãã¦å
+ã¢ãã¬ã¹ãæ­£ããããã§ãã¯ããã
+ *
+ *    ä»¥ä¸ã®å ´åããã¼ã¿ã°ã©ã ãåä¿¡ããã
+ *
+ *      ã»ãã¦å
+ã¢ãã¬ã¹ããã­ã¼ãã­ã£ã¹ã
+ */
+
+static bool_t
+udpn_is_dstaddr_accept (T_IN6_ADDR *myaddr, T_NET_BUF *input)
+{
+	T_IFNET *ifp = IF_GET_IFNET();
+
+	if        (GET_IP_VER(input) == IPV6_VERSION)
+		return udp6_is_dstaddr_accept(myaddr, input);
+	else /*if (GET_IP_VER(input) == IPV4_VERSION)*/ {
+		T_IP4_HDR	*ip4h;
+
+		ip4h = GET_IP4_HDR(input);
+
+		if (ntohl(ip4h->dst) == IPV4_ADDR_BROADCAST ||
+		    ntohl(ip4h->dst) == ((ifp->in4_ifaddr.addr & ifp->in4_ifaddr.mask) | ~ifp->in4_ifaddr.mask))
+			return true;
+		else
+			return inn_is_dstaddr_accept(myaddr, input);
+		}
+	}
+
+#endif	/* of #ifdef DHCP_CFG */
+
+#endif	/* of #if defined(_IP4_CFG) && defined(API_CFG_IP4MAPPED_ADDR) */
Index: rubycfg_asp/trunk/asp_dcre/tinet/tcpip.py
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tcpip.py	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tcpip.py	(revision 313)
@@ -0,0 +1,98 @@
+
+TINET_CDEFS = []
+TINET_COBJS = []
+TINET_KERNEL_CFG = []
+TINET_LCSRCS = []
+TINET_CFLAGS = []
+
+# ASP Kernel
+TINET_CDEFS = TINET_CDEFS + ["TARGET_KERNEL_ASP"]
+
+TINET_ROOT = "tinet"
+
+if SUPPORT_INET4:
+	if SUPPORT_INET6:
+		SUPPORT_INET4 = True
+
+if SUPPORT_INET6:
+	TINET_CDEFS = TINET_CDEFS + ["SUPPORT_INET6"]
+
+if SUPPORT_INET4:
+	TINET_CDEFS = TINET_CDEFS + ["SUPPORT_INET4"]
+
+if API_CFG_IP4MAPPED_ADDR:
+	TINET_CDEFS = TINET_CDEFS + ["API_CFG_IP4MAPPED_ADDR"]
+
+# general communication functions
+TINET_DIR = [TINET_ROOT + '/net', TINET_ROOT + '/netinet', TINET_ROOT + '/netinet6']
+TINET_COBJS = TINET_COBJS + ['net_buf.c', 'net_count.c', 'net_subr.c', 'net_timer.c', 'if.c', 'in_subr.c', 'tinet_cfg.c', 'route_cfg.c']
+
+#  IPv6
+TINET_COBJS = TINET_COBJS + ['in6.c', 'in6_ifattach.c', 'nd6_rtr.c', 'in6_subr.c', 'ip6_input.c', 'icmp6.c', 'dest6.c', 'route6.c', 'frag6.c', 'ah_input.c', 'esp_input.c', 'nd6.c nd6_nbr.c', 'ip6_output.c', 'scope6.c']
+TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/netinet6/ip6.cfg']
+
+#  IPv4
+TINET_COBJS = TINET_COBJS + ['ip_input.c', 'ip_output.c', 'ip_icmp.c', 'in4_subr.c']
+TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/netinet/ip.cfg']
+
+# loop back
+if NET_IF == "loop":
+	TINET_COBJS = TINET_COBJS + ['if_loop.c']
+	TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/net/if_loop.cfg']
+
+# ppp
+if NET_IF == "ppp":
+	TINET_COBJS = TINET_COBJS + ['ppp.c', 'ppp_hdlc.c', 'ppp_lcp.c', 'ppp_fsm.c', 'ppp_auth.c', 'ppp_upap.c']
+	TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/net/ppp.cfg']
+	TINET_CDEFS = TINET_CDEFS + ['SUPPORT_PPP']
+	# IPv6
+	TINET_COBJS = TINET_COBJS + ['ppp_ipv6cp.c']
+	# IPv4
+	TINET_COBJS = TINET_COBJS + ['ppp_ipvcp.c']
+
+	if PPP_CFG_MODEM:
+		TINET_COBJS = TINET_COBJS + ['ppp_modem.c']
+		TINET_CDEFS = TINET_CDEFS + ['PPP_CFG_MODEM']
+
+common.Source(proj_rel_dir + SRCDIR + "/target/" + TARGET + "/tinet_target.py")
+
+# ethernet
+if NET_IF == "ether":
+	TINET_COBJS = TINET_COBJS + ['ethernet.c', 'if6_ether.c', 'if_ether.c']
+	TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/net/ethernet.cfg', TINET_ROOT + '/netinet/if_ether.cfg']
+	TINET_CDEFS = TINET_CDEFS + ['SUPPORT_ETHER']
+	common.Source(proj_rel_dir + SRCDIR + '/tinet/netdev/' + NET_DEV + '/net_dev.py')
+
+# TCP
+if SUPPORT_TCP:
+	TINET_COBJS = TINET_COBJS + ['tcp_input.c', 'tcp_output.c', 'tcp_timer.c', 'tcp_subr.c', 'tcp_subr_cs.c', 'tcp_subr_ncs.c']
+	TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/netinet/tcp.cfg']
+	TINET_CDEFS = TINET_CDEFS + ['SUPPORT_TCP']
+
+# UDP
+if SUPPORT_UDP:
+	TINET_COBJS = TINET_COBJS + ['udp_input.c', 'udp_output.c', 'udp_subr.c']
+	TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/netinet/udp.cfg']
+	TINET_CDEFS = TINET_CDEFS + ['SUPPORT_UDP']
+
+if SUPPORT_TCP:
+	TINET_LCSRCS = TINET_LCSRCS + ['tcp_usrreq.c']
+
+if SUPPORT_UDP:
+	TINET_LCSRCS = TINET_LCSRCS + ['udp_usrreq.c', 'udp_usrreq_nblk.c']
+
+TINET_CFG_OUT = ['tinet_cfg.c', 'tinet_cfg.h']
+TINET_KERNEL_CFG = TINET_KERNEL_CFG + [TINET_ROOT + '/tinet_asp.cfg', TINET_ROOT + '/net/net_asp.cfg']
+
+TCPIP_API_TABLE = TINET_ROOT + "/tcpip_api.def"
+CFG1_TCPIP_DEF_TABLE = TINET_ROOT + "/tcpip_sym.def"
+CFG_TCPIP_KERNEL_TRB = TINET_ROOT + "/tinet.trb"
+
+# Common compile options
+CDEFS = CDEFS + TINET_CDEFS
+INCLUDES = INCLUDES + [TINET_ROOT]
+CFG1_DEF_TABLES = [CFG1_TCPIP_DEF_TABLE] + CFG1_DEF_TABLES
+
+TINET_CFLAGS = TINET_CFLAGS + ['-fno-strict-aliasing']
+
+CLEAN_FILES = CLEAN_FILES + TINET_CFG_OUT
Index: rubycfg_asp/trunk/asp_dcre/tinet/tcpip_api.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tcpip_api.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tcpip_api.def	(revision 313)
@@ -0,0 +1,12 @@
+TCP_CRE_REP  #tcp4_repid* { .tcp4_repatr { &ipv4addr &portno } }  
+TCP6_CRE_REP #tcp6_repid* { .tcp6_repatr { &ipv6addr &portno } }  
+TCP_CRE_CEP  #tcp4_cepid* { .tcp4_cepatr &sbuf &sbufsz &rbuf &rbufsz &callback }  
+TCP6_CRE_CEP #tcp6_cepid* { .tcp6_cepatr &sbuf &sbufsz &rbuf &rbufsz &callback }  
+UDP_CRE_CEP  #udp4_cepid* { .udp4_cepatr { &ipv4addr &portno } &callback }  
+UDP6_CRE_CEP #udp6_cepid* { .udp6_cepatr { &ipv6addr &portno } &callback }  
+VRID_TCP_REP  #vrid_tcp4_repid*  
+VRID_TCP_CEP  #vrid_tcp4_cepid*  
+VRID_TCP6_REP #vrid_tcp6_repid*  
+VRID_TCP6_CEP #vrid_tcp6_cepid*  
+VRID_UDP_CEP  #vrid_udp4_cepid*  
+VRID_UDP6_CEP #vrid_udp6_cepid*  
Index: rubycfg_asp/trunk/asp_dcre/tinet/tcpip_sym.def
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tcpip_sym.def	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tcpip_sym.def	(revision 313)
@@ -0,0 +1,81 @@
+TA_HLNG
+TA_TFIFO
+TA_WSGL
+NUM_IPV4ADDR_STR_BUFF
+NUM_IPV4ADDR_STR_BUFF
+NUM_IPV6ADDR_STR_BUFF
+NUM_MACADDR_STR_BUFF
+NUM_MACADDR_STR_BUFF
+TMO_IP4_FRAG_GET_NET_BUF
+TMO_IP6_FRAG_GET_NET_BUF
+TMO_PPP_GET_NET_BUF
+TMO_ARP_GET_NET_BUF
+TMO_TCP_GET_NET_BUF
+TMO_TCP_OUTPUT
+TMO_UDP_OUTPUT
+TMO_ICMP_OUTPUT
+TMO_ND6_NS_OUTPUT
+TMO_ND6_NA_OUTPUT
+TMO_ND6_RS_OUTPUT
+TMO_ARP_OUTPUT
+TMO_ND6_RTR_SOL_DELAY
+TMO_ND6_RTR_SOL_INTERVAL
+TMO_IN_REDIRECT
+TCP_OUT_TASK_STACK_SIZE
+UDP_OUT_TASK_STACK_SIZE
+PPP_INPUT_STACK_SIZE
+PPP_OUTPUT_STACK_SIZE
+ETHER_INPUT_STACK_SIZE
+ETHER_OUTPUT_STACK_SIZE
+LOOP_INPUT_STACK_SIZE
+LOOP_OUTPUT_STACK_SIZE
+NET_TIMER_STACK_SIZE
+TCP_OUT_TASK_PRIORITY
+UDP_OUT_TASK_PRIORITY
+PPP_INPUT_PRIORITY
+PPP_OUTPUT_PRIORITY
+ETHER_INPUT_PRIORITY
+ETHER_OUTPUT_PRIORITY
+LOOP_INPUT_PRIORITY
+LOOP_OUTPUT_PRIORITY
+NET_TIMER_PRIORITY
+NUM_DTQ_UDP_RCVQ
+NUM_DTQ_UDP_OUTPUT
+NUM_DTQ_PPP_OUTPUT
+NUM_DTQ_ETHER_OUTPUT
+NUM_DTQ_LOOP_INPUT
+NUM_DTQ_LOOP_OUTPUT
+TCP_REP_FLG_DYNAMIC
+TCP_REP_FLG_VALID
+TCP_CEP_FLG_IPV4
+TCP_CEP_FLG_ACK_NOW
+TCP_CEP_FLG_DEL_ACK
+TCP_CEP_FLG_SENT_FIN
+TCP_CEP_FLG_NEED_SYN
+TCP_CEP_FLG_NEED_FIN
+TCP_CEP_FLG_FORCE
+TCP_CEP_FLG_NO_PUSH
+TCP_CEP_FLG_NO_DELAY
+TCP_CEP_FLG_FORCE_CLEAR
+TCP_CEP_FLG_POST_OUTPUT
+TCP_CEP_FLG_RESERVE_OUTPUT
+TCP_CEP_FLG_DYNAMIC
+TCP_CEP_FLG_VALID
+TCP_CEP_FLG_CLOSE_AFTER_OUTPUT
+TCP_CEP_FLG_RESTORE_NEXT_OUTPUT
+TCP_CEP_FLG_WBCS_NBUF_REQ
+TCP_CEP_FLG_WBCS_MASK
+TCP_CEP_FLG_WBCS_FREE
+TCP_CEP_FLG_WBCS_WOPEN_PEND
+TCP_CEP_FLG_WBCS_NBUF_PEND
+TCP_CEP_FLG_WBCS_NBUF_RSVD
+TCP_CEP_FLG_WBCS_NBUF_READY
+TCP_CEP_FLG_WBCS_SEND_READY
+TCP_CEP_FLG_WBCS_SENT
+TCP_CEP_FLG_WBCS_ACKED
+TCP_CEP_FLG_NOT_CLEAR
+TCP_CEP_EVT_ESTABLISHED
+TCP_CEP_EVT_CLOSED
+TCP_CEP_EVT_SWBUF_READY
+TCP_CEP_EVT_RWBUF_READY
+TCP_CEP_EVT_ALL
Index: rubycfg_asp/trunk/asp_dcre/tinet/tinet.trb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tinet.trb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tinet.trb	(revision 313)
@@ -0,0 +1,607 @@
+# ======================================================================
+# 
+#   TINET (TCP/IP Protocol Stack)
+# 
+#   Copyright (C) 2001-2007 by Dep. of Computer Science and Engineering
+#                    Tomakomai National College of Technology, JAPAN
+#  
+#   ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#   ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#   å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#   (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#       æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#       ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#   (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#       è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#       ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#       ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#       ã¨ï¼
+#     (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#         ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#   (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#       å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#       ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#       ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#       å
+è²¬ãããã¨ï¼
+#  
+#   æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#   ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#   ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#   ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#   ã®è²¬ä»»ãè² ããªãï¼
+# 
+#   @(#) $Id: tinet.tf 824 2015-12-22 10:05:13Z coas-nagasima $
+#  
+# =====================================================================
+
+# =====================================================================
+# tinet_cfg.h ã®çæ
+# =====================================================================
+
+$tinetCfgH = GenFile.new("tinet_cfg.h")
+$tinetCfgH.add("/* tinet_cfg.h */")
+$tinetCfgH.add("#ifndef _TINET_CFG_H_")
+$tinetCfgH.add("#define _TINET_CFG_H_")
+$tinetCfgH.add()
+
+$tinetCfgH.add("#define TNUM_TCP6_REPID	#{$cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size}")
+$tinetCfgH.add("#define TNUM_TCP4_REPID	#{$cfgData[:TCP_CRE_REP].size + $cfgData[:VRID_TCP_REP].size}")
+$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}")
+$tinetCfgH.add()
+
+$tinetCfgH.add("#define TNUM_TCP6_CEPID	#{$cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}")
+$tinetCfgH.add("#define TNUM_TCP4_CEPID	#{$cfgData[:TCP_CRE_CEP].size + $cfgData[:VRID_TCP_CEP].size}")
+$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}")
+$tinetCfgH.add()
+
+$tinetCfgH.add("#define TNUM_UDP6_CEPID	#{$cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size}")
+$tinetCfgH.add("#define TNUM_UDP4_CEPID	#{$cfgData[:UDP_CRE_CEP].size + $cfgData[:VRID_UDP_CEP].size}")
+$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}")
+$tinetCfgH.add()
+
+$cfgData[:TCP6_CRE_REP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:tcp6_repid]}	#{params[:tcp6_repid].val}")
+end
+$cfgData[:VRID_TCP6_REP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:vrid_tcp6_repid]}	#{params[:vrid_tcp6_repid].val + $cfgData[:TCP6_CRE_REP].size}")
+end
+$cfgData[:TCP_CRE_REP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:tcp4_repid]}	#{params[:tcp4_repid].val + $cfgData[:TCP6_CRE_REP].size + $cfgData[:VRID_TCP6_REP].size}")
+end
+$cfgData[:VRID_TCP_REP].each do |key, params|
+	$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}")
+end
+$tinetCfgH.add()
+
+$cfgData[:TCP6_CRE_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:tcp6_cepid]}	#{params[:tcp6_cepid].val}")
+end
+$cfgData[:VRID_TCP6_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:vrid_tcp6_cepid]}	#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}")
+end
+$cfgData[:TCP_CRE_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:tcp4_cepid]}	#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}")
+end
+$cfgData[:VRID_TCP_CEP].each do |key, params|
+	$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}")
+end
+$tinetCfgH.add()
+
+$cfgData[:UDP6_CRE_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:udp6_cepid]}	#{params[:udp6_cepid].val}")
+end
+$cfgData[:VRID_UDP6_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:vrid_udp6_cepid]}	#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}")
+end
+$cfgData[:UDP_CRE_CEP].each do |key, params|
+	$tinetCfgH.add("#define #{params[:udp4_cepid]}	#{params[:udp4_cepid].val + $cfgData[:UDP6_CRE_CEP].size + $cfgData[:VRID_UDP6_CEP].size}")
+end
+$cfgData[:VRID_UDP_CEP].each do |key, params|
+	$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}")
+end
+$tinetCfgH.add()
+$tinetCfgH.add("#endif /* _TINET_CFG_H_ */")
+
+# =====================================================================
+# tinet_cfg.c ã®çæ
+# =====================================================================
+
+$tinetCfgC = GenFile.new("tinet_cfg.c")
+$tinetCfgC.add(<<EOS)
+/* tinet_cfg.c */
+
+#include <kernel.h>
+#include <sil.h>
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+#include <tinet_defs.h>
+#include <tinet_config.h>
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/net.h>
+#include <net/net_buf.h>
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/in_itron.h>
+#include <netinet/ip.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp_var.h>
+
+EOS
+# 
+#  ã¤ã³ã¯ã«ã¼ããã£ã¬ã¯ãã£ãï¼#includeï¼
+# 
+$tinetCfgC.add()
+$tinetCfgC.add("/*")
+$tinetCfgC.add(" *  Include Directives (#include)")
+$tinetCfgC.add(" */")
+$tinetCfgC.add()
+$includeFiles.each do |file|
+  $tinetCfgC.add("#include #{file}")
+end
+
+$tinetCfgC.add()
+$tinetCfgC.add("const ID tmax_tcp_repid = (TMIN_TCP_REPID + TNUM_TCP6_REPID + TNUM_TCP4_REPID - 1);")
+
+$tinetCfgC.add()
+$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
+$tinetCfgC.add("const ID tmax_tcp6_repid = (TMIN_TCP6_REPID + TNUM_TCP6_REPID - 1);")
+$tinetCfgC.add("const ID tmax_tcp4_repid = (TMIN_TCP4_REPID + TNUM_TCP4_REPID - 1);")
+$tinetCfgC.add("#endif")
+
+$tinetCfgC.add()
+$tinetCfgC.add("const ID tmax_tcp_cepid = (TMIN_TCP_CEPID + TNUM_TCP6_CEPID + TNUM_TCP4_CEPID - 1);")
+
+$tinetCfgC.add()
+$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
+$tinetCfgC.add("const ID tmax_tcp6_cepid = (TMIN_TCP_CEPID + TNUM_TCP6_CEPID - 1);")
+$tinetCfgC.add("const ID tmax_tcp4_cepid = (TMIN_TCP_CEPID + TNUM_TCP4_CEPID - 1);")
+$tinetCfgC.add("#endif")
+
+$tinetCfgC.add()
+$tinetCfgC.add("const ID tmax_udp_cepid = (TMIN_UDP_CEPID + TNUM_UDP6_CEPID + TNUM_UDP4_CEPID - 1);")
+
+$tinetCfgC.add()
+$tinetCfgC.add("#if defined(SUPPORT_INET6) && defined(SUPPORT_INET4)")
+$tinetCfgC.add("const ID tmax_udp6_cepid = (TMIN_UDP6_CEPID + TNUM_UDP6_CEPID - 1);")
+$tinetCfgC.add("const ID tmax_udp4_cepid = (TMIN_UDP4_CEPID + TNUM_UDP4_CEPID - 1);")
+$tinetCfgC.add("#endif")
+
+#	// TCP (IPv6) åä»å£
+$sem_tcp_rep_lock_id = 0
+if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
+	$tinetCfgC.add()
+	$tinetCfgC.add("T_TCP6_REP tcp6_rep[TNUM_TCP6_REPID] = {")
+	$cfgData[:TCP6_CRE_REP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:tcp6_repatr]},")
+			$tinetCfgC.add("\t\t{ #{params[:ipv6addr]}, #{params[:portno]} },")
+		$tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
+			$tinetCfgC.add("\t\tTCP_REP_FLG_VALID,")
+			$tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
+		$tinetCfgC.add("#endif")
+			$tinetCfgC.add("\t\t},")
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$cfgData[:VRID_TCP6_REP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t{ IPV6_ADDRANY, TCP_PORTANY },")
+	$tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
+			$tinetCfgC.add("\t\tTCP_REP_FLG_DYNAMIC,")
+			$tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
+	$tinetCfgC.add("#endif")
+			$tinetCfgC.add("\t\t},")
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$tinetCfgC.add("\t};")
+end
+
+#	// TCP (IPv4) åä»å£
+if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0
+	$tinetCfgC.add()
+	$tinetCfgC.add("T_TCP4_REP tcp4_rep[TNUM_TCP4_REPID] = {")
+	$cfgData[:TCP_CRE_REP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:tcp4_repatr]},")
+			$tinetCfgC.add("\t\t{ #{params[:ipv4addr]}, #{params[:portno]} },")
+	$tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
+			$tinetCfgC.add("\t\tTCP_REP_FLG_VALID,")
+			$tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
+	$tinetCfgC.add("#endif")
+			$tinetCfgC.add("\t\t},")
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$cfgData[:VRID_TCP_REP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t{ IPV4_ADDRANY, TCP_PORTANY },")
+	$tinetCfgC.add("#if defined(TCP_CFG_EXTENTIONS)")
+			$tinetCfgC.add("\t\tTCP_REP_FLG_DYNAMIC,")
+			$tinetCfgC.add("\t\tSEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id},")
+	$tinetCfgC.add("#endif")
+			$tinetCfgC.add("\t\t},")
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$tinetCfgC.add("\t};")
+end
+
+#	// TCP éä¿¡ç«¯ç¹
+if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0 || $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0
+	$tinetCfgC.add()
+	$tinetCfgC.add("T_TCP_CEP tcp_cep[TNUM_TCP6_CEPID + TNUM_TCP4_CEPID] = {")
+	$cfgData[:TCP6_CRE_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:tcp6_cepatr]},")
+			$tinetCfgC.add("\t\t(void*)#{params[:sbuf]},")
+			$tinetCfgC.add("\t\t#{params[:sbufsz]},")
+			$tinetCfgC.add("\t\t(void*)#{params[:rbuf]},")
+			$tinetCfgC.add("\t\t#{params[:rbufsz]},")
+			$tinetCfgC.add("\t\t(t_tcp_callback)(FP)#{params[:callback]},")
+			$tinetCfgC.add("\t\tTCP_CEP_FLG_VALID,")
+			$tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:tcp6_cepid].val},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:tcp6_cepid].val},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:tcp6_cepid].val},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:tcp6_cepid].val},")
+			$tinetCfgC.add("\t\t},")
+	end
+	$cfgData[:VRID_TCP6_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(void*)NULL,")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(void*)NULL,")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(t_tcp_callback)(FP)NULL,")
+			$tinetCfgC.add("\t\tTCP_CEP_FLG_DYNAMIC,")
+			$tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\t},")
+	end
+	$cfgData[:TCP_CRE_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:tcp4_cepatr]},")
+			$tinetCfgC.add("\t\t(void*)#{params[:sbuf]},")
+			$tinetCfgC.add("\t\t#{params[:sbufsz]},")
+			$tinetCfgC.add("\t\t(void*)#{params[:rbuf]},")
+			$tinetCfgC.add("\t\t#{params[:rbufsz]},")
+			$tinetCfgC.add("\t\t(t_tcp_callback)(FP)#{params[:callback]},")
+			$tinetCfgC.add("\t\tTCP_CEP_FLG_VALID|TCP_CEP_FLG_IPV4,")
+			$tinetCfgC.add("\t\tSEM_TCP_CEP_LOCK#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_EST#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_SND#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
+			$tinetCfgC.add("\t\tFLG_TCP_CEP_RCV#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size},")
+			$tinetCfgC.add("\t\t},")
+	end
+	$cfgData[:VRID_TCP_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(void*)NULL,")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(void*)NULL,")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t(t_tcp_callback)(FP)NULL,")
+			$tinetCfgC.add("\t\tTCP_CEP_FLG_DYNAMIC|TCP_CEP_FLG_IPV4,")
+			$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},")
+			$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},")
+			$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},")
+			$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},")
+			$tinetCfgC.add("\t\t},")
+	end
+		$tinetCfgC.add("\t};")
+end
+
+#	// UDP (IPv6) éä¿¡ç«¯ç¹
+if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
+	$tinetCfgC.add()
+	$tinetCfgC.add("T_UDP6_CEP udp6_cep[TNUM_UDP6_CEPID] = {")
+	$cfgData[:UDP6_CRE_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:udp6_cepatr]},")
+			$tinetCfgC.add("\t\t{ #{params[:ipv6addr]}, #{params[:portno]} },")
+			$tinetCfgC.add("\t\t(t_udp_callback)(FP)#{params[:callback]},")
+			$tinetCfgC.add("\t\tUDP_CEP_FLG_VALID,")
+			$tinetCfgC.add("\t\tSEM_UDP6_CEP_LOCK#{params[:udp6_cepid].val},")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tDTQ_UDP6_RCVQ#{params[:udp6_cepid].val},")
+			$tinetCfgC.add("\t\t},")
+	end
+	$cfgData[:VRID_UDP6_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t{ IPV6_ADDRANY, UDP_PORTANY },")
+			$tinetCfgC.add("\t\t(t_udp_callback)(FP)NULL,")
+			$tinetCfgC.add("\t\tUDP_CEP_FLG_DYNAMIC,")
+			$tinetCfgC.add("\t\tSEM_UDP6_CEP_LOCK#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tDTQ_UDP6_RCVQ#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size},")
+			$tinetCfgC.add("\t\t},")
+	end
+		$tinetCfgC.add("\t};")
+end
+
+#	// UDP (IPv4) éä¿¡ç«¯ç¹
+if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0
+	$tinetCfgC.add()
+	$tinetCfgC.add("T_UDP4_CEP udp4_cep[TNUM_UDP4_CEPID] = {")
+	$cfgData[:UDP_CRE_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t#{params[:udp4_cepatr]},")
+			$tinetCfgC.add("\t\t{ #{params[:ipv4addr]}, #{params[:portno]} },")
+			$tinetCfgC.add("\t\t(t_udp_callback)(FP)#{params[:callback]},")
+			$tinetCfgC.add("\t\tUDP_CEP_FLG_VALID,")
+			$tinetCfgC.add("\t\tSEM_UDP4_CEP_LOCK#{params[:udp4_cepid].val},")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tDTQ_UDP4_RCVQ#{params[:udp4_cepid].val},")
+			$tinetCfgC.add("\t\t},")
+	end
+	$cfgData[:VRID_UDP_CEP].each do |key, params|
+		$tinetCfgC.add("\t{")
+			$tinetCfgC.add("\t\t0,")
+			$tinetCfgC.add("\t\t{ IPV4_ADDRANY, UDP_PORTANY },")
+			$tinetCfgC.add("\t\t(t_udp_callback)(FP)NULL,")
+			$tinetCfgC.add("\t\tUDP_CEP_FLG_DYNAMIC,")
+			$tinetCfgC.add("\t\tSEM_UDP4_CEP_LOCK#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size},")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tTA_NULL,")
+			$tinetCfgC.add("\t\tDTQ_UDP4_RCVQ#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size},")
+			$tinetCfgC.add("\t\t},")
+	end
+		$tinetCfgC.add("\t};")
+end
+
+# =====================================================================
+# tinet_kern.cfg ã®çæ
+# =====================================================================
+
+#	// TCP (IPv6) åä»å£
+$sem_tcp_rep_lock_id = 0
+if $cfgData[:TCP6_CRE_REP].size > 0 || $cfgData[:VRID_TCP6_REP].size > 0
+	$cfgData[:TCP6_CRE_REP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$cfgData[:VRID_TCP6_REP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+end
+
+#	// TCP (IPv4) åä»å£
+if $cfgData[:TCP_CRE_REP].size > 0 || $cfgData[:VRID_TCP_REP].size > 0
+	$cfgData[:TCP_CRE_REP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+	$cfgData[:VRID_TCP_REP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_REP_LOCK#{$sem_tcp_rep_lock_id}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		$sem_tcp_rep_lock_id = $sem_tcp_rep_lock_id + 1
+	end
+end
+
+#	// TCP (IPv6) éä¿¡ç«¯ç¹
+if $cfgData[:TCP6_CRE_CEP].size > 0 || $cfgData[:VRID_TCP6_CEP].size > 0
+	$cfgData[:TCP6_CRE_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:tcp6_cepid].val}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:tcp6_cepid].val}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:tcp6_cepid].val}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:tcp6_cepid].val}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = 0
+		$cfgFileInfo.push(cfgInfo)
+	end
+	$cfgData[:VRID_TCP6_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:vrid_tcp6_cepid].val + $cfgData[:TCP6_CRE_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = 0
+		$cfgFileInfo.push(cfgInfo)
+	end
+end
+
+#	// TCP (IPv4) éä¿¡ç«¯ç¹
+if $cfgData[:TCP_CRE_CEP].size > 0 || $cfgData[:VRID_TCP_CEP].size > 0
+	$cfgData[:TCP_CRE_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_TCP_CEP_LOCK#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_EST#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_SND#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		cfgInfo["flgid"] = "FLG_TCP_CEP_RCV#{params[:tcp4_cepid].val + $cfgData[:TCP6_CRE_CEP].size + $cfgData[:VRID_TCP6_CEP].size}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = 0
+		$cfgFileInfo.push(cfgInfo)
+	end
+	$cfgData[:VRID_TCP_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		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}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		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}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_CLOSED, "TCP_CEP_EVT_CLOSED")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		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}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = NumStr.new($TCP_CEP_EVT_SWBUF_READY, "TCP_CEP_EVT_SWBUF_READY")
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_FLG" }
+		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}"
+		cfgInfo["flgatr"] = NumStr.new($TA_TFIFO | $TA_WSGL, "TA_TFIFO|TA_WSGL")
+		cfgInfo["iflgptn"] = 0
+		$cfgFileInfo.push(cfgInfo)
+	end
+end
+
+#	// UDP (IPv6) éä¿¡ç«¯ç¹
+if $cfgData[:UDP6_CRE_CEP].size > 0 || $cfgData[:VRID_UDP6_CEP].size > 0
+	$cfgData[:UDP6_CRE_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_UDP6_CEP_LOCK#{params[:udp6_cepid].val}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_DTQ" }
+		cfgInfo["dtqid"] = "DTQ_UDP6_RCVQ#{params[:udp6_cepid].val}"
+		cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
+		cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
+		#cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
+		$cfgFileInfo.push(cfgInfo)
+	end
+	$cfgData[:VRID_UDP6_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_UDP6_CEP_LOCK#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_DTQ" }
+		cfgInfo["dtqid"] = "DTQ_UDP6_RCVQ#{params[:vrid_udp6_cepid].val + $cfgData[:UDP6_CRE_CEP].size}"
+		cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
+		cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
+		#cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
+		$cfgFileInfo.push(cfgInfo)
+	end
+end
+
+#	// UDP (IPv4) éä¿¡ç«¯ç¹
+if $cfgData[:UDP_CRE_CEP].size > 0 || $cfgData[:VRID_UDP_CEP].size > 0
+	$cfgData[:UDP_CRE_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_UDP4_CEP_LOCK#{params[:udp4_cepid].val}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_DTQ" }
+		cfgInfo["dtqid"] = "DTQ_UDP4_RCVQ#{params[:udp4_cepid].val}"
+		cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
+		cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
+		#cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
+		$cfgFileInfo.push(cfgInfo)
+	end
+	$cfgData[:VRID_UDP_CEP].each do |key, params|
+		cfgInfo = { APINAME: "CRE_SEM" }
+		cfgInfo["semid"] = "SEM_UDP4_CEP_LOCK#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size}"
+		cfgInfo["sematr"] = NumStr.new($TA_TPRI, "TA_TPRI")
+		cfgInfo["isemcnt"] = 1
+		cfgInfo["maxsem"] = 1
+		$cfgFileInfo.push(cfgInfo)
+
+		cfgInfo = { APINAME: "CRE_DTQ" }
+		cfgInfo["dtqid"] = "DTQ_UDP4_RCVQ#{params[:vrid_udp4_cepid].val + $cfgData[:UDP_CRE_CEP].size}"
+		cfgInfo["dtqatr"] = NumStr.new($TA_TFIFO, "TA_TFIFO")
+		cfgInfo["dtqcnt"] = NumStr.new($NUM_DTQ_UDP_RCVQ, "NUM_DTQ_UDP_RCVQ")
+		#cfgInfo["dtqmb"] = NumStr.new($NULL, "NULL")
+		$cfgFileInfo.push(cfgInfo)
+	end
+end
Index: rubycfg_asp/trunk/asp_dcre/tinet/tinet_asp.cfg
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tinet_asp.cfg	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tinet_asp.cfg	(revision 313)
@@ -0,0 +1,90 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  TINET ã®æ¨æºã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "target_sil.h"
+
+#include <itron.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <net/if.h>
+#include <net/if_ppp.h>
+#include <net/if_loop.h>
+#include <net/ethernet.h>
+#include <net/if_arp.h>
+#include <net/net.h>
+#include <net/net_endian.h>
+#include <net/net_buf.h>
+#include <net/net_timer.h>
+#include <net/ppp_var.h>
+#include <net/ether_var.h>
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+#include <netinet/ip.h>
+#include <netinet/ip_var.h>
+#include <netinet/tcp.h>
+#include <netinet/tcp_var.h>
+#include <netinet/udp_var.h>
+
+/*
+ *  TINET ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨ã®ã«ã¼ãã«ãªãã¸ã§ã¯ãã®æå®
+ */
+
+INCLUDE("nic_asp.cfg");
+
+INCLUDE("net/net_asp.cfg");
+INCLUDE("net/ethernet.cfg");
+
+INCLUDE("netinet/if_ether.cfg");
+INCLUDE("netinet/ip.cfg");
+INCLUDE("netinet/tcp.cfg");
+INCLUDE("netinet/udp.cfg");
+INCLUDE("netinet6/ip6.cfg");
Index: rubycfg_asp/trunk/asp_dcre/tinet/tinet_config.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tinet_config.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tinet_config.h	(revision 313)
@@ -0,0 +1,518 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_CONFIG_H_
+#define _TINET_CONFIG_H_
+
+/*
+ *  TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+/* TCPã®ååãªã¼ãã³ããµãã¼ããããTINET 1.7 ä»¥éä¸è¦ã«ãªã£ããã*/
+
+#if 0
+#define TCP_CFG_PASSIVE_OPEN
+#endif
+
+/* TCPã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/
+
+#define TCP_CFG_NON_BLOCKING
+
+/* UDPã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½ãçµè¾¼ãã*/
+
+#define UDP_CFG_NON_BLOCKING
+
+/*
+ *  NICãã·ã¹ãã ãCPUãå¿ç¨ãã­ã°ã©ã ã«
+ *  ä¾å­ããå®ç¾©ãã¡ã¤ã«ãã¤ã³ã¯ã«ã¼ãããã
+ */
+
+#if defined(TARGET_KERNEL_JSP)
+
+#ifdef SUPPORT_ETHER
+
+#include "tinet_nic_config.h"
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#include "tinet_sys_config.h"
+#include "tinet_cpu_config.h"
+#include "tinet_app_config.h"
+
+#elif defined(TARGET_KERNEL_ASP)
+
+#ifdef SUPPORT_ETHER
+
+#include "tinet_nic_config.h"
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#include "tinet_target_config.h"
+#include "tinet_app_config.h"
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) */
+
+/*
+ *  TINET 1.1 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#ifdef  TMO_ICMP4_OUTPUT
+#define TMO_ICMP_OUTPUT	TMO_ICMP4_OUTPUT
+#endif
+
+/*
+ *  TINET 1.2 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+#ifdef  NUM_MPF_NET_BUF_4096
+#define NUM_MPF_NET_BUF_REASSM	NUM_MPF_NET_BUF_4096
+#endif
+
+/*
+ *  TINET 1.3 ã¨ã®äºææ§ã®ããã®å®ç¾©
+
+#ifdef  NUM_MPF_NET_BUF_REASSM
+#define NUM_MPF_NET_BUF4_REASSM	NUM_MPF_NET_BUF_REASSM
+#endif
+ */
+
+/*
+ *  TINET 1.5 ã¨ã®äºææ§ã®ããã®å®ç¾©
+ */
+
+/* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°ã®å®ç¾© */
+
+#define NUM_IN6_ROUTE_ENTRY			\
+	(NUM_IN6_STATIC_ROUTE_ENTRY + NUM_IN6_REDIRECT_ROUTE_ENTRY)
+					/* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°	*/
+
+#define NUM_IN4_ROUTE_ENTRY		\
+	(NUM_IN4_STATIC_ROUTE_ENTRY + NUM_IN4_REDIRECT_ROUTE_ENTRY)
+					/* ã«ã¼ãã£ã³ã°è¡¨ã®ã¨ã³ããªæ°	*/
+
+#if defined(SUPPORT_INET6)
+
+#if defined(SUPPORT_INET4)
+
+#else	/* #if defined(SUPPORT_INET4) */
+
+#ifndef NUM_IN6_STATIC_ROUTE_ENTRY
+#define NUM_IN6_STATIC_ROUTE_ENTRY	NUM_STATIC_ROUTE_ENTRY
+#endif
+
+#ifndef NUM_IN6_REDIRECT_ROUTE_ENTRY
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	NUM_REDIRECT_ROUTE_ENTRY
+#endif
+
+#ifdef  NUM_ROUTE_ENTRY
+#undef  NUM_ROUTE_ENTRY
+#endif
+#define NUM_ROUTE_ENTRY			NUM_IN6_ROUTE_ENTRY
+
+#endif	/* #if defined(SUPPORT_INET4) */
+
+#else	/* of #if defined(SUPPORT_INET6) */
+
+#if defined(SUPPORT_INET4)
+
+#ifndef NUM_IN4_STATIC_ROUTE_ENTRY
+#define NUM_IN4_STATIC_ROUTE_ENTRY	NUM_STATIC_ROUTE_ENTRY
+#endif
+
+#ifndef NUM_IN4_REDIRECT_ROUTE_ENTRY
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	NUM_REDIRECT_ROUTE_ENTRY
+#endif
+
+#ifdef  NUM_ROUTE_ENTRY
+#undef  NUM_ROUTE_ENTRY
+#endif
+#define NUM_ROUTE_ENTRY			NUM_IN4_ROUTE_ENTRY
+
+#endif	/* of #if defined(SUPPORT_INET4) */
+
+#endif	/* of #if defined(SUPPORT_INET6) */
+
+/* DHCP ã®å®ç¾© */
+
+#ifdef  DHCP4_CLI_CFG
+#define DHCP_CFG
+#endif
+
+/*
+ *  IPv6/IPv4 ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  æå®ããããã¯ã­ã«å¯¾ãã TINET å
+é¨ã®ãã¯ã­ã®å®ç¾©
+ *
+ *    SUPPORT_INET6		 .   .  ON  ON  ON  ON
+ *    SUPPORT_INET4		ON  ON   .   .  ON  ON
+ *    API_CFG_IP4MAPPED_ADDR	 .  ON   .  ON   .  ON
+ *    ----------------------    ----------------------
+ *    _IP6_CFG                   .   .  ON  ON  ON  ON
+ *    _IP4_CFG                  ON  ON   .  ON  ON  ON
+ *    
+ */
+
+#if !defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR)
+#error option selection: !defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR)
+#endif
+
+#if defined(SUPPORT_INET6)
+#define	_IP6_CFG
+#endif
+
+#if defined(SUPPORT_INET4) || (defined(SUPPORT_INET6) && defined(API_CFG_IP4MAPPED_ADDR))
+#define _IP4_CFG
+#endif
+
+/*
+ *  TCP ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  MAX_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    æ³¨æ: å¤æ´ãã¹ãã§ã¯ãªãã
+ */
+
+#ifndef MAX_TCP_RCV_SEG
+#define MAX_TCP_RCV_SEG		(IF_MTU - (IP_HDR_SIZE + TCP_HDR_SIZE))
+#endif
+
+/*
+ *  DEF_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifndef DEF_TCP_SND_SEG
+#define DEF_TCP_SND_SEG		MAX_TCP_SND_SEG
+#endif
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+ */
+
+#ifdef  TCP_CFG_SWBUF_CSAVE_ONLY
+#ifndef TCP_CFG_SWBUF_CSAVE
+#define TCP_CFG_SWBUF_CSAVE
+#endif
+#endif	/* of #ifdef  TCP_CFG_SWBUF_CSAVE_ONLY */
+
+#ifdef  TCP_CFG_RWBUF_CSAVE_ONLY
+#ifndef TCP_CFG_RWBUF_CSAVE
+#define TCP_CFG_RWBUF_CSAVE
+#endif
+#endif	/* of #ifdef  TCP_CFG_RWBUF_CSAVE_ONLY */
+
+/*
+ *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
+ *
+ *    -1: BSD ã®å®è£
+ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
+ *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ */
+
+#ifndef TCP_CFG_URG_OFFSET
+#define TCP_CFG_URG_OFFSET	-1
+#endif
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+#ifndef ARP_CACHE_KEEP
+#define ARP_CACHE_KEEP		(20*60*NET_TIMER_HZ)	/* ARP ã­ã£ãã·ã¥ã®ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+/*
+ *  ã«ã¼ãããã¯ã¤ã³ã¿ãã§ã¼ã¹ã«é¢ããå®ç¾©
+ */
+
+#ifndef LOMTU
+#define LOMTU			1500	/* ã«ã¼ãããã¯ã® MTU			*/
+#endif
+
+/*
+ * TINET ãµãã¼ãé¢æ°ã«é¢ããå®ç¾©
+ */
+
+#ifndef NUM_IPV4ADDR_STR_BUFF		/* ip2str ã«ããã IP ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
+
+#if defined(SUPPORT_PPP)
+
+#define NUM_IPV4ADDR_STR_BUFF	2
+
+#else	/* of #if defined(SUPPORT_PPP) */
+
+#define NUM_IPV4ADDR_STR_BUFF	1
+
+#endif	/* of #if defined(SUPPORT_PPP) */
+
+#endif	/* of #ifndef NUM_IPV4ADDR_STR_BUFF */
+
+#ifndef NUM_IPV6ADDR_STR_BUFF
+#define NUM_IPV6ADDR_STR_BUFF	2	/* ip62str ã«ããã IP ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
+#endif
+
+#ifndef NUM_MACADDR_STR_BUFF		/* macstr ã«ããã MAC ã¢ãã¬ã¹æå­åç¨ãããã¡æ° */
+
+#if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING)
+
+#define NUM_MACADDR_STR_BUFF	2
+
+#else	/* of #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) */
+
+#define NUM_MACADDR_STR_BUFF	1
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(ETHER_CFG_ACCEPT_ALL) && defined(ETHER_CFG_MCAST_WARNING) */
+
+#endif	/* of #ifndef NUM_MACADDR_STR_BUFF */
+
+/*
+ *  TINET å
+é¨ã®ã¿ã¤ã ã¢ã¦ãå¤ã®è¨­å®
+ */
+
+#ifndef TMO_IP4_FRAG_GET_NET_BUF
+#define TMO_IP4_FRAG_GET_NET_BUF	ULONG_C(1000)	/* [ms]ãIPv4 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+#ifndef TMO_IP6_FRAG_GET_NET_BUF
+#define TMO_IP6_FRAG_GET_NET_BUF	ULONG_C(1000)	/* [ms]ãIPv6 ãã¼ã¿ã°ã©ã åæ§æç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+#ifndef TMO_PPP_GET_NET_BUF
+#define TMO_PPP_GET_NET_BUF		ULONG_C(1000)	/* [ms]ãPPP åä¿¡ç¨ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+#ifndef TMO_ARP_GET_NET_BUF
+#define TMO_ARP_GET_NET_BUF		ULONG_C(1000)	/* [ms]ãARP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+#ifndef TMO_TCP_GET_NET_BUF
+#define TMO_TCP_GET_NET_BUF		ULONG_C(1000)	/* [ms]ãTCP ã®ãããã¯ã¼ã¯ãããã¡ç²å¾ã¿ã¤ã ã¢ã¦ã	*/
+#endif
+
+#ifndef TMO_TCP_OUTPUT
+#define TMO_TCP_OUTPUT			ULONG_C(1000)	/* [ms]ãTCP åºåã¿ã¤ã ã¢ã¦ã				*/
+#endif
+
+#ifndef TMO_UDP_OUTPUT
+#define TMO_UDP_OUTPUT			ULONG_C(1000)	/* [ms]ãUDP åºåã¿ã¤ã ã¢ã¦ã				*/
+#endif
+
+#ifndef TMO_ICMP_OUTPUT
+#define TMO_ICMP_OUTPUT			ULONG_C(1000)	/* [ms]ãICMP åºåã¿ã¤ã ã¢ã¦ã				*/
+#endif
+
+#ifndef TMO_ND6_NS_OUTPUT
+#define TMO_ND6_NS_OUTPUT		ULONG_C(1000)	/* [ms]ãè¿é£è¦è«åºåã¿ã¤ã ã¢ã¦ã			*/
+#endif
+
+#ifndef TMO_ND6_NA_OUTPUT
+#define TMO_ND6_NA_OUTPUT		ULONG_C(1000)	/* [ms]ãè¿é£éç¥åºåã¿ã¤ã ã¢ã¦ã			*/
+#endif
+
+#ifndef TMO_ND6_RS_OUTPUT
+#define TMO_ND6_RS_OUTPUT		ULONG_C(1000)	/* [ms]ãã«ã¼ã¿è¦è«åºåã¿ã¤ã ã¢ã¦ã			*/
+#endif
+
+#ifndef TMO_ARP_OUTPUT
+#define TMO_ARP_OUTPUT			ULONG_C(1000)	/* [ms]ãã¢ãã¬ã¹è§£æ±ºè¦æ±åºåã¿ã¤ã ã¢ã¦ã		*/
+#endif
+
+#ifndef TMO_ND6_RTR_SOL_DELAY
+#define TMO_ND6_RTR_SOL_DELAY		ULONG_C(1000)	/* [ms]ãã«ã¼ã¿è¦è«åºåé
+å»¶				*/
+#endif
+
+#ifndef TMO_ND6_RTR_SOL_INTERVAL
+#define TMO_ND6_RTR_SOL_INTERVAL	ULONG_C(4000)	/* [ms]ãã«ã¼ã¿è¦è«åºåéé				*/
+#endif
+
+#ifndef TMO_IN_REDIRECT
+					/* [s]ãåãç´ãã«ã¼ãã£ã³ã°ã¨ã³ããªã¿ã¤ã ã¢ã¦ã*/
+#define TMO_IN_REDIRECT			(10*60*NET_TIMER_HZ)
+#endif
+
+/*
+ *  TINET å
+é¨ã®ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãºã®è¨­å®
+ */
+
+#ifndef TCP_OUT_TASK_STACK_SIZE
+#define	TCP_OUT_TASK_STACK_SIZE	1024	/* TCP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#endif
+
+#ifndef UDP_OUT_TASK_STACK_SIZE
+#define	UDP_OUT_TASK_STACK_SIZE	1024	/* UDP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº			*/
+#endif
+
+#ifndef PPP_INPUT_STACK_SIZE
+#define	PPP_INPUT_STACK_SIZE	1024	/* PPP ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#endif
+
+#ifndef PPP_OUTPUT_STACK_SIZE
+#define	PPP_OUTPUT_STACK_SIZE	1024	/* PPP åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº		*/
+#endif
+
+#ifndef ETHER_INPUT_STACK_SIZE
+#define	ETHER_INPUT_STACK_SIZE	1024	/* Ethernet å
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#endif
+
+#ifndef ETHER_OUTPUT_STACK_SIZE
+#define	ETHER_OUTPUT_STACK_SIZE	1024	/* Ethernet åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#endif
+
+#ifndef LOOP_INPUT_STACK_SIZE
+#define	LOOP_INPUT_STACK_SIZE	1024	/* ã«ã¼ãããã¯å
+¥åã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#endif
+
+#ifndef LOOP_OUTPUT_STACK_SIZE
+#define	LOOP_OUTPUT_STACK_SIZE	1024	/* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº	*/
+#endif
+
+#ifndef NET_TIMER_STACK_SIZE
+#define	NET_TIMER_STACK_SIZE	1024	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif
+
+/*
+ *  TINET å
+é¨ã®ã¿ã¹ã¯ã®åªå
+åº¦ã®è¨­å®
+ */
+
+#ifndef TCP_OUT_TASK_PRIORITY
+#define TCP_OUT_TASK_PRIORITY	5	/* TCP åºåã¿ã¹ã¯ã®åªå
+åº¦			*/
+#endif
+
+#ifndef UDP_OUT_TASK_PRIORITY
+#define UDP_OUT_TASK_PRIORITY	5	/* UDP åºåã¿ã¹ã¯ã®åªå
+åº¦				*/
+#endif
+
+#ifndef PPP_INPUT_PRIORITY
+#define PPP_INPUT_PRIORITY	5	/* PPP ã¿ã¹ã¯ã®åªå
+åº¦			*/
+#endif
+
+#ifndef PPP_OUTPUT_PRIORITY
+#define PPP_OUTPUT_PRIORITY	5	/* PPP ã¿ã¹ã¯ã®åªå
+åº¦			*/
+#endif
+
+#ifndef ETHER_INPUT_PRIORITY
+#define ETHER_INPUT_PRIORITY	5	/* Ethernet å
+¥åã¿ã¹ã¯ã®åªå
+åº¦		*/
+#endif
+
+#ifndef ETHER_OUTPUT_PRIORITY
+#define ETHER_OUTPUT_PRIORITY	5	/* Ethernet åºåã¿ã¹ã¯ã®åªå
+åº¦		*/
+#endif
+
+#ifndef LOOP_INPUT_PRIORITY
+#define LOOP_INPUT_PRIORITY	5	/* ã«ã¼ãããã¯å
+¥åã¿ã¹ã¯ã®åªå
+åº¦		*/
+#endif
+
+#ifndef LOOP_OUTPUT_PRIORITY
+#define LOOP_OUTPUT_PRIORITY	5	/* ã«ã¼ãããã¯åºåã¿ã¹ã¯ã®åªå
+åº¦		*/
+#endif
+
+#ifndef NET_TIMER_PRIORITY
+#define NET_TIMER_PRIORITY	5	/* ãããã¯ã¼ã¯ã¿ã¤ãã¿ã¹ã¯ã®åªå
+åº¦ */
+#endif
+
+/*
+ *  TINET å
+é¨ã®ãã¼ã¿ã­ã¥ã¼ã®ã¨ã³ããªæ°ã®è¨­å®
+ */
+
+/* UDP åä¿¡ã­ã¥ã¼ãµã¤ãº */
+
+#ifndef NUM_DTQ_UDP_RCVQ
+#define NUM_DTQ_UDP_RCVQ	1	/* éã³ã¼ã«ããã¯ç¨	*/
+#endif
+
+#ifndef NUM_DTQ_UDP_OUTPUT
+#define NUM_DTQ_UDP_OUTPUT	1	/* UDP åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº			*/
+#endif
+
+#ifndef NUM_DTQ_PPP_OUTPUT
+#define NUM_DTQ_PPP_OUTPUT	2	/* PPP åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãºã2 ä»¥ä¸	*/
+#endif
+
+#ifndef NUM_DTQ_ETHER_OUTPUT
+#define NUM_DTQ_ETHER_OUTPUT	2	/* Ethernet åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#endif
+
+#ifndef NUM_DTQ_LOOP_INPUT
+#define NUM_DTQ_LOOP_INPUT	0	/* ã«ã¼ãããã¯å
+¥åãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#endif
+
+#ifndef NUM_DTQ_LOOP_OUTPUT
+#define NUM_DTQ_LOOP_OUTPUT	0	/* ã«ã¼ãããã¯åºåãã¼ã¿ã­ã¥ã¼ãµã¤ãº	*/
+#endif
+
+/*
+ *  TINET ãã­ãã³ã«ã¹ã¿ãã¯å
+é¨ã®ãªãã¼ã 
+ */
+
+#include <net/net_rename.h>
+#include <netinet/in_rename.h>
+#include <netinet6/in6_rename.h>
+
+#endif /* _TINET_CONFIG_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/tinet_defs.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tinet_defs.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tinet_defs.h	(revision 313)
@@ -0,0 +1,75 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_DEFS_H_
+#define _TINET_DEFS_H_
+
+#include "tinet_kernel_defs.h"
+
+#ifdef SUPPORT_ETHER
+
+#include "tinet_nic_defs.h"
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  ã«ã¼ãã«ã®è­å¥
+ */
+
+#ifdef TARGET_KERNEL_JSP
+
+#include "tinet_cpu_defs.h"
+
+#else	/* of #ifdef TARGET_KERNEL_JSP */
+
+#ifdef TARGET_KERNEL_ASP
+
+#include "tinet_target_defs.h"
+
+#endif	/* of #ifdef TARGET_KERNEL_ASP */
+
+#endif	/* of #ifdef TARGET_KERNEL_JSP */
+
+#endif /* _TINET_DEFS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/tinet/tinet_kernel_defs.h
===================================================================
--- rubycfg_asp/trunk/asp_dcre/tinet/tinet_kernel_defs.h	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/tinet/tinet_kernel_defs.h	(revision 313)
@@ -0,0 +1,126 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ã«ã¼ãã«ã«é¢ããäºææ§å®ç¾©ãã¡ã¤ã«
+ */
+
+#ifndef _TINET_KERNEL_DEFS_H_
+#define _TINET_KERNEL_DEFS_H_
+
+#if defined(TARGET_KERNEL_JSP)
+
+#ifndef _MACRO_ONLY
+
+/*
+ *  ãã¼ã¿åã®å®ç¾©ï¼inttype.hï¼
+ */
+
+#ifdef _int8_
+typedef _int8_			int8_t;		/* ç¬¦å·ä»ã 8 ãããæ´æ° */
+typedef unsigned _int8_		uint8_t;	/* ç¬¦å·ç¡ã 8 ãããæ´æ° */
+#endif	/* of #ifdef _int8_ */
+
+#ifdef _int16_
+typedef _int16_			int16_t;	/* ç¬¦å·ä»ã 16 ãããæ´æ° */
+typedef unsigned _int16_	uint16_t;	/* ç¬¦å·ç¡ã 16 ãããæ´æ° */
+#endif	/* of #ifdef _int16_ */
+
+#ifdef _int32_
+typedef _int32_			int32_t;	/* ç¬¦å·ä»ã 32 ãããæ´æ° */
+typedef unsigned _int32_	uint32_t;	/* ç¬¦å·ç¡ã 32 ãããæ´æ° */
+#endif	/* of #ifdef _int32_ */
+
+#ifdef _int64_
+typedef unsigned _int64_	uint64_t;	/* ç¬¦å·ç¡ã 64 ãããæ´æ° */
+#endif	/* of #ifdef _int64_ */
+
+typedef signed int		int_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
+typedef unsigned int		uint_t;		/* èªç¶ãªãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+
+typedef signed long		long_t;		/* é·ãã®ãµã¤ãºã®ç¬¦å·ä»ãæ´æ° */
+typedef unsigned long		ulong_t;	/* é·ãã®ãµã¤ãºã®ç¬¦å·ç¡ãæ´æ° */
+
+#ifdef _vp_int_
+typedef _vp_int_		intptr_t;	/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+#else	/* of #ifdef _vp_int_ */
+typedef VP			intptr_t;	/* ãã¤ã³ã¿ã¾ãã¯ç¬¦å·ä»ãæ´æ° */
+#endif	/* of #ifdef _vp_int_ */
+
+typedef int			bool_t;		/* çå½å¤ */
+
+#ifndef true
+#define true			1		/* ç */
+#endif /* true */
+
+#ifndef false
+#define false			0		/* å½ */
+#endif /* false */
+
+#endif	/* of #ifndef _MACRO_ONLY */
+
+/* æ§é ä½ structure ä¸­ã®ãã£ã¼ã«ã field ã®ãã¤ãä½ç½®ãè¿ããã¯ã­ */
+#ifndef offsetof
+#define offsetof(structure, field) ((size_t) &(((structure *) 0)->field))
+#endif	/* of #ifndef offsetof */
+
+/*
+ *  æ´æ°å®æ°ãä½ããã¯ã­
+ */
+#ifndef UINT_C
+#define UINT_C(val)		(val ## U)	/* uint_tåã®å®æ°ãä½ããã¯ã­ */
+#endif /* UINT_C */
+
+#ifndef ULONG_C
+#define ULONG_C(val)		(val ## UL)	/* ulong_tåã®å®æ°ãä½ããã¯ã­ */
+#endif /* ULONG_C */
+
+#elif defined(TARGET_KERNEL_ASP)
+
+#define syscall(api)		(api)
+
+#endif	/* of #if defined(TARGET_KERNEL_JSP) */
+
+#endif	/* of #ifndef _TINET_KERNEL_DEFS_H_ */
Index: rubycfg_asp/trunk/asp_dcre/utils/applyrename.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/utils/applyrename.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/utils/applyrename.rb	(revision 313)
@@ -0,0 +1,138 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2004-2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: applyrename.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+# 
+
+require "fileutils"
+
+#
+#  ãã¡ã¤ã«ã«ãªãã¼ã ãé©ç¨ãã
+#
+def applyRename(inFileName, syms)
+  symsRegexp = syms.join("|")
+  outFileName = inFileName + ".new"
+
+  begin
+    inFile = File.open(inFileName)
+    outFile = File.open(outFileName, "w")
+  rescue Errno::ENOENT, Errno::EACCES => ex
+    abort(ex.message)
+  end
+
+  inFile.each do |line|
+    line.gsub!(/\b(_?)(#{symsRegexp})\b/, "\\1_kernel_\\2")
+    outFile.print line
+  end
+
+  inFile.close
+  outFile.close
+
+  if FileUtils.cmp(inFileName, outFileName)
+    # ãã¡ã¤ã«ã®å
+å®¹ãå¤åããªãã£ãå ´å
+    FileUtils.remove(outFileName)
+  else
+    # ãã¡ã¤ã«ã®å
+å®¹ãå¤åããå ´å
+    FileUtils.move(inFileName, inFileName + ".bak")
+    FileUtils.move(outFileName, inFileName)
+    puts("Modified: #{inFileName}")
+  end
+end
+
+#
+#  ã¨ã©ã¼ãã§ãã¯
+#
+if ARGV.length < 1
+  abort("Usage: ruby appyrename.rb <prefix> <filelists>")
+end
+
+#
+#  åæå
+#
+syms = []
+name = ARGV.shift
+
+#
+#  ã·ã³ãã«ãªã¹ããèª­ã¿è¾¼ã
+#
+defFileName = name + "_rename.def"
+
+begin
+  defFile = File.open(defFileName)
+rescue Errno::ENOENT, Errno::EACCES => ex
+  abort(ex.message)
+end
+
+defFile.each do |line|
+  line.chomp!
+  if /^#\s*(.*)$/ =~ line
+    # do nothing
+  elsif /^INCLUDE\s+(.*)$/ =~ line
+    # do nothing
+  elsif line != ""
+    syms.push(line)
+  end
+end
+
+#
+#  ãã¡ã¤ã«ã«ãªãã¼ã ãé©ç¨ãã
+#
+ARGV.each do |inFileName|
+  if inFileName != defFileName && File.readable?(inFileName)
+    applyRename(inFileName, syms)
+  end
+end
Index: rubycfg_asp/trunk/asp_dcre/utils/genrename.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/utils/genrename.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/utils/genrename.rb	(revision 313)
@@ -0,0 +1,199 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2003 by Embedded and Real-Time Systems Laboratory
+#                              Toyohashi Univ. of Technology, JAPAN
+#  Copyright (C) 2005-2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: genrename.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+# 
+
+#
+#  å
+é ­ã«ã¤ããæå­å
+#
+def prefixString(sym)
+  if sym =~ /[a-z]/
+    return("_kernel_")
+  else
+    return("_KERNEL_")
+  end
+end
+
+#
+#  ãªãã¼ã å®ç¾©ãçæãã
+#
+def generateDefine(outFile, sym, prefix)
+  outFile.print("#define #{prefix}#{sym}");
+  outFile.print("\t" * [(6 - (sym.length + prefix.length) / 4), 0].max);
+  outFile.print("\t#{prefix}#{prefixString(sym)}#{sym}\n");
+end
+
+#
+#  ãªãã¼ã è§£é¤ãçæãã
+#
+def generateUndef(outFile, sym, prefix)
+  outFile.print("#undef #{prefix}#{sym}\n");
+end
+
+#
+#  ã³ã¡ã³ããçæãã
+#
+def generateComment(outFile, comment)
+  outFile.print("/*\n")
+  outFile.print(" *  #{comment}\n")
+  outFile.print(" */\n")
+end
+
+#
+#  ã¨ã©ã¼ãã§ãã¯
+#
+if ARGV.length < 1
+  abort("Usage: ruby genrename.rb <prefix>")
+end
+
+#
+#  åæå
+#
+syms = []
+name = ARGV.shift
+NAME = name.upcase
+
+inFileName = name + "_rename.def"
+headerDefineSymbol = "TOPPERS_" + NAME + "_RENAME_H"
+
+#
+#  ã·ã³ãã«ãªã¹ããèª­ã¿è¾¼ã
+#
+begin
+  inFile = File.open(inFileName)
+rescue Errno::ENOENT, Errno::EACCES => ex
+  abort(ex.message)
+end
+
+inFile.each do |line|
+  syms.push(line.chomp)
+end
+
+#
+#  ???_rename.h ãçæãã
+#
+begin
+  outFile = File.open(name + "_rename.h", "w")
+rescue Errno::ENOENT, Errno::EACCES => ex
+  abort(ex.message)
+end
+
+outFile.print <<EOS
+/* This file is generated from #{inFileName} by genrename. */
+
+#ifndef #{headerDefineSymbol}
+#define #{headerDefineSymbol}
+
+EOS
+
+includes = ""
+syms.each do |sym|
+  if /^#\s*(.*)$/ =~ sym
+    generateComment(outFile, $1)
+  elsif /^INCLUDE\s+(.*)$/ =~ sym
+    fileName = $1.sub(/([>"])$/, "_rename.h\\1")
+    includes += "#include #{fileName}\n"
+  elsif sym != ""
+    generateDefine(outFile, sym, "")
+  else
+    outFile.print("\n")
+  end
+end
+
+outFile.print <<EOS
+
+#{includes}
+#endif /* #{headerDefineSymbol} */
+EOS
+
+#
+#  ???_unrename.h ãçæãã
+#
+begin
+  outFile = File.open(name + "_unrename.h", "w")
+rescue Errno::ENOENT, Errno::EACCES => ex
+  abort(ex.message)
+end
+
+outFile.print <<EOS
+/* This file is generated from #{inFileName} by genrename. */
+
+/* This file is included only when #{name}_rename.h has been included. */
+#ifdef #{headerDefineSymbol}
+#undef #{headerDefineSymbol}
+
+EOS
+
+includes = ""
+syms.each do |sym|
+  if /^#\s*(.*)$/ =~ sym
+    generateComment(outFile, $1)
+  elsif /^INCLUDE\s+(.*)$/ =~ sym
+    fileName = $1.sub(/([>"])$/, "_unrename.h\\1")
+    includes += "#include #{fileName}\n"
+  elsif sym != ""
+    generateUndef(outFile, sym, "")
+  else
+    outFile.print("\n")
+  end
+end
+
+outFile.print <<EOS
+
+#{includes}
+#endif /* #{headerDefineSymbol} */
+EOS
Index: rubycfg_asp/trunk/asp_dcre/utils/gentest.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/utils/gentest.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/utils/gentest.rb	(revision 313)
@@ -0,0 +1,477 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2007-2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: gentest.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+# 
+
+#
+#		ãã¹ããã­ã°ã©ã çæãã¼ã«
+#
+	
+#
+#  çæåä½ãæ±ºããããã®è¨­å®
+#
+$parameterDefinition = {
+  "get_tst" => { 2 => "STAT" },
+  "get_pri" => { 2 => "PRI" },
+  "get_inf" => { 1 => "intptr_t" },
+  "ref_tsk" => { 2 => "T_RTSK" },
+  "ref_sem" => { 2 => "T_RSEM" },
+  "wai_flg" => { 4 => "FLGPTN" },
+  "pol_flg" => { 4 => "FLGPTN" },
+  "twai_flg" => { 4 => "FLGPTN" },
+  "ref_flg" => { 2 => "T_RFLG" },
+  "rcv_dtq" => { 2 => "intptr_t" },
+  "prcv_dtq" => { 2 => "intptr_t" },
+  "trcv_dtq" => { 2 => "intptr_t" },
+  "ref_dtq" => { 2 => "T_RDTQ" },
+  "rcv_pdq" => { 2 => "intptr_t" , 3 => "PRI" },
+  "prcv_pdq" => { 2 => "intptr_t" , 3 => "PRI" },
+  "trcv_pdq" => { 2 => "intptr_t" , 3 => "PRI" },
+  "ref_pdq" => { 2 => "T_RPDQ" },
+  "ref_mtx" => { 2 => "T_RMTX" },
+  "ref_mbf" => { 2 => "T_RMBF" },
+  "get_mpf" => { 2 => "void *" },
+  "pget_mpf" => { 2 => "void *" },
+  "tget_mpf" => { 2 => "void *" },
+  "ref_mpf" => { 2 => "T_RMPF" },
+  "get_tim" => { 1 => "SYSTIM" },
+  "ref_cyc" => { 2 => "T_RCYC" },
+  "ref_alm" => { 2 => "T_RALM" },
+  "ref_ovr" => { 2 => "T_ROVR" },
+  "get_tid" => { 1 => "ID" },
+  "get_did" => { 1 => "ID" },
+  "get_lod" => { 2 => "uint_t" },
+  "mget_lod" => { 3 => "uint_t" },
+  "get_nth" => { 3 => "ID" },
+  "mget_nth" => { 4 => "ID" },
+  "get_ipm" => { 1 => "PRI" },
+  "get_som" => { 1 => "ID" }
+}
+
+$functionParameters = {
+  "target_hrt_set_event" => "HRTCNT hrtcnt"
+}
+  
+$functionValue = {
+  "target_hrt_get_current" => "HRTCNT"
+}
+  
+$functionReturn = {
+  "target_hrt_get_current" => "0U"
+}
+  
+$functionCheckParameter = {
+  "target_hrt_set_event" => "hrtcnt"
+}
+
+#
+#  å¦çåä½ã®ã³ã¼ããæ ¼ç´ããã¯ã©ã¹
+#
+class PUCode
+  # åæå
+  def initialize(puName)
+    @puName = puName						# å¦çåä½ã®åå
+    @currentCount = ""						# å¦çã«ã¦ã³ã
+    @countFlag = false						# å¦çã«ã¦ã³ããä½¿ãããã
+    @code = Hash.new { |h,k| h[k] = [] }	# å¦çåä½ã®ã³ã¼ã
+    @variableList = {}						# å¦çåä½ã®å¤æ°
+    @silFlag = false						# SILãä½¿ãããã
+
+    # å¦çã«ã¦ã³ãå¤æ°åã®çæ
+    case puName
+    when /^TASK([0-9]*)$/
+      @count_var = "task#{$1}_count"
+    when /^CYC([0-9]*)$/
+      @count_var = "cyclic#{$1}_count"
+    when /^ALM([0-9]*)$/
+      @count_var = "alarm#{$1}_count"
+    when /^OVR$/
+      @count_var = "overrun_count"
+    when /^CPUEXC([0-9]*)$/
+      @count_var = "cpuexc#{$1}_count"
+    when /^EXTSVC([0-9]*)$/
+      @count_var = "extsvc#{$1}_count"
+    else
+      @count_var = puName + "_count"
+    end
+  end
+
+  # å¦çã«ã¦ã³ãã®è¨­å®
+  def setCount(count)
+    @countFlag = true if count != ""
+    @currentCount = count
+  end
+
+  # å¦çã«ã¦ã³ãã®ã¤ã³ã¯ãªã¡ã³ã
+  def incrementCount
+    if @currentCount != ""
+      @currentCount = (@currentCount.to_i + 1).to_s
+    end
+  end
+
+  # ã³ã¼ãã®è¿½å 
+  def append(*lines)
+    lines.each do |line|
+      @code[@currentCount].push(line)
+        end
+  end
+
+  # å¤æ°ã®è¿½å 
+  def addVariable(varName, typeName)
+    @variableList[varName] = typeName
+  end
+
+  # SILã®ä½¿ç¨
+  def useSil
+    @silFlag = true
+  end
+
+  # å¦çåä½ã®ã³ã¼ãã®åºå
+  def generateCode
+    # ä¸è¦ãªå¦çåä½ã®å¤å®
+    return if @code.length == 0
+
+    # å¦çã«ã¦ã³ãå¤æ°ã®çæ
+    if @countFlag
+      print("\nstatic uint_t\t#{@count_var} = 0;\n")
+    end
+
+    # é¢æ°ãããã®çæ
+    case @puName
+    when /^TASK([0-9]*)$/
+      print("\nvoid\n")
+      print("task#{$1}(intptr_t exinf)\n")
+    when /^CYC([0-9]*)$/
+      print("\nvoid\n")
+      print("cyclic#{$1}_handler(intptr_t exinf)\n")
+    when /^ALM([0-9]*)$/
+      print("\nvoid\n")
+      print("alarm#{$1}_handler(intptr_t exinf)\n")
+    when /^OVR$/
+      print("\nvoid\n")
+      print("overrun_handler(ID tskid, intptr_t exinf)\n")
+    when /^CPUEXC([0-9]*)$/
+      print("\nvoid\n")
+      print("cpuexc#{$1}_handler(void *p_excinf)\n")
+    when /^EXTSVC([0-9]*)$/
+      print("\nER_UINT\n")
+      print("extsvc#{$1}_routine")
+      print("(intptr_t par1, intptr_t par2, intptr_t par3,\n")
+      print("\t\t\t\t\t\t\t\tintptr_t par4, intptr_t par5, ID cdmid)\n")
+    else
+      if $functionValue[@puName]
+        print("\n#{$functionValue[@puName]}\n")
+      else
+        print("\nvoid\n")
+      end
+      print(@puName)
+      if $functionParameters[@puName]
+        print("(#{$functionParameters[@puName]})\n")
+      else
+        print("(void)\n")
+      end
+    end
+
+    print("{\n")
+
+    @variableList.each do |varName, varType|
+      if /^(.+)\w*\*$/ =~ varType
+        varBaseType = $1
+        print("\t#{varBaseType}")
+        print(varBaseType.length < 4 ? "\t\t*" : "\t*")
+      else
+        print("\t#{varType}")
+        print(varType.length < 4 ? "\t\t" : "\t")
+      end
+      print("#{varName};\n")
+    end
+    if @silFlag
+      print("\tSIL_PRE_LOC;\n")
+    end
+    print("\n")
+
+    if @countFlag
+      print("\tswitch (++#{@count_var}) {\n")
+      @code.keys.sort_by { |c| c.to_i }.each do |count|
+        print("\tcase #{count}:\n")
+        @code[count].each do |line|
+          print("\t",line) if line != ""
+          print("\n")
+        end
+        print("\t\tcheck_point(0);\n\n")
+      end
+      print("\tdefault:\n")
+      print("\t\tcheck_point(0);\n")
+      print("\t}\n")
+    else
+      @code[""].each do |line|
+        print(line,"\n")
+      end
+    end
+
+    print("\tcheck_point(0);\n")
+    if /^EXTSVC([0-9]*)$/ =~ @puName
+      print("\treturn(E_SYS);\n")
+    elsif $functionReturn[@pu_nama]
+      print("\treturn(#{$functionReturn[@puName]});\n")
+    end
+    print("}\n")
+  end
+end
+
+#
+#  ãµã¼ãã¹ã³ã¼ã«å¼ã³åºãã®èª­ã¿è¾¼ã¿
+#
+def genServiceCall(pu, svc_call, error_code)
+  pu.addVariable("ercd", "ER_UINT")
+  pu.append("\tercd = #{svc_call};")
+
+  if /^([a-z_]+)\((.*)\)$/ =~ svc_call
+    svcName = $1;
+    params = $2.split(/\s*,\s*/)
+
+    if $parameterDefinition.has_key?(svcName)
+      $parameterDefinition[svcName].each do |pos, type|
+        if params.size >= pos
+          varName = params[pos - 1].sub(/^\&/, "")
+          pu.addVariable(varName, type)
+        end
+      end
+    end
+  end
+
+  if !error_code
+    # E_OKãè¿ãå ´å
+    pu.append("\tcheck_ercd(ercd, E_OK);", "")
+  elsif error_code == "noreturn"
+    # ãªã¿ã¼ã³ããªãå ´å
+    pu.append("")
+  else
+    pu.append("\tcheck_ercd(ercd, #{error_code});", "")
+  end
+end
+
+#
+#  ãã¹ãéå§ã³ã¼ãã®çæ
+#
+def testStartCode(pu)
+  # ãã¹ãéå§ã³ã¼ãã¯ä¸åº¦ã®ã¿åºåãã
+  if $startFlag == 0
+    pu.append("\ttest_start(__FILE__);", "")
+    $startFlag = 1
+  end
+end
+
+#
+#  ã¿ã¼ã²ããä¾å­é¨é¢æ°ã®æ¯ãèãã®èª­ã¿è¾¼ã¿
+#
+def targetFunction(line, checkNum)
+  if /^([a-zA-Z_]+)\s*(.*)$/ =~ line
+    functionName = $1
+    line = $2
+    if (pu = $puList[functionName]).nil?
+      # æ°ããå¦çåä½ã®çæ
+      pu = $puList[functionName] = PUCode.new(functionName)
+      pu.setCount("1")
+      testStartCode(pu)
+    end
+  end
+
+  if /\-\>\s*([^\s]+)\s*(.*)$/ =~ line
+    retval = $1
+    line = $2
+  end
+  if /\<\-\s*([^\s]+)\s*(.*)$/ =~ line
+    param = $1
+    line = $2
+  end
+
+  pu.append("\tcheck_point(#{checkNum});");
+  if param && $functionCheckParameter[functionName]
+    pu.append(sprintf("\tcheck_assert(%s == %s);",
+					$functionCheckParameter[functionName], param), "")
+  end
+  if retval
+    pu.append("\treturn(#{retval});", "")
+  else
+    pu.append("\treturn;", "")
+  end
+  pu.incrementCount()
+end
+
+#
+#  ãã¹ãã¹ã¯ãªããã®èª­ã¿è¾¼ã¿
+#
+def parseLine(line)
+  if /^==\s*(([a-zA-Z_]+)[0-9]*)(.*)$/ =~ line
+    # å¦çåä½ã®éå§
+    $procFlag = 1
+    puName = $1
+    line2 = $3
+    if (pu = $puList[puName]).nil?
+      # æ°ããå¦çåä½ã®çæ
+      pu = $puList[puName] = PUCode.new(puName)
+    end
+    $currentPu = pu
+
+    case line2
+    when /^\-([0-9]+)(.*)$/
+      pu.setCount($1)
+    when /^\-[nN](.*)$/
+      # do nothing.
+    else
+      pu.setCount("")
+    end
+    testStartCode(pu) if /^START/ !~ puName
+  elsif $procFlag != 0
+    pu = $currentPu
+    if /^([0-9]+\:)\s*(.*)$/ =~ line
+      # ãã§ãã¯ãã¤ã³ãçªå·ã®å¦ç
+      originalCheckNum = $1
+      line = $2
+      checkNum = ($lastCheckPoint += 1).to_s
+      $outputLine.sub!(/#{originalCheckNum}/, "#{checkNum}:")
+
+      case line
+      when /^END$/
+        pu.append("\tcheck_finish(#{checkNum});")
+        $procFlag = 0
+        return
+      when /^HOOK\((.*)\)$/
+        pu.append(sprintf("\t#{$1};", checkNum))
+        return
+      when /^\[(.*)\]$/
+        targetFunction($1, checkNum)
+        return
+      else
+        pu.append("\tcheck_point(#{checkNum});")
+      end
+    end
+
+    case line
+    when /^((assert|state|ipm)\(.*\))$/
+      pu.append("\tcheck_#{$1};", "")
+    when /^(call|DO)\((.*)\)$/
+      call_string = $2
+      pu.append("\t#{call_string};", "")
+      pu.useSil() if /^SIL_..._INT\(\)$/ =~ call_string
+    when /^RETURN((\(.*\))?)$/
+      pu.append("\treturn#{$1};", "")
+      pu.incrementCount()
+    when /^GOTO\((.*)\)$/
+      pu.append("\tgoto #{$1};", "")
+    when /^LABEL\((.*)\)$/
+      pu.append("#{$1}:", "")
+    when /^([a-z_]+\(.*\))\s*(\-\>\s*([A-Za-z0-9_]*))?\s*$/
+      genServiceCall(pu, $1, $3)
+    else
+      warn("Error: #{line}")
+    end
+  end
+end
+
+#
+#  ã¨ã©ã¼ãã§ãã¯
+#
+if ARGV.length < 1
+  abort("Usage: ruby gentest.rb <test_program>")
+end
+
+#
+#  åæå
+#
+inFileName = ARGV.shift
+
+#
+#  ã¹ã¯ãªãããã¡ã¤ã«èª­ã¿è¾¼ã¿å¦ç
+#
+$lastCheckPoint = 0		# æå¾ã®ãã§ãã¯ãã¤ã³ãçªå·
+$procFlag = 0				# ã¹ã¯ãªããå¦çä¸­ãã©ã°
+$startFlag = 0			# ãã¹ãéå§ã³ã¼ãã®åºåãã©ã°
+$currentPu = nil			# èª­ã¿è¾¼ã¿ä¸­ã®å¦çåä½
+$puList = {}				# å¦çåä½ã®ãªã¹ã
+
+begin
+  inFile = File.open(inFileName)
+rescue Errno::ENOENT, Errno::EACCES => ex
+  abort(ex.message)
+end
+
+while line = inFile.gets do
+  $outputLine = line.dup
+  line.chomp!
+  line.sub!(/^\s*\*\s*/, "")
+  line.sub!(/\s*\/\/.*$/, "")
+  line.sub!(/\s*\.\.\..*$/, "")
+
+  while line.sub!(/\\$/, "") do
+    line1 = inFile.gets
+    $outputLine += line1.dup
+    line1.chomp!
+    line1.sub!(/^\s*\*\s*/, "")
+    line1.sub!(/\s*\/\/.*$/, "")
+    line1.sub!(/\s*\.\.\..*$/, "")
+    line += line1
+  end
+  parseLine(line) if line != ""
+  print($outputLine)
+  break if /DO NOT DELETE THIS LINE/ =~ $outputLine
+end
+
+#
+#  ãã¹ããã­ã°ã©ã åºåå¦ç
+#
+$puList.keys.sort.each do |puName|
+  $puList[puName].generateCode()
+end
Index: rubycfg_asp/trunk/asp_dcre/utils/makerelease.rb
===================================================================
--- rubycfg_asp/trunk/asp_dcre/utils/makerelease.rb	(revision 313)
+++ rubycfg_asp/trunk/asp_dcre/utils/makerelease.rb	(revision 313)
@@ -0,0 +1,186 @@
+#!/usr/bin/env ruby
+# -*- coding: utf-8 -*-
+#
+#  TOPPERS Software
+#      Toyohashi Open Platform for Embedded Real-Time Systems
+# 
+#  Copyright (C) 2006-2016 by Embedded and Real-Time Systems Laboratory
+#              Graduate School of Information Science, Nagoya Univ., JAPAN
+# 
+#  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+#  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+#  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+#  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+#      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+#      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+#  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+#      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+#      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+#      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+#      ã¨ï¼
+#    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+#        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+#    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+#        å ±åãããã¨ï¼
+#  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+#      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+#      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+#      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+#      å
+è²¬ãããã¨ï¼
+# 
+#  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+#  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+#  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+#  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+#  ã®è²¬ä»»ãè² ããªãï¼
+# 
+#  $Id: makerelease.rb 1011 2016-07-11 02:20:01Z coas-nagasima $
+# 
+
+require "shell"
+
+#
+#  ".."ãå«ããã¹ã®æ´å½¢
+#
+#  ä¾ï¼"yyy/../zzz" â "zzz"
+#  ä¾ï¼"xxx/yyy/../zzz" â "xxx/zzz"
+#
+def canonicalPath(path)
+  while path.sub!(/([^\/]+\/\.\.\/)/, "") do end
+  return(path)
+end
+
+#
+#  ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#
+def readFile(inFileName)
+  baseDirectory = File.dirname(inFileName)
+  if (baseDirectory == ".")
+    baseDirectory = ""
+  else
+    baseDirectory += "/"
+  end
+
+  begin
+    inFile = File.open(inFileName)
+  rescue Errno::ENOENT, Errno::EACCES => ex
+    abort(ex.message)
+  end
+
+  inFile.each do |line|
+    line.chomp!
+    line.sub!(/\s*\#.*$/, "")
+    next if /^\s*$/ =~ line
+
+    if /^E_PACKAGE[ \t]+(.*)$/ =~ line
+      if $package != ""
+        abort("Duplicated E_PACKAGE directive.")
+      else
+        $package = $1
+        $e_package = 1
+      end
+    elsif /^PACKAGE[ \t]+(.*)$/ =~ line
+      if $package != ""
+        if !$e_package && $package != $1
+          abort("Inconsistent PACKAGE directive.")
+        end
+      else
+        $package = $1
+      end
+    elsif /^VERSION[ \t]+(.*)$/ =~ line
+      if $version != ""
+        if !$e_package && $version != $1
+          abort("Inconsistent VERSION directive.")
+        end
+      else
+        $version = $1
+        if /%date/ =~ $version
+          currentTime = Time.now.localtime
+          vdate = sprintf("%04d%02d%02d", currentTime.year,
+									currentTime.month, currentTime.day)
+          $version.sub!(/%date/, vdate)
+        end
+      end
+    elsif /^INCLUDE[ \t]+(.*)$/ =~ line
+      readFile(canonicalPath(baseDirectory + $1))
+    else
+      fileName = $prefix + "/" + canonicalPath(baseDirectory + line)
+      if !File.file?("../" + fileName)
+        abort("#{fileName} is not a file.")
+      elsif $fileList.index(fileName)
+        abort("#{fileName} is duplicated.")
+      else 
+        $fileList.push(fileName)
+      end
+    end
+  end
+end
+
+#
+#  åæå
+#
+$package = ""
+$e_package = 0
+$version = ""
+$fileList = []
+
+#
+#  ããªãã£ãã¯ã¹ï¼./ã«ã¬ã³ããã£ã¬ã¯ããªåï¼ã®åãåºã
+#
+cwd = Shell.new.cwd
+$prefix = "./" + File.basename(cwd)
+
+#
+#  ãã©ã¡ã¼ã¿ã®åãåºã
+#
+if ARGV.length >= 1
+  arg = ARGV.shift.dup
+  arg.sub!(/\/$/, "/MANIFEST")
+  arg.sub!(/^\.\//, "")
+else
+  arg = "MANIFEST"
+end
+
+#
+#  ãã¡ã¤ã«ã®èª­ã¿è¾¼ã¿
+#
+readFile(arg)
+if $package == ""
+  abort("PACKAGE/E_PACKAGE directive not found.")
+end
+if $version == ""
+  abort("VERSION directive not found.")
+end
+
+#
+#  RELEASEãã£ã¬ã¯ããªã®ä½æ
+#
+if !File.directory?("RELEASE")
+  Dir.mkdir("RELEASE")
+end
+
+#
+#  ã¢ã¼ã«ã¤ãï¼.tar.gzï¼ã®ä½æ
+#
+archiveName = $package + "-" + $version + ".tar.gz"
+fileListStr = $fileList.join(" ")
+command = "tar cvfz RELEASE/#{archiveName} -C .. #{fileListStr}\n";
+system(command)
+puts("== RELEASE/#{archiveName} is generated. ==\n")
Index: rubycfg_asp/trunk/csp/sample1/asp.mtpj
===================================================================
--- rubycfg_asp/trunk/csp/sample1/asp.mtpj	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/asp.mtpj	(revision 313)
@@ -0,0 +1,2538 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>1e703b94-75af-42ac-88f2-71a1f29911d4</ProjectGuid>
+      <ProjectItemGuid>87f5e830-937e-445a-9c6f-4639c012a204</ProjectItemGuid>
+      <FileCategoryGuid>23843c08-6938-48e0-ab2e-7765abcbe957</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+      <ActiveProjectGuid>1e703b94-75af-42ac-88f2-71a1f29911d4</ActiveProjectGuid>
+    </Instance>
+    <Instance Guid="bbf392be-9376-4aba-bf45-bd3546fe324a">
+      <DependentProjectsGuidsSourceProjectsCount>0</DependentProjectsGuidsSourceProjectsCount>
+      <Type>Data</Type>
+    </Instance>
+    <Instance Guid="df1e9cfa-b055-4352-af37-0ebeae8b8252">
+      <Name>app</Name>
+      <Type>Category</Type>
+      <ParentItem>23843c08-6938-48e0-ab2e-7765abcbe957</ParentItem>
+    </Instance>
+    <Instance Guid="624189e8-26aa-4b4e-a390-529ecfe989f6">
+      <Name>syssvc</Name>
+      <Type>Category</Type>
+      <ParentItem>23843c08-6938-48e0-ab2e-7765abcbe957</ParentItem>
+    </Instance>
+    <Instance Guid="24acfbe2-e697-47ce-b064-6cb3b5051ab4">
+      <Name>library</Name>
+      <Type>Category</Type>
+      <ParentItem>23843c08-6938-48e0-ab2e-7765abcbe957</ParentItem>
+    </Instance>
+    <Instance Guid="03f47799-f16d-49ff-9011-8e27804bab2a">
+      <Name>configuration</Name>
+      <Type>Category</Type>
+      <ParentItem>23843c08-6938-48e0-ab2e-7765abcbe957</ParentItem>
+    </Instance>
+    <Instance Guid="91d87685-fc7e-4ca7-bc8c-cd81a080dda4">
+      <Name>ã¹ã¿ã¼ãã¢ãã</Name>
+      <Type>Category</Type>
+      <ParentItem>23843c08-6938-48e0-ab2e-7765abcbe957</ParentItem>
+    </Instance>
+    <Instance Guid="0c23718c-0231-4512-a9fd-8efdcf777c96">
+      <Name>sample1.c</Name>
+      <Type>File</Type>
+      <RelativePath>sample1.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>df1e9cfa-b055-4352-af37-0ebeae8b8252</ParentItem>
+    </Instance>
+    <Instance Guid="326a25dd-95e1-4320-9f81-8ab7b62fcd80">
+      <Name>banner.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\banner.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>624189e8-26aa-4b4e-a390-529ecfe989f6</ParentItem>
+    </Instance>
+    <Instance Guid="9739a24f-e9c2-47ad-bb24-9cd450deb97e">
+      <Name>logtask.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\logtask.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>624189e8-26aa-4b4e-a390-529ecfe989f6</ParentItem>
+    </Instance>
+    <Instance Guid="64f885ee-c0ba-4cbb-b13e-f51953838fff">
+      <Name>serial.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\serial.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>624189e8-26aa-4b4e-a390-529ecfe989f6</ParentItem>
+    </Instance>
+    <Instance Guid="92510096-371f-4692-8f86-4c4281fea6b8">
+      <Name>syslog.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\syslog.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>624189e8-26aa-4b4e-a390-529ecfe989f6</ParentItem>
+    </Instance>
+    <Instance Guid="0d78a7e7-dce1-4165-b1c8-07149fb61155">
+      <Name>histogram.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\histogram.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="213983a9-a685-4736-8320-0dac71dbb313">
+      <Name>log_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\log_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="bf25f448-9c0b-4e84-8dd3-dd722e486c2a">
+      <Name>strerror.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\strerror.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="20d57fe6-1a7f-49b0-825c-b9019105762c">
+      <Name>t_perror.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\t_perror.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="dc56e46c-8372-4933-ab40-94075660a740">
+      <Name>test_lib.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\test_lib.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="a4fc7daa-b0d0-4a2c-8182-89d30cc437e8">
+      <Name>vasyslog.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\vasyslog.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>24acfbe2-e697-47ce-b064-6cb3b5051ab4</ParentItem>
+    </Instance>
+    <Instance Guid="033b13e1-ccd1-45ad-86c3-1e19bf00df23">
+      <Name>kernel_cfg_asm.src</Name>
+      <Type>File</Type>
+      <RelativePath>cfg\kernel_cfg_asm.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>03f47799-f16d-49ff-9011-8e27804bab2a</ParentItem>
+    </Instance>
+    <Instance Guid="76973b16-f753-49ca-8d1c-1e207149968b">
+      <Name>kernel_cfg.c</Name>
+      <Type>File</Type>
+      <RelativePath>cfg\kernel_cfg.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>03f47799-f16d-49ff-9011-8e27804bab2a</ParentItem>
+    </Instance>
+    <Instance Guid="a5115a22-4611-45db-aad8-2dc5a9859090">
+      <Name>start.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\arch\rx630_ccrx\start.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>91d87685-fc7e-4ca7-bc8c-cd81a080dda4</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="9033e9fb-2b12-4437-a25e-27b28d42582b">
+    <Instance Guid="15f202d3-a323-41bf-9f6b-10ccf333cc40">
+      <Name>cfg</Name>
+      <RelativePath>cfg\cfg.mtsp</RelativePath>
+    </Instance>
+    <Instance Guid="71ed5ed0-f245-4e55-afbd-cf370f296786">
+      <Name>kernel</Name>
+      <RelativePath>kernel\kernel.mtsp</RelativePath>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>500ba51a-4219-4828-b4be-80f54d6d3551</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>0c23718c-0231-4512-a9fd-8efdcf777c96</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemGuid1>326a25dd-95e1-4320-9f81-8ab7b62fcd80</SourceItemGuid1>
+      <SourceItemType1>CSource</SourceItemType1>
+      <SourceItemGuid2>9739a24f-e9c2-47ad-bb24-9cd450deb97e</SourceItemGuid2>
+      <SourceItemType2>CSource</SourceItemType2>
+      <SourceItemGuid3>64f885ee-c0ba-4cbb-b13e-f51953838fff</SourceItemGuid3>
+      <SourceItemType3>CSource</SourceItemType3>
+      <SourceItemGuid4>92510096-371f-4692-8f86-4c4281fea6b8</SourceItemGuid4>
+      <SourceItemType4>CSource</SourceItemType4>
+      <SourceItemGuid5>0d78a7e7-dce1-4165-b1c8-07149fb61155</SourceItemGuid5>
+      <SourceItemType5>CSource</SourceItemType5>
+      <SourceItemGuid6>213983a9-a685-4736-8320-0dac71dbb313</SourceItemGuid6>
+      <SourceItemType6>CSource</SourceItemType6>
+      <SourceItemGuid7>bf25f448-9c0b-4e84-8dd3-dd722e486c2a</SourceItemGuid7>
+      <SourceItemType7>CSource</SourceItemType7>
+      <SourceItemGuid8>20d57fe6-1a7f-49b0-825c-b9019105762c</SourceItemGuid8>
+      <SourceItemType8>CSource</SourceItemType8>
+      <SourceItemGuid9>dc56e46c-8372-4933-ab40-94075660a740</SourceItemGuid9>
+      <SourceItemType9>CSource</SourceItemType9>
+      <SourceItemGuid10>a4fc7daa-b0d0-4a2c-8182-89d30cc437e8</SourceItemGuid10>
+      <SourceItemType10>CSource</SourceItemType10>
+      <SourceItemGuid11>033b13e1-ccd1-45ad-86c3-1e19bf00df23</SourceItemGuid11>
+      <SourceItemType11>AsmSource</SourceItemType11>
+      <SourceItemGuid12>76973b16-f753-49ca-8d1c-1e207149968b</SourceItemGuid12>
+      <SourceItemType12>CSource</SourceItemType12>
+      <SourceItemGuid13>a5115a22-4611-45db-aad8-2dc5a9859090</SourceItemGuid13>
+      <SourceItemType13>AsmSource</SourceItemType13>
+      <SourceItemCount>14</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Fpu</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063717258541</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%Program% %Options%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0>#!python
+common.Source("../../asp_dcre/arch/ccrx/post_asp.py")
+</PostBuildCommands-0>
+      <GeneralOptionIsa-0>RXv1</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Fpu</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=.
+-include=cfg
+-include=..\..\asp_dcre
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\include
+-include=..\..\asp_dcre\kernel
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\syssvc
+-include=..\..\asp_dcre\library
+-include=..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\asp_dcre\pdic\rx600
+-include=..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\asp_dcre\arch\ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063484048541</TimeTagModified--0>
+      <COptionLangC-0>C99</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>.
+cfg
+..\..\asp_dcre
+..\..\asp_dcre\arch
+..\..\asp_dcre\include
+..\..\asp_dcre\kernel
+..\..\asp_dcre\arch
+..\..\asp_dcre\syssvc
+..\..\asp_dcre\library
+..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\asp_dcre\pdic\rx600
+..\..\asp_dcre\arch\rx630_ccrx
+..\..\asp_dcre\arch\ccrx
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-isa=rxv1
+-fpu
+-include=.
+-include=cfg
+-include=..\..\asp_dcre
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\include
+-include=..\..\asp_dcre\kernel
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\syssvc
+-include=..\..\asp_dcre\library
+-include=..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\asp_dcre\pdic\rx600
+-include=..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\asp_dcre\arch\ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0 />
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Fpu</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=../../asp_dcre/target/gr_sakura_ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028060296668541</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0>../../asp_dcre/target/gr_sakura_ccrx
+</AsmOptionInclude-0>
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-isa=rxv1
+-fpu
+-include=../../asp_dcre/target/gr_sakura_ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue>-library=kernel\%BuildModeName%\kernel
+-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80
+-rom=D=R,D_1=R_1,D_2=R_2
+-nologo
+-exit
+</LinkOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587030616696563629</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80</LinkOptionStart-0>
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0>kernel\%BuildModeName%\kernel
+</LinkOptionLibrary-0>
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>True</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0>D=R
+D_1=R_1
+D_2=R_2
+</LinkOptionRom-0>
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0>-library=kernel\%BuildModeName%\kernel
+-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80
+-rom=D=R,D_1=R_1,D_2=R_2
+-nologo
+-exit
+</LinkOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284371963308</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284371963308</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>MakeOptionChanged</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063717558541</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>MakeOptionChanged</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="0c23718c-0231-4512-a9fd-8efdcf777c96">
+      <ItemAddTime>635280076542343750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="326a25dd-95e1-4320-9f81-8ab7b62fcd80">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="9739a24f-e9c2-47ad-bb24-9cd450deb97e">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="64f885ee-c0ba-4cbb-b13e-f51953838fff">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="92510096-371f-4692-8f86-4c4281fea6b8">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="0d78a7e7-dce1-4165-b1c8-07149fb61155">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="213983a9-a685-4736-8320-0dac71dbb313">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="bf25f448-9c0b-4e84-8dd3-dd722e486c2a">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="20d57fe6-1a7f-49b0-825c-b9019105762c">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="dc56e46c-8372-4933-ab40-94075660a740">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a4fc7daa-b0d0-4a2c-8182-89d30cc437e8">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="033b13e1-ccd1-45ad-86c3-1e19bf00df23">
+      <ItemAddTime>635280076543437500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="76973b16-f753-49ca-8d1c-1e207149968b">
+      <ItemAddTime>635280076543437500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a5115a22-4611-45db-aad8-2dc5a9859090">
+      <ItemAddTime>635280076543750000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284312432058</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem1--0>-8588092284312119558</TimeTagModified-SourceItem1--0>
+      <SourceItem1-IsLockedByUser>False</SourceItem1-IsLockedByUser>
+      <SourceItem1-BuildingTarget-0>True</SourceItem1-BuildingTarget-0>
+      <SourceItem1-IndividualCompileOption-0>False</SourceItem1-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem2--0>-8588092284312119558</TimeTagModified-SourceItem2--0>
+      <SourceItem2-IsLockedByUser>False</SourceItem2-IsLockedByUser>
+      <SourceItem2-BuildingTarget-0>True</SourceItem2-BuildingTarget-0>
+      <SourceItem2-IndividualCompileOption-0>False</SourceItem2-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem3--0>-8588092284312119558</TimeTagModified-SourceItem3--0>
+      <SourceItem3-IsLockedByUser>False</SourceItem3-IsLockedByUser>
+      <SourceItem3-BuildingTarget-0>True</SourceItem3-BuildingTarget-0>
+      <SourceItem3-IndividualCompileOption-0>False</SourceItem3-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem4--0>-8588092284311963308</TimeTagModified-SourceItem4--0>
+      <SourceItem4-IsLockedByUser>False</SourceItem4-IsLockedByUser>
+      <SourceItem4-BuildingTarget-0>True</SourceItem4-BuildingTarget-0>
+      <SourceItem4-IndividualCompileOption-0>False</SourceItem4-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem5--0>-8588092284311963308</TimeTagModified-SourceItem5--0>
+      <SourceItem5-IsLockedByUser>False</SourceItem5-IsLockedByUser>
+      <SourceItem5-BuildingTarget-0>True</SourceItem5-BuildingTarget-0>
+      <SourceItem5-IndividualCompileOption-0>False</SourceItem5-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem6--0>-8588092284311963308</TimeTagModified-SourceItem6--0>
+      <SourceItem6-IsLockedByUser>False</SourceItem6-IsLockedByUser>
+      <SourceItem6-BuildingTarget-0>True</SourceItem6-BuildingTarget-0>
+      <SourceItem6-IndividualCompileOption-0>False</SourceItem6-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem7--0>-8588092284311963308</TimeTagModified-SourceItem7--0>
+      <SourceItem7-IsLockedByUser>False</SourceItem7-IsLockedByUser>
+      <SourceItem7-BuildingTarget-0>True</SourceItem7-BuildingTarget-0>
+      <SourceItem7-IndividualCompileOption-0>False</SourceItem7-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem8--0>-8588092284311807058</TimeTagModified-SourceItem8--0>
+      <SourceItem8-IsLockedByUser>False</SourceItem8-IsLockedByUser>
+      <SourceItem8-BuildingTarget-0>True</SourceItem8-BuildingTarget-0>
+      <SourceItem8-IndividualCompileOption-0>False</SourceItem8-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem9--0>-8588092284311807058</TimeTagModified-SourceItem9--0>
+      <SourceItem9-IsLockedByUser>False</SourceItem9-IsLockedByUser>
+      <SourceItem9-BuildingTarget-0>True</SourceItem9-BuildingTarget-0>
+      <SourceItem9-IndividualCompileOption-0>False</SourceItem9-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem10--0>-8588092284311807058</TimeTagModified-SourceItem10--0>
+      <SourceItem10-IsLockedByUser>False</SourceItem10-IsLockedByUser>
+      <SourceItem10-BuildingTarget-0>True</SourceItem10-BuildingTarget-0>
+      <SourceItem10-IndividualCompileOption-0>False</SourceItem10-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem12--0>-8588092284311338308</TimeTagModified-SourceItem12--0>
+      <SourceItem12-IsLockedByUser>False</SourceItem12-IsLockedByUser>
+      <SourceItem12-BuildingTarget-0>True</SourceItem12-BuildingTarget-0>
+      <SourceItem12-IndividualCompileOption-0>False</SourceItem12-IndividualCompileOption-0>
+    </Instance>
+    <Instance Guid="c20a78d9-8038-46fe-9b87-bc2fa2aa9bdc">
+      <TimeTagModified-SourceItem11--0>-8588092284311338308</TimeTagModified-SourceItem11--0>
+      <SourceItem11-IsLockedByUser>False</SourceItem11-IsLockedByUser>
+      <SourceItem11-BuildingTarget-0>True</SourceItem11-BuildingTarget-0>
+      <SourceItem11-IndividualAssembleOption-0>False</SourceItem11-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem13--0>-8588092284311025808</TimeTagModified-SourceItem13--0>
+      <SourceItem13-IsLockedByUser>False</SourceItem13-IsLockedByUser>
+      <SourceItem13-BuildingTarget-0>True</SourceItem13-BuildingTarget-0>
+      <SourceItem13-IndividualAssembleOption-0>False</SourceItem13-IndividualAssembleOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+    <Instance Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+      <CurrentToolKey>e4af5eb2-adbb-4301-8df5-18578be9eef6</CurrentToolKey>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="9a065877-3b93-453c-9b72-940c69f10716">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>00000000-0000-0000-0000-000000000000</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="52e1ea47-4c41-4f6c-b81e-9caa42437088">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>120000</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>No</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Fine</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>2147483647</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationPort>COM4</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationPort>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>578d917e-0d0a-4491-a220-37ba42009e0b</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="104fc540-14b6-4fb9-bd7a-0d4844b95028">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>e4af5eb2-adbb-4301-8df5-18578be9eef6</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>120000</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>960000</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>No</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Fine</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>1e703b94-75af-42ac-88f2-71a1f29911d4</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>960000</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>4.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1/cfg/cfg.mtsp
===================================================================
--- rubycfg_asp/trunk/csp/sample1/cfg/cfg.mtsp	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/cfg/cfg.mtsp	(revision 313)
@@ -0,0 +1,2307 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</ProjectGuid>
+      <ProjectItemGuid>f34d7516-d8ed-4790-b4f9-9c1af5b7f53c</ProjectItemGuid>
+      <FileCategoryGuid>c1083ce2-6a2b-4a70-8e74-3c2541dede0d</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+    </Instance>
+    <Instance Guid="7a165d40-9bfa-4d9f-bbd9-dc78a7a94380">
+      <Name>configuration</Name>
+      <Type>Category</Type>
+      <ParentItem>c1083ce2-6a2b-4a70-8e74-3c2541dede0d</ParentItem>
+    </Instance>
+    <Instance Guid="b661a6eb-44f0-4672-8534-3ec12c7d789c">
+      <Name>cfg1_out.c</Name>
+      <Type>File</Type>
+      <RelativePath>cfg1_out.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>7a165d40-9bfa-4d9f-bbd9-dc78a7a94380</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="2a349cb6-b982-4ade-adcd-104b883ad81c">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>500ba51a-4219-4828-b4be-80f54d6d3551</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>b661a6eb-44f0-4672-8534-3ec12c7d789c</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemCount>1</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Fpu</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063067538541</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%Program% %Options%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0>#!python
+common.Source("../../../asp_dcre/arch/ccrx/pre_cfg.py")
+</PreBuildCommands-0>
+      <PostBuildCommands-0>#!python
+common.Source("../../../asp_dcre/arch/ccrx/post_cfg.py")
+</PostBuildCommands-0>
+      <GeneralOptionIsa-0>RXv1</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Fpu</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=..
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063067938541</TimeTagModified--0>
+      <COptionLangC-0>C</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>..
+..\..\..\asp_dcre
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\include
+..\..\..\asp_dcre\kernel
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\syssvc
+..\..\..\asp_dcre\library
+..\..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\..\asp_dcre\pdic\rx600
+..\..\..\asp_dcre\arch\rx630_ccrx
+..\..\..\asp_dcre\arch\ccrx
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-isa=rxv1
+-fpu
+-include=..
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0>USE_SERIALDEBUG
+</COptionDefine-0>
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Fpu</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063276148541</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-isa=rxv1
+-fpu
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue>-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=C_1,C_2,C,P/0FFFF8100
+-nologo
+-exit
+</LinkOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>C_1,C_2,C,P/0FFFF8100</LinkOptionStart-0>
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>True</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0 />
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0>-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=C_1,C_2,C,P/0FFFF8100
+-nologo
+-exit
+</LinkOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue>-end
+-input=%BuildModeName%\%ProjectName%.abs
+-form=stype
+-output=.\cfg1_out.srec
+-exit
+</HexOptionCommandLine-DefaultValue>
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0>-end
+-input=%BuildModeName%\%ProjectName%.abs
+-form=stype
+-output=.\cfg1_out.srec
+-exit
+</HexOptionCommandLine-0>
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>MakeOptionChanged</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063067938541</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>MakeOptionChanged</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="b661a6eb-44f0-4672-8534-3ec12c7d789c">
+      <ItemAddTime>635280076546250000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284308525808</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+    <Instance Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+      <CurrentToolKey>980229aa-cc4c-40c7-be19-a84e15ec314e</CurrentToolKey>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="9a065877-3b93-453c-9b72-940c69f10716">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>00000000-0000-0000-0000-000000000000</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="52e1ea47-4c41-4f6c-b81e-9caa42437088">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>No</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Jtag</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>2147483647</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>578d917e-0d0a-4491-a220-37ba42009e0b</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="104fc540-14b6-4fb9-bd7a-0d4844b95028">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>980229aa-cc4c-40c7-be19-a84e15ec314e</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>No</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Jtag</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>2147483647</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>4.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1/def.py
===================================================================
--- rubycfg_asp/trunk/csp/sample1/def.py	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/def.py	(revision 313)
@@ -0,0 +1,23 @@
+# Source Dir
+SRCDIR = "../../asp_dcre/"
+
+# Configfile name
+CFG_FILE = "sample1.cfg"
+
+# Target board
+TARGET = "gr_sakura_ccrx"
+
+# Target mcu
+TARGET_MCU = 'R5F563NBDxFP'
+
+# Application files
+asp_app_files = ['sample1.c']
+
+# Addition Dir list (relative path from srcdir)
+USER_INCLUDE = []
+
+# Copy sample1
+COPY_SAMPLE1 = False
+
+# Use RX Serial Debugger
+USE_SERIALDEBUG = True
Index: rubycfg_asp/trunk/csp/sample1/kernel/kernel.mtsp
===================================================================
--- rubycfg_asp/trunk/csp/sample1/kernel/kernel.mtsp	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/kernel/kernel.mtsp	(revision 313)
@@ -0,0 +1,1633 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>71ed5ed0-f245-4e55-afbd-cf370f296786</ProjectGuid>
+      <ProjectItemGuid>35c1c1fb-6dd7-4ca4-b9a7-8c5ecad9f8c3</ProjectItemGuid>
+      <FileCategoryGuid>d9ec57cb-4d1a-428d-adcb-c3e40d99bd6b</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+    </Instance>
+    <Instance Guid="c24ef232-a97a-47ab-b658-9613a85c69ed">
+      <Name>kernel</Name>
+      <Type>Category</Type>
+      <ParentItem>d9ec57cb-4d1a-428d-adcb-c3e40d99bd6b</ParentItem>
+    </Instance>
+    <Instance Guid="52622978-8eb7-4a2c-893d-19cb0d51e1e7">
+      <Name>arch</Name>
+      <Type>Category</Type>
+      <ParentItem>d9ec57cb-4d1a-428d-adcb-c3e40d99bd6b</ParentItem>
+    </Instance>
+    <Instance Guid="468f64d3-672e-49c1-be85-7dc857a9443b">
+      <Name>target</Name>
+      <Type>Category</Type>
+      <ParentItem>d9ec57cb-4d1a-428d-adcb-c3e40d99bd6b</ParentItem>
+    </Instance>
+    <Instance Guid="6658fffa-3f95-4789-bc83-56d6078a79ed">
+      <Name>pdic</Name>
+      <Type>Category</Type>
+      <ParentItem>d9ec57cb-4d1a-428d-adcb-c3e40d99bd6b</ParentItem>
+    </Instance>
+    <Instance Guid="7304ab5b-323b-4ff6-8d4f-ef958bcd08ec">
+      <Name>alarm.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\alarm.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="b3d3a975-3220-4f1a-9252-9a60706d1cda">
+      <Name>cyclic.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\cyclic.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="8d5038aa-acfc-4abd-b8d8-6fb9b2f8c064">
+      <Name>dataqueue.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\dataqueue.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="b3ecf0eb-8f8d-4c08-ab1e-bf12215bbd3b">
+      <Name>eventflag.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\eventflag.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="22daca3c-756f-428b-91f4-c01c326caebd">
+      <Name>exception.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\exception.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="a4d887c8-fc84-438c-bc32-94f4f5f59436">
+      <Name>interrupt.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\interrupt.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="80116678-e8f0-494d-a44d-718ac9c58e4c">
+      <Name>mailbox.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\mailbox.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="068aecd7-997f-4710-be4d-ebd218fa4c0e">
+      <Name>mempfix.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\mempfix.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="e5361d59-cc03-4787-b8a9-4628fd0026f9">
+      <Name>pridataq.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\pridataq.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="08e7b595-4729-4050-802d-a4cdf635e4c2">
+      <Name>semaphore.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\semaphore.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="7bfcb75d-4655-4579-afe1-d75e83e5d399">
+      <Name>startup.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\startup.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="ffb40810-3cfb-458f-a8f0-b1c28d845724">
+      <Name>sys_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\sys_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="5ce7a021-48ed-456d-85b0-81f27bc1764b">
+      <Name>task.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="c7e2039b-d9bd-433e-bde9-bbdcab3482d5">
+      <Name>task_except.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_except.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="020451f1-7587-470e-b776-36794c718226">
+      <Name>task_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="42810567-fcb6-4ee8-afc7-ed7a14dcee84">
+      <Name>task_refer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_refer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="d2463054-d00c-46cf-bd1c-a86e76b9e3a9">
+      <Name>task_sync.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_sync.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="3e62cc3b-dfd0-4797-8200-d9e95d63c704">
+      <Name>time_event.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\time_event.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="4595b4d0-7fe7-4548-af38-d6839c2637d4">
+      <Name>time_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\time_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="1e1f95b0-a14b-429f-b1c4-38b529a5b0c6">
+      <Name>wait.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\wait.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>c24ef232-a97a-47ab-b658-9613a85c69ed</ParentItem>
+    </Instance>
+    <Instance Guid="70541a9c-6492-4251-bf6c-ae5007522ec3">
+      <Name>prc_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>52622978-8eb7-4a2c-893d-19cb0d51e1e7</ParentItem>
+    </Instance>
+    <Instance Guid="039f4822-7c6a-4a14-9d8a-a036ea15f532">
+      <Name>rx630_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\rx630_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>52622978-8eb7-4a2c-893d-19cb0d51e1e7</ParentItem>
+    </Instance>
+    <Instance Guid="863b3117-9af2-4094-abc8-74ba5750fb7c">
+      <Name>prc_support.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_support.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>52622978-8eb7-4a2c-893d-19cb0d51e1e7</ParentItem>
+    </Instance>
+    <Instance Guid="194d86cd-a9a1-4b3d-9aa3-2f0ef30fd517">
+      <Name>prc_test.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_test.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>52622978-8eb7-4a2c-893d-19cb0d51e1e7</ParentItem>
+    </Instance>
+    <Instance Guid="6c735814-3c62-4971-9a24-4959548ebf4d">
+      <Name>kernel_cfg_asm.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\cfg\kernel_cfg_asm.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>52622978-8eb7-4a2c-893d-19cb0d51e1e7</ParentItem>
+    </Instance>
+    <Instance Guid="9b7946c6-d517-409c-bb4e-67c9aaec8ab2">
+      <Name>target_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>468f64d3-672e-49c1-be85-7dc857a9443b</ParentItem>
+    </Instance>
+    <Instance Guid="55351b49-9ad2-4576-8dbc-d8c34a4d8a72">
+      <Name>target_serial.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_serial.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>468f64d3-672e-49c1-be85-7dc857a9443b</ParentItem>
+    </Instance>
+    <Instance Guid="8159402f-2b4f-4987-8b59-16f7ec9f2844">
+      <Name>target_timer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_timer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>468f64d3-672e-49c1-be85-7dc857a9443b</ParentItem>
+    </Instance>
+    <Instance Guid="2ffb6473-ef3f-43bc-9eeb-ffbc3945cc06">
+      <Name>target_support.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_support.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>468f64d3-672e-49c1-be85-7dc857a9443b</ParentItem>
+    </Instance>
+    <Instance Guid="89e39663-e459-4eab-97b1-6b3cd3c84480">
+      <Name>rx630_uart.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\pdic\rx600\rx630_uart.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>6658fffa-3f95-4789-bc83-56d6078a79ed</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="2a349cb6-b982-4ade-adcd-104b883ad81c">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>7020d445-1358-4043-a8ea-3b101e73ceaa</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>7304ab5b-323b-4ff6-8d4f-ef958bcd08ec</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemGuid1>b3d3a975-3220-4f1a-9252-9a60706d1cda</SourceItemGuid1>
+      <SourceItemType1>CSource</SourceItemType1>
+      <SourceItemGuid2>8d5038aa-acfc-4abd-b8d8-6fb9b2f8c064</SourceItemGuid2>
+      <SourceItemType2>CSource</SourceItemType2>
+      <SourceItemGuid3>b3ecf0eb-8f8d-4c08-ab1e-bf12215bbd3b</SourceItemGuid3>
+      <SourceItemType3>CSource</SourceItemType3>
+      <SourceItemGuid4>22daca3c-756f-428b-91f4-c01c326caebd</SourceItemGuid4>
+      <SourceItemType4>CSource</SourceItemType4>
+      <SourceItemGuid5>a4d887c8-fc84-438c-bc32-94f4f5f59436</SourceItemGuid5>
+      <SourceItemType5>CSource</SourceItemType5>
+      <SourceItemGuid6>80116678-e8f0-494d-a44d-718ac9c58e4c</SourceItemGuid6>
+      <SourceItemType6>CSource</SourceItemType6>
+      <SourceItemGuid7>068aecd7-997f-4710-be4d-ebd218fa4c0e</SourceItemGuid7>
+      <SourceItemType7>CSource</SourceItemType7>
+      <SourceItemGuid8>e5361d59-cc03-4787-b8a9-4628fd0026f9</SourceItemGuid8>
+      <SourceItemType8>CSource</SourceItemType8>
+      <SourceItemGuid9>08e7b595-4729-4050-802d-a4cdf635e4c2</SourceItemGuid9>
+      <SourceItemType9>CSource</SourceItemType9>
+      <SourceItemGuid10>7bfcb75d-4655-4579-afe1-d75e83e5d399</SourceItemGuid10>
+      <SourceItemType10>CSource</SourceItemType10>
+      <SourceItemGuid11>ffb40810-3cfb-458f-a8f0-b1c28d845724</SourceItemGuid11>
+      <SourceItemType11>CSource</SourceItemType11>
+      <SourceItemGuid12>5ce7a021-48ed-456d-85b0-81f27bc1764b</SourceItemGuid12>
+      <SourceItemType12>CSource</SourceItemType12>
+      <SourceItemGuid13>c7e2039b-d9bd-433e-bde9-bbdcab3482d5</SourceItemGuid13>
+      <SourceItemType13>CSource</SourceItemType13>
+      <SourceItemGuid14>020451f1-7587-470e-b776-36794c718226</SourceItemGuid14>
+      <SourceItemType14>CSource</SourceItemType14>
+      <SourceItemGuid15>42810567-fcb6-4ee8-afc7-ed7a14dcee84</SourceItemGuid15>
+      <SourceItemType15>CSource</SourceItemType15>
+      <SourceItemGuid16>d2463054-d00c-46cf-bd1c-a86e76b9e3a9</SourceItemGuid16>
+      <SourceItemType16>CSource</SourceItemType16>
+      <SourceItemGuid17>3e62cc3b-dfd0-4797-8200-d9e95d63c704</SourceItemGuid17>
+      <SourceItemType17>CSource</SourceItemType17>
+      <SourceItemGuid18>4595b4d0-7fe7-4548-af38-d6839c2637d4</SourceItemGuid18>
+      <SourceItemType18>CSource</SourceItemType18>
+      <SourceItemGuid19>1e1f95b0-a14b-429f-b1c4-38b529a5b0c6</SourceItemGuid19>
+      <SourceItemType19>CSource</SourceItemType19>
+      <SourceItemGuid20>70541a9c-6492-4251-bf6c-ae5007522ec3</SourceItemGuid20>
+      <SourceItemType20>CSource</SourceItemType20>
+      <SourceItemGuid21>039f4822-7c6a-4a14-9d8a-a036ea15f532</SourceItemGuid21>
+      <SourceItemType21>CSource</SourceItemType21>
+      <SourceItemGuid22>863b3117-9af2-4094-abc8-74ba5750fb7c</SourceItemGuid22>
+      <SourceItemType22>AsmSource</SourceItemType22>
+      <SourceItemGuid23>194d86cd-a9a1-4b3d-9aa3-2f0ef30fd517</SourceItemGuid23>
+      <SourceItemType23>AsmSource</SourceItemType23>
+      <SourceItemGuid24>6c735814-3c62-4971-9a24-4959548ebf4d</SourceItemGuid24>
+      <SourceItemType24>AsmSource</SourceItemType24>
+      <SourceItemGuid25>9b7946c6-d517-409c-bb4e-67c9aaec8ab2</SourceItemGuid25>
+      <SourceItemType25>CSource</SourceItemType25>
+      <SourceItemGuid26>55351b49-9ad2-4576-8dbc-d8c34a4d8a72</SourceItemGuid26>
+      <SourceItemType26>CSource</SourceItemType26>
+      <SourceItemGuid27>8159402f-2b4f-4987-8b59-16f7ec9f2844</SourceItemGuid27>
+      <SourceItemType27>CSource</SourceItemType27>
+      <SourceItemGuid28>2ffb6473-ef3f-43bc-9eeb-ffbc3945cc06</SourceItemGuid28>
+      <SourceItemType28>AsmSource</SourceItemType28>
+      <SourceItemGuid29>89e39663-e459-4eab-97b1-6b3cd3c84480</SourceItemGuid29>
+      <SourceItemType29>CSource</SourceItemType29>
+      <SourceItemCount>30</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LibraryFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Fpu</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063197678541</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%TargetFiles%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0 />
+      <GeneralOptionIsa-0>RXv1</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LibraryFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Fpu</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=..\cfg
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=ALLFUNC,USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028060715798541</TimeTagModified--0>
+      <COptionLangC-0>C</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>..\cfg
+..\..\..\asp_dcre
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\include
+..\..\..\asp_dcre\kernel
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\syssvc
+..\..\..\asp_dcre\library
+..\..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\..\asp_dcre\pdic\rx600
+..\..\..\asp_dcre\arch\rx630_ccrx
+..\..\..\asp_dcre\arch\ccrx
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-isa=rxv1
+-fpu
+-include=..\cfg
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=ALLFUNC,USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0>ALLFUNC
+USE_SERIALDEBUG
+</COptionDefine-0>
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Fpu</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=../cfg
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028062719728541</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0>../cfg
+</AsmOptionInclude-0>
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-isa=rxv1
+-fpu
+-include=../cfg
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>None</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue />
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587029951276852405</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>None</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0 />
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>False</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0 />
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284315869558</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>List</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue>-noprelink
+-form=library=u
+-output=%BuildModeName%\%ProjectName%.lib
+-list=%BuildModeName%\%ProjectName%.lbp
+-nologo
+-exit
+</LibOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587029951276852405</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>List</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0>-noprelink
+-form=library=u
+-output=%BuildModeName%\%ProjectName%.lib
+-list=%BuildModeName%\%ProjectName%.lbp
+-nologo
+-exit
+</LibOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>None</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028063198078541</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>None</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="7304ab5b-323b-4ff6-8d4f-ef958bcd08ec">
+      <ItemAddTime>635280076548437500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="b3d3a975-3220-4f1a-9252-9a60706d1cda">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8d5038aa-acfc-4abd-b8d8-6fb9b2f8c064">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="b3ecf0eb-8f8d-4c08-ab1e-bf12215bbd3b">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="22daca3c-756f-428b-91f4-c01c326caebd">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a4d887c8-fc84-438c-bc32-94f4f5f59436">
+      <ItemAddTime>635280076548750000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="80116678-e8f0-494d-a44d-718ac9c58e4c">
+      <ItemAddTime>635280076548750000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="068aecd7-997f-4710-be4d-ebd218fa4c0e">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="e5361d59-cc03-4787-b8a9-4628fd0026f9">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="08e7b595-4729-4050-802d-a4cdf635e4c2">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="7bfcb75d-4655-4579-afe1-d75e83e5d399">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="ffb40810-3cfb-458f-a8f0-b1c28d845724">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="5ce7a021-48ed-456d-85b0-81f27bc1764b">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c7e2039b-d9bd-433e-bde9-bbdcab3482d5">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="020451f1-7587-470e-b776-36794c718226">
+      <ItemAddTime>635280076549218750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="42810567-fcb6-4ee8-afc7-ed7a14dcee84">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="d2463054-d00c-46cf-bd1c-a86e76b9e3a9">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3e62cc3b-dfd0-4797-8200-d9e95d63c704">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="4595b4d0-7fe7-4548-af38-d6839c2637d4">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="1e1f95b0-a14b-429f-b1c4-38b529a5b0c6">
+      <ItemAddTime>635280076549531250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="70541a9c-6492-4251-bf6c-ae5007522ec3">
+      <ItemAddTime>635280076549531250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="6c735814-3c62-4971-9a24-4959548ebf4d">
+      <ItemAddTime>636341727255222332</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="039f4822-7c6a-4a14-9d8a-a036ea15f532">
+      <ItemAddTime>635280076549687500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="9b7946c6-d517-409c-bb4e-67c9aaec8ab2">
+      <ItemAddTime>635280076549843750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="55351b49-9ad2-4576-8dbc-d8c34a4d8a72">
+      <ItemAddTime>635280076549843750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="2ffb6473-ef3f-43bc-9eeb-ffbc3945cc06">
+      <ItemAddTime>636342409801821164</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8159402f-2b4f-4987-8b59-16f7ec9f2844">
+      <ItemAddTime>635280076550000000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="89e39663-e459-4eab-97b1-6b3cd3c84480">
+      <ItemAddTime>635280076550156250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="863b3117-9af2-4094-abc8-74ba5750fb7c">
+      <ItemAddTime>636341736085812332</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="194d86cd-a9a1-4b3d-9aa3-2f0ef30fd517">
+      <ItemAddTime>636341741758639830</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284306338308</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem1--0>-8588092284306182058</TimeTagModified-SourceItem1--0>
+      <SourceItem1-IsLockedByUser>False</SourceItem1-IsLockedByUser>
+      <SourceItem1-BuildingTarget-0>True</SourceItem1-BuildingTarget-0>
+      <SourceItem1-IndividualCompileOption-0>False</SourceItem1-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem2--0>-8588092284306182058</TimeTagModified-SourceItem2--0>
+      <SourceItem2-IsLockedByUser>False</SourceItem2-IsLockedByUser>
+      <SourceItem2-BuildingTarget-0>True</SourceItem2-BuildingTarget-0>
+      <SourceItem2-IndividualCompileOption-0>False</SourceItem2-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem3--0>-8588092284306182058</TimeTagModified-SourceItem3--0>
+      <SourceItem3-IsLockedByUser>False</SourceItem3-IsLockedByUser>
+      <SourceItem3-BuildingTarget-0>True</SourceItem3-BuildingTarget-0>
+      <SourceItem3-IndividualCompileOption-0>False</SourceItem3-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem4--0>-8588092284306182058</TimeTagModified-SourceItem4--0>
+      <SourceItem4-IsLockedByUser>False</SourceItem4-IsLockedByUser>
+      <SourceItem4-BuildingTarget-0>True</SourceItem4-BuildingTarget-0>
+      <SourceItem4-IndividualCompileOption-0>False</SourceItem4-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem5--0>-8588092284306025808</TimeTagModified-SourceItem5--0>
+      <SourceItem5-IsLockedByUser>False</SourceItem5-IsLockedByUser>
+      <SourceItem5-BuildingTarget-0>True</SourceItem5-BuildingTarget-0>
+      <SourceItem5-IndividualCompileOption-0>False</SourceItem5-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem6--0>-8588092284306025808</TimeTagModified-SourceItem6--0>
+      <SourceItem6-IsLockedByUser>False</SourceItem6-IsLockedByUser>
+      <SourceItem6-BuildingTarget-0>True</SourceItem6-BuildingTarget-0>
+      <SourceItem6-IndividualCompileOption-0>False</SourceItem6-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem7--0>-8588092284305869558</TimeTagModified-SourceItem7--0>
+      <SourceItem7-IsLockedByUser>False</SourceItem7-IsLockedByUser>
+      <SourceItem7-BuildingTarget-0>True</SourceItem7-BuildingTarget-0>
+      <SourceItem7-IndividualCompileOption-0>False</SourceItem7-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem8--0>-8588092284305869558</TimeTagModified-SourceItem8--0>
+      <SourceItem8-IsLockedByUser>False</SourceItem8-IsLockedByUser>
+      <SourceItem8-BuildingTarget-0>True</SourceItem8-BuildingTarget-0>
+      <SourceItem8-IndividualCompileOption-0>False</SourceItem8-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem9--0>-8588092284305869558</TimeTagModified-SourceItem9--0>
+      <SourceItem9-IsLockedByUser>False</SourceItem9-IsLockedByUser>
+      <SourceItem9-BuildingTarget-0>True</SourceItem9-BuildingTarget-0>
+      <SourceItem9-IndividualCompileOption-0>False</SourceItem9-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem10--0>-8588092284305713308</TimeTagModified-SourceItem10--0>
+      <SourceItem10-IsLockedByUser>False</SourceItem10-IsLockedByUser>
+      <SourceItem10-BuildingTarget-0>True</SourceItem10-BuildingTarget-0>
+      <SourceItem10-IndividualCompileOption-0>False</SourceItem10-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem11--0>-8588092284305713308</TimeTagModified-SourceItem11--0>
+      <SourceItem11-IsLockedByUser>False</SourceItem11-IsLockedByUser>
+      <SourceItem11-BuildingTarget-0>True</SourceItem11-BuildingTarget-0>
+      <SourceItem11-IndividualCompileOption-0>False</SourceItem11-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem12--0>-8588092284305713308</TimeTagModified-SourceItem12--0>
+      <SourceItem12-IsLockedByUser>False</SourceItem12-IsLockedByUser>
+      <SourceItem12-BuildingTarget-0>True</SourceItem12-BuildingTarget-0>
+      <SourceItem12-IndividualCompileOption-0>False</SourceItem12-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem13--0>-8588092284305713308</TimeTagModified-SourceItem13--0>
+      <SourceItem13-IsLockedByUser>False</SourceItem13-IsLockedByUser>
+      <SourceItem13-BuildingTarget-0>True</SourceItem13-BuildingTarget-0>
+      <SourceItem13-IndividualCompileOption-0>False</SourceItem13-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem14--0>-8588092284305557058</TimeTagModified-SourceItem14--0>
+      <SourceItem14-IsLockedByUser>False</SourceItem14-IsLockedByUser>
+      <SourceItem14-BuildingTarget-0>True</SourceItem14-BuildingTarget-0>
+      <SourceItem14-IndividualCompileOption-0>False</SourceItem14-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem15--0>-8588092284305400808</TimeTagModified-SourceItem15--0>
+      <SourceItem15-IsLockedByUser>False</SourceItem15-IsLockedByUser>
+      <SourceItem15-BuildingTarget-0>True</SourceItem15-BuildingTarget-0>
+      <SourceItem15-IndividualCompileOption-0>False</SourceItem15-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem16--0>-8588092284305400808</TimeTagModified-SourceItem16--0>
+      <SourceItem16-IsLockedByUser>False</SourceItem16-IsLockedByUser>
+      <SourceItem16-BuildingTarget-0>True</SourceItem16-BuildingTarget-0>
+      <SourceItem16-IndividualCompileOption-0>False</SourceItem16-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem17--0>-8588092284305400808</TimeTagModified-SourceItem17--0>
+      <SourceItem17-IsLockedByUser>False</SourceItem17-IsLockedByUser>
+      <SourceItem17-BuildingTarget-0>True</SourceItem17-BuildingTarget-0>
+      <SourceItem17-IndividualCompileOption-0>False</SourceItem17-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem18--0>-8588092284305400808</TimeTagModified-SourceItem18--0>
+      <SourceItem18-IsLockedByUser>False</SourceItem18-IsLockedByUser>
+      <SourceItem18-BuildingTarget-0>True</SourceItem18-BuildingTarget-0>
+      <SourceItem18-IndividualCompileOption-0>False</SourceItem18-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem19--0>-8588092284305244558</TimeTagModified-SourceItem19--0>
+      <SourceItem19-IsLockedByUser>False</SourceItem19-IsLockedByUser>
+      <SourceItem19-BuildingTarget-0>True</SourceItem19-BuildingTarget-0>
+      <SourceItem19-IndividualCompileOption-0>False</SourceItem19-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem20--0>-8588092284305244558</TimeTagModified-SourceItem20--0>
+      <SourceItem20-IsLockedByUser>False</SourceItem20-IsLockedByUser>
+      <SourceItem20-BuildingTarget-0>True</SourceItem20-BuildingTarget-0>
+      <SourceItem20-IndividualCompileOption-0>False</SourceItem20-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem21--0>-8588092284305088308</TimeTagModified-SourceItem21--0>
+      <SourceItem21-IsLockedByUser>False</SourceItem21-IsLockedByUser>
+      <SourceItem21-BuildingTarget-0>True</SourceItem21-BuildingTarget-0>
+      <SourceItem21-IndividualCompileOption-0>False</SourceItem21-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem25--0>-8588092284304932058</TimeTagModified-SourceItem25--0>
+      <SourceItem25-IsLockedByUser>False</SourceItem25-IsLockedByUser>
+      <SourceItem25-BuildingTarget-0>True</SourceItem25-BuildingTarget-0>
+      <SourceItem25-IndividualCompileOption-0>False</SourceItem25-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem26--0>-8588092284304932058</TimeTagModified-SourceItem26--0>
+      <SourceItem26-IsLockedByUser>False</SourceItem26-IsLockedByUser>
+      <SourceItem26-BuildingTarget-0>True</SourceItem26-BuildingTarget-0>
+      <SourceItem26-IndividualCompileOption-0>False</SourceItem26-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem27--0>-8588092284304775808</TimeTagModified-SourceItem27--0>
+      <SourceItem27-IsLockedByUser>False</SourceItem27-IsLockedByUser>
+      <SourceItem27-BuildingTarget-0>True</SourceItem27-BuildingTarget-0>
+      <SourceItem27-IndividualCompileOption-0>False</SourceItem27-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem29--0>-8588092284304619558</TimeTagModified-SourceItem29--0>
+      <SourceItem29-IsLockedByUser>False</SourceItem29-IsLockedByUser>
+      <SourceItem29-BuildingTarget-0>True</SourceItem29-BuildingTarget-0>
+      <SourceItem29-IndividualCompileOption-0>False</SourceItem29-IndividualCompileOption-0>
+    </Instance>
+    <Instance Guid="c20a78d9-8038-46fe-9b87-bc2fa2aa9bdc">
+      <TimeTagModified-SourceItem22--0>-8587030624768963476</TimeTagModified-SourceItem22--0>
+      <SourceItem22-IsLockedByUser>False</SourceItem22-IsLockedByUser>
+      <SourceItem22-BuildingTarget-0>True</SourceItem22-BuildingTarget-0>
+      <SourceItem22-IndividualAssembleOption-0>False</SourceItem22-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem23--0>-8587030619096135978</TimeTagModified-SourceItem23--0>
+      <SourceItem23-IsLockedByUser>False</SourceItem23-IsLockedByUser>
+      <SourceItem23-BuildingTarget-0>True</SourceItem23-BuildingTarget-0>
+      <SourceItem23-IndividualAssembleOption-0>False</SourceItem23-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem24--0>-8587030633599553476</TimeTagModified-SourceItem24--0>
+      <SourceItem24-IsLockedByUser>False</SourceItem24-IsLockedByUser>
+      <SourceItem24-BuildingTarget-0>True</SourceItem24-BuildingTarget-0>
+      <SourceItem24-IndividualAssembleOption-0>False</SourceItem24-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem28--0>-8587029951052954644</TimeTagModified-SourceItem28--0>
+      <SourceItem28-IsLockedByUser>False</SourceItem28-IsLockedByUser>
+      <SourceItem28-BuildingTarget-0>True</SourceItem28-BuildingTarget-0>
+      <SourceItem28-IndividualAssembleOption-0>False</SourceItem28-IndividualAssembleOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>True</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>4.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1/sample1.c
===================================================================
--- rubycfg_asp/trunk/csp/sample1/sample1.c	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/sample1.c	(revision 313)
@@ -0,0 +1,605 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *
+ *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
+ *
+ *  ãã­ã°ã©ã ã®æ¦è¦:
+ *
+ *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
+ *  å
+åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
+ *  TASK1ï½TASK3ï¼åæåªå
+åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
+ *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
+ *
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
+ *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
+ *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
+ *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
+ *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
+ *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
+ *
+ *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
+ *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
+ *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
+ã«ãªã£ã¦ããï¼
+ *
+ *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
+¥åãè¡ãï¼æå­å
+¥åã
+ *  å¾
+ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
+¥åããã
+ *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
+¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
+ *  Control-Cã¾ãã¯'Q'ãå
+¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
+ *
+ *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
+ *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
+ *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
+ *  'a' : å¯¾è±¡ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼
+ *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ããã­ã£ã³ã»ã«ããï¼
+ *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼
+ *  't' : å¯¾è±¡ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼
+ *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãHIGH_PRIORITYã«ããï¼
+ *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãMID_PRIORITYã«ããï¼
+ *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãLOW_PRIORITYã«ããï¼
+ *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãget_priã§èª­ã¿åºãï¼
+ *  's' : å¯¾è±¡ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'w' : å¯¾è±¡ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼
+ *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ããã­ã£ã³ã»ã«ããï¼
+ *  'l' : å¯¾è±¡ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾
+ã¡è§£é¤ã«ããï¼
+ *  'u' : å¯¾è±¡ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾
+ã¡ç¶æ
+ã«ããï¼
+ *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
+ã¡ç¶æ
+ãrsm_tskã«ããè§£é¤ããï¼
+ *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾
+ã¡ã«ãããï¼
+ *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0001ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'X' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0002ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«dis_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãç¦æ­¢ããï¼
+ *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«ena_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãè¨±å¯ããï¼
+ *  'r' : 3ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
+ *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
+ *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
+ *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
+ *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
+ *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
+ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
+ *        çµäºããï¼ï¼
+ *  '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæãï¼def_texã«ããã¿ã¹ã¯ä¾å¤å¦ç
+ *        ã«ã¼ãã³ãè¨­å®ããï¼
+ *  '!' : å¯¾è±¡ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼
+ *  'V' : get_utmã§æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã2åèª­ãï¼
+ *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
+ *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+#include "syssvc/serial.h"
+#include "syssvc/syslog.h"
+#include "kernel_cfg.h"
+#include "sample1.h"
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ */
+Inline void
+svc_perror(const char *file, int_t line, const char *expr, ER ercd)
+{
+	if (ercd < 0) {
+		t_perror(LOG_ERROR, file, line, expr, ercd);
+	}
+}
+
+#define	SVC_PERROR(expr)	svc_perror(__FILE__, __LINE__, #expr, (expr))
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ */
+char	message[3];
+
+/*
+ *  ã«ã¼ãåæ°
+ */
+ulong_t	task_loop;		/* ã¿ã¹ã¯å
+ã§ã®ã«ã¼ãåæ° */
+ulong_t	tex_loop;		/* ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ã«ã¼ãåæ° */
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ */
+void task(intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t		n = 0;
+	int_t		tskno = (int_t) exinf;
+	const char	*graph[] = { "|", "  +", "    *" };
+	char		c;
+
+	SVC_PERROR(ena_tex());
+	while (true) {
+		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
+										tskno, ++n, graph[tskno-1]);
+		for (i = 0; i < task_loop; i++);
+		c = message[tskno-1];
+		message[tskno-1] = 0;
+		switch (c) {
+		case 'e':
+			syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+			SVC_PERROR(ext_tsk());
+			assert(0);
+		case 's':
+			syslog(LOG_INFO, "#%d#slp_tsk()", tskno);
+			SVC_PERROR(slp_tsk());
+			break;
+		case 'S':
+			syslog(LOG_INFO, "#%d#tslp_tsk(10000)", tskno);
+			SVC_PERROR(tslp_tsk(10000));
+			break;
+		case 'd':
+			syslog(LOG_INFO, "#%d#dly_tsk(10000)", tskno);
+			SVC_PERROR(dly_tsk(10000));
+			break;
+		case 'y':
+			syslog(LOG_INFO, "#%d#dis_tex()", tskno);
+			SVC_PERROR(dis_tex());
+			break;
+		case 'Y':
+			syslog(LOG_INFO, "#%d#ena_tex()", tskno);
+			SVC_PERROR(ena_tex());
+			break;
+#ifdef CPUEXC1
+		case 'z':
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			break;
+		case 'Z':
+			SVC_PERROR(loc_cpu());
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* CPUEXC1 */
+		default:
+			break;
+		}
+	}
+}
+
+/*
+ *  ä¸¦è¡ãã¦å®è¡ãããã¿ã¹ã¯ç¨ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+ */
+void tex_routine(TEXPTN texptn, intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t	tskno = (int_t) exinf;
+
+	syslog(LOG_NOTICE, "task%d receives exception 0x%04x.", tskno, texptn);
+	for (i = 0; i < tex_loop; i++);
+
+	if ((texptn & 0x8000U) != 0U) {
+		syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+		SVC_PERROR(ext_tsk());
+		assert(0);
+	}
+}
+
+/*
+ *  CPUä¾å¤ãã³ãã©
+ */
+#ifdef CPUEXC1
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ID		tskid;
+
+	syslog(LOG_NOTICE, "CPU exception handler (p_excinf = %08p).", p_excinf);
+	if (sns_ctx() != true) {
+		syslog(LOG_WARNING,
+					"sns_ctx() is not true in CPU exception handler.");
+	}
+	if (sns_dpn() != true) {
+		syslog(LOG_WARNING,
+					"sns_dpn() is not true in CPU exception handler.");
+	}
+	syslog(LOG_INFO, "sns_loc = %d sns_dsp = %d sns_tex = %d",
+									sns_loc(), sns_dsp(), sns_tex());
+	syslog(LOG_INFO, "xsns_dpn = %d xsns_xpn = %d",
+									xsns_dpn(p_excinf), xsns_xpn(p_excinf));
+
+	if (xsns_xpn(p_excinf)) {
+		syslog(LOG_NOTICE, "Sample program ends with exception.");
+		SVC_PERROR(ext_ker());
+		assert(0);
+	}
+
+	SVC_PERROR(iget_tid(&tskid));
+	SVC_PERROR(iras_tex(tskid, 0x8000U));
+}
+
+#endif /* CPUEXC1 */
+
+/*
+ *  å¨æãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void cyclic_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void alarm_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯
+ */
+void main_task(intptr_t exinf)
+{
+	char	c;
+	ID		tskid = TASK1;
+	int_t	tskno = 1;
+	ER_UINT	ercd;
+	PRI		tskpri;
+#ifndef TASK_LOOP
+	volatile ulong_t	i;
+	SYSTIM	stime1, stime2;
+#endif /* TASK_LOOP */
+#ifdef TOPPERS_SUPPORT_GET_UTM
+	SYSUTM	utime1, utime2;
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+	T_CTSK	ctsk;
+	T_DTEX	dtex;
+	ID		TASK3 = -1;
+
+	SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_EMERG)));
+	syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf);
+
+	/*
+	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *
+	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
+	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
+	 *  ãªãï¼
+	 */
+	ercd = serial_opn_por(TASK_PORTID);
+	if (ercd < 0 && MERCD(ercd) != E_OBJ) {
+		syslog(LOG_ERROR, "%s (%d) reported by `serial_opn_por'.",
+									itron_strerror(ercd), SERCD(ercd));
+	}
+	SVC_PERROR(serial_ctl_por(TASK_PORTID,
+							(IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV)));
+
+	/*
+ 	 *  ã«ã¼ãåæ°ã®è¨­å®
+	 *
+	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
+	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
+	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
+	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *
+	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
+	 *  ãé
+ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
+	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
+	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *
+	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
+	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *
+	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
+	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
+	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *
+	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
+	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
+	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
+	 * ãä½¿ãï¼
+	 *
+	 *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼tex_loopï¼ã¯ï¼
+	 *  task_loopã®4åã®1ã®å¤ï¼ç©ºã«ã¼ãã®å®è¡æéã0.1ç§ã«ãªãã«ã¼ãå
+	 *  æ°ï¼ã«è¨­å®ããï¼
+	 */
+#ifdef TASK_LOOP
+	task_loop = TASK_LOOP;
+#else /* TASK_LOOP */
+
+#ifdef MEASURE_TWICE
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+#endif /* MEASURE_TWICE */
+
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+	task_loop = LOOP_REF * 400UL / (stime2 - stime1);
+
+#endif /* TASK_LOOP */
+	tex_loop = task_loop / 4;
+
+	/*
+ 	 *  ã¿ã¹ã¯ã®èµ·å
+	 */
+	SVC_PERROR(act_tsk(TASK1));
+	SVC_PERROR(act_tsk(TASK2));
+
+	/*
+ 	 *  ã¡ã¤ã³ã«ã¼ã
+	 */
+	do {
+		SVC_PERROR(serial_rea_dat(TASK_PORTID, &c, 1));
+		switch (c) {
+		case 'e':
+		case 's':
+		case 'S':
+		case 'd':
+		case 'y':
+		case 'Y':
+		case 'z':
+		case 'Z':
+			message[tskno-1] = c;
+			break;
+		case '1':
+			tskno = 1;
+			tskid = TASK1;
+			break;
+		case '2':
+			tskno = 2;
+			tskid = TASK2;
+			break;
+		case '3':
+			tskno = 3;
+			tskid = TASK3;
+			break;
+		case 'a':
+			syslog(LOG_INFO, "#act_tsk(%d)", tskno);
+			SVC_PERROR(act_tsk(tskid));
+			break;
+		case 'A':
+			syslog(LOG_INFO, "#can_act(%d)", tskno);
+			SVC_PERROR(ercd = can_act(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_act(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 't':
+			syslog(LOG_INFO, "#ter_tsk(%d)", tskno);
+			SVC_PERROR(ter_tsk(tskid));
+			break;
+		case '>':
+			syslog(LOG_INFO, "#chg_pri(%d, HIGH_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, HIGH_PRIORITY));
+			break;
+		case '=':
+			syslog(LOG_INFO, "#chg_pri(%d, MID_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, MID_PRIORITY));
+			break;
+		case '<':
+			syslog(LOG_INFO, "#chg_pri(%d, LOW_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, LOW_PRIORITY));
+			break;
+		case 'G':
+			syslog(LOG_INFO, "#get_pri(%d, &tskpri)", tskno);
+			SVC_PERROR(ercd = get_pri(tskid, &tskpri));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "priority of task %d is %d", tskno, tskpri);
+			}
+			break;
+		case 'w':
+			syslog(LOG_INFO, "#wup_tsk(%d)", tskno);
+			SVC_PERROR(wup_tsk(tskid));
+			break;
+		case 'W':
+			syslog(LOG_INFO, "#can_wup(%d)", tskno);
+			SVC_PERROR(ercd = can_wup(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_wup(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 'l':
+			syslog(LOG_INFO, "#rel_wai(%d)", tskno);
+			SVC_PERROR(rel_wai(tskid));
+			break;
+		case 'u':
+			syslog(LOG_INFO, "#sus_tsk(%d)", tskno);
+			SVC_PERROR(sus_tsk(tskid));
+			break;
+		case 'm':
+			syslog(LOG_INFO, "#rsm_tsk(%d)", tskno);
+			SVC_PERROR(rsm_tsk(tskid));
+			break;
+		case 'x':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0001U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0001U));
+			break;
+		case 'X':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0002U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0002U));
+			break;
+		case 'r':
+			syslog(LOG_INFO, "#rot_rdq(three priorities)");
+			SVC_PERROR(rot_rdq(HIGH_PRIORITY));
+			SVC_PERROR(rot_rdq(MID_PRIORITY));
+			SVC_PERROR(rot_rdq(LOW_PRIORITY));
+			break;
+		case 'c':
+			syslog(LOG_INFO, "#sta_cyc(1)");
+			SVC_PERROR(sta_cyc(CYCHDR1));
+			break;
+		case 'C':
+			syslog(LOG_INFO, "#stp_cyc(1)");
+			SVC_PERROR(stp_cyc(CYCHDR1));
+			break;
+		case 'b':
+			syslog(LOG_INFO, "#sta_alm(1, 5000)");
+			SVC_PERROR(sta_alm(ALMHDR1, 5000));
+			break;
+		case 'B':
+			syslog(LOG_INFO, "#stp_alm(1)");
+			SVC_PERROR(stp_alm(ALMHDR1));
+			break;
+		case '@':
+			ctsk.tskatr = TA_NULL;
+			ctsk.exinf = 3;
+			ctsk.task = task;
+			ctsk.itskpri = MID_PRIORITY;
+			ctsk.stksz = STACK_SIZE;
+			ctsk.stk = NULL;
+			SVC_PERROR(TASK3 = acre_tsk(&ctsk));
+
+			dtex.texatr = TA_NULL;
+			dtex.texrtn = tex_routine;
+			SVC_PERROR(def_tex(TASK3, &dtex));
+
+			syslog(LOG_NOTICE, "task3 is created with tskid = %d.",
+														(int_t) TASK3);
+			break;
+		case '!':
+			syslog(LOG_INFO, "#del_tsk(%d)", tskno);
+			SVC_PERROR(del_tsk(tskid));
+			break;
+
+		case 'V':
+#ifdef TOPPERS_SUPPORT_GET_UTM
+			SVC_PERROR(get_utm(&utime1));
+			SVC_PERROR(get_utm(&utime2));
+			syslog(LOG_NOTICE, "utime1 = %ld, utime2 = %ld",
+										(ulong_t) utime1, (ulong_t) utime2);
+#else /* TOPPERS_SUPPORT_GET_UTM */
+			syslog(LOG_NOTICE, "get_utm is not supported.");
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+			break;
+
+		case 'v':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+		case 'q':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_NOTICE),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+
+#ifdef BIT_KERNEL
+		case ' ':
+			SVC_PERROR(loc_cpu());
+			{
+				extern ER	bit_kernel(void);
+
+				SVC_PERROR(ercd = bit_kernel());
+				if (ercd >= 0) {
+					syslog(LOG_NOTICE, "bit_kernel passed.");
+				}
+			}
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* BIT_KERNEL */
+
+		default:
+			break;
+		}
+	} while (c != '\003' && c != 'Q');
+
+	syslog(LOG_NOTICE, "Sample program ends.");
+	SVC_PERROR(ext_ker());
+	assert(0);
+}
Index: rubycfg_asp/trunk/csp/sample1/sample1.cfg
===================================================================
--- rubycfg_asp/trunk/csp/sample1/sample1.cfg	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/sample1.cfg	(revision 313)
@@ -0,0 +1,26 @@
+/*
+ *  $Id$
+ */
+
+/*
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+INCLUDE("syssvc/logtask.cfg");
+
+#include "sample1.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+AID_TSK(3);
+DEF_TEX(TASK1, { TA_NULL, tex_routine });
+DEF_TEX(TASK2, { TA_NULL, tex_routine });
+CRE_CYC(CYCHDR1, { TA_NULL, 0, cyclic_handler, 2000, 0 });
+CRE_ALM(ALMHDR1, { TA_NULL, 0, alarm_handler });
+#ifdef CPUEXC1
+DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
+#endif /* CPUEXC1 */
+DEF_KMM({ KMM_SIZE, NULL });
Index: rubycfg_asp/trunk/csp/sample1/sample1.h
===================================================================
--- rubycfg_asp/trunk/csp/sample1/sample1.h	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1/sample1.h	(revision 313)
@@ -0,0 +1,116 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ *
+ *  $Id$
+ */
+
+/*
+ *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+
+#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+								/* HIGH_PRIORITYããé«ããããã¨ */
+
+#define HIGH_PRIORITY	9		/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã®åªå
+åº¦ */
+#define MID_PRIORITY	10
+#define LOW_PRIORITY	11
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+
+#ifndef TASK_PORTID
+#define	TASK_PORTID		1			/* æå­å
+¥åããã·ãªã¢ã«ãã¼ãID */
+#endif /* TASK_PORTID */
+
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+#ifndef KMM_SIZE
+#define	KMM_SIZE		(STACK_SIZE * 16)	/* ã«ã¼ãã«ãå²ãä»ãã   */
+#endif /* KMM_SIZE */						/*     ã¡ã¢ãªé åã®ãµã¤ãº */
+
+#ifndef LOOP_REF
+#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#endif /* LOOP_REF */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
+extern void	tex_routine(TEXPTN texptn, intptr_t exinf);
+#ifdef CPUEXC1
+extern void	cpuexc_handler(void *p_excinf);
+#endif /* CPUEXC1 */
+extern void	cyclic_handler(intptr_t exinf);
+extern void	alarm_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/csp/sample1n/asp.mtpj
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/asp.mtpj	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/asp.mtpj	(revision 313)
@@ -0,0 +1,3408 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</ProjectGuid>
+      <ProjectItemGuid>d47471f6-8bb1-4801-afae-d5f966dd837b</ProjectItemGuid>
+      <FileCategoryGuid>66510055-44b8-457e-b9fe-33d6cf8945fc</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+      <ActiveProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</ActiveProjectGuid>
+    </Instance>
+    <Instance Guid="bbf392be-9376-4aba-bf45-bd3546fe324a">
+      <DependentProjectsGuidsSourceProjectsCount>0</DependentProjectsGuidsSourceProjectsCount>
+      <Type>Data</Type>
+    </Instance>
+    <Instance Guid="9fa693b9-af83-4f03-9e76-5214d07fd6d9">
+      <Name>app</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+    </Instance>
+    <Instance Guid="fe897348-e189-4eec-a5cd-97deb3f7ad9e">
+      <Name>syssvc</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+    </Instance>
+    <Instance Guid="a0339ea3-e71e-4575-940c-42667cd52f98">
+      <Name>library</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+    </Instance>
+    <Instance Guid="59051a64-97cc-46c7-ae91-cb247a86c983">
+      <Name>tinet</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+      <Property>9eafe94d-3be6-4ab7-86f9-291bbbac2658</Property>
+    </Instance>
+    <Instance Guid="5796f21d-d8cd-42ae-badb-d298bd757180">
+      <Name>configuration</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+    </Instance>
+    <Instance Guid="2da63f08-c338-4c22-bddf-e35610ba2425">
+      <Name>ã¹ã¿ã¼ãã¢ãã</Name>
+      <Type>Category</Type>
+      <ParentItem>66510055-44b8-457e-b9fe-33d6cf8945fc</ParentItem>
+    </Instance>
+    <Instance Guid="ae5c15f7-805e-426c-89a9-dd344eddf989">
+      <Name>sample1.c</Name>
+      <Type>File</Type>
+      <RelativePath>sample1.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>9fa693b9-af83-4f03-9e76-5214d07fd6d9</ParentItem>
+    </Instance>
+    <Instance Guid="1b68537f-8dd7-4754-a487-1f2b176ddd0f">
+      <Name>route_cfg.c</Name>
+      <Type>File</Type>
+      <RelativePath>route_cfg.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>9fa693b9-af83-4f03-9e76-5214d07fd6d9</ParentItem>
+    </Instance>
+    <Instance Guid="8a1fe9e1-b388-4fcf-a32e-858d274b9252">
+      <Name>sample1n.c</Name>
+      <Type>File</Type>
+      <RelativePath>sample1n.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>9fa693b9-af83-4f03-9e76-5214d07fd6d9</ParentItem>
+    </Instance>
+    <Instance Guid="0f4143e1-98a8-4d8b-9aac-21a6e1079bfa">
+      <Name>banner.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\banner.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>fe897348-e189-4eec-a5cd-97deb3f7ad9e</ParentItem>
+    </Instance>
+    <Instance Guid="e3b26763-4644-43be-8a37-c6e998377a7e">
+      <Name>logtask.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\logtask.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>fe897348-e189-4eec-a5cd-97deb3f7ad9e</ParentItem>
+    </Instance>
+    <Instance Guid="31e92240-2815-4226-bc79-933f3d5edde3">
+      <Name>serial.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\serial.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>fe897348-e189-4eec-a5cd-97deb3f7ad9e</ParentItem>
+    </Instance>
+    <Instance Guid="3b8cf90f-254e-4121-8cba-27c2e0c491cd">
+      <Name>syslog.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\syssvc\syslog.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>fe897348-e189-4eec-a5cd-97deb3f7ad9e</ParentItem>
+    </Instance>
+    <Instance Guid="0e54cc8b-d46c-45c8-9a6b-097717a0ce1e">
+      <Name>histogram.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\histogram.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="e1b083d2-4fac-4333-a033-d6049417cf11">
+      <Name>log_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\log_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="01d8677b-613c-4d60-b0f6-a0250417e148">
+      <Name>strerror.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\strerror.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="428b7817-50fd-49e4-aa4e-a7d4c7c1ab44">
+      <Name>t_perror.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\t_perror.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="ccd11f67-54c3-41c5-89a5-3b9bb92f533d">
+      <Name>test_lib.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\test_lib.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="ff6ae5d2-8412-4471-a5e7-771e390a90e8">
+      <Name>vasyslog.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\library\vasyslog.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a0339ea3-e71e-4575-940c-42667cd52f98</ParentItem>
+    </Instance>
+    <Instance Guid="d5fdc935-a3c1-4724-bfaf-00cd22b9b38d">
+      <Name>net</Name>
+      <Type>Category</Type>
+      <ParentItem>59051a64-97cc-46c7-ae91-cb247a86c983</ParentItem>
+      <Property>3093d9ac-192c-4f80-bd31-8394439b8b67</Property>
+    </Instance>
+    <Instance Guid="994d4be8-8a05-4893-846e-35e7eca7d8a8">
+      <Name>netdev</Name>
+      <Type>Category</Type>
+      <ParentItem>59051a64-97cc-46c7-ae91-cb247a86c983</ParentItem>
+      <Property>e5ca1958-1f59-417e-a241-1f2a458cbcba</Property>
+    </Instance>
+    <Instance Guid="605483ab-4749-4b85-88c9-b4b85f72a73a">
+      <Name>netinet</Name>
+      <Type>Category</Type>
+      <ParentItem>59051a64-97cc-46c7-ae91-cb247a86c983</ParentItem>
+      <Property>ea0edd32-5863-407c-85b5-43dfe71620d9</Property>
+    </Instance>
+    <Instance Guid="a15093ec-3bde-4b04-bdd5-4ea9871ba8de">
+      <Name>netinet6</Name>
+      <Type>Category</Type>
+      <ParentItem>59051a64-97cc-46c7-ae91-cb247a86c983</ParentItem>
+      <Property>999dbdfd-74f9-4c51-9c6a-3828a9b84274</Property>
+    </Instance>
+    <Instance Guid="929bbed0-870c-4052-90a6-06cceae4adea">
+      <Name>tinet_target_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\target\gr_sakura_ccrx\tinet_target_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>59051a64-97cc-46c7-ae91-cb247a86c983</ParentItem>
+    </Instance>
+    <Instance Guid="3b4e553d-380a-40e4-b7a0-b006a89326f8">
+      <Name>ethernet.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\ethernet.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="7d78da27-a368-4975-931b-eea11150981c">
+      <Name>if.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\if.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="322a56fb-9d7a-4f6c-ba45-acb91d5d96c8">
+      <Name>net_buf.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\net_buf.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="7cabc0b8-f0ad-41d4-b1e5-40107ae35846">
+      <Name>net_count.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\net_count.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="906a59ec-5cb2-4d05-8fb4-e1593bdf28ed">
+      <Name>net_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\net_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="78f43e0e-6eac-43c5-b8b4-ee42f053174a">
+      <Name>net_timer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\net\net_timer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>d5fdc935-a3c1-4724-bfaf-00cd22b9b38d</ParentItem>
+    </Instance>
+    <Instance Guid="6e08ef01-f60c-4951-879b-3f73a97aeb77">
+      <Name>if_rx62n.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netdev\if_rx62n\if_rx62n.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>994d4be8-8a05-4893-846e-35e7eca7d8a8</ParentItem>
+    </Instance>
+    <Instance Guid="1b548220-768e-4860-8d2b-eecdd6581345">
+      <Name>ether_phy.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netdev\if_rx62n\ether_phy.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>994d4be8-8a05-4893-846e-35e7eca7d8a8</ParentItem>
+    </Instance>
+    <Instance Guid="a6c49276-f6d4-4f73-9200-f715b24ba54a">
+      <Name>if_ether.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\if_ether.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="ed31dbeb-a239-4cf5-8f6d-ef0306344890">
+      <Name>in4_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\in4_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="e90102eb-5c54-4fe9-9adf-e071f1eaadf9">
+      <Name>ip_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\ip_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="83739dd7-652a-4865-ae56-d4aade6c4c16">
+      <Name>udp_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\udp_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="83cb370f-8cca-46b0-9fd2-74fdb21d33af">
+      <Name>udp_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\udp_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="aee69e16-426a-47d4-b571-47b1bee593fe">
+      <Name>udp_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\udp_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="c4300b4d-c8f9-4512-8573-a3d86afa2236">
+      <Name>tcp_subr_ncs.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_subr_ncs.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="8cd69cd1-9987-42af-9626-3d70a9bfa5d2">
+      <Name>tcp_timer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_timer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="a239e977-fb6c-49d4-8965-6b6e6553b52b">
+      <Name>tcp_usrreq.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_usrreq.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="28fe9ac7-0d72-4b0f-a69b-444d4ac21628">
+      <Name>tcpn_usrreq.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcpn_usrreq.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="c50ab60d-8e23-449e-88c7-c254df091f05">
+      <Name>tcp_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="d8890a1c-18f2-4626-9b79-4b9e29e49032">
+      <Name>tcp_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="6829407c-b7d6-4801-99a5-55d89db377df">
+      <Name>tcp_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="5c54f245-51a4-458e-8086-799bd25467d0">
+      <Name>tcp_subr_cs.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\tcp_subr_cs.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="15de601a-1392-4299-913b-af013bef24a4">
+      <Name>ip_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\ip_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="b9bc7230-a6e5-4648-aa48-c6ce9297942e">
+      <Name>ip_icmp.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\ip_icmp.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="86ae7ccf-2377-41a2-9944-d3041fcabd88">
+      <Name>in_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet\in_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>605483ab-4749-4b85-88c9-b4b85f72a73a</ParentItem>
+    </Instance>
+    <Instance Guid="aad3a1cd-ae06-4455-8611-dddd16e730d3">
+      <Name>nd6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\nd6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="1657cba0-0fe7-4611-a05f-8fa15d9c0cd8">
+      <Name>nd6_nbr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\nd6_nbr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="3fdb4550-c8c9-46f9-969c-495394b687c9">
+      <Name>nd6_rtr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\nd6_rtr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="b42563e2-f680-4bd7-88ca-0960f2a6b1d1">
+      <Name>route6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\route6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="89025998-f540-448b-b987-6245d186f4d8">
+      <Name>scope6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\scope6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="57f188af-401c-4049-a6a2-3cf7afaffe6a">
+      <Name>in6_subr.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\in6_subr.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="f8aabe1c-0cd4-4934-b79d-11334e291666">
+      <Name>ip6_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\ip6_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="c1c0801b-ff7c-4c8e-9c71-b8de2d6aa767">
+      <Name>ip6_output.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\ip6_output.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="177bba89-be93-48a7-a388-3218af11dc4b">
+      <Name>in6_ifattach.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\in6_ifattach.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="2511f525-c5a5-45ef-bad9-1ba4500ed87a">
+      <Name>icmp6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\icmp6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="a136c52b-2176-4ba5-b50a-bee92d9ac751">
+      <Name>if6_ether.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\if6_ether.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="28d31142-4820-4f1b-9c48-6653db30c56e">
+      <Name>in6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\in6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="f44e9e70-1f32-46db-8f39-7ac7352470e6">
+      <Name>ah_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\ah_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="3eaf19ad-f389-46f8-8da9-6f718d5f1df6">
+      <Name>dest6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\dest6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="cf547943-e43a-4ac4-80dd-19558eec0fcb">
+      <Name>esp_input.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\esp_input.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="041991ef-a881-463f-9bbe-85915327802f">
+      <Name>frag6.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\tinet\netinet6\frag6.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>a15093ec-3bde-4b04-bdd5-4ea9871ba8de</ParentItem>
+    </Instance>
+    <Instance Guid="43181a9c-f574-4492-bbdc-e402c42cdc04">
+      <Name>kernel_cfg_asm.src</Name>
+      <Type>File</Type>
+      <RelativePath>cfg\kernel_cfg_asm.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>5796f21d-d8cd-42ae-badb-d298bd757180</ParentItem>
+    </Instance>
+    <Instance Guid="2fb90358-9b02-455a-8b6f-a9df9afbf5f3">
+      <Name>kernel_cfg.c</Name>
+      <Type>File</Type>
+      <RelativePath>cfg\kernel_cfg.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>5796f21d-d8cd-42ae-badb-d298bd757180</ParentItem>
+    </Instance>
+    <Instance Guid="c9d83952-9760-4eab-b0b0-9f3c86a16f86">
+      <Name>tinet_cfg.c</Name>
+      <Type>File</Type>
+      <RelativePath>cfg\tinet_cfg.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>5796f21d-d8cd-42ae-badb-d298bd757180</ParentItem>
+    </Instance>
+    <Instance Guid="0237afca-a23e-4a3a-a672-82ba04dfc7a4">
+      <Name>start.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\asp_dcre\arch\rx630_ccrx\start.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>2da63f08-c338-4c22-bddf-e35610ba2425</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="9033e9fb-2b12-4437-a25e-27b28d42582b">
+    <Instance Guid="89c1f048-0dc5-4790-bf10-82195cca4b0e">
+      <Name>cfg</Name>
+      <RelativePath>cfg\cfg.mtsp</RelativePath>
+    </Instance>
+    <Instance Guid="1c867b4b-e57a-4c95-a13c-5d24b0a147e5">
+      <Name>kernel</Name>
+      <RelativePath>kernel\kernel.mtsp</RelativePath>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="78a5c5cd-76cb-4bcc-a031-3020011fbc9a">
+    <Instance Guid="9eafe94d-3be6-4ab7-86f9-291bbbac2658">
+      <MemoCount>0</MemoCount>
+    </Instance>
+    <Instance Guid="3093d9ac-192c-4f80-bd31-8394439b8b67">
+      <MemoCount>0</MemoCount>
+    </Instance>
+    <Instance Guid="e5ca1958-1f59-417e-a241-1f2a458cbcba">
+      <MemoCount>0</MemoCount>
+    </Instance>
+    <Instance Guid="ea0edd32-5863-407c-85b5-43dfe71620d9">
+      <MemoCount>0</MemoCount>
+    </Instance>
+    <Instance Guid="999dbdfd-74f9-4c51-9c6a-3828a9b84274">
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>500ba51a-4219-4828-b4be-80f54d6d3551</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>ae5c15f7-805e-426c-89a9-dd344eddf989</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemGuid1>1b68537f-8dd7-4754-a487-1f2b176ddd0f</SourceItemGuid1>
+      <SourceItemType1>CSource</SourceItemType1>
+      <SourceItemGuid2>8a1fe9e1-b388-4fcf-a32e-858d274b9252</SourceItemGuid2>
+      <SourceItemType2>CSource</SourceItemType2>
+      <SourceItemGuid3>0f4143e1-98a8-4d8b-9aac-21a6e1079bfa</SourceItemGuid3>
+      <SourceItemType3>CSource</SourceItemType3>
+      <SourceItemGuid4>e3b26763-4644-43be-8a37-c6e998377a7e</SourceItemGuid4>
+      <SourceItemType4>CSource</SourceItemType4>
+      <SourceItemGuid5>31e92240-2815-4226-bc79-933f3d5edde3</SourceItemGuid5>
+      <SourceItemType5>CSource</SourceItemType5>
+      <SourceItemGuid6>3b8cf90f-254e-4121-8cba-27c2e0c491cd</SourceItemGuid6>
+      <SourceItemType6>CSource</SourceItemType6>
+      <SourceItemGuid7>0e54cc8b-d46c-45c8-9a6b-097717a0ce1e</SourceItemGuid7>
+      <SourceItemType7>CSource</SourceItemType7>
+      <SourceItemGuid8>e1b083d2-4fac-4333-a033-d6049417cf11</SourceItemGuid8>
+      <SourceItemType8>CSource</SourceItemType8>
+      <SourceItemGuid9>01d8677b-613c-4d60-b0f6-a0250417e148</SourceItemGuid9>
+      <SourceItemType9>CSource</SourceItemType9>
+      <SourceItemGuid10>428b7817-50fd-49e4-aa4e-a7d4c7c1ab44</SourceItemGuid10>
+      <SourceItemType10>CSource</SourceItemType10>
+      <SourceItemGuid11>ccd11f67-54c3-41c5-89a5-3b9bb92f533d</SourceItemGuid11>
+      <SourceItemType11>CSource</SourceItemType11>
+      <SourceItemGuid12>ff6ae5d2-8412-4471-a5e7-771e390a90e8</SourceItemGuid12>
+      <SourceItemType12>CSource</SourceItemType12>
+      <SourceItemGuid13>929bbed0-870c-4052-90a6-06cceae4adea</SourceItemGuid13>
+      <SourceItemType13>CSource</SourceItemType13>
+      <SourceItemGuid14>3b4e553d-380a-40e4-b7a0-b006a89326f8</SourceItemGuid14>
+      <SourceItemType14>CSource</SourceItemType14>
+      <SourceItemGuid15>7d78da27-a368-4975-931b-eea11150981c</SourceItemGuid15>
+      <SourceItemType15>CSource</SourceItemType15>
+      <SourceItemGuid16>322a56fb-9d7a-4f6c-ba45-acb91d5d96c8</SourceItemGuid16>
+      <SourceItemType16>CSource</SourceItemType16>
+      <SourceItemGuid17>7cabc0b8-f0ad-41d4-b1e5-40107ae35846</SourceItemGuid17>
+      <SourceItemType17>CSource</SourceItemType17>
+      <SourceItemGuid18>906a59ec-5cb2-4d05-8fb4-e1593bdf28ed</SourceItemGuid18>
+      <SourceItemType18>CSource</SourceItemType18>
+      <SourceItemGuid19>78f43e0e-6eac-43c5-b8b4-ee42f053174a</SourceItemGuid19>
+      <SourceItemType19>CSource</SourceItemType19>
+      <SourceItemGuid20>6e08ef01-f60c-4951-879b-3f73a97aeb77</SourceItemGuid20>
+      <SourceItemType20>CSource</SourceItemType20>
+      <SourceItemGuid21>1b548220-768e-4860-8d2b-eecdd6581345</SourceItemGuid21>
+      <SourceItemType21>CSource</SourceItemType21>
+      <SourceItemGuid22>a6c49276-f6d4-4f73-9200-f715b24ba54a</SourceItemGuid22>
+      <SourceItemType22>CSource</SourceItemType22>
+      <SourceItemGuid23>ed31dbeb-a239-4cf5-8f6d-ef0306344890</SourceItemGuid23>
+      <SourceItemType23>CSource</SourceItemType23>
+      <SourceItemGuid24>e90102eb-5c54-4fe9-9adf-e071f1eaadf9</SourceItemGuid24>
+      <SourceItemType24>CSource</SourceItemType24>
+      <SourceItemGuid25>83739dd7-652a-4865-ae56-d4aade6c4c16</SourceItemGuid25>
+      <SourceItemType25>CSource</SourceItemType25>
+      <SourceItemGuid26>83cb370f-8cca-46b0-9fd2-74fdb21d33af</SourceItemGuid26>
+      <SourceItemType26>CSource</SourceItemType26>
+      <SourceItemGuid27>aee69e16-426a-47d4-b571-47b1bee593fe</SourceItemGuid27>
+      <SourceItemType27>CSource</SourceItemType27>
+      <SourceItemGuid28>c4300b4d-c8f9-4512-8573-a3d86afa2236</SourceItemGuid28>
+      <SourceItemType28>CSource</SourceItemType28>
+      <SourceItemGuid29>8cd69cd1-9987-42af-9626-3d70a9bfa5d2</SourceItemGuid29>
+      <SourceItemType29>CSource</SourceItemType29>
+      <SourceItemGuid30>a239e977-fb6c-49d4-8965-6b6e6553b52b</SourceItemGuid30>
+      <SourceItemType30>CSource</SourceItemType30>
+      <SourceItemGuid31>28fe9ac7-0d72-4b0f-a69b-444d4ac21628</SourceItemGuid31>
+      <SourceItemType31>CSource</SourceItemType31>
+      <SourceItemGuid32>c50ab60d-8e23-449e-88c7-c254df091f05</SourceItemGuid32>
+      <SourceItemType32>CSource</SourceItemType32>
+      <SourceItemGuid33>d8890a1c-18f2-4626-9b79-4b9e29e49032</SourceItemGuid33>
+      <SourceItemType33>CSource</SourceItemType33>
+      <SourceItemGuid34>6829407c-b7d6-4801-99a5-55d89db377df</SourceItemGuid34>
+      <SourceItemType34>CSource</SourceItemType34>
+      <SourceItemGuid35>5c54f245-51a4-458e-8086-799bd25467d0</SourceItemGuid35>
+      <SourceItemType35>CSource</SourceItemType35>
+      <SourceItemGuid36>15de601a-1392-4299-913b-af013bef24a4</SourceItemGuid36>
+      <SourceItemType36>CSource</SourceItemType36>
+      <SourceItemGuid37>b9bc7230-a6e5-4648-aa48-c6ce9297942e</SourceItemGuid37>
+      <SourceItemType37>CSource</SourceItemType37>
+      <SourceItemGuid38>86ae7ccf-2377-41a2-9944-d3041fcabd88</SourceItemGuid38>
+      <SourceItemType38>CSource</SourceItemType38>
+      <SourceItemGuid39>aad3a1cd-ae06-4455-8611-dddd16e730d3</SourceItemGuid39>
+      <SourceItemType39>CSource</SourceItemType39>
+      <SourceItemGuid40>1657cba0-0fe7-4611-a05f-8fa15d9c0cd8</SourceItemGuid40>
+      <SourceItemType40>CSource</SourceItemType40>
+      <SourceItemGuid41>3fdb4550-c8c9-46f9-969c-495394b687c9</SourceItemGuid41>
+      <SourceItemType41>CSource</SourceItemType41>
+      <SourceItemGuid42>b42563e2-f680-4bd7-88ca-0960f2a6b1d1</SourceItemGuid42>
+      <SourceItemType42>CSource</SourceItemType42>
+      <SourceItemGuid43>89025998-f540-448b-b987-6245d186f4d8</SourceItemGuid43>
+      <SourceItemType43>CSource</SourceItemType43>
+      <SourceItemGuid44>57f188af-401c-4049-a6a2-3cf7afaffe6a</SourceItemGuid44>
+      <SourceItemType44>CSource</SourceItemType44>
+      <SourceItemGuid45>f8aabe1c-0cd4-4934-b79d-11334e291666</SourceItemGuid45>
+      <SourceItemType45>CSource</SourceItemType45>
+      <SourceItemGuid46>c1c0801b-ff7c-4c8e-9c71-b8de2d6aa767</SourceItemGuid46>
+      <SourceItemType46>CSource</SourceItemType46>
+      <SourceItemGuid47>177bba89-be93-48a7-a388-3218af11dc4b</SourceItemGuid47>
+      <SourceItemType47>CSource</SourceItemType47>
+      <SourceItemGuid48>2511f525-c5a5-45ef-bad9-1ba4500ed87a</SourceItemGuid48>
+      <SourceItemType48>CSource</SourceItemType48>
+      <SourceItemGuid49>a136c52b-2176-4ba5-b50a-bee92d9ac751</SourceItemGuid49>
+      <SourceItemType49>CSource</SourceItemType49>
+      <SourceItemGuid50>28d31142-4820-4f1b-9c48-6653db30c56e</SourceItemGuid50>
+      <SourceItemType50>CSource</SourceItemType50>
+      <SourceItemGuid51>f44e9e70-1f32-46db-8f39-7ac7352470e6</SourceItemGuid51>
+      <SourceItemType51>CSource</SourceItemType51>
+      <SourceItemGuid52>3eaf19ad-f389-46f8-8da9-6f718d5f1df6</SourceItemGuid52>
+      <SourceItemType52>CSource</SourceItemType52>
+      <SourceItemGuid53>cf547943-e43a-4ac4-80dd-19558eec0fcb</SourceItemGuid53>
+      <SourceItemType53>CSource</SourceItemType53>
+      <SourceItemGuid54>041991ef-a881-463f-9bbe-85915327802f</SourceItemGuid54>
+      <SourceItemType54>CSource</SourceItemType54>
+      <SourceItemGuid55>43181a9c-f574-4492-bbdc-e402c42cdc04</SourceItemGuid55>
+      <SourceItemType55>AsmSource</SourceItemType55>
+      <SourceItemGuid56>2fb90358-9b02-455a-8b6f-a9df9afbf5f3</SourceItemGuid56>
+      <SourceItemType56>CSource</SourceItemType56>
+      <SourceItemGuid57>c9d83952-9760-4eab-b0b0-9f3c86a16f86</SourceItemGuid57>
+      <SourceItemType57>CSource</SourceItemType57>
+      <SourceItemGuid58>0237afca-a23e-4a3a-a672-82ba04dfc7a4</SourceItemGuid58>
+      <SourceItemType58>AsmSource</SourceItemType58>
+      <SourceItemCount>59</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Fpu</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028135650691139</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%Program% %Options%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0>#!python
+common.Source("../../asp_dcre/arch/ccrx/post_asp.py")
+</PostBuildCommands-0>
+      <GeneralOptionIsa-0>RXv1</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Fpu</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=.
+-include=cfg
+-include=..\..\asp_dcre
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\include
+-include=..\..\asp_dcre\kernel
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\syssvc
+-include=..\..\asp_dcre\library
+-include=..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\asp_dcre\pdic\rx600
+-include=..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\asp_dcre\arch\ccrx
+-include=..\..\asp_dcre\tinet
+-include=..\..\asp_dcre\tinet\netdev\if_rx62n
+-define=TARGET_KERNEL_ASP,SUPPORT_INET4,SUPPORT_TCP,SUPPORT_UDP,SUPPORT_ETHER
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028064876498541</TimeTagModified--0>
+      <COptionLangC-0>C99</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>.
+cfg
+..\..\asp_dcre
+..\..\asp_dcre\arch
+..\..\asp_dcre\include
+..\..\asp_dcre\kernel
+..\..\asp_dcre\arch
+..\..\asp_dcre\syssvc
+..\..\asp_dcre\library
+..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\asp_dcre\pdic\rx600
+..\..\asp_dcre\arch\rx630_ccrx
+..\..\asp_dcre\arch\ccrx
+..\..\asp_dcre\tinet
+..\..\asp_dcre\tinet\netdev\if_rx62n
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-isa=rxv1
+-fpu
+-include=.
+-include=cfg
+-include=..\..\asp_dcre
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\include
+-include=..\..\asp_dcre\kernel
+-include=..\..\asp_dcre\arch
+-include=..\..\asp_dcre\syssvc
+-include=..\..\asp_dcre\library
+-include=..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\asp_dcre\pdic\rx600
+-include=..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\asp_dcre\arch\ccrx
+-include=..\..\asp_dcre\tinet
+-include=..\..\asp_dcre\tinet\netdev\if_rx62n
+-define=TARGET_KERNEL_ASP,SUPPORT_INET4,SUPPORT_TCP,SUPPORT_UDP,SUPPORT_ETHER
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0>TARGET_KERNEL_ASP
+SUPPORT_INET4
+SUPPORT_TCP
+SUPPORT_UDP
+SUPPORT_ETHER
+</COptionDefine-0>
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Fpu</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-include=../../asp_dcre/target/gr_sakura_ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028190589153925</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0>../../asp_dcre/target/gr_sakura_ccrx
+</AsmOptionInclude-0>
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-isa=rxv1
+-fpu
+-include=../../asp_dcre/target/gr_sakura_ccrx
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue>-library=kernel\%BuildModeName%\kernel
+-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=BETH_MEMORY,B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80
+-rom=D=R,D_1=R_1,D_2=R_2
+-nologo
+-exit
+</LinkOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028124859948666</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>BETH_MEMORY,B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80</LinkOptionStart-0>
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0>kernel\%BuildModeName%\kernel
+</LinkOptionLibrary-0>
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>True</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0>D=R
+D_1=R_1
+D_2=R_2
+</LinkOptionRom-0>
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0>-library=kernel\%BuildModeName%\kernel
+-noprelink
+-output=%BuildModeName%\%ProjectName%.abs
+-list=%BuildModeName%\%ProjectName%.map
+-show=symbol
+-nooptimize
+-start=BETH_MEMORY,B_1,R_1,B_2,R_2,B,R,SI/00000000,C$VECT,P_START,C_1,C_2,C,D_1,D_2,D,P,W_1,W_2,W,L/FFF00000,FVECT/FFFFFF80
+-rom=D=R,D_1=R_1,D_2=R_2
+-nologo
+-exit
+</LinkOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue>-end
+-input=%BuildModeName%\%ProjectName%.abs
+-form=stype
+-output=%BuildModeName%\%ProjectName%.srec
+-exit
+</HexOptionCommandLine-DefaultValue>
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284371963308</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>%ProjectName%.srec</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0>-end
+-input=%BuildModeName%\%ProjectName%.abs
+-form=stype
+-output=%BuildModeName%\%ProjectName%.srec
+-exit
+</HexOptionCommandLine-0>
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284371963308</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>MakeOptionChanged</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue>-isa=rxv1
+-fpu
+-head=runtime,stdio,stdlib,string,new
+-output=%BuildModeName%\%ProjectName%.lib
+-nologo
+</LbgOptionCommandLine-DefaultValue>
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028135650331139</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>MakeOptionChanged</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0>-isa=rxv1
+-fpu
+-head=runtime,stdio,stdlib,string,new
+-output=%BuildModeName%\%ProjectName%.lib
+-nologo
+</LbgOptionCommandLine-0>
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="ae5c15f7-805e-426c-89a9-dd344eddf989">
+      <ItemAddTime>635280076542343750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="0f4143e1-98a8-4d8b-9aac-21a6e1079bfa">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="e3b26763-4644-43be-8a37-c6e998377a7e">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="31e92240-2815-4226-bc79-933f3d5edde3">
+      <ItemAddTime>635280076542656250</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3b8cf90f-254e-4121-8cba-27c2e0c491cd">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="0e54cc8b-d46c-45c8-9a6b-097717a0ce1e">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="e1b083d2-4fac-4333-a033-d6049417cf11">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="01d8677b-613c-4d60-b0f6-a0250417e148">
+      <ItemAddTime>635280076542812500</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="428b7817-50fd-49e4-aa4e-a7d4c7c1ab44">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="ccd11f67-54c3-41c5-89a5-3b9bb92f533d">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="ff6ae5d2-8412-4471-a5e7-771e390a90e8">
+      <ItemAddTime>635280076542968750</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="43181a9c-f574-4492-bbdc-e402c42cdc04">
+      <ItemAddTime>635280076543437500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="2fb90358-9b02-455a-8b6f-a9df9afbf5f3">
+      <ItemAddTime>635280076543437500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="0237afca-a23e-4a3a-a672-82ba04dfc7a4">
+      <ItemAddTime>635280076543750000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="1b68537f-8dd7-4754-a487-1f2b176ddd0f">
+      <ItemAddTime>636342345584674197</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8a1fe9e1-b388-4fcf-a32e-858d274b9252">
+      <ItemAddTime>636342345584674197</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3b4e553d-380a-40e4-b7a0-b006a89326f8">
+      <ItemAddTime>636343559579042375</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="6e08ef01-f60c-4951-879b-3f73a97aeb77">
+      <ItemAddTime>636343560052377642</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="1b548220-768e-4860-8d2b-eecdd6581345">
+      <ItemAddTime>636343560052377642</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a6c49276-f6d4-4f73-9200-f715b24ba54a">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="ed31dbeb-a239-4cf5-8f6d-ef0306344890">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="e90102eb-5c54-4fe9-9adf-e071f1eaadf9">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="7d78da27-a368-4975-931b-eea11150981c">
+      <ItemAddTime>636343570101467786</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="83739dd7-652a-4865-ae56-d4aade6c4c16">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>5</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="78f43e0e-6eac-43c5-b8b4-ee42f053174a">
+      <ItemAddTime>636343570101467786</ItemAddTime>
+      <ItemAddTimeCount>6</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="906a59ec-5cb2-4d05-8fb4-e1593bdf28ed">
+      <ItemAddTime>636343570101467786</ItemAddTime>
+      <ItemAddTimeCount>5</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="7cabc0b8-f0ad-41d4-b1e5-40107ae35846">
+      <ItemAddTime>636343570101467786</ItemAddTime>
+      <ItemAddTimeCount>4</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="322a56fb-9d7a-4f6c-ba45-acb91d5d96c8">
+      <ItemAddTime>636343570101467786</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="83cb370f-8cca-46b0-9fd2-74fdb21d33af">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>14</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="aee69e16-426a-47d4-b571-47b1bee593fe">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>15</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c4300b4d-c8f9-4512-8573-a3d86afa2236">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>16</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8cd69cd1-9987-42af-9626-3d70a9bfa5d2">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>17</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a239e977-fb6c-49d4-8965-6b6e6553b52b">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>18</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="28fe9ac7-0d72-4b0f-a69b-444d4ac21628">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>19</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c50ab60d-8e23-449e-88c7-c254df091f05">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>20</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="d8890a1c-18f2-4626-9b79-4b9e29e49032">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>21</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="6829407c-b7d6-4801-99a5-55d89db377df">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>22</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="5c54f245-51a4-458e-8086-799bd25467d0">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>23</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="15de601a-1392-4299-913b-af013bef24a4">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>24</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="b9bc7230-a6e5-4648-aa48-c6ce9297942e">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>25</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="86ae7ccf-2377-41a2-9944-d3041fcabd88">
+      <ItemAddTime>636343560554032627</ItemAddTime>
+      <ItemAddTimeCount>26</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="929bbed0-870c-4052-90a6-06cceae4adea">
+      <ItemAddTime>636343570693182119</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c9d83952-9760-4eab-b0b0-9f3c86a16f86">
+      <ItemAddTime>636343565542422782</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="aad3a1cd-ae06-4455-8611-dddd16e730d3">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="1657cba0-0fe7-4611-a05f-8fa15d9c0cd8">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3fdb4550-c8c9-46f9-969c-495394b687c9">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>4</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="b42563e2-f680-4bd7-88ca-0960f2a6b1d1">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>5</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="89025998-f540-448b-b987-6245d186f4d8">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>6</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="57f188af-401c-4049-a6a2-3cf7afaffe6a">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>7</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="f8aabe1c-0cd4-4934-b79d-11334e291666">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>8</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c1c0801b-ff7c-4c8e-9c71-b8de2d6aa767">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>9</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="177bba89-be93-48a7-a388-3218af11dc4b">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>10</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="2511f525-c5a5-45ef-bad9-1ba4500ed87a">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>11</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a136c52b-2176-4ba5-b50a-bee92d9ac751">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>12</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="28d31142-4820-4f1b-9c48-6653db30c56e">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>13</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="f44e9e70-1f32-46db-8f39-7ac7352470e6">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>14</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3eaf19ad-f389-46f8-8da9-6f718d5f1df6">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>15</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="cf547943-e43a-4ac4-80dd-19558eec0fcb">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>16</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="041991ef-a881-463f-9bbe-85915327802f">
+      <ItemAddTime>636343560953788630</ItemAddTime>
+      <ItemAddTimeCount>17</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284312432058</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem1--0>-8587030015270101611</TimeTagModified-SourceItem1--0>
+      <SourceItem1-IsLockedByUser>False</SourceItem1-IsLockedByUser>
+      <SourceItem1-BuildingTarget-0>True</SourceItem1-BuildingTarget-0>
+      <SourceItem1-IndividualCompileOption-0>False</SourceItem1-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem2--0>-8587030015270101611</TimeTagModified-SourceItem2--0>
+      <SourceItem2-IsLockedByUser>False</SourceItem2-IsLockedByUser>
+      <SourceItem2-BuildingTarget-0>True</SourceItem2-BuildingTarget-0>
+      <SourceItem2-IndividualCompileOption-0>False</SourceItem2-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem3--0>-8588092284312119558</TimeTagModified-SourceItem3--0>
+      <SourceItem3-IsLockedByUser>False</SourceItem3-IsLockedByUser>
+      <SourceItem3-BuildingTarget-0>True</SourceItem3-BuildingTarget-0>
+      <SourceItem3-IndividualCompileOption-0>False</SourceItem3-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem4--0>-8588092284312119558</TimeTagModified-SourceItem4--0>
+      <SourceItem4-IsLockedByUser>False</SourceItem4-IsLockedByUser>
+      <SourceItem4-BuildingTarget-0>True</SourceItem4-BuildingTarget-0>
+      <SourceItem4-IndividualCompileOption-0>False</SourceItem4-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem5--0>-8588092284312119558</TimeTagModified-SourceItem5--0>
+      <SourceItem5-IsLockedByUser>False</SourceItem5-IsLockedByUser>
+      <SourceItem5-BuildingTarget-0>True</SourceItem5-BuildingTarget-0>
+      <SourceItem5-IndividualCompileOption-0>False</SourceItem5-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem6--0>-8588092284311963308</TimeTagModified-SourceItem6--0>
+      <SourceItem6-IsLockedByUser>False</SourceItem6-IsLockedByUser>
+      <SourceItem6-BuildingTarget-0>True</SourceItem6-BuildingTarget-0>
+      <SourceItem6-IndividualCompileOption-0>False</SourceItem6-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem7--0>-8588092284311963308</TimeTagModified-SourceItem7--0>
+      <SourceItem7-IsLockedByUser>False</SourceItem7-IsLockedByUser>
+      <SourceItem7-BuildingTarget-0>True</SourceItem7-BuildingTarget-0>
+      <SourceItem7-IndividualCompileOption-0>False</SourceItem7-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem8--0>-8588092284311963308</TimeTagModified-SourceItem8--0>
+      <SourceItem8-IsLockedByUser>False</SourceItem8-IsLockedByUser>
+      <SourceItem8-BuildingTarget-0>True</SourceItem8-BuildingTarget-0>
+      <SourceItem8-IndividualCompileOption-0>False</SourceItem8-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem9--0>-8588092284311963308</TimeTagModified-SourceItem9--0>
+      <SourceItem9-IsLockedByUser>False</SourceItem9-IsLockedByUser>
+      <SourceItem9-BuildingTarget-0>True</SourceItem9-BuildingTarget-0>
+      <SourceItem9-IndividualCompileOption-0>False</SourceItem9-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem10--0>-8588092284311807058</TimeTagModified-SourceItem10--0>
+      <SourceItem10-IsLockedByUser>False</SourceItem10-IsLockedByUser>
+      <SourceItem10-BuildingTarget-0>True</SourceItem10-BuildingTarget-0>
+      <SourceItem10-IndividualCompileOption-0>False</SourceItem10-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem11--0>-8588092284311807058</TimeTagModified-SourceItem11--0>
+      <SourceItem11-IsLockedByUser>False</SourceItem11-IsLockedByUser>
+      <SourceItem11-BuildingTarget-0>True</SourceItem11-BuildingTarget-0>
+      <SourceItem11-IndividualCompileOption-0>False</SourceItem11-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem12--0>-8588092284311807058</TimeTagModified-SourceItem12--0>
+      <SourceItem12-IsLockedByUser>False</SourceItem12-IsLockedByUser>
+      <SourceItem12-BuildingTarget-0>True</SourceItem12-BuildingTarget-0>
+      <SourceItem12-IndividualCompileOption-0>False</SourceItem12-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem13--0>-8587028790161593689</TimeTagModified-SourceItem13--0>
+      <SourceItem13-IsLockedByUser>False</SourceItem13-IsLockedByUser>
+      <SourceItem13-BuildingTarget-0>True</SourceItem13-BuildingTarget-0>
+      <SourceItem13-IndividualCompileOption-0>False</SourceItem13-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem14--0>-8587028801275733433</TimeTagModified-SourceItem14--0>
+      <SourceItem14-IsLockedByUser>False</SourceItem14-IsLockedByUser>
+      <SourceItem14-BuildingTarget-0>True</SourceItem14-BuildingTarget-0>
+      <SourceItem14-IndividualCompileOption-0>False</SourceItem14-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem15--0>-8587028790753308022</TimeTagModified-SourceItem15--0>
+      <SourceItem15-IsLockedByUser>False</SourceItem15-IsLockedByUser>
+      <SourceItem15-BuildingTarget-0>True</SourceItem15-BuildingTarget-0>
+      <SourceItem15-IndividualCompileOption-0>False</SourceItem15-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem16--0>-8587028790753308022</TimeTagModified-SourceItem16--0>
+      <SourceItem16-IsLockedByUser>False</SourceItem16-IsLockedByUser>
+      <SourceItem16-BuildingTarget-0>True</SourceItem16-BuildingTarget-0>
+      <SourceItem16-IndividualCompileOption-0>False</SourceItem16-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem17--0>-8587028790753308022</TimeTagModified-SourceItem17--0>
+      <SourceItem17-IsLockedByUser>False</SourceItem17-IsLockedByUser>
+      <SourceItem17-BuildingTarget-0>True</SourceItem17-BuildingTarget-0>
+      <SourceItem17-IndividualCompileOption-0>False</SourceItem17-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem18--0>-8587028790753308022</TimeTagModified-SourceItem18--0>
+      <SourceItem18-IsLockedByUser>False</SourceItem18-IsLockedByUser>
+      <SourceItem18-BuildingTarget-0>True</SourceItem18-BuildingTarget-0>
+      <SourceItem18-IndividualCompileOption-0>False</SourceItem18-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem19--0>-8587028790753308022</TimeTagModified-SourceItem19--0>
+      <SourceItem19-IsLockedByUser>False</SourceItem19-IsLockedByUser>
+      <SourceItem19-BuildingTarget-0>True</SourceItem19-BuildingTarget-0>
+      <SourceItem19-IndividualCompileOption-0>False</SourceItem19-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem20--0>-8587028800802398166</TimeTagModified-SourceItem20--0>
+      <SourceItem20-IsLockedByUser>False</SourceItem20-IsLockedByUser>
+      <SourceItem20-BuildingTarget-0>True</SourceItem20-BuildingTarget-0>
+      <SourceItem20-IndividualCompileOption-0>False</SourceItem20-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem21--0>-8587028800802398166</TimeTagModified-SourceItem21--0>
+      <SourceItem21-IsLockedByUser>False</SourceItem21-IsLockedByUser>
+      <SourceItem21-BuildingTarget-0>True</SourceItem21-BuildingTarget-0>
+      <SourceItem21-IndividualCompileOption-0>False</SourceItem21-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem22--0>-8587028800300743181</TimeTagModified-SourceItem22--0>
+      <SourceItem22-IsLockedByUser>False</SourceItem22-IsLockedByUser>
+      <SourceItem22-BuildingTarget-0>True</SourceItem22-BuildingTarget-0>
+      <SourceItem22-IndividualCompileOption-0>False</SourceItem22-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem23--0>-8587028800300743181</TimeTagModified-SourceItem23--0>
+      <SourceItem23-IsLockedByUser>False</SourceItem23-IsLockedByUser>
+      <SourceItem23-BuildingTarget-0>True</SourceItem23-BuildingTarget-0>
+      <SourceItem23-IndividualCompileOption-0>False</SourceItem23-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem24--0>-8587028800300743181</TimeTagModified-SourceItem24--0>
+      <SourceItem24-IsLockedByUser>False</SourceItem24-IsLockedByUser>
+      <SourceItem24-BuildingTarget-0>True</SourceItem24-BuildingTarget-0>
+      <SourceItem24-IndividualCompileOption-0>False</SourceItem24-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem25--0>-8587028800300743181</TimeTagModified-SourceItem25--0>
+      <SourceItem25-IsLockedByUser>False</SourceItem25-IsLockedByUser>
+      <SourceItem25-BuildingTarget-0>True</SourceItem25-BuildingTarget-0>
+      <SourceItem25-IndividualCompileOption-0>False</SourceItem25-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem26--0>-8587028800300743181</TimeTagModified-SourceItem26--0>
+      <SourceItem26-IsLockedByUser>False</SourceItem26-IsLockedByUser>
+      <SourceItem26-BuildingTarget-0>True</SourceItem26-BuildingTarget-0>
+      <SourceItem26-IndividualCompileOption-0>False</SourceItem26-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem27--0>-8587028800300743181</TimeTagModified-SourceItem27--0>
+      <SourceItem27-IsLockedByUser>False</SourceItem27-IsLockedByUser>
+      <SourceItem27-BuildingTarget-0>True</SourceItem27-BuildingTarget-0>
+      <SourceItem27-IndividualCompileOption-0>False</SourceItem27-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem28--0>-8587028800300743181</TimeTagModified-SourceItem28--0>
+      <SourceItem28-IsLockedByUser>False</SourceItem28-IsLockedByUser>
+      <SourceItem28-BuildingTarget-0>True</SourceItem28-BuildingTarget-0>
+      <SourceItem28-IndividualCompileOption-0>False</SourceItem28-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem29--0>-8587028800300743181</TimeTagModified-SourceItem29--0>
+      <SourceItem29-IsLockedByUser>False</SourceItem29-IsLockedByUser>
+      <SourceItem29-BuildingTarget-0>True</SourceItem29-BuildingTarget-0>
+      <SourceItem29-IndividualCompileOption-0>False</SourceItem29-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem30--0>-8587028800300743181</TimeTagModified-SourceItem30--0>
+      <SourceItem30-IsLockedByUser>False</SourceItem30-IsLockedByUser>
+      <SourceItem30-BuildingTarget-0>True</SourceItem30-BuildingTarget-0>
+      <SourceItem30-IndividualCompileOption-0>False</SourceItem30-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem31--0>-8587028800300743181</TimeTagModified-SourceItem31--0>
+      <SourceItem31-IsLockedByUser>False</SourceItem31-IsLockedByUser>
+      <SourceItem31-BuildingTarget-0>True</SourceItem31-BuildingTarget-0>
+      <SourceItem31-IndividualCompileOption-0>False</SourceItem31-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem32--0>-8587028800300743181</TimeTagModified-SourceItem32--0>
+      <SourceItem32-IsLockedByUser>False</SourceItem32-IsLockedByUser>
+      <SourceItem32-BuildingTarget-0>True</SourceItem32-BuildingTarget-0>
+      <SourceItem32-IndividualCompileOption-0>False</SourceItem32-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem33--0>-8587028800300743181</TimeTagModified-SourceItem33--0>
+      <SourceItem33-IsLockedByUser>False</SourceItem33-IsLockedByUser>
+      <SourceItem33-BuildingTarget-0>True</SourceItem33-BuildingTarget-0>
+      <SourceItem33-IndividualCompileOption-0>False</SourceItem33-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem34--0>-8587028800300743181</TimeTagModified-SourceItem34--0>
+      <SourceItem34-IsLockedByUser>False</SourceItem34-IsLockedByUser>
+      <SourceItem34-BuildingTarget-0>True</SourceItem34-BuildingTarget-0>
+      <SourceItem34-IndividualCompileOption-0>False</SourceItem34-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem35--0>-8587028800300743181</TimeTagModified-SourceItem35--0>
+      <SourceItem35-IsLockedByUser>False</SourceItem35-IsLockedByUser>
+      <SourceItem35-BuildingTarget-0>True</SourceItem35-BuildingTarget-0>
+      <SourceItem35-IndividualCompileOption-0>False</SourceItem35-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem36--0>-8587028800300743181</TimeTagModified-SourceItem36--0>
+      <SourceItem36-IsLockedByUser>False</SourceItem36-IsLockedByUser>
+      <SourceItem36-BuildingTarget-0>True</SourceItem36-BuildingTarget-0>
+      <SourceItem36-IndividualCompileOption-0>False</SourceItem36-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem37--0>-8587028800300743181</TimeTagModified-SourceItem37--0>
+      <SourceItem37-IsLockedByUser>False</SourceItem37-IsLockedByUser>
+      <SourceItem37-BuildingTarget-0>True</SourceItem37-BuildingTarget-0>
+      <SourceItem37-IndividualCompileOption-0>False</SourceItem37-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem38--0>-8587028800300743181</TimeTagModified-SourceItem38--0>
+      <SourceItem38-IsLockedByUser>False</SourceItem38-IsLockedByUser>
+      <SourceItem38-BuildingTarget-0>True</SourceItem38-BuildingTarget-0>
+      <SourceItem38-IndividualCompileOption-0>False</SourceItem38-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem39--0>-8587028799900987178</TimeTagModified-SourceItem39--0>
+      <SourceItem39-IsLockedByUser>False</SourceItem39-IsLockedByUser>
+      <SourceItem39-BuildingTarget-0>True</SourceItem39-BuildingTarget-0>
+      <SourceItem39-IndividualCompileOption-0>False</SourceItem39-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem40--0>-8587028799900987178</TimeTagModified-SourceItem40--0>
+      <SourceItem40-IsLockedByUser>False</SourceItem40-IsLockedByUser>
+      <SourceItem40-BuildingTarget-0>True</SourceItem40-BuildingTarget-0>
+      <SourceItem40-IndividualCompileOption-0>False</SourceItem40-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem41--0>-8587028799900987178</TimeTagModified-SourceItem41--0>
+      <SourceItem41-IsLockedByUser>False</SourceItem41-IsLockedByUser>
+      <SourceItem41-BuildingTarget-0>True</SourceItem41-BuildingTarget-0>
+      <SourceItem41-IndividualCompileOption-0>False</SourceItem41-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem42--0>-8587028799900987178</TimeTagModified-SourceItem42--0>
+      <SourceItem42-IsLockedByUser>False</SourceItem42-IsLockedByUser>
+      <SourceItem42-BuildingTarget-0>True</SourceItem42-BuildingTarget-0>
+      <SourceItem42-IndividualCompileOption-0>False</SourceItem42-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem43--0>-8587028799900987178</TimeTagModified-SourceItem43--0>
+      <SourceItem43-IsLockedByUser>False</SourceItem43-IsLockedByUser>
+      <SourceItem43-BuildingTarget-0>True</SourceItem43-BuildingTarget-0>
+      <SourceItem43-IndividualCompileOption-0>False</SourceItem43-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem44--0>-8587028799900987178</TimeTagModified-SourceItem44--0>
+      <SourceItem44-IsLockedByUser>False</SourceItem44-IsLockedByUser>
+      <SourceItem44-BuildingTarget-0>True</SourceItem44-BuildingTarget-0>
+      <SourceItem44-IndividualCompileOption-0>False</SourceItem44-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem45--0>-8587028799900987178</TimeTagModified-SourceItem45--0>
+      <SourceItem45-IsLockedByUser>False</SourceItem45-IsLockedByUser>
+      <SourceItem45-BuildingTarget-0>True</SourceItem45-BuildingTarget-0>
+      <SourceItem45-IndividualCompileOption-0>False</SourceItem45-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem46--0>-8587028799900987178</TimeTagModified-SourceItem46--0>
+      <SourceItem46-IsLockedByUser>False</SourceItem46-IsLockedByUser>
+      <SourceItem46-BuildingTarget-0>True</SourceItem46-BuildingTarget-0>
+      <SourceItem46-IndividualCompileOption-0>False</SourceItem46-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem47--0>-8587028799900987178</TimeTagModified-SourceItem47--0>
+      <SourceItem47-IsLockedByUser>False</SourceItem47-IsLockedByUser>
+      <SourceItem47-BuildingTarget-0>True</SourceItem47-BuildingTarget-0>
+      <SourceItem47-IndividualCompileOption-0>False</SourceItem47-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem48--0>-8587028799900987178</TimeTagModified-SourceItem48--0>
+      <SourceItem48-IsLockedByUser>False</SourceItem48-IsLockedByUser>
+      <SourceItem48-BuildingTarget-0>True</SourceItem48-BuildingTarget-0>
+      <SourceItem48-IndividualCompileOption-0>False</SourceItem48-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem49--0>-8587028799900987178</TimeTagModified-SourceItem49--0>
+      <SourceItem49-IsLockedByUser>False</SourceItem49-IsLockedByUser>
+      <SourceItem49-BuildingTarget-0>True</SourceItem49-BuildingTarget-0>
+      <SourceItem49-IndividualCompileOption-0>False</SourceItem49-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem50--0>-8587028799900987178</TimeTagModified-SourceItem50--0>
+      <SourceItem50-IsLockedByUser>False</SourceItem50-IsLockedByUser>
+      <SourceItem50-BuildingTarget-0>True</SourceItem50-BuildingTarget-0>
+      <SourceItem50-IndividualCompileOption-0>False</SourceItem50-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem51--0>-8587028799900987178</TimeTagModified-SourceItem51--0>
+      <SourceItem51-IsLockedByUser>False</SourceItem51-IsLockedByUser>
+      <SourceItem51-BuildingTarget-0>True</SourceItem51-BuildingTarget-0>
+      <SourceItem51-IndividualCompileOption-0>False</SourceItem51-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem52--0>-8587028799900987178</TimeTagModified-SourceItem52--0>
+      <SourceItem52-IsLockedByUser>False</SourceItem52-IsLockedByUser>
+      <SourceItem52-BuildingTarget-0>True</SourceItem52-BuildingTarget-0>
+      <SourceItem52-IndividualCompileOption-0>False</SourceItem52-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem53--0>-8587028799900987178</TimeTagModified-SourceItem53--0>
+      <SourceItem53-IsLockedByUser>False</SourceItem53-IsLockedByUser>
+      <SourceItem53-BuildingTarget-0>True</SourceItem53-BuildingTarget-0>
+      <SourceItem53-IndividualCompileOption-0>False</SourceItem53-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem54--0>-8587028799900987178</TimeTagModified-SourceItem54--0>
+      <SourceItem54-IsLockedByUser>False</SourceItem54-IsLockedByUser>
+      <SourceItem54-BuildingTarget-0>True</SourceItem54-BuildingTarget-0>
+      <SourceItem54-IndividualCompileOption-0>False</SourceItem54-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem56--0>-8588092284311338308</TimeTagModified-SourceItem56--0>
+      <SourceItem56-IsLockedByUser>False</SourceItem56-IsLockedByUser>
+      <SourceItem56-BuildingTarget-0>True</SourceItem56-BuildingTarget-0>
+      <SourceItem56-IndividualCompileOption-0>False</SourceItem56-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem57--0>-8587028795312353026</TimeTagModified-SourceItem57--0>
+      <SourceItem57-IsLockedByUser>False</SourceItem57-IsLockedByUser>
+      <SourceItem57-BuildingTarget-0>True</SourceItem57-BuildingTarget-0>
+      <SourceItem57-IndividualCompileOption-0>False</SourceItem57-IndividualCompileOption-0>
+    </Instance>
+    <Instance Guid="c20a78d9-8038-46fe-9b87-bc2fa2aa9bdc">
+      <TimeTagModified-SourceItem55--0>-8588092284311338308</TimeTagModified-SourceItem55--0>
+      <SourceItem55-IsLockedByUser>False</SourceItem55-IsLockedByUser>
+      <SourceItem55-BuildingTarget-0>True</SourceItem55-BuildingTarget-0>
+      <SourceItem55-IndividualAssembleOption-0>False</SourceItem55-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem58--0>-8588092284311025808</TimeTagModified-SourceItem58--0>
+      <SourceItem58-IsLockedByUser>False</SourceItem58-IsLockedByUser>
+      <SourceItem58-BuildingTarget-0>True</SourceItem58-BuildingTarget-0>
+      <SourceItem58-IndividualAssembleOption-0>False</SourceItem58-IndividualAssembleOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+    <Instance Guid="606767c3-4bf3-4e65-90c1-19075517355d">
+      <CurrentToolKey>980229aa-cc4c-40c7-be19-a84e15ec314e</CurrentToolKey>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="9a065877-3b93-453c-9b72-940c69f10716">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>00000000-0000-0000-0000-000000000000</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="52e1ea47-4c41-4f6c-b81e-9caa42437088">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>120000</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>960000</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>Yes</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Jtag</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>960000</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>578d917e-0d0a-4491-a220-37ba42009e0b</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="104fc540-14b6-4fb9-bd7a-0d4844b95028">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <SubDebugger>980229aa-cc4c-40c7-be19-a84e15ec314e</SubDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>120000</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>960000</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>Yes</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Jtag</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>d430ae37-0968-4b0d-964f-9167c6fe7df1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\asp.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>960000</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>7.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1n/cfg/cfg.mtsp
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/cfg/cfg.mtsp	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/cfg/cfg.mtsp	(revision 313)
@@ -0,0 +1,1701 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>89c1f048-0dc5-4790-bf10-82195cca4b0e</ProjectGuid>
+      <ProjectItemGuid>bee43b69-20b5-4c41-abbe-7628bbfb5dd6</ProjectItemGuid>
+      <FileCategoryGuid>ba0b9a2a-76f3-4d9a-a4f4-6e9393f03678</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+    </Instance>
+    <Instance Guid="ae9514ae-7b3d-4170-a22b-5d4593d52a19">
+      <Name>configuration</Name>
+      <Type>Category</Type>
+      <ParentItem>ba0b9a2a-76f3-4d9a-a4f4-6e9393f03678</ParentItem>
+    </Instance>
+    <Instance Guid="59a49c9d-5a1b-482d-a666-1b2ce1a78a8f">
+      <Name>cfg1_out.c</Name>
+      <Type>File</Type>
+      <RelativePath>cfg1_out.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>ae9514ae-7b3d-4170-a22b-5d4593d52a19</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="2a349cb6-b982-4ade-adcd-104b883ad81c">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>500ba51a-4219-4828-b4be-80f54d6d3551</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>59a49c9d-5a1b-482d-a666-1b2ce1a78a8f</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemCount>1</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LoadModuleFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Auto</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587031632209796868</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%Program% %Options%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0>#!python
+common.Source("../../../asp_dcre/arch/ccrx/pre_cfg.py")
+</PreBuildCommands-0>
+      <PostBuildCommands-0>#!python
+common.Source("../../../asp_dcre/arch/ccrx/post_cfg.py")
+</PostBuildCommands-0>
+      <GeneralOptionIsa-0>None</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LoadModuleFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Auto</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-cpu=rx600
+-include=..
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-include=..\..\..\asp_dcre\tinet
+-include=..\..\..\asp_dcre\tinet\netdev\if_rx62n
+-define=USE_SERIALDEBUG,TARGET_KERNEL_ASP,SUPPORT_INET4,SUPPORT_TCP,SUPPORT_UDP,SUPPORT_ETHER
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028190752273925</TimeTagModified--0>
+      <COptionLangC-0>C</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>..
+..\..\..\asp_dcre
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\include
+..\..\..\asp_dcre\kernel
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\syssvc
+..\..\..\asp_dcre\library
+..\..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\..\asp_dcre\pdic\rx600
+..\..\..\asp_dcre\arch\rx630_ccrx
+..\..\..\asp_dcre\arch\ccrx
+..\..\..\asp_dcre\tinet
+..\..\..\asp_dcre\tinet\netdev\if_rx62n
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-cpu=rx600
+-include=..
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-include=..\..\..\asp_dcre\tinet
+-include=..\..\..\asp_dcre\tinet\netdev\if_rx62n
+-define=USE_SERIALDEBUG,TARGET_KERNEL_ASP,SUPPORT_INET4,SUPPORT_TCP,SUPPORT_UDP,SUPPORT_ETHER
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0>USE_SERIALDEBUG
+TARGET_KERNEL_ASP
+SUPPORT_INET4
+SUPPORT_TCP
+SUPPORT_UDP
+SUPPORT_ETHER
+</COptionDefine-0>
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Auto</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-cpu=rx600
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028190685873925</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-cpu=rx600
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>List</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue>B_1,R_1,B_2,R_2,B,R,SU,SI/04,PResetPRG/0FFFF8000,C_1,C_2,C,C$DSEC,C$BSEC,C$INIT,C$VTBL,C$VECT,D_1,D_2,D,P,PIntPRG,W_1,W_2,W,L/0FFFF8100,FIXEDVECT/0FFFFFFD0</LinkOptionStart-DefaultValue>
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>List</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0>C_1,C_2,C,P/0FFFF8100</LinkOptionStart-0>
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>True</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0 />
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>.</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>cfg1_out.srec</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>None</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284340713308</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>None</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>MakeOptionChanged</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587031632209796868</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>MakeOptionChanged</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="59a49c9d-5a1b-482d-a666-1b2ce1a78a8f">
+      <ItemAddTime>635280076546250000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284308525808</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>False</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+    <Instance Guid="8b5af363-dcc2-48e6-919c-6cdb80d50173">
+      <DataFormatVersionPlugin>1.0</DataFormatVersionPlugin>
+      <DataFormatVersionDebugger>1.0</DataFormatVersionDebugger>
+    </Instance>
+  </Class>
+  <Class Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+    <Instance Guid="932085a2-9361-4df9-a3f7-12e6de7681a8">
+      <DebugToolManager>1d1a55cf-2b92-481a-af4f-5975d095c419</DebugToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="e4df8d71-236e-4af2-aaea-56345a08da25">
+    <Instance Guid="9e76d4e8-0b8f-4e7c-91b7-a4c442bcf2e7">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Endian-CpuEndian>Little</DebuggerProperty-EssentialProperty-Endian-CpuEndian>
+      <DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>100</DebuggerProperty-EssentialProperty-Clock-SystemClockFrequency>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>3</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Length>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>CMT</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item0-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>ICU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item1-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>MPU</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-Name>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>False</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-RegisterPeripheral-Item2-IsUse>
+      <DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>ClockRate_1</DebuggerProperty-EssentialProperty-PeripheralFunctionSimulation-PeripheralClockRate>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>19</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>14680063</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>14680064</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>16777215</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>16777216</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-Trace-UseTrace>No</DebuggerProperty-OptionalProperty-Trace-UseTrace>
+      <DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>Yes</DebuggerProperty-OptionalProperty-Trace-ClearTraceMemory>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Nonstop</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_64KB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>Simulator</DebuggerProperty-OptionalProperty-StreamIO-SelectStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>No</DebuggerProperty-OptionalProperty-StreamIO-UseStreamIO>
+      <DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>0</DebuggerProperty-OptionalProperty-StreamIO-StreamIOAddress>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>Stop</DebuggerProperty-OptionalProperty-ExecutionMode-ExecutionModeType>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopUndefined>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopPrivileged>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopAccess>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopFloatingPoint>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInterrupt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopInt>
+      <DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>Yes</DebuggerProperty-OptionalProperty-ExecutionMode-StopBrk>
+      <DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>No</DebuggerProperty-OptionalProperty-InstructionDecodeCache-CacheResults>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>89c1f048-0dc5-4790-bf10-82195cca4b0e</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+    </Instance>
+    <Instance Guid="72b41815-17e5-41b2-ab97-2a2bb023d612">
+      <DeviceChangedCounter>0</DeviceChangedCounter>
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <DebuggerProperty-EssentialProperty-Clock-MainClock>Extal</DebuggerProperty-EssentialProperty-Clock-MainClock>
+      <DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-MainClockFrequency>
+      <DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>2147483647</DebuggerProperty-EssentialProperty-Clock-Operatingfrequency>
+      <DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>No</DebuggerProperty-EssentialProperty-Clock-AllowChangeClock>
+      <DebuggerProperty-EssentialProperty-EmulatorConnect-SerialNumber />
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>No</DebuggerProperty-EssentialProperty-TargetConnect-TargetSupplyPower>
+      <DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>Use3_3V</DebuggerProperty-EssentialProperty-TargetConnect-TargetSuppliedVoltage>
+      <DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>2147483647</DebuggerProperty-EssentialProperty-TargetConnect-UserVCC>
+      <DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>Jtag</DebuggerProperty-EssentialProperty-TargetConnect-CommunicationMethod>
+      <DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>Jtag_16_500</DebuggerProperty-EssentialProperty-TargetConnect-JtagClock>
+      <DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>Fine_2000000</DebuggerProperty-EssentialProperty-TargetConnect-FineBaudRate>
+      <DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>115200</DebuggerProperty-EssentialProperty-TargetConnect-BaudRate>
+      <DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>Hex</DebuggerProperty-EssentialProperty-Flash-SecurityIdMode>
+      <DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>4096</DebuggerProperty-EssentialProperty-Flash-WorkRamStartAddress>
+      <GroupName>RX63N</GroupName>
+      <DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>0</DebuggerProperty-EssentialProperty-Flash-OptionSettingMemory-Length>
+      <DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-ModePinsSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>No</DebuggerProperty-EssentialProperty-CpuMode-ErasingUsbBootProgram>
+      <DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>SingleChip</DebuggerProperty-EssentialProperty-CpuMode-RegisterSetting>
+      <DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>Little</DebuggerProperty-EssentialProperty-CpuMode-EndianSetting>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>4</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Length>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item0-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item1-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item2-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-FileName />
+      <DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>No</DebuggerProperty-EssentialProperty-ExternalFlash-ExternalFlashDefinitionFiles-Item3-ExternalFlashEraseBeforeDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>1</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-Length>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DebuggerGuid />
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-IsDefaultItem>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>15f202d3-a323-41bf-9f6b-10ccf333cc40</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-DefaultItemProjectGuid>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>DefaultBuild\cfg.abs</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileName>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>LoadModuleFile</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-FileType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>Auto</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-CompilerType>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-Offset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-StartAddress>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-ObjectDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-SymbolDownload>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>False</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-UsePicPidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PicOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>0</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-PidOffset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>True</DebuggerProperty-DownloadProperty-DebugInformation-DownloadFiles-DownloadItem0-GenerateInformationForInputCompletion>
+      <DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>True</DebuggerProperty-DownloadProperty-DebugInformation-CpuReset>
+      <DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>True</DebuggerProperty-DownloadProperty-DebugInformation-FlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>False</DebuggerProperty-DownloadProperty-DebugInformation-DataFlashErase>
+      <DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>SuspendEvent</DebuggerProperty-DownloadProperty-DebugInformation-EventCorrection>
+      <DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>True</DebuggerProperty-DownloadProperty-DebugInformation-SkipStartup>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>XwBtAGEAaQBuAA==</DebuggerProperty-DownloadProperty-DebugInformation-MainSymbol>
+      <DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>500</DebuggerProperty-DownloadProperty-DebugInformation-MaxLoaderMemorySize>
+      <DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>True</DebuggerProperty-DownloadProperty-None-DefaultDownloadItemSupported>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>23</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-Length>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>InternalRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>131071</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem0-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>131072</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>524287</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem1-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>524288</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>540671</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem2-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>540672</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>548863</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem3-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>548864</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>557055</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem4-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>557056</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>581631</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem5-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>581632</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>589823</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem6-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>589824</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>655359</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem7-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>655360</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>786431</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem8-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>786432</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>1048575</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem9-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>Eeprom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>1048576</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>1081343</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem10-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>1081344</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>8355839</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem11-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>8355840</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>8364031</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem12-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>8364032</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>8372223</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem13-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>8372224</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>8373503</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem14-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>8373504</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>8387583</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem15-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>Sfr</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>8387584</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>8388607</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>Big</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>Different</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem16-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>8388608</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>4278181887</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem17-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>4278181888</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>4278190079</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem18-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>4278190080</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>4286562303</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem19-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>OtherRam</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>4286562304</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>4286578687</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem20-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>NonMap</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>4286578688</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>4293918719</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem21-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>InternalRom</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-MapType>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>4293918720</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-StartAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>4294967295</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndAddress>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>0</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-ChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>8</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-AccessSize>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>True</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-IsReadOnly>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>False</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-HasChipSelect>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>None</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-FieldInformation>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>Little</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-Endian>
+      <DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>Same</DebuggerProperty-OptionalProperty-Memory-MemoryMappings-MemoryMapItem22-EndianMCUSetting>
+      <DebuggerProperty-OptionalProperty-Memory-VerifyCheck>Yes</DebuggerProperty-OptionalProperty-Memory-VerifyCheck>
+      <DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>No</DebuggerProperty-OptionalProperty-MemoryAccess-PermitToStopAndRead>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>Yes</DebuggerProperty-OptionalProperty-AccessMemory-UpdateDisplayInExecution>
+      <DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>500</DebuggerProperty-OptionalProperty-AccessMemory-UpdateInterval>
+      <DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>Yes</DebuggerProperty-OptionalProperty-AccessMemory-AutoSetRrmArea>
+      <DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>Yes</DebuggerProperty-OptionalProperty-AccessMemory-RrmAreaAccessPriority>
+      <DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>No</DebuggerProperty-OptionalProperty-Register-UpdateDisplayInExecutionForPC>
+      <DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>500</DebuggerProperty-OptionalProperty-Register-UpdateIntervalForPC>
+      <DebuggerProperty-OptionalProperty-Break-BreakpointPriority>HardwareBreak</DebuggerProperty-OptionalProperty-Break-BreakpointPriority>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalRomProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>No</DebuggerProperty-OptionalProperty-System-RewritingInternalDataFlashProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>No</DebuggerProperty-OptionalProperty-System-BootSwapProgramDebug>
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineBeforeExecute>
+      <DebuggerProperty-OptionalProperty-System-RoutineBeforeExecute />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>No</DebuggerProperty-OptionalProperty-System-ExecuteRoutineAfterHalt>
+      <DebuggerProperty-OptionalProperty-System-RoutineAfterHalt />
+      <DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>130512</DebuggerProperty-OptionalProperty-System-ExecuteRoutineWorkRamStartAddress>
+      <DebuggerProperty-OptionalProperty-Trace-SelectFunction>Trace</DebuggerProperty-OptionalProperty-Trace-SelectFunction>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMode>Free</DebuggerProperty-OptionalProperty-Trace-TraceMode>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX600>
+      <DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>Branch</DebuggerProperty-OptionalProperty-Trace-TraceDataRX200>
+      <DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>Cpu</DebuggerProperty-OptionalProperty-Trace-DataAccessBusMaster>
+      <DebuggerProperty-OptionalProperty-Trace-TraceOutput>DonotOutput</DebuggerProperty-OptionalProperty-Trace-TraceOutput>
+      <DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>TraceMemory_01MB</DebuggerProperty-OptionalProperty-Trace-TraceMemorySize>
+      <DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>No</DebuggerProperty-OptionalProperty-Trace-AddUptimeTag>
+      <DebuggerProperty-OptionalProperty-Trace-CountSource>2147483647</DebuggerProperty-OptionalProperty-Trace-CountSource>
+      <DebuggerProperty-OptionalProperty-Trace-OutputEventNo>No</DebuggerProperty-OptionalProperty-Trace-OutputEventNo>
+      <DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>DivisionBy_1</DebuggerProperty-OptionalProperty-Trace-CountSourceDivisionRatio>
+      <DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>No</DebuggerProperty-OptionalProperty-Timer-Use64bitCounter>
+      <DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>2147483647</DebuggerProperty-OptionalProperty-Timer-Operatingfrequency>
+      <DebuggerProperty-OptionalProperty-Coverage-UseCoverage>No</DebuggerProperty-OptionalProperty-Coverage-UseCoverage>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>ExternalCoverageCpuExecution</DebuggerProperty-OptionalProperty-Coverage-CoverageOutput>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>4</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Length>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item0-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item1-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item2-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>2147483647</DebuggerProperty-OptionalProperty-Coverage-CoverageAreaAddresses-Item3-StartAddress>
+      <DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>No</DebuggerProperty-OptionalProperty-Coverage-ReuseCoverageData>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloading-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>0</DebuggerProperty-HookProperty-HookTransaction-Downloaded-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Reset-Length>0</DebuggerProperty-HookProperty-HookTransaction-Reset-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Going-Length>0</DebuggerProperty-HookProperty-HookTransaction-Going-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Broke-Length>0</DebuggerProperty-HookProperty-HookTransaction-Broke-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Connected-Length>0</DebuggerProperty-HookProperty-HookTransaction-Connected-Length>
+      <DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>0</DebuggerProperty-HookProperty-HookTransaction-Disconnecting-Length>
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>7.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1n/def.py
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/def.py	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/def.py	(revision 313)
@@ -0,0 +1,49 @@
+# Source Dir
+SRCDIR = "../../asp_dcre/"
+
+# Configfile name
+CFG_FILE = "sample1n.cfg"
+
+# Target board
+TARGET = "gr_sakura_ccrx"
+
+# Target mcu
+TARGET_MCU = 'R5F563NBDxFP'
+
+# Application files
+asp_app_files = ['sample1.c', 'sample1n.c', 'route_cfg.c']
+
+# Addition Dir list (relative path from srcdir)
+USER_INCLUDE = ["../csp/sample1n/", "tinet", "tinet/netdev/if_rx62n"]
+
+# Copy sample1
+COPY_SAMPLE1 = False
+
+# Use RX Serial Debugger
+USE_SERIALDEBUG = True
+
+# Network service
+NO_USE_TINET_LIBRARY = True
+
+# Network interface
+NET_IF = "ether"
+
+# Network device
+NET_DEV = "if_rx62n"
+
+# Network layer
+SUPPORT_INET6 = True
+SUPPORT_INET4 = True
+
+# Transeport layer
+SUPPORT_TCP = True
+SUPPORT_UDP = True
+
+API_CFG_IP4MAPPED_ADDR = False
+
+CDEFS = []
+
+CLEAN_FILES = []
+
+# call tcpip file
+common.Source(proj_rel_dir + SRCDIR + "/tinet/tcpip.py")
Index: rubycfg_asp/trunk/csp/sample1n/kernel/kernel.mtsp
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/kernel/kernel.mtsp	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/kernel/kernel.mtsp	(revision 313)
@@ -0,0 +1,1617 @@
+<CubeSuiteProject>
+  <ProductVersion>7.00.00.00</ProductVersion>
+  <Class Guid="68f4a651-b9cd-473b-a595-b00447132ffa">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <FormatVersion>2.0</FormatVersion>
+      <FileVersion>7.0</FileVersion>
+      <ProjectGuid>1c867b4b-e57a-4c95-a13c-5d24b0a147e5</ProjectGuid>
+      <ProjectItemGuid>91e28b54-c9ff-4cff-8cf8-55dda895b9f1</ProjectItemGuid>
+      <FileCategoryGuid>27bb2ac9-2f1c-4847-8dd0-6e8f26b9b950</FileCategoryGuid>
+      <Property>fb98844b-2c27-4275-9804-f6e63e204da0</Property>
+    </Instance>
+    <Instance Guid="66484502-37e8-41f5-9761-5aa0e3cc71b7">
+      <Name>kernel</Name>
+      <Type>Category</Type>
+      <ParentItem>27bb2ac9-2f1c-4847-8dd0-6e8f26b9b950</ParentItem>
+    </Instance>
+    <Instance Guid="49f84d01-142b-4e79-b2a1-3876aa98f4e1">
+      <Name>arch</Name>
+      <Type>Category</Type>
+      <ParentItem>27bb2ac9-2f1c-4847-8dd0-6e8f26b9b950</ParentItem>
+    </Instance>
+    <Instance Guid="b8e88e18-8de6-448d-8938-5508a37c3d3c">
+      <Name>target</Name>
+      <Type>Category</Type>
+      <ParentItem>27bb2ac9-2f1c-4847-8dd0-6e8f26b9b950</ParentItem>
+    </Instance>
+    <Instance Guid="da73e5e7-eafc-432c-8d64-fcddb027d238">
+      <Name>pdic</Name>
+      <Type>Category</Type>
+      <ParentItem>27bb2ac9-2f1c-4847-8dd0-6e8f26b9b950</ParentItem>
+    </Instance>
+    <Instance Guid="30189946-58d3-469d-88c9-2edb2cf5007a">
+      <Name>alarm.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\alarm.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="2ad7975f-39f7-4f4a-b080-a8fc970caa69">
+      <Name>cyclic.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\cyclic.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="c2c0ad00-6d46-4e5c-bdc5-b12c34ee1d34">
+      <Name>dataqueue.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\dataqueue.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="3b372607-962f-4681-a40f-f662ab4c3c6d">
+      <Name>eventflag.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\eventflag.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="aa3793bf-5297-4f59-aa32-8749c7626eb5">
+      <Name>exception.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\exception.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="6e9ccaa9-5abc-451d-bfbc-d0d135e769ed">
+      <Name>interrupt.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\interrupt.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="18e3b726-62be-4879-9648-1a161de35d32">
+      <Name>mailbox.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\mailbox.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="39726c92-6d92-419a-b7ab-f1b40f2274f9">
+      <Name>mempfix.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\mempfix.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="aab97f4a-3de7-4baa-a3ec-305a66f356c0">
+      <Name>pridataq.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\pridataq.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="33ac701e-fcb9-415e-af75-e2d5c90385fc">
+      <Name>semaphore.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\semaphore.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="0f303d64-fb6e-45ef-9ce7-b2520b3a474e">
+      <Name>startup.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\startup.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="703fbb05-714b-441b-a776-77bd1d5b890a">
+      <Name>sys_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\sys_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="075a0eaa-97da-457f-9204-04d77d1ed0dc">
+      <Name>task.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="777634e9-aee7-47eb-b9a5-9001d4506caa">
+      <Name>task_except.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_except.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="5285a626-4830-497c-925b-a640a90f0c8a">
+      <Name>task_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="16350b39-1429-459d-97f5-8093b32a1599">
+      <Name>task_refer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_refer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="e5c287fd-494f-48d6-8794-b87c3294e53b">
+      <Name>task_sync.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\task_sync.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="adb08d82-5a9b-45a8-8c73-5b9a780e8d96">
+      <Name>time_event.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\time_event.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="4803b692-ff70-4247-a1f1-e8ebffd54883">
+      <Name>time_manage.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\time_manage.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="8481daf4-a15e-403a-86a1-501a8135ad88">
+      <Name>wait.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\kernel\wait.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>66484502-37e8-41f5-9761-5aa0e3cc71b7</ParentItem>
+    </Instance>
+    <Instance Guid="a653568f-ea0a-428f-b2f0-1c2d0b2846d7">
+      <Name>prc_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>49f84d01-142b-4e79-b2a1-3876aa98f4e1</ParentItem>
+    </Instance>
+    <Instance Guid="de1a0c93-7e57-4fe7-81b0-29e99a9216e2">
+      <Name>rx630_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\rx630_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>49f84d01-142b-4e79-b2a1-3876aa98f4e1</ParentItem>
+    </Instance>
+    <Instance Guid="8ef56460-244c-4dcb-b4d7-a29cc1aef325">
+      <Name>prc_support.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_support.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>49f84d01-142b-4e79-b2a1-3876aa98f4e1</ParentItem>
+    </Instance>
+    <Instance Guid="344e1c98-6026-4a50-821b-f0a54ed6f383">
+      <Name>prc_test.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\arch\rx630_ccrx\prc_test.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>49f84d01-142b-4e79-b2a1-3876aa98f4e1</ParentItem>
+    </Instance>
+    <Instance Guid="384d32fd-dad1-456a-b2b6-c59765ed6687">
+      <Name>kernel_cfg_asm.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\cfg\kernel_cfg_asm.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>49f84d01-142b-4e79-b2a1-3876aa98f4e1</ParentItem>
+    </Instance>
+    <Instance Guid="4224fd26-1df1-4632-b02d-b2cb4718a50d">
+      <Name>target_config.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_config.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>b8e88e18-8de6-448d-8938-5508a37c3d3c</ParentItem>
+    </Instance>
+    <Instance Guid="5d49f2d5-6efa-446c-9a6e-139c14cc397f">
+      <Name>target_serial.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_serial.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>b8e88e18-8de6-448d-8938-5508a37c3d3c</ParentItem>
+    </Instance>
+    <Instance Guid="085e1a0c-13fe-4d8c-8c50-8f9c3fb0919a">
+      <Name>target_timer.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_timer.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>b8e88e18-8de6-448d-8938-5508a37c3d3c</ParentItem>
+    </Instance>
+    <Instance Guid="76a8a8bf-ebb3-4567-898f-7a42b3872a42">
+      <Name>target_support.src</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\target\gr_sakura_ccrx\target_support.src</RelativePath>
+      <TreeImageGuid>f654126d-e7ad-426d-be34-8455271d959b</TreeImageGuid>
+      <ParentItem>b8e88e18-8de6-448d-8938-5508a37c3d3c</ParentItem>
+    </Instance>
+    <Instance Guid="1be46e6e-efb3-42a0-937d-deeb1c9e1638">
+      <Name>rx630_uart.c</Name>
+      <Type>File</Type>
+      <RelativePath>..\..\..\asp_dcre\pdic\rx600\rx630_uart.c</RelativePath>
+      <TreeImageGuid>941832c1-fc3b-4e1b-94e8-01ea17128b42</TreeImageGuid>
+      <ParentItem>da73e5e7-eafc-432c-8d64-fcddb027d238</ParentItem>
+    </Instance>
+  </Class>
+  <Class Guid="fb98844b-2c27-4275-9804-f6e63e204da0">
+    <Instance Guid="2a349cb6-b982-4ade-adcd-104b883ad81c">
+      <UseStandardLicenseOnly>True</UseStandardLicenseOnly>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="8fb9c1f6-d351-4d10-8d99-bf5b3015b84c">
+    <Instance Guid="00000000-0000-0000-0000-000000000000">
+      <UsingPlatformGuid>7020d445-1358-4043-a8ea-3b101e73ceaa</UsingPlatformGuid>
+      <UsingPlatformTypeGuid>f96683fa-8de4-4c6d-a1ab-925d7f232c09</UsingPlatformTypeGuid>
+    </Instance>
+  </Class>
+  <Class Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+    <Instance Guid="c325714f-8f51-484b-9e96-b4b59c0fb263">
+      <DeviceManager>0e793ff3-2e3f-43c0-bdc9-926269595403</DeviceManager>
+    </Instance>
+  </Class>
+  <Class Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+    <Instance Guid="0e793ff3-2e3f-43c0-bdc9-926269595403">
+      <DataFormatVersion>1.0</DataFormatVersion>
+    </Instance>
+    <Instance Guid="2a81c37a-5015-44c2-9f40-e58b669eec75">
+      <DeviceName>R5F563NBDxFP</DeviceName>
+      <MemoCount>0</MemoCount>
+    </Instance>
+  </Class>
+  <Class Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+    <Instance Guid="873c9a58-9bc5-439a-b476-78629a4553ed">
+      <ProjectDeviceChangedCounter>0</ProjectDeviceChangedCounter>
+      <ProjectInitialDeviceName>R5F563NBDxFP</ProjectInitialDeviceName>
+    </Instance>
+  </Class>
+  <Class Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+    <Instance Guid="c3835e31-dea3-4c93-b02b-d2db997f7630">
+      <BuildToolManager>3a79707d-5977-45f7-ac11-19c35e333132</BuildToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+    <Instance Guid="3a79707d-5977-45f7-ac11-19c35e333132">
+      <DataFormatVersion>1.4</DataFormatVersion>
+      <BuildModeCount>1</BuildModeCount>
+      <BuildMode0>RABlAGYAYQB1AGwAdABCAHUAaQBsAGQA</BuildMode0>
+      <BatchBuildFlag0>False</BatchBuildFlag0>
+      <CurrentBuildMode>DefaultBuild</CurrentBuildMode>
+      <SourceItemGuid0>30189946-58d3-469d-88c9-2edb2cf5007a</SourceItemGuid0>
+      <SourceItemType0>CSource</SourceItemType0>
+      <SourceItemGuid1>2ad7975f-39f7-4f4a-b080-a8fc970caa69</SourceItemGuid1>
+      <SourceItemType1>CSource</SourceItemType1>
+      <SourceItemGuid2>c2c0ad00-6d46-4e5c-bdc5-b12c34ee1d34</SourceItemGuid2>
+      <SourceItemType2>CSource</SourceItemType2>
+      <SourceItemGuid3>3b372607-962f-4681-a40f-f662ab4c3c6d</SourceItemGuid3>
+      <SourceItemType3>CSource</SourceItemType3>
+      <SourceItemGuid4>aa3793bf-5297-4f59-aa32-8749c7626eb5</SourceItemGuid4>
+      <SourceItemType4>CSource</SourceItemType4>
+      <SourceItemGuid5>6e9ccaa9-5abc-451d-bfbc-d0d135e769ed</SourceItemGuid5>
+      <SourceItemType5>CSource</SourceItemType5>
+      <SourceItemGuid6>18e3b726-62be-4879-9648-1a161de35d32</SourceItemGuid6>
+      <SourceItemType6>CSource</SourceItemType6>
+      <SourceItemGuid7>39726c92-6d92-419a-b7ab-f1b40f2274f9</SourceItemGuid7>
+      <SourceItemType7>CSource</SourceItemType7>
+      <SourceItemGuid8>aab97f4a-3de7-4baa-a3ec-305a66f356c0</SourceItemGuid8>
+      <SourceItemType8>CSource</SourceItemType8>
+      <SourceItemGuid9>33ac701e-fcb9-415e-af75-e2d5c90385fc</SourceItemGuid9>
+      <SourceItemType9>CSource</SourceItemType9>
+      <SourceItemGuid10>0f303d64-fb6e-45ef-9ce7-b2520b3a474e</SourceItemGuid10>
+      <SourceItemType10>CSource</SourceItemType10>
+      <SourceItemGuid11>703fbb05-714b-441b-a776-77bd1d5b890a</SourceItemGuid11>
+      <SourceItemType11>CSource</SourceItemType11>
+      <SourceItemGuid12>075a0eaa-97da-457f-9204-04d77d1ed0dc</SourceItemGuid12>
+      <SourceItemType12>CSource</SourceItemType12>
+      <SourceItemGuid13>777634e9-aee7-47eb-b9a5-9001d4506caa</SourceItemGuid13>
+      <SourceItemType13>CSource</SourceItemType13>
+      <SourceItemGuid14>5285a626-4830-497c-925b-a640a90f0c8a</SourceItemGuid14>
+      <SourceItemType14>CSource</SourceItemType14>
+      <SourceItemGuid15>16350b39-1429-459d-97f5-8093b32a1599</SourceItemGuid15>
+      <SourceItemType15>CSource</SourceItemType15>
+      <SourceItemGuid16>e5c287fd-494f-48d6-8794-b87c3294e53b</SourceItemGuid16>
+      <SourceItemType16>CSource</SourceItemType16>
+      <SourceItemGuid17>adb08d82-5a9b-45a8-8c73-5b9a780e8d96</SourceItemGuid17>
+      <SourceItemType17>CSource</SourceItemType17>
+      <SourceItemGuid18>4803b692-ff70-4247-a1f1-e8ebffd54883</SourceItemGuid18>
+      <SourceItemType18>CSource</SourceItemType18>
+      <SourceItemGuid19>8481daf4-a15e-403a-86a1-501a8135ad88</SourceItemGuid19>
+      <SourceItemType19>CSource</SourceItemType19>
+      <SourceItemGuid20>a653568f-ea0a-428f-b2f0-1c2d0b2846d7</SourceItemGuid20>
+      <SourceItemType20>CSource</SourceItemType20>
+      <SourceItemGuid21>de1a0c93-7e57-4fe7-81b0-29e99a9216e2</SourceItemGuid21>
+      <SourceItemType21>CSource</SourceItemType21>
+      <SourceItemGuid22>8ef56460-244c-4dcb-b4d7-a29cc1aef325</SourceItemGuid22>
+      <SourceItemType22>AsmSource</SourceItemType22>
+      <SourceItemGuid23>344e1c98-6026-4a50-821b-f0a54ed6f383</SourceItemGuid23>
+      <SourceItemType23>AsmSource</SourceItemType23>
+      <SourceItemGuid24>384d32fd-dad1-456a-b2b6-c59765ed6687</SourceItemGuid24>
+      <SourceItemType24>AsmSource</SourceItemType24>
+      <SourceItemGuid25>4224fd26-1df1-4632-b02d-b2cb4718a50d</SourceItemGuid25>
+      <SourceItemType25>CSource</SourceItemType25>
+      <SourceItemGuid26>5d49f2d5-6efa-446c-9a6e-139c14cc397f</SourceItemGuid26>
+      <SourceItemType26>CSource</SourceItemType26>
+      <SourceItemGuid27>085e1a0c-13fe-4d8c-8c50-8f9c3fb0919a</SourceItemGuid27>
+      <SourceItemType27>CSource</SourceItemType27>
+      <SourceItemGuid28>76a8a8bf-ebb3-4567-898f-7a42b3872a42</SourceItemGuid28>
+      <SourceItemType28>AsmSource</SourceItemType28>
+      <SourceItemGuid29>1be46e6e-efb3-42a0-937d-deeb1c9e1638</SourceItemGuid29>
+      <SourceItemType29>CSource</SourceItemType29>
+      <SourceItemCount>30</SourceItemCount>
+      <LastDeviceChangedCounter>0</LastDeviceChangedCounter>
+    </Instance>
+    <Instance Guid="9e208646-ccba-4100-a676-29b1efe6545f">
+      <AsmOptionInclude-DefaultValue />
+      <BuildMode-DefaultValue>DefaultBuild</BuildMode-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <GeneralOptionIsa-DefaultValue>RXv1</GeneralOptionIsa-DefaultValue>
+      <GeneralOptionOutput-DefaultValue>LibraryFile</GeneralOptionOutput-DefaultValue>
+      <GeneralOptionPic-DefaultValue>False</GeneralOptionPic-DefaultValue>
+      <GeneralOptionSimultaneousBuild-DefaultValue>True</GeneralOptionSimultaneousBuild-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LinkOptionLibrary-DefaultValue />
+      <Memo-DefaultValue />
+      <OutputMessageFormat-DefaultValue>%TargetFiles%</OutputMessageFormat-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <COptionSystemInclude-DefaultValue />
+      <CompilerVersion-DefaultValue>
+
+0</CompilerVersion-DefaultValue>
+      <FormatBuildOptionList-DefaultValue>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-DefaultValue>
+      <GeneralOptionCpu-DefaultValue>RX600</GeneralOptionCpu-DefaultValue>
+      <GeneralOptionEnableParallelBuilding-DefaultValue>False</GeneralOptionEnableParallelBuilding-DefaultValue>
+      <GeneralOptionOutputFolder-DefaultValue>%BuildModeName%</GeneralOptionOutputFolder-DefaultValue>
+      <GeneralOptionPid-DefaultValue>None</GeneralOptionPid-DefaultValue>
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <SetAllBuildModeValue-DefaultValue>False</SetAllBuildModeValue-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <COptionDefine-DefaultValue />
+      <DependencyFileExistCheckingType-DefaultValue>Rebuild</DependencyFileExistCheckingType-DefaultValue>
+      <GeneralOptionFpu-DefaultValue>Auto</GeneralOptionFpu-DefaultValue>
+      <GeneralOptionNousePidRegister-DefaultValue>True</GeneralOptionNousePidRegister-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>False</EnsureCompatibilityOfPathAndLinkageOrder-DefaultValue>
+      <GeneralOptionEndian-DefaultValue>Little</GeneralOptionEndian-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <PreBuildCommands-DefaultValue />
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <GeneralOptionRound-DefaultValue>Nearest</GeneralOptionRound-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <PostBuildCommands-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <GeneralOptionDenormalize-DefaultValue>Off</GeneralOptionDenormalize-DefaultValue>
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <GeneralOptionDblSize-DefaultValue>SinglePrecision</GeneralOptionDblSize-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <GeneralOptionIntToShort-DefaultValue>False</GeneralOptionIntToShort-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <GeneralOptionSignedChar-DefaultValue>Unsigned</GeneralOptionSignedChar-DefaultValue>
+      <LinkOptionStart-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <GeneralOptionOtherAdditionalOptions-DefaultValue />
+      <GeneralOptionSignedBitfield-DefaultValue>Unsigned</GeneralOptionSignedBitfield-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <GeneralOptionAutoEnum-DefaultValue>False</GeneralOptionAutoEnum-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <GeneralOptionBitOrder-DefaultValue>Right</GeneralOptionBitOrder-DefaultValue>
+      <GeneralOptionPack-DefaultValue>False</GeneralOptionPack-DefaultValue>
+      <GeneralOptionException-DefaultValue>False</GeneralOptionException-DefaultValue>
+      <GeneralOptionRtti-DefaultValue>False</GeneralOptionRtti-DefaultValue>
+      <GeneralOptionFintRegister-DefaultValue>None</GeneralOptionFintRegister-DefaultValue>
+      <GeneralOptionBranch-DefaultValue>Branch24</GeneralOptionBranch-DefaultValue>
+      <GeneralOptionBaseRomRegister-DefaultValue>None</GeneralOptionBaseRomRegister-DefaultValue>
+      <GeneralOptionBaseRamRegister-DefaultValue>None</GeneralOptionBaseRamRegister-DefaultValue>
+      <GeneralOptionBaseAddressAddress-DefaultValue>00000000</GeneralOptionBaseAddressAddress-DefaultValue>
+      <GeneralOptionBaseAddressRegister-DefaultValue>None</GeneralOptionBaseAddressRegister-DefaultValue>
+      <GeneralOptionPatch-DefaultValue>None</GeneralOptionPatch-DefaultValue>
+      <GeneralOptionSaveAcc-DefaultValue>False</GeneralOptionSaveAcc-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587031632209796868</TimeTagModified--0>
+      <BuildMode-0>DefaultBuild</BuildMode-0>
+      <Memo-0 />
+      <OutputMessageFormat-0>%TargetFiles%</OutputMessageFormat-0>
+      <FormatBuildOptionList-0>%TargetFiles% : %Program% %Options%</FormatBuildOptionList-0>
+      <SetAllBuildModeValue-0>False</SetAllBuildModeValue-0>
+      <PreBuildCommands-0 />
+      <PostBuildCommands-0 />
+      <GeneralOptionIsa-0>None</GeneralOptionIsa-0>
+      <GeneralOptionOutput-0>LibraryFile</GeneralOptionOutput-0>
+      <GeneralOptionPic-0>False</GeneralOptionPic-0>
+      <GeneralOptionSimultaneousBuild-0>True</GeneralOptionSimultaneousBuild-0>
+      <CompilerVersion-0>
+
+0</CompilerVersion-0>
+      <GeneralOptionCpu-0>RX600</GeneralOptionCpu-0>
+      <GeneralOptionEnableParallelBuilding-0>False</GeneralOptionEnableParallelBuilding-0>
+      <GeneralOptionOutputFolder-0>%BuildModeName%</GeneralOptionOutputFolder-0>
+      <GeneralOptionPid-0>None</GeneralOptionPid-0>
+      <DependencyFileExistCheckingType-0>Rebuild</DependencyFileExistCheckingType-0>
+      <GeneralOptionFpu-0>Auto</GeneralOptionFpu-0>
+      <GeneralOptionNousePidRegister-0>True</GeneralOptionNousePidRegister-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <EnsureCompatibilityOfPathAndLinkageOrder-0>False</EnsureCompatibilityOfPathAndLinkageOrder-0>
+      <GeneralOptionEndian-0>Little</GeneralOptionEndian-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <GeneralOptionRound-0>Nearest</GeneralOptionRound-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <GeneralOptionDenormalize-0>Off</GeneralOptionDenormalize-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <GeneralOptionDblSize-0>SinglePrecision</GeneralOptionDblSize-0>
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <GeneralOptionIntToShort-0>False</GeneralOptionIntToShort-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <GeneralOptionSignedChar-0>Unsigned</GeneralOptionSignedChar-0>
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <GeneralOptionOtherAdditionalOptions-0 />
+      <GeneralOptionSignedBitfield-0>Unsigned</GeneralOptionSignedBitfield-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <GeneralOptionAutoEnum-0>False</GeneralOptionAutoEnum-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <GeneralOptionBitOrder-0>Right</GeneralOptionBitOrder-0>
+      <GeneralOptionPack-0>False</GeneralOptionPack-0>
+      <GeneralOptionException-0>False</GeneralOptionException-0>
+      <GeneralOptionRtti-0>False</GeneralOptionRtti-0>
+      <GeneralOptionFintRegister-0>None</GeneralOptionFintRegister-0>
+      <GeneralOptionBranch-0>Branch24</GeneralOptionBranch-0>
+      <GeneralOptionBaseRomRegister-0>None</GeneralOptionBaseRomRegister-0>
+      <GeneralOptionBaseRamRegister-0>None</GeneralOptionBaseRamRegister-0>
+      <GeneralOptionBaseAddressAddress-0>00000000</GeneralOptionBaseAddressAddress-0>
+      <GeneralOptionBaseAddressRegister-0>None</GeneralOptionBaseAddressRegister-0>
+      <GeneralOptionPatch-0>None</GeneralOptionPatch-0>
+      <GeneralOptionSaveAcc-0>False</GeneralOptionSaveAcc-0>
+      <LastCompilerVersion-0>V2.06.00</LastCompilerVersion-0>
+    </Instance>
+    <Instance Guid="95a63257-4aa7-40c0-a74a-7991543b099b">
+      <COptionLangC-DefaultValue>C</COptionLangC-DefaultValue>
+      <COptionListfile-DefaultValue>False</COptionListfile-DefaultValue>
+      <COptionLogo-DefaultValue>False</COptionLogo-DefaultValue>
+      <COptionMisra-DefaultValue>Misra2012</COptionMisra-DefaultValue>
+      <COptionOptimize-DefaultValue>Level2</COptionOptimize-DefaultValue>
+      <COptionOutput-DefaultValue>Object</COptionOutput-DefaultValue>
+      <COptionOutputAssembly-DefaultValue>False</COptionOutputAssembly-DefaultValue>
+      <COptionStackProtector-DefaultValue>None</COptionStackProtector-DefaultValue>
+      <COptionGoptimize-DefaultValue>False</COptionGoptimize-DefaultValue>
+      <COptionLangCpp-DefaultValue>Cpp</COptionLangCpp-DefaultValue>
+      <COptionMisra2004-DefaultValue>None</COptionMisra2004-DefaultValue>
+      <COptionOutputFolder-DefaultValue>%BuildModeName%</COptionOutputFolder-DefaultValue>
+      <COptionOutputPreprocessed-DefaultValue>None</COptionOutputPreprocessed-DefaultValue>
+      <COptionShowSource-DefaultValue>False</COptionShowSource-DefaultValue>
+      <COptionXcref-DefaultValue>False</COptionXcref-DefaultValue>
+      <COptionDebug-DefaultValue>True</COptionDebug-DefaultValue>
+      <COptionInclude-DefaultValue />
+      <COptionMisra2004RuleFile-DefaultValue />
+      <COptionPreCompileCommands-DefaultValue />
+      <COptionShowConditionals-DefaultValue>False</COptionShowConditionals-DefaultValue>
+      <COptionSpeedAndSize-DefaultValue>Size</COptionSpeedAndSize-DefaultValue>
+      <COptionLoop-DefaultValue>Auto</COptionLoop-DefaultValue>
+      <COptionMisra2004RuleNumberApply-DefaultValue />
+      <COptionPostCompileCommands-DefaultValue />
+      <COptionSectionP-DefaultValue>P</COptionSectionP-DefaultValue>
+      <COptionShowDefinitions-DefaultValue>False</COptionShowDefinitions-DefaultValue>
+      <COptionSystemInclude-DefaultValue />
+      <COptionLoopValue-DefaultValue>2</COptionLoopValue-DefaultValue>
+      <COptionMisra2004RuleNumberIgnore-DefaultValue />
+      <COptionOtherAdditionalOptions-DefaultValue />
+      <COptionPreinclude-DefaultValue />
+      <COptionSectionC-DefaultValue>C</COptionSectionC-DefaultValue>
+      <COptionShowExpansions-DefaultValue>False</COptionShowExpansions-DefaultValue>
+      <COptionCommandLine-DefaultValue>-cpu=rx600
+-include=..\cfg
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=ALLFUNC,USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-DefaultValue>
+      <COptionDefine-DefaultValue />
+      <COptionInline-DefaultValue>Auto</COptionInline-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredAdd-DefaultValue />
+      <COptionSectionD-DefaultValue>D</COptionSectionD-DefaultValue>
+      <COptionInlineValue-DefaultValue>100</COptionInlineValue-DefaultValue>
+      <COptionMisra2004RuleNumberRequiredRemove-DefaultValue />
+      <COptionSectionB-DefaultValue>B</COptionSectionB-DefaultValue>
+      <COptionUndefine-DefaultValue />
+      <COptionFileInline-DefaultValue />
+      <COptionMessage-DefaultValue>False</COptionMessage-DefaultValue>
+      <COptionMisra2012-DefaultValue>None</COptionMisra2012-DefaultValue>
+      <COptionSectionL-DefaultValue>L</COptionSectionL-DefaultValue>
+      <COptionCase-DefaultValue>Auto</COptionCase-DefaultValue>
+      <COptionMessage2-DefaultValue>False</COptionMessage2-DefaultValue>
+      <COptionMisra2012RuleFile-DefaultValue />
+      <COptionSectionW-DefaultValue>W</COptionSectionW-DefaultValue>
+      <COptionMisra2012RuleNumberApply-DefaultValue />
+      <COptionNoMessageErrorNumber-DefaultValue />
+      <COptionNostuffB-DefaultValue>False</COptionNostuffB-DefaultValue>
+      <COptionVolatile-DefaultValue>False</COptionVolatile-DefaultValue>
+      <COptionConstCopy-DefaultValue>Auto</COptionConstCopy-DefaultValue>
+      <COptionMisra2012RuleNumberIgnore-DefaultValue />
+      <COptionNoMessageErrorNumber2-DefaultValue />
+      <COptionNostuffD-DefaultValue>False</COptionNostuffD-DefaultValue>
+      <COptionChangeMessageInformation-DefaultValue>No</COptionChangeMessageInformation-DefaultValue>
+      <COptionConstDiv-DefaultValue>Auto</COptionConstDiv-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredAdd-DefaultValue />
+      <COptionNostuffC-DefaultValue>False</COptionNostuffC-DefaultValue>
+      <COptionChangeMessageInformationNumber-DefaultValue />
+      <COptionLibrary-DefaultValue>Intrinsic</COptionLibrary-DefaultValue>
+      <COptionMisra2012RuleNumberRequiredRemove-DefaultValue />
+      <COptionNostuffW-DefaultValue>False</COptionNostuffW-DefaultValue>
+      <COptionChangeMessageInformationNumber2-DefaultValue />
+      <COptionIgnoreFilesMisra-DefaultValue />
+      <COptionInstalign-DefaultValue>Noinstalign</COptionInstalign-DefaultValue>
+      <COptionScope-DefaultValue>Auto</COptionScope-DefaultValue>
+      <COptionChangeMessageWarning-DefaultValue>No</COptionChangeMessageWarning-DefaultValue>
+      <COptionCheckLanguageExtension-DefaultValue>False</COptionCheckLanguageExtension-DefaultValue>
+      <COptionNouseDiv-DefaultValue>True</COptionNouseDiv-DefaultValue>
+      <COptionSchedule-DefaultValue>Auto</COptionSchedule-DefaultValue>
+      <COptionChangeMessageWarningNumber-DefaultValue />
+      <COptionMap-DefaultValue>NoMap</COptionMap-DefaultValue>
+      <COptionOutcode-DefaultValue>Sjis</COptionOutcode-DefaultValue>
+      <COptionChangeMessageWarningNumber2-DefaultValue />
+      <COptionIntermodule-DefaultValue>None</COptionIntermodule-DefaultValue>
+      <COptionApproxdiv-DefaultValue>False</COptionApproxdiv-DefaultValue>
+      <COptionChangeMessageError-DefaultValue>No</COptionChangeMessageError-DefaultValue>
+      <COptionChangeMessageErrorNumber-DefaultValue />
+      <COptionEnableRegister-DefaultValue>False</COptionEnableRegister-DefaultValue>
+      <COptionChangeMessageErrorNumber2-DefaultValue />
+      <COptionSimpleFloatConv-DefaultValue>False</COptionSimpleFloatConv-DefaultValue>
+      <COptionFileInlinePath-DefaultValue />
+      <COptionFpu-DefaultValue>Auto</COptionFpu-DefaultValue>
+      <COptionAlias-DefaultValue>False</COptionAlias-DefaultValue>
+      <COptionComment-DefaultValue>False</COptionComment-DefaultValue>
+      <COptionAlias2-DefaultValue>Auto</COptionAlias2-DefaultValue>
+      <COptionCheck-DefaultValue>No</COptionCheck-DefaultValue>
+      <COptionFloatOrder-DefaultValue>False</COptionFloatOrder-DefaultValue>
+      <COptionIncode-DefaultValue>Sjis</COptionIncode-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028191050403925</TimeTagModified--0>
+      <COptionLangC-0>C</COptionLangC-0>
+      <COptionListfile-0>False</COptionListfile-0>
+      <COptionLogo-0>False</COptionLogo-0>
+      <COptionMisra-0>Misra2012</COptionMisra-0>
+      <COptionOptimize-0>Level2</COptionOptimize-0>
+      <COptionOutput-0>Object</COptionOutput-0>
+      <COptionOutputAssembly-0>False</COptionOutputAssembly-0>
+      <COptionStackProtector-0>None</COptionStackProtector-0>
+      <COptionGoptimize-0>False</COptionGoptimize-0>
+      <COptionLangCpp-0>Cpp</COptionLangCpp-0>
+      <COptionMisra2004-0>None</COptionMisra2004-0>
+      <COptionOutputFolder-0>%BuildModeName%</COptionOutputFolder-0>
+      <COptionOutputPreprocessed-0>None</COptionOutputPreprocessed-0>
+      <COptionShowSource-0>False</COptionShowSource-0>
+      <COptionXcref-0>False</COptionXcref-0>
+      <COptionDebug-0>True</COptionDebug-0>
+      <COptionInclude-0>..\cfg
+..\..\..\asp_dcre
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\include
+..\..\..\asp_dcre\kernel
+..\..\..\asp_dcre\arch
+..\..\..\asp_dcre\syssvc
+..\..\..\asp_dcre\library
+..\..\..\asp_dcre\target\gr_sakura_ccrx
+..\..\..\asp_dcre\pdic\rx600
+..\..\..\asp_dcre\arch\rx630_ccrx
+..\..\..\asp_dcre\arch\ccrx
+</COptionInclude-0>
+      <COptionMisra2004RuleFile-0 />
+      <COptionPreCompileCommands-0 />
+      <COptionShowConditionals-0>False</COptionShowConditionals-0>
+      <COptionSpeedAndSize-0>Size</COptionSpeedAndSize-0>
+      <COptionLoop-0>Auto</COptionLoop-0>
+      <COptionMisra2004RuleNumberApply-0 />
+      <COptionPostCompileCommands-0 />
+      <COptionSectionP-0>P</COptionSectionP-0>
+      <COptionShowDefinitions-0>False</COptionShowDefinitions-0>
+      <COptionSystemInclude-0 />
+      <COptionLoopValue-0>2</COptionLoopValue-0>
+      <COptionMisra2004RuleNumberIgnore-0 />
+      <COptionOtherAdditionalOptions-0 />
+      <COptionPreinclude-0 />
+      <COptionSectionC-0>C</COptionSectionC-0>
+      <COptionShowExpansions-0>False</COptionShowExpansions-0>
+      <COptionCommandLine-0>-cpu=rx600
+-include=..\cfg
+-include=..\..\..\asp_dcre
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\include
+-include=..\..\..\asp_dcre\kernel
+-include=..\..\..\asp_dcre\arch
+-include=..\..\..\asp_dcre\syssvc
+-include=..\..\..\asp_dcre\library
+-include=..\..\..\asp_dcre\target\gr_sakura_ccrx
+-include=..\..\..\asp_dcre\pdic\rx600
+-include=..\..\..\asp_dcre\arch\rx630_ccrx
+-include=..\..\..\asp_dcre\arch\ccrx
+-define=ALLFUNC,USE_SERIALDEBUG
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-outcode=utf8
+-nologo
+-exec_time
+</COptionCommandLine-0>
+      <COptionDefine-0>ALLFUNC
+USE_SERIALDEBUG
+</COptionDefine-0>
+      <COptionInline-0>Auto</COptionInline-0>
+      <COptionMisra2004RuleNumberRequiredAdd-0 />
+      <COptionSectionD-0>D</COptionSectionD-0>
+      <COptionInlineValue-0>100</COptionInlineValue-0>
+      <COptionMisra2004RuleNumberRequiredRemove-0 />
+      <COptionSectionB-0>B</COptionSectionB-0>
+      <COptionUndefine-0 />
+      <COptionFileInline-0 />
+      <COptionMessage-0>False</COptionMessage-0>
+      <COptionMisra2012-0>None</COptionMisra2012-0>
+      <COptionSectionL-0>L</COptionSectionL-0>
+      <COptionCase-0>Auto</COptionCase-0>
+      <COptionMisra2012RuleFile-0 />
+      <COptionSectionW-0>W</COptionSectionW-0>
+      <COptionMisra2012RuleNumberApply-0 />
+      <COptionNoMessageErrorNumber-0 />
+      <COptionNostuffB-0>False</COptionNostuffB-0>
+      <COptionVolatile-0>False</COptionVolatile-0>
+      <COptionConstCopy-0>Auto</COptionConstCopy-0>
+      <COptionMisra2012RuleNumberIgnore-0 />
+      <COptionNostuffD-0>False</COptionNostuffD-0>
+      <COptionChangeMessageInformation-0>No</COptionChangeMessageInformation-0>
+      <COptionConstDiv-0>Auto</COptionConstDiv-0>
+      <COptionMisra2012RuleNumberRequiredAdd-0 />
+      <COptionNostuffC-0>False</COptionNostuffC-0>
+      <COptionChangeMessageInformationNumber-0 />
+      <COptionLibrary-0>Intrinsic</COptionLibrary-0>
+      <COptionMisra2012RuleNumberRequiredRemove-0 />
+      <COptionNostuffW-0>False</COptionNostuffW-0>
+      <COptionIgnoreFilesMisra-0 />
+      <COptionInstalign-0>Noinstalign</COptionInstalign-0>
+      <COptionScope-0>Auto</COptionScope-0>
+      <COptionChangeMessageWarning-0>No</COptionChangeMessageWarning-0>
+      <COptionCheckLanguageExtension-0>False</COptionCheckLanguageExtension-0>
+      <COptionNouseDiv-0>True</COptionNouseDiv-0>
+      <COptionSchedule-0>Auto</COptionSchedule-0>
+      <COptionChangeMessageWarningNumber-0 />
+      <COptionMap-0>NoMap</COptionMap-0>
+      <COptionOutcode-0>Utf8</COptionOutcode-0>
+      <COptionIntermodule-0>None</COptionIntermodule-0>
+      <COptionApproxdiv-0>False</COptionApproxdiv-0>
+      <COptionChangeMessageError-0>No</COptionChangeMessageError-0>
+      <COptionChangeMessageErrorNumber-0 />
+      <COptionEnableRegister-0>False</COptionEnableRegister-0>
+      <COptionSimpleFloatConv-0>False</COptionSimpleFloatConv-0>
+      <COptionFileInlinePath-0 />
+      <COptionFpu-0>Auto</COptionFpu-0>
+      <COptionAlias-0>False</COptionAlias-0>
+      <COptionComment-0>False</COptionComment-0>
+      <COptionAlias2-0>Auto</COptionAlias2-0>
+      <COptionCheck-0>No</COptionCheck-0>
+      <COptionFloatOrder-0>False</COptionFloatOrder-0>
+      <COptionIncode-0>Utf8</COptionIncode-0>
+    </Instance>
+    <Instance Guid="5ad1746c-d03e-4610-a91f-aaa4fb37bc10">
+      <AsmOptionChkpm-DefaultValue>False</AsmOptionChkpm-DefaultValue>
+      <AsmOptionGoptimize-DefaultValue>False</AsmOptionGoptimize-DefaultValue>
+      <AsmOptionInclude-DefaultValue />
+      <AsmOptionListFile-DefaultValue>False</AsmOptionListFile-DefaultValue>
+      <AsmOptionOutput-DefaultValue>%BuildModeName%</AsmOptionOutput-DefaultValue>
+      <AsmOptionChkfpu-DefaultValue>False</AsmOptionChkfpu-DefaultValue>
+      <AsmOptionDebug-DefaultValue>True</AsmOptionDebug-DefaultValue>
+      <AsmOptionShowConditionals-DefaultValue>False</AsmOptionShowConditionals-DefaultValue>
+      <AsmOptionSystemInclude-DefaultValue />
+      <AsmOptionChkdsp-DefaultValue>False</AsmOptionChkdsp-DefaultValue>
+      <AsmOptionCreateUnfilledArea-DefaultValue>False</AsmOptionCreateUnfilledArea-DefaultValue>
+      <AsmOptionDefine-DefaultValue />
+      <AsmOptionShowDefinitions-DefaultValue>False</AsmOptionShowDefinitions-DefaultValue>
+      <AsmOptionInCode-DefaultValue>SJIS</AsmOptionInCode-DefaultValue>
+      <AsmOptionLogo-DefaultValue>False</AsmOptionLogo-DefaultValue>
+      <AsmOptionShowExpansions-DefaultValue>False</AsmOptionShowExpansions-DefaultValue>
+      <AsmOptionPreAssembleCommands-DefaultValue />
+      <AsmOptionPostAssembleCommands-DefaultValue />
+      <AsmOptionOtherAdditionalOptions-DefaultValue />
+      <AsmOptionCommandLine-DefaultValue>-cpu=rx600
+-include=../cfg
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028191117103925</TimeTagModified--0>
+      <AsmOptionChkpm-0>False</AsmOptionChkpm-0>
+      <AsmOptionGoptimize-0>False</AsmOptionGoptimize-0>
+      <AsmOptionInclude-0>../cfg
+</AsmOptionInclude-0>
+      <AsmOptionListFile-0>False</AsmOptionListFile-0>
+      <AsmOptionOutput-0>%BuildModeName%</AsmOptionOutput-0>
+      <AsmOptionChkfpu-0>False</AsmOptionChkfpu-0>
+      <AsmOptionDebug-0>True</AsmOptionDebug-0>
+      <AsmOptionShowConditionals-0>False</AsmOptionShowConditionals-0>
+      <AsmOptionSystemInclude-0 />
+      <AsmOptionChkdsp-0>False</AsmOptionChkdsp-0>
+      <AsmOptionCreateUnfilledArea-0>False</AsmOptionCreateUnfilledArea-0>
+      <AsmOptionDefine-0 />
+      <AsmOptionShowDefinitions-0>False</AsmOptionShowDefinitions-0>
+      <AsmOptionInCode-0>UTF8</AsmOptionInCode-0>
+      <AsmOptionLogo-0>False</AsmOptionLogo-0>
+      <AsmOptionShowExpansions-0>False</AsmOptionShowExpansions-0>
+      <AsmOptionPreAssembleCommands-0 />
+      <AsmOptionPostAssembleCommands-0 />
+      <AsmOptionOtherAdditionalOptions-0 />
+      <AsmOptionCommandLine-0>-cpu=rx600
+-include=../cfg
+-utf8
+-output=obj
+-obj_path=%BuildModeName%
+-debug
+-nologo
+-exec_time
+</AsmOptionCommandLine-0>
+    </Instance>
+    <Instance Guid="dbb16727-3e81-4169-956a-790355cab4a1">
+      <LinkOptionCpu-DefaultValue>False</LinkOptionCpu-DefaultValue>
+      <LinkOptionForm-DefaultValue>Absolute</LinkOptionForm-DefaultValue>
+      <LinkOptionFormConvert-DefaultValue>Stype</LinkOptionFormConvert-DefaultValue>
+      <LinkOptionInput-DefaultValue />
+      <LinkOptionListShow-DefaultValue>None</LinkOptionListShow-DefaultValue>
+      <LinkOptionOptimize-DefaultValue>None</LinkOptionOptimize-DefaultValue>
+      <LinkOptionStack-DefaultValue>False</LinkOptionStack-DefaultValue>
+      <LinkOptionStart-DefaultValue />
+      <LinkOptionCompress-DefaultValue>False</LinkOptionCompress-DefaultValue>
+      <LinkOptionCpuInformation-DefaultValue />
+      <LinkOptionDebug-DefaultValue>Debug</LinkOptionDebug-DefaultValue>
+      <LinkOptionFSymbol-DefaultValue />
+      <LinkOptionLibrary-DefaultValue />
+      <LinkOptionOptimizeSymbolDelete-DefaultValue>False</LinkOptionOptimizeSymbolDelete-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <LinkOptionShowSymbol-DefaultValue>False</LinkOptionShowSymbol-DefaultValue>
+      <LinkOptionAlignedSection-DefaultValue />
+      <LinkOptionCpuStride-DefaultValue>False</LinkOptionCpuStride-DefaultValue>
+      <LinkOptionMemory-DefaultValue>False</LinkOptionMemory-DefaultValue>
+      <LinkOptionOptimizeSameCode-DefaultValue>False</LinkOptionOptimizeSameCode-DefaultValue>
+      <LinkOptionOutputFolder-DefaultValue>%BuildModeName%</LinkOptionOutputFolder-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <LinkOptionShowReference-DefaultValue>False</LinkOptionShowReference-DefaultValue>
+      <LinkOptionSystemLibrary-DefaultValue />
+      <LinkOptionBinary-DefaultValue />
+      <LinkOptionChangeMessageInformation-DefaultValue>None</LinkOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionContiguousSection-DefaultValue />
+      <LinkOptionDividedConvertFile-DefaultValue>False</LinkOptionDividedConvertFile-DefaultValue>
+      <LinkOptionOutputFileName-DefaultValue>%ProjectName%.abs</LinkOptionOutputFileName-DefaultValue>
+      <LinkOptionRom-DefaultValue />
+      <LinkOptionSameSize-DefaultValue>1E</LinkOptionSameSize-DefaultValue>
+      <LinkOptionShowXreference-DefaultValue>False</LinkOptionShowXreference-DefaultValue>
+      <LinkOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionDefine-DefaultValue />
+      <LinkOptionMap-DefaultValue>False</LinkOptionMap-DefaultValue>
+      <LinkOptionOptimizeShortFormat-DefaultValue>False</LinkOptionOptimizeShortFormat-DefaultValue>
+      <LinkOptionShowTotalSize-DefaultValue>False</LinkOptionShowTotalSize-DefaultValue>
+      <LinkOptionChangeMessageWarning-DefaultValue>None</LinkOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionEntry-DefaultValue>False</LinkOptionEntry-DefaultValue>
+      <LinkOptionMessage-DefaultValue>NoMessage</LinkOptionMessage-DefaultValue>
+      <LinkOptionOptimizeBranch-DefaultValue>False</LinkOptionOptimizeBranch-DefaultValue>
+      <LinkOptionShowVector-DefaultValue>False</LinkOptionShowVector-DefaultValue>
+      <LinkOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionEntryPoint-DefaultValue />
+      <LinkOptionMsgUnused-DefaultValue>False</LinkOptionMsgUnused-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSymbolForbid-DefaultValue />
+      <LinkOptionChangeMessageError-DefaultValue>None</LinkOptionChangeMessageError-DefaultValue>
+      <LinkOptionNoMessageErrorNumber-DefaultValue />
+      <LinkOptionNoPrelink-DefaultValue>Auto</LinkOptionNoPrelink-DefaultValue>
+      <LinkOptionSameCodeForbid-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <LinkOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionPadding-DefaultValue>False</LinkOptionPadding-DefaultValue>
+      <LinkOptionSectionForbid-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <LinkOptionAbsoluteForbid-DefaultValue />
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <LinkOptionHide-DefaultValue>False</LinkOptionHide-DefaultValue>
+      <LinkOptionVectN-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <LinkOptionTotalSize-DefaultValue>False</LinkOptionTotalSize-DefaultValue>
+      <LinkOptionVect-DefaultValue />
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <LinkOptionJumpEntriesForPic-DefaultValue>False</LinkOptionJumpEntriesForPic-DefaultValue>
+      <LinkOptionLogo-DefaultValue>False</LinkOptionLogo-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionJumpEntriesForPicSectionName-DefaultValue />
+      <LinkOptionPreLinkCommands-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <LinkOptionPostLinkCommands-DefaultValue />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-DefaultValue />
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <LinkOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028738662662196</TimeTagModified--0>
+      <LinkOptionCpu-0>False</LinkOptionCpu-0>
+      <LinkOptionForm-0>Absolute</LinkOptionForm-0>
+      <LinkOptionFormConvert-0>Stype</LinkOptionFormConvert-0>
+      <LinkOptionInput-0 />
+      <LinkOptionListShow-0>None</LinkOptionListShow-0>
+      <LinkOptionOptimize-0>None</LinkOptionOptimize-0>
+      <LinkOptionStack-0>False</LinkOptionStack-0>
+      <LinkOptionStart-0 />
+      <LinkOptionCompress-0>False</LinkOptionCompress-0>
+      <LinkOptionCpuInformation-0 />
+      <LinkOptionDebug-0>Debug</LinkOptionDebug-0>
+      <LinkOptionFSymbol-0 />
+      <LinkOptionLibrary-0 />
+      <LinkOptionOptimizeSymbolDelete-0>False</LinkOptionOptimizeSymbolDelete-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <LinkOptionShowSymbol-0>False</LinkOptionShowSymbol-0>
+      <LinkOptionAlignedSection-0 />
+      <LinkOptionCpuStride-0>False</LinkOptionCpuStride-0>
+      <LinkOptionMemory-0>False</LinkOptionMemory-0>
+      <LinkOptionOptimizeSameCode-0>False</LinkOptionOptimizeSameCode-0>
+      <LinkOptionOutputFolder-0>%BuildModeName%</LinkOptionOutputFolder-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <LinkOptionShowReference-0>False</LinkOptionShowReference-0>
+      <LinkOptionSystemLibrary-0 />
+      <LinkOptionBinary-0 />
+      <LinkOptionChangeMessageInformation-0>None</LinkOptionChangeMessageInformation-0>
+      <LinkOptionContiguousSection-0 />
+      <LinkOptionDividedConvertFile-0>False</LinkOptionDividedConvertFile-0>
+      <LinkOptionOutputFileName-0>%ProjectName%.abs</LinkOptionOutputFileName-0>
+      <LinkOptionRom-0 />
+      <LinkOptionSameSize-0>1E</LinkOptionSameSize-0>
+      <LinkOptionShowXreference-0>False</LinkOptionShowXreference-0>
+      <LinkOptionChangeMessageInformationNumber-0 />
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionDefine-0 />
+      <LinkOptionMap-0>False</LinkOptionMap-0>
+      <LinkOptionOptimizeShortFormat-0>False</LinkOptionOptimizeShortFormat-0>
+      <LinkOptionShowTotalSize-0>False</LinkOptionShowTotalSize-0>
+      <LinkOptionChangeMessageWarning-0>None</LinkOptionChangeMessageWarning-0>
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionEntry-0>False</LinkOptionEntry-0>
+      <LinkOptionMessage-0>NoMessage</LinkOptionMessage-0>
+      <LinkOptionOptimizeBranch-0>False</LinkOptionOptimizeBranch-0>
+      <LinkOptionShowVector-0>False</LinkOptionShowVector-0>
+      <LinkOptionChangeMessageWarningNumber-0 />
+      <LinkOptionEntryPoint-0 />
+      <LinkOptionMsgUnused-0>False</LinkOptionMsgUnused-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSymbolForbid-0 />
+      <LinkOptionChangeMessageError-0>None</LinkOptionChangeMessageError-0>
+      <LinkOptionNoMessageErrorNumber-0 />
+      <LinkOptionNoPrelink-0>Auto</LinkOptionNoPrelink-0>
+      <LinkOptionSameCodeForbid-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <LinkOptionChangeMessageErrorNumber-0 />
+      <LinkOptionPadding-0>False</LinkOptionPadding-0>
+      <LinkOptionSectionForbid-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <LinkOptionAbsoluteForbid-0 />
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <LinkOptionHide-0>False</LinkOptionHide-0>
+      <LinkOptionVectN-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <LinkOptionTotalSize-0>False</LinkOptionTotalSize-0>
+      <LinkOptionVect-0 />
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <LinkOptionJumpEntriesForPic-0>False</LinkOptionJumpEntriesForPic-0>
+      <LinkOptionLogo-0>False</LinkOptionLogo-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionJumpEntriesForPicSectionName-0 />
+      <LinkOptionPreLinkCommands-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <LinkOptionPostLinkCommands-0 />
+      <LinkOptionOtherAdditionalOptionsForLoadModule-0 />
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <LinkOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="df74c69e-635e-42d9-845e-14128ba4d48a">
+      <HexOptionForm-DefaultValue>Stype</HexOptionForm-DefaultValue>
+      <HexOptionOutput-DefaultValue>True</HexOptionOutput-DefaultValue>
+      <HexOptionSameLinkMessage-DefaultValue>True</HexOptionSameLinkMessage-DefaultValue>
+      <HexOptionMessage-DefaultValue>NoMessage</HexOptionMessage-DefaultValue>
+      <LinkOptionConvertFolder-DefaultValue>%BuildModeName%</LinkOptionConvertFolder-DefaultValue>
+      <LinkOptionRecordH-DefaultValue>None</LinkOptionRecordH-DefaultValue>
+      <HexOptionNoMessageNumber-DefaultValue />
+      <LinkOptionConvertFileName-DefaultValue>%ProjectName%.mot</LinkOptionConvertFileName-DefaultValue>
+      <LinkOptionRecordS-DefaultValue>None</LinkOptionRecordS-DefaultValue>
+      <HexOptionChangeMessageInformation-DefaultValue>None</HexOptionChangeMessageInformation-DefaultValue>
+      <LinkOptionMultiConvertFileName-DefaultValue />
+      <LinkOptionSpace-DefaultValue>None</LinkOptionSpace-DefaultValue>
+      <HexOptionChangeMessageInformationNumber-DefaultValue />
+      <LinkOptionSpaceValue-DefaultValue>FF</LinkOptionSpaceValue-DefaultValue>
+      <HexOptionChangeMessageWarning-DefaultValue>None</HexOptionChangeMessageWarning-DefaultValue>
+      <LinkOptionByteCount-DefaultValue>False</LinkOptionByteCount-DefaultValue>
+      <HexOptionChangeMessageWarningNumber-DefaultValue />
+      <LinkOptionByteCountValue-DefaultValue>FF</LinkOptionByteCountValue-DefaultValue>
+      <HexOptionChangeMessageError-DefaultValue>None</HexOptionChangeMessageError-DefaultValue>
+      <LinkOptionCrc-DefaultValue>None</LinkOptionCrc-DefaultValue>
+      <HexOptionChangeMessageErrorNumber-DefaultValue />
+      <LinkOptionCrc2-DefaultValue>False</LinkOptionCrc2-DefaultValue>
+      <LinkOptionCrcOutputAddress-DefaultValue>0</LinkOptionCrcOutputAddress-DefaultValue>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-DefaultValue />
+      <HexOptionCommandLine-DefaultValue />
+      <LinkOptionCrcCalculationRange-DefaultValue />
+      <HexOptionCrcType-DefaultValue>Ccitt</HexOptionCrcType-DefaultValue>
+      <HexOptionCrcInitialValue-DefaultValue />
+      <HexOptionCrcEndian-DefaultValue>None</HexOptionCrcEndian-DefaultValue>
+      <LinkOptionS9-DefaultValue>False</LinkOptionS9-DefaultValue>
+      <HexOptionCreateUnfilledArea-DefaultValue>False</HexOptionCreateUnfilledArea-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8588092284315869558</TimeTagModified--0>
+      <HexOptionForm-0>Stype</HexOptionForm-0>
+      <HexOptionOutput-0>True</HexOptionOutput-0>
+      <HexOptionSameLinkMessage-0>True</HexOptionSameLinkMessage-0>
+      <HexOptionMessage-0>NoMessage</HexOptionMessage-0>
+      <LinkOptionConvertFolder-0>%BuildModeName%</LinkOptionConvertFolder-0>
+      <LinkOptionRecordH-0>None</LinkOptionRecordH-0>
+      <HexOptionNoMessageNumber-0 />
+      <LinkOptionConvertFileName-0>%ProjectName%.mot</LinkOptionConvertFileName-0>
+      <LinkOptionRecordS-0>None</LinkOptionRecordS-0>
+      <HexOptionChangeMessageInformation-0>None</HexOptionChangeMessageInformation-0>
+      <LinkOptionMultiConvertFileName-0 />
+      <LinkOptionSpace-0>None</LinkOptionSpace-0>
+      <HexOptionChangeMessageInformationNumber-0 />
+      <LinkOptionSpaceValue-0>FF</LinkOptionSpaceValue-0>
+      <HexOptionChangeMessageWarning-0>None</HexOptionChangeMessageWarning-0>
+      <LinkOptionByteCount-0>False</LinkOptionByteCount-0>
+      <HexOptionChangeMessageWarningNumber-0 />
+      <LinkOptionByteCountValue-0>FF</LinkOptionByteCountValue-0>
+      <HexOptionChangeMessageError-0>None</HexOptionChangeMessageError-0>
+      <LinkOptionCrc-0>None</LinkOptionCrc-0>
+      <HexOptionChangeMessageErrorNumber-0 />
+      <LinkOptionCrc2-0>False</LinkOptionCrc2-0>
+      <LinkOptionCrcOutputAddress-0>0</LinkOptionCrcOutputAddress-0>
+      <LinkOptionOtherAdditionalOptionsForConvertFile-0 />
+      <HexOptionCommandLine-0 />
+      <LinkOptionCrcCalculationRange-0 />
+      <HexOptionCrcType-0>Ccitt</HexOptionCrcType-0>
+      <HexOptionCrcInitialValue-0 />
+      <HexOptionCrcEndian-0>None</HexOptionCrcEndian-0>
+      <LinkOptionS9-0>False</LinkOptionS9-0>
+      <HexOptionCreateUnfilledArea-0>False</HexOptionCreateUnfilledArea-0>
+    </Instance>
+    <Instance Guid="fff50d2e-74da-44ea-90a8-c47756029e83">
+      <LibOptionForm-DefaultValue>LibraryU</LibOptionForm-DefaultValue>
+      <LibOptionInput-DefaultValue />
+      <LibOptionListShow-DefaultValue>List</LibOptionListShow-DefaultValue>
+      <LibOptionMemory-DefaultValue>False</LibOptionMemory-DefaultValue>
+      <LibOptionChangeMessageInformation-DefaultValue>None</LibOptionChangeMessageInformation-DefaultValue>
+      <LibOptionDebug-DefaultValue>Debug</LibOptionDebug-DefaultValue>
+      <LibOptionLibrary-DefaultValue />
+      <LibOptionShowSymbol-DefaultValue>False</LibOptionShowSymbol-DefaultValue>
+      <LibOptionChangeMessageInformationNumber-DefaultValue />
+      <LibOptionOutputFolder-DefaultValue>%BuildModeName%</LibOptionOutputFolder-DefaultValue>
+      <LibOptionShowSection-DefaultValue>False</LibOptionShowSection-DefaultValue>
+      <LibOptionSystemLibrary-DefaultValue />
+      <LibOptionBinary-DefaultValue />
+      <LibOptionChangeMessageWarning-DefaultValue>None</LibOptionChangeMessageWarning-DefaultValue>
+      <LibOptionOutputFileName-DefaultValue>%ProjectName%.lib</LibOptionOutputFileName-DefaultValue>
+      <LibOptionShowXreference-DefaultValue>False</LibOptionShowXreference-DefaultValue>
+      <LibOptionChangeMessageWarningNumber-DefaultValue />
+      <LibOptionMessage-DefaultValue>NoMessage</LibOptionMessage-DefaultValue>
+      <LibOptionNoPrelink-DefaultValue>Auto</LibOptionNoPrelink-DefaultValue>
+      <LibOptionShowTotalSize-DefaultValue>False</LibOptionShowTotalSize-DefaultValue>
+      <LibOptionChangeMessageError-DefaultValue>None</LibOptionChangeMessageError-DefaultValue>
+      <LibOptionNoMessageErrorNumber-DefaultValue />
+      <LibOptionShowVector-DefaultValue>False</LibOptionShowVector-DefaultValue>
+      <LibOptionChangeMessageErrorNumber-DefaultValue />
+      <LibOptionHide-DefaultValue>False</LibOptionHide-DefaultValue>
+      <LibOptionTotalSize-DefaultValue>False</LibOptionTotalSize-DefaultValue>
+      <LibOptionLogo-DefaultValue>False</LibOptionLogo-DefaultValue>
+      <LibOptionPreLibrarianCommands-DefaultValue />
+      <LibOptionPostLibrarianCommands-DefaultValue />
+      <LibOptionOtherAdditionalOptions-DefaultValue />
+      <LibOptionCommandLine-DefaultValue />
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587028738662662196</TimeTagModified--0>
+      <LibOptionForm-0>LibraryU</LibOptionForm-0>
+      <LibOptionInput-0 />
+      <LibOptionListShow-0>List</LibOptionListShow-0>
+      <LibOptionMemory-0>False</LibOptionMemory-0>
+      <LibOptionChangeMessageInformation-0>None</LibOptionChangeMessageInformation-0>
+      <LibOptionDebug-0>Debug</LibOptionDebug-0>
+      <LibOptionLibrary-0 />
+      <LibOptionShowSymbol-0>False</LibOptionShowSymbol-0>
+      <LibOptionChangeMessageInformationNumber-0 />
+      <LibOptionOutputFolder-0>%BuildModeName%</LibOptionOutputFolder-0>
+      <LibOptionShowSection-0>False</LibOptionShowSection-0>
+      <LibOptionSystemLibrary-0 />
+      <LibOptionBinary-0 />
+      <LibOptionChangeMessageWarning-0>None</LibOptionChangeMessageWarning-0>
+      <LibOptionOutputFileName-0>%ProjectName%.lib</LibOptionOutputFileName-0>
+      <LibOptionShowXreference-0>False</LibOptionShowXreference-0>
+      <LibOptionChangeMessageWarningNumber-0 />
+      <LibOptionMessage-0>NoMessage</LibOptionMessage-0>
+      <LibOptionNoPrelink-0>Auto</LibOptionNoPrelink-0>
+      <LibOptionShowTotalSize-0>False</LibOptionShowTotalSize-0>
+      <LibOptionChangeMessageError-0>None</LibOptionChangeMessageError-0>
+      <LibOptionNoMessageErrorNumber-0 />
+      <LibOptionShowVector-0>False</LibOptionShowVector-0>
+      <LibOptionChangeMessageErrorNumber-0 />
+      <LibOptionHide-0>False</LibOptionHide-0>
+      <LibOptionTotalSize-0>False</LibOptionTotalSize-0>
+      <LibOptionLogo-0>False</LibOptionLogo-0>
+      <LibOptionPreLibrarianCommands-0 />
+      <LibOptionPostLibrarianCommands-0 />
+      <LibOptionOtherAdditionalOptions-0 />
+      <LibOptionCommandLine-0 />
+    </Instance>
+    <Instance Guid="9cb0ade0-b3cb-4e21-823c-290b5fdb5f1e">
+      <LbgOptionLanguage-DefaultValue>C</LbgOptionLanguage-DefaultValue>
+      <LbgOptionLibraryMode-DefaultValue>None</LbgOptionLibraryMode-DefaultValue>
+      <LbgOptionLogo-DefaultValue>False</LbgOptionLogo-DefaultValue>
+      <LbgOptionOutputFolder-DefaultValue>%BuildModeName%</LbgOptionOutputFolder-DefaultValue>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHead-DefaultValue>Custom</LbgOptionHead-DefaultValue>
+      <LbgOptionOptimize-DefaultValue>Level2</LbgOptionOptimize-DefaultValue>
+      <LbgOptionOutputFileName-DefaultValue>%ProjectName%.lib</LbgOptionOutputFileName-DefaultValue>
+      <LbgOptionPreLibraryGenerateCommands-DefaultValue />
+      <LbgOptionFunctionalCutdown-DefaultValue>None</LbgOptionFunctionalCutdown-DefaultValue>
+      <LbgOptionGoptimize-DefaultValue>False</LbgOptionGoptimize-DefaultValue>
+      <LbgOptionHeadRuntime-DefaultValue>True</LbgOptionHeadRuntime-DefaultValue>
+      <LbgOptionPostLibraryGenerateCommands-DefaultValue />
+      <LbgOptionHeadCtypeH-DefaultValue>False</LbgOptionHeadCtypeH-DefaultValue>
+      <LbgOptionOtherAdditionalOptions-DefaultValue />
+      <LbgOptionReent-DefaultValue>False</LbgOptionReent-DefaultValue>
+      <LbgOptionSpeedAndSize-DefaultValue>Size</LbgOptionSpeedAndSize-DefaultValue>
+      <LbgOptionCommandLine-DefaultValue />
+      <LbgOptionHeadMathH-DefaultValue>False</LbgOptionHeadMathH-DefaultValue>
+      <LbgOptionLoop-DefaultValue>Auto</LbgOptionLoop-DefaultValue>
+      <LbgOptionSecureMalloc-DefaultValue>False</LbgOptionSecureMalloc-DefaultValue>
+      <LbgOptionHeadMathfH-DefaultValue>False</LbgOptionHeadMathfH-DefaultValue>
+      <LbgOptionLoopValue-DefaultValue>2</LbgOptionLoopValue-DefaultValue>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-DefaultValue>
+      <LbgOptionHeadStdargH-DefaultValue>False</LbgOptionHeadStdargH-DefaultValue>
+      <LbgOptionInline-DefaultValue>Auto</LbgOptionInline-DefaultValue>
+      <LbgOptionSectionP-DefaultValue>P</LbgOptionSectionP-DefaultValue>
+      <LbgOptionHeadStdioH-DefaultValue>True</LbgOptionHeadStdioH-DefaultValue>
+      <LbgOptionInlineValue-DefaultValue>100</LbgOptionInlineValue-DefaultValue>
+      <LbgOptionSectionC-DefaultValue>C</LbgOptionSectionC-DefaultValue>
+      <LbgOptionFileInline-DefaultValue />
+      <LbgOptionHeadStdlibH-DefaultValue>True</LbgOptionHeadStdlibH-DefaultValue>
+      <LbgOptionSectionD-DefaultValue>D</LbgOptionSectionD-DefaultValue>
+      <LbgOptionCase-DefaultValue>Auto</LbgOptionCase-DefaultValue>
+      <LbgOptionHeadStringH-DefaultValue>True</LbgOptionHeadStringH-DefaultValue>
+      <LbgOptionSectionB-DefaultValue>B</LbgOptionSectionB-DefaultValue>
+      <LbgOptionHeadIos-DefaultValue>False</LbgOptionHeadIos-DefaultValue>
+      <LbgOptionSectionL-DefaultValue>L</LbgOptionSectionL-DefaultValue>
+      <LbgOptionVolatile-DefaultValue>False</LbgOptionVolatile-DefaultValue>
+      <LbgOptionConstCopy-DefaultValue>Auto</LbgOptionConstCopy-DefaultValue>
+      <LbgOptionHeadNew-DefaultValue>True</LbgOptionHeadNew-DefaultValue>
+      <LbgOptionSectionW-DefaultValue>W</LbgOptionSectionW-DefaultValue>
+      <LbgOptionConstDiv-DefaultValue>Auto</LbgOptionConstDiv-DefaultValue>
+      <LbgOptionHeadComplex-DefaultValue>False</LbgOptionHeadComplex-DefaultValue>
+      <LbgOptionNostuffB-DefaultValue>False</LbgOptionNostuffB-DefaultValue>
+      <LbgOptionHeadString-DefaultValue>False</LbgOptionHeadString-DefaultValue>
+      <LbgOptionLibrary-DefaultValue>Intrinsic</LbgOptionLibrary-DefaultValue>
+      <LbgOptionNostuffD-DefaultValue>False</LbgOptionNostuffD-DefaultValue>
+      <LbgOptionHeadComplexH-DefaultValue>False</LbgOptionHeadComplexH-DefaultValue>
+      <LbgOptionNostuffC-DefaultValue>False</LbgOptionNostuffC-DefaultValue>
+      <LbgOptionScope-DefaultValue>Auto</LbgOptionScope-DefaultValue>
+      <LbgOptionHeadFenvH-DefaultValue>False</LbgOptionHeadFenvH-DefaultValue>
+      <LbgOptionNostuffW-DefaultValue>False</LbgOptionNostuffW-DefaultValue>
+      <LbgOptionSchedule-DefaultValue>Auto</LbgOptionSchedule-DefaultValue>
+      <LbgOptionApproxdiv-DefaultValue>False</LbgOptionApproxdiv-DefaultValue>
+      <LbgOptionHeadInttypesH-DefaultValue>False</LbgOptionHeadInttypesH-DefaultValue>
+      <LbgOptionInstalign-DefaultValue>Noinstalign</LbgOptionInstalign-DefaultValue>
+      <LbgOptionEnableRegister-DefaultValue>False</LbgOptionEnableRegister-DefaultValue>
+      <LbgOptionHeadWcharH-DefaultValue>False</LbgOptionHeadWcharH-DefaultValue>
+      <LbgOptionNouseDiv-DefaultValue>True</LbgOptionNouseDiv-DefaultValue>
+      <LbgOptionHeadWctypeH-DefaultValue>False</LbgOptionHeadWctypeH-DefaultValue>
+      <LbgOptionSimpleFloatConv-DefaultValue>False</LbgOptionSimpleFloatConv-DefaultValue>
+      <LbgOptionFpu-DefaultValue>Auto</LbgOptionFpu-DefaultValue>
+      <LbgOptionFloatOrder-DefaultValue>False</LbgOptionFloatOrder-DefaultValue>
+      <IsLockedByUser>False</IsLockedByUser>
+      <TimeTagModified--0>-8587031632209796868</TimeTagModified--0>
+      <LbgOptionLanguage-0>C</LbgOptionLanguage-0>
+      <LbgOptionLibraryMode-0>None</LbgOptionLibraryMode-0>
+      <LbgOptionLogo-0>False</LbgOptionLogo-0>
+      <LbgOptionOutputFolder-0>%BuildModeName%</LbgOptionOutputFolder-0>
+      <LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameOptimizeRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHead-0>Custom</LbgOptionHead-0>
+      <LbgOptionOptimize-0>Level2</LbgOptionOptimize-0>
+      <LbgOptionOutputFileName-0>%ProjectName%.lib</LbgOptionOutputFileName-0>
+      <LbgOptionPreLibraryGenerateCommands-0 />
+      <LbgOptionFunctionalCutdown-0>None</LbgOptionFunctionalCutdown-0>
+      <LbgOptionGoptimize-0>False</LbgOptionGoptimize-0>
+      <LbgOptionPostLibraryGenerateCommands-0 />
+      <LbgOptionHeadCtypeH-0>False</LbgOptionHeadCtypeH-0>
+      <LbgOptionOtherAdditionalOptions-0 />
+      <LbgOptionReent-0>False</LbgOptionReent-0>
+      <LbgOptionSpeedAndSize-0>Size</LbgOptionSpeedAndSize-0>
+      <LbgOptionCommandLine-0 />
+      <LbgOptionHeadMathH-0>False</LbgOptionHeadMathH-0>
+      <LbgOptionLoop-0>Auto</LbgOptionLoop-0>
+      <LbgOptionSecureMalloc-0>False</LbgOptionSecureMalloc-0>
+      <LbgOptionHeadMathfH-0>False</LbgOptionHeadMathfH-0>
+      <LbgOptionLoopValue-0>2</LbgOptionLoopValue-0>
+      <LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>False</LbgOptionUseSameObjectRelatedSettingsAsCompileOptions-0>
+      <LbgOptionHeadStdargH-0>False</LbgOptionHeadStdargH-0>
+      <LbgOptionInline-0>Auto</LbgOptionInline-0>
+      <LbgOptionSectionP-0>P</LbgOptionSectionP-0>
+      <LbgOptionHeadStdioH-0>True</LbgOptionHeadStdioH-0>
+      <LbgOptionInlineValue-0>100</LbgOptionInlineValue-0>
+      <LbgOptionSectionC-0>C</LbgOptionSectionC-0>
+      <LbgOptionFileInline-0 />
+      <LbgOptionHeadStdlibH-0>True</LbgOptionHeadStdlibH-0>
+      <LbgOptionSectionD-0>D</LbgOptionSectionD-0>
+      <LbgOptionCase-0>Auto</LbgOptionCase-0>
+      <LbgOptionHeadStringH-0>True</LbgOptionHeadStringH-0>
+      <LbgOptionSectionB-0>B</LbgOptionSectionB-0>
+      <LbgOptionHeadIos-0>False</LbgOptionHeadIos-0>
+      <LbgOptionSectionL-0>L</LbgOptionSectionL-0>
+      <LbgOptionVolatile-0>False</LbgOptionVolatile-0>
+      <LbgOptionConstCopy-0>Auto</LbgOptionConstCopy-0>
+      <LbgOptionHeadNew-0>True</LbgOptionHeadNew-0>
+      <LbgOptionSectionW-0>W</LbgOptionSectionW-0>
+      <LbgOptionConstDiv-0>Auto</LbgOptionConstDiv-0>
+      <LbgOptionHeadComplex-0>False</LbgOptionHeadComplex-0>
+      <LbgOptionNostuffB-0>False</LbgOptionNostuffB-0>
+      <LbgOptionHeadString-0>False</LbgOptionHeadString-0>
+      <LbgOptionLibrary-0>Intrinsic</LbgOptionLibrary-0>
+      <LbgOptionNostuffD-0>False</LbgOptionNostuffD-0>
+      <LbgOptionHeadComplexH-0>False</LbgOptionHeadComplexH-0>
+      <LbgOptionNostuffC-0>False</LbgOptionNostuffC-0>
+      <LbgOptionScope-0>Auto</LbgOptionScope-0>
+      <LbgOptionHeadFenvH-0>False</LbgOptionHeadFenvH-0>
+      <LbgOptionNostuffW-0>False</LbgOptionNostuffW-0>
+      <LbgOptionSchedule-0>Auto</LbgOptionSchedule-0>
+      <LbgOptionApproxdiv-0>False</LbgOptionApproxdiv-0>
+      <LbgOptionHeadInttypesH-0>False</LbgOptionHeadInttypesH-0>
+      <LbgOptionInstalign-0>Noinstalign</LbgOptionInstalign-0>
+      <LbgOptionEnableRegister-0>False</LbgOptionEnableRegister-0>
+      <LbgOptionHeadWcharH-0>False</LbgOptionHeadWcharH-0>
+      <LbgOptionNouseDiv-0>True</LbgOptionNouseDiv-0>
+      <LbgOptionHeadWctypeH-0>False</LbgOptionHeadWctypeH-0>
+      <LbgOptionSimpleFloatConv-0>False</LbgOptionSimpleFloatConv-0>
+      <LbgOptionFpu-0>Auto</LbgOptionFpu-0>
+      <LbgOptionFloatOrder-0>False</LbgOptionFloatOrder-0>
+    </Instance>
+    <Instance Guid="30189946-58d3-469d-88c9-2edb2cf5007a">
+      <ItemAddTime>635280076548437500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="2ad7975f-39f7-4f4a-b080-a8fc970caa69">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="c2c0ad00-6d46-4e5c-bdc5-b12c34ee1d34">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="3b372607-962f-4681-a40f-f662ab4c3c6d">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="aa3793bf-5297-4f59-aa32-8749c7626eb5">
+      <ItemAddTime>635280076548593750</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="6e9ccaa9-5abc-451d-bfbc-d0d135e769ed">
+      <ItemAddTime>635280076548750000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="18e3b726-62be-4879-9648-1a161de35d32">
+      <ItemAddTime>635280076548750000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="39726c92-6d92-419a-b7ab-f1b40f2274f9">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="aab97f4a-3de7-4baa-a3ec-305a66f356c0">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="33ac701e-fcb9-415e-af75-e2d5c90385fc">
+      <ItemAddTime>635280076548906250</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="0f303d64-fb6e-45ef-9ce7-b2520b3a474e">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="703fbb05-714b-441b-a776-77bd1d5b890a">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="075a0eaa-97da-457f-9204-04d77d1ed0dc">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="777634e9-aee7-47eb-b9a5-9001d4506caa">
+      <ItemAddTime>635280076549062500</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="5285a626-4830-497c-925b-a640a90f0c8a">
+      <ItemAddTime>635280076549218750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="16350b39-1429-459d-97f5-8093b32a1599">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="e5c287fd-494f-48d6-8794-b87c3294e53b">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="adb08d82-5a9b-45a8-8c73-5b9a780e8d96">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>2</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="4803b692-ff70-4247-a1f1-e8ebffd54883">
+      <ItemAddTime>635280076549375000</ItemAddTime>
+      <ItemAddTimeCount>3</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8481daf4-a15e-403a-86a1-501a8135ad88">
+      <ItemAddTime>635280076549531250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a653568f-ea0a-428f-b2f0-1c2d0b2846d7">
+      <ItemAddTime>635280076549531250</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="de1a0c93-7e57-4fe7-81b0-29e99a9216e2">
+      <ItemAddTime>635280076549687500</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="8ef56460-244c-4dcb-b4d7-a29cc1aef325">
+      <ItemAddTime>636341736085812332</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="344e1c98-6026-4a50-821b-f0a54ed6f383">
+      <ItemAddTime>636341741758639830</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="384d32fd-dad1-456a-b2b6-c59765ed6687">
+      <ItemAddTime>636341727255222332</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="4224fd26-1df1-4632-b02d-b2cb4718a50d">
+      <ItemAddTime>635280076549843750</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="5d49f2d5-6efa-446c-9a6e-139c14cc397f">
+      <ItemAddTime>635280076549843750</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="085e1a0c-13fe-4d8c-8c50-8f9c3fb0919a">
+      <ItemAddTime>635280076550000000</ItemAddTime>
+      <ItemAddTimeCount>1</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="76a8a8bf-ebb3-4567-898f-7a42b3872a42">
+      <ItemAddTime>636343622357511958</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="1be46e6e-efb3-42a0-937d-deeb1c9e1638">
+      <ItemAddTime>635280076550156250</ItemAddTime>
+      <ItemAddTimeCount>0</ItemAddTimeCount>
+    </Instance>
+    <Instance Guid="a7be515f-f007-45ed-9059-4e1500c0f74d">
+      <TimeTagModified-SourceItem0--0>-8588092284306338308</TimeTagModified-SourceItem0--0>
+      <SourceItem0-IsLockedByUser>False</SourceItem0-IsLockedByUser>
+      <SourceItem0-BuildingTarget-0>True</SourceItem0-BuildingTarget-0>
+      <SourceItem0-IndividualCompileOption-0>False</SourceItem0-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem1--0>-8588092284306182058</TimeTagModified-SourceItem1--0>
+      <SourceItem1-IsLockedByUser>False</SourceItem1-IsLockedByUser>
+      <SourceItem1-BuildingTarget-0>True</SourceItem1-BuildingTarget-0>
+      <SourceItem1-IndividualCompileOption-0>False</SourceItem1-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem2--0>-8588092284306182058</TimeTagModified-SourceItem2--0>
+      <SourceItem2-IsLockedByUser>False</SourceItem2-IsLockedByUser>
+      <SourceItem2-BuildingTarget-0>True</SourceItem2-BuildingTarget-0>
+      <SourceItem2-IndividualCompileOption-0>False</SourceItem2-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem3--0>-8588092284306182058</TimeTagModified-SourceItem3--0>
+      <SourceItem3-IsLockedByUser>False</SourceItem3-IsLockedByUser>
+      <SourceItem3-BuildingTarget-0>True</SourceItem3-BuildingTarget-0>
+      <SourceItem3-IndividualCompileOption-0>False</SourceItem3-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem4--0>-8588092284306182058</TimeTagModified-SourceItem4--0>
+      <SourceItem4-IsLockedByUser>False</SourceItem4-IsLockedByUser>
+      <SourceItem4-BuildingTarget-0>True</SourceItem4-BuildingTarget-0>
+      <SourceItem4-IndividualCompileOption-0>False</SourceItem4-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem5--0>-8588092284306025808</TimeTagModified-SourceItem5--0>
+      <SourceItem5-IsLockedByUser>False</SourceItem5-IsLockedByUser>
+      <SourceItem5-BuildingTarget-0>True</SourceItem5-BuildingTarget-0>
+      <SourceItem5-IndividualCompileOption-0>False</SourceItem5-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem6--0>-8588092284306025808</TimeTagModified-SourceItem6--0>
+      <SourceItem6-IsLockedByUser>False</SourceItem6-IsLockedByUser>
+      <SourceItem6-BuildingTarget-0>True</SourceItem6-BuildingTarget-0>
+      <SourceItem6-IndividualCompileOption-0>False</SourceItem6-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem7--0>-8588092284305869558</TimeTagModified-SourceItem7--0>
+      <SourceItem7-IsLockedByUser>False</SourceItem7-IsLockedByUser>
+      <SourceItem7-BuildingTarget-0>True</SourceItem7-BuildingTarget-0>
+      <SourceItem7-IndividualCompileOption-0>False</SourceItem7-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem8--0>-8588092284305869558</TimeTagModified-SourceItem8--0>
+      <SourceItem8-IsLockedByUser>False</SourceItem8-IsLockedByUser>
+      <SourceItem8-BuildingTarget-0>True</SourceItem8-BuildingTarget-0>
+      <SourceItem8-IndividualCompileOption-0>False</SourceItem8-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem9--0>-8588092284305869558</TimeTagModified-SourceItem9--0>
+      <SourceItem9-IsLockedByUser>False</SourceItem9-IsLockedByUser>
+      <SourceItem9-BuildingTarget-0>True</SourceItem9-BuildingTarget-0>
+      <SourceItem9-IndividualCompileOption-0>False</SourceItem9-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem10--0>-8588092284305713308</TimeTagModified-SourceItem10--0>
+      <SourceItem10-IsLockedByUser>False</SourceItem10-IsLockedByUser>
+      <SourceItem10-BuildingTarget-0>True</SourceItem10-BuildingTarget-0>
+      <SourceItem10-IndividualCompileOption-0>False</SourceItem10-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem11--0>-8588092284305713308</TimeTagModified-SourceItem11--0>
+      <SourceItem11-IsLockedByUser>False</SourceItem11-IsLockedByUser>
+      <SourceItem11-BuildingTarget-0>True</SourceItem11-BuildingTarget-0>
+      <SourceItem11-IndividualCompileOption-0>False</SourceItem11-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem12--0>-8588092284305713308</TimeTagModified-SourceItem12--0>
+      <SourceItem12-IsLockedByUser>False</SourceItem12-IsLockedByUser>
+      <SourceItem12-BuildingTarget-0>True</SourceItem12-BuildingTarget-0>
+      <SourceItem12-IndividualCompileOption-0>False</SourceItem12-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem13--0>-8588092284305713308</TimeTagModified-SourceItem13--0>
+      <SourceItem13-IsLockedByUser>False</SourceItem13-IsLockedByUser>
+      <SourceItem13-BuildingTarget-0>True</SourceItem13-BuildingTarget-0>
+      <SourceItem13-IndividualCompileOption-0>False</SourceItem13-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem14--0>-8588092284305557058</TimeTagModified-SourceItem14--0>
+      <SourceItem14-IsLockedByUser>False</SourceItem14-IsLockedByUser>
+      <SourceItem14-BuildingTarget-0>True</SourceItem14-BuildingTarget-0>
+      <SourceItem14-IndividualCompileOption-0>False</SourceItem14-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem15--0>-8588092284305400808</TimeTagModified-SourceItem15--0>
+      <SourceItem15-IsLockedByUser>False</SourceItem15-IsLockedByUser>
+      <SourceItem15-BuildingTarget-0>True</SourceItem15-BuildingTarget-0>
+      <SourceItem15-IndividualCompileOption-0>False</SourceItem15-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem16--0>-8588092284305400808</TimeTagModified-SourceItem16--0>
+      <SourceItem16-IsLockedByUser>False</SourceItem16-IsLockedByUser>
+      <SourceItem16-BuildingTarget-0>True</SourceItem16-BuildingTarget-0>
+      <SourceItem16-IndividualCompileOption-0>False</SourceItem16-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem17--0>-8588092284305400808</TimeTagModified-SourceItem17--0>
+      <SourceItem17-IsLockedByUser>False</SourceItem17-IsLockedByUser>
+      <SourceItem17-BuildingTarget-0>True</SourceItem17-BuildingTarget-0>
+      <SourceItem17-IndividualCompileOption-0>False</SourceItem17-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem18--0>-8588092284305400808</TimeTagModified-SourceItem18--0>
+      <SourceItem18-IsLockedByUser>False</SourceItem18-IsLockedByUser>
+      <SourceItem18-BuildingTarget-0>True</SourceItem18-BuildingTarget-0>
+      <SourceItem18-IndividualCompileOption-0>False</SourceItem18-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem19--0>-8588092284305244558</TimeTagModified-SourceItem19--0>
+      <SourceItem19-IsLockedByUser>False</SourceItem19-IsLockedByUser>
+      <SourceItem19-BuildingTarget-0>True</SourceItem19-BuildingTarget-0>
+      <SourceItem19-IndividualCompileOption-0>False</SourceItem19-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem20--0>-8588092284305244558</TimeTagModified-SourceItem20--0>
+      <SourceItem20-IsLockedByUser>False</SourceItem20-IsLockedByUser>
+      <SourceItem20-BuildingTarget-0>True</SourceItem20-BuildingTarget-0>
+      <SourceItem20-IndividualCompileOption-0>False</SourceItem20-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem21--0>-8588092284305088308</TimeTagModified-SourceItem21--0>
+      <SourceItem21-IsLockedByUser>False</SourceItem21-IsLockedByUser>
+      <SourceItem21-BuildingTarget-0>True</SourceItem21-BuildingTarget-0>
+      <SourceItem21-IndividualCompileOption-0>False</SourceItem21-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem25--0>-8588092284304932058</TimeTagModified-SourceItem25--0>
+      <SourceItem25-IsLockedByUser>False</SourceItem25-IsLockedByUser>
+      <SourceItem25-BuildingTarget-0>True</SourceItem25-BuildingTarget-0>
+      <SourceItem25-IndividualCompileOption-0>False</SourceItem25-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem26--0>-8588092284304932058</TimeTagModified-SourceItem26--0>
+      <SourceItem26-IsLockedByUser>False</SourceItem26-IsLockedByUser>
+      <SourceItem26-BuildingTarget-0>True</SourceItem26-BuildingTarget-0>
+      <SourceItem26-IndividualCompileOption-0>False</SourceItem26-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem27--0>-8588092284304775808</TimeTagModified-SourceItem27--0>
+      <SourceItem27-IsLockedByUser>False</SourceItem27-IsLockedByUser>
+      <SourceItem27-BuildingTarget-0>True</SourceItem27-BuildingTarget-0>
+      <SourceItem27-IndividualCompileOption-0>False</SourceItem27-IndividualCompileOption-0>
+      <TimeTagModified-SourceItem29--0>-8588092284304619558</TimeTagModified-SourceItem29--0>
+      <SourceItem29-IsLockedByUser>False</SourceItem29-IsLockedByUser>
+      <SourceItem29-BuildingTarget-0>True</SourceItem29-BuildingTarget-0>
+      <SourceItem29-IndividualCompileOption-0>False</SourceItem29-IndividualCompileOption-0>
+    </Instance>
+    <Instance Guid="c20a78d9-8038-46fe-9b87-bc2fa2aa9bdc">
+      <TimeTagModified-SourceItem22--0>-8587030624768963476</TimeTagModified-SourceItem22--0>
+      <SourceItem22-IsLockedByUser>False</SourceItem22-IsLockedByUser>
+      <SourceItem22-BuildingTarget-0>True</SourceItem22-BuildingTarget-0>
+      <SourceItem22-IndividualAssembleOption-0>False</SourceItem22-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem23--0>-8587030619096135978</TimeTagModified-SourceItem23--0>
+      <SourceItem23-IsLockedByUser>False</SourceItem23-IsLockedByUser>
+      <SourceItem23-BuildingTarget-0>True</SourceItem23-BuildingTarget-0>
+      <SourceItem23-IndividualAssembleOption-0>False</SourceItem23-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem24--0>-8587030633599553476</TimeTagModified-SourceItem24--0>
+      <SourceItem24-IsLockedByUser>False</SourceItem24-IsLockedByUser>
+      <SourceItem24-BuildingTarget-0>True</SourceItem24-BuildingTarget-0>
+      <SourceItem24-IndividualAssembleOption-0>False</SourceItem24-IndividualAssembleOption-0>
+      <TimeTagModified-SourceItem28--0>-8587028738497263850</TimeTagModified-SourceItem28--0>
+      <SourceItem28-IsLockedByUser>False</SourceItem28-IsLockedByUser>
+      <SourceItem28-BuildingTarget-0>True</SourceItem28-BuildingTarget-0>
+      <SourceItem28-IndividualAssembleOption-0>False</SourceItem28-IndividualAssembleOption-0>
+    </Instance>
+  </Class>
+  <Class Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+    <Instance Guid="44fa27c9-0aa0-4297-bd3b-2c5c5bdb8881">
+      <IsLibraryMode>True</IsLibraryMode>
+      <StartUpCategoryItem>00000000-0000-0000-0000-000000000000</StartUpCategoryItem>
+    </Instance>
+  </Class>
+  <Class Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+    <Instance Guid="a29a09ee-92c3-4ce7-9586-a1b058043f92">
+      <ProjectGeneratr-GeneratedFile0 />
+    </Instance>
+  </Class>
+  <Class Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+    <Instance Guid="31a86ad3-37bd-4846-aff2-e08abdc00197">
+      <DeviceNameOnCreateStartup>R5F563NBDxFP</DeviceNameOnCreateStartup>
+    </Instance>
+  </Class>
+  <Class Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+    <Instance Guid="100f3761-3d7e-4559-b1d8-375a0c7bf682">
+      <ProgramAnalyzeToolManager>7d577131-4ec1-4e88-968d-89381f6c178a</ProgramAnalyzeToolManager>
+    </Instance>
+  </Class>
+  <Class Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+    <Instance Guid="7d577131-4ec1-4e88-968d-89381f6c178a">
+      <FormatVersion>1.1</FormatVersion>
+    </Instance>
+    <Instance Guid="ccb786f6-b5fc-409c-93bf-105835d48f8f">
+      <AccumulateResultOfAnalysis>False</AccumulateResultOfAnalysis>
+      <CompulsorilyOutputCrossReferenceFile>False</CompulsorilyOutputCrossReferenceFile>
+      <CompulsorilyEnableDebugToolFunctions>False</CompulsorilyEnableDebugToolFunctions>
+      <IncludePrototypeDeclaration>True</IncludePrototypeDeclaration>
+      <RefreshAtProgramStop>Yes</RefreshAtProgramStop>
+      <UnitOfTime>Nanosecond</UnitOfTime>
+      <DelimitsArgumentsByNewLine>False</DelimitsArgumentsByNewLine>
+      <DisplayRegisterForVariableList>False</DisplayRegisterForVariableList>
+      <DisplayFunctionWithoutDefinition>False</DisplayFunctionWithoutDefinition>
+      <ForceOutputFunctionInformation>False</ForceOutputFunctionInformation>
+      <FreeMemoryWhenAllPanelClose>False</FreeMemoryWhenAllPanelClose>
+      <AskWhetherCancelTheResultByOutOfMemory>True</AskWhetherCancelTheResultByOutOfMemory>
+      <AnalyzeFilesSelectionType>FilesNotToAnalyze</AnalyzeFilesSelectionType>
+      <AnalyzeNotTargetFilesCount>0</AnalyzeNotTargetFilesCount>
+      <TraceAnalysisTargetPE>All</TraceAnalysisTargetPE>
+      <ImportFilesCount>0</ImportFilesCount>
+      <IsExportAutomatically>False</IsExportAutomatically>
+      <ExportFunctionFileName>%ProjectName%.mtfl</ExportFunctionFileName>
+      <ExportVariableFileName>%ProjectName%.mtvl</ExportVariableFileName>
+      <NumberOfFunctionDisplayingInExecutionTimeChart>10</NumberOfFunctionDisplayingInExecutionTimeChart>
+    </Instance>
+    <Instance Guid="4c245ffc-f465-4fbf-8655-108a8a1468e0">
+      <AnalysisMethod>RealtimeSampling</AnalysisMethod>
+      <AnalysisChartDataFileName />
+      <StartStopRealTimeSampling>Synchronized</StartStopRealTimeSampling>
+      <AutoAdjustForValueAndTime>AtProgramStop</AutoAdjustForValueAndTime>
+      <AutoAdjustNumberOfPoints>20</AutoAdjustNumberOfPoints>
+      <TimePerGrid>1000000</TimePerGrid>
+      <ChartType>LineChart</ChartType>
+      <SpecifyForegroundColorAndBackgroundColor>False</SpecifyForegroundColorAndBackgroundColor>
+      <CursorAColor>PaleGreen</CursorAColor>
+      <CursorBColor>PaleTurquoise</CursorBColor>
+      <Zoom1Color>40ff0a4f</Zoom1Color>
+      <Zoom2Color>405be416</Zoom2Color>
+      <Zoom3Color>40056def</Zoom3Color>
+      <Zoom4Color>40ff541c</Zoom4Color>
+      <UseTriggerFunction>False</UseTriggerFunction>
+      <TriggerMode>Auto</TriggerMode>
+      <TriggerSource>Channel01</TriggerSource>
+      <TriggerLevel>0</TriggerLevel>
+      <TriggerEdgeDirection>Rising</TriggerEdgeDirection>
+      <TriggerPosition>0</TriggerPosition>
+      <TriggerMarkColor>Orange</TriggerMarkColor>
+      <SamplingInterval>10</SamplingInterval>
+      <DataCollectionChannel>None</DataCollectionChannel>
+      <ChannelVariableName1 />
+      <ChannelVariableName2 />
+      <ChannelVariableName3 />
+      <ChannelVariableName4 />
+      <ChannelVariableName5 />
+      <ChannelVariableName6 />
+      <ChannelVariableName7 />
+      <ChannelVariableName8 />
+      <ChannelVariableName9 />
+      <ChannelVariableName10 />
+      <ChannelVariableName11 />
+      <ChannelVariableName12 />
+      <ChannelVariableName13 />
+      <ChannelVariableName14 />
+      <ChannelVariableName15 />
+      <ChannelVariableName16 />
+      <ChannelVariableType1>Auto</ChannelVariableType1>
+      <ChannelVariableType2>Auto</ChannelVariableType2>
+      <ChannelVariableType3>Auto</ChannelVariableType3>
+      <ChannelVariableType4>Auto</ChannelVariableType4>
+      <ChannelVariableType5>Auto</ChannelVariableType5>
+      <ChannelVariableType6>Auto</ChannelVariableType6>
+      <ChannelVariableType7>Auto</ChannelVariableType7>
+      <ChannelVariableType8>Auto</ChannelVariableType8>
+      <ChannelVariableType9>Auto</ChannelVariableType9>
+      <ChannelVariableType10>Auto</ChannelVariableType10>
+      <ChannelVariableType11>Auto</ChannelVariableType11>
+      <ChannelVariableType12>Auto</ChannelVariableType12>
+      <ChannelVariableType13>Auto</ChannelVariableType13>
+      <ChannelVariableType14>Auto</ChannelVariableType14>
+      <ChannelVariableType15>Auto</ChannelVariableType15>
+      <ChannelVariableType16>Auto</ChannelVariableType16>
+      <ChannelValuePerGrid1>25.5</ChannelValuePerGrid1>
+      <ChannelValuePerGrid2>25.5</ChannelValuePerGrid2>
+      <ChannelValuePerGrid3>25.5</ChannelValuePerGrid3>
+      <ChannelValuePerGrid4>25.5</ChannelValuePerGrid4>
+      <ChannelValuePerGrid5>25.5</ChannelValuePerGrid5>
+      <ChannelValuePerGrid6>25.5</ChannelValuePerGrid6>
+      <ChannelValuePerGrid7>25.5</ChannelValuePerGrid7>
+      <ChannelValuePerGrid8>25.5</ChannelValuePerGrid8>
+      <ChannelValuePerGrid9>25.5</ChannelValuePerGrid9>
+      <ChannelValuePerGrid10>25.5</ChannelValuePerGrid10>
+      <ChannelValuePerGrid11>25.5</ChannelValuePerGrid11>
+      <ChannelValuePerGrid12>25.5</ChannelValuePerGrid12>
+      <ChannelValuePerGrid13>25.5</ChannelValuePerGrid13>
+      <ChannelValuePerGrid14>25.5</ChannelValuePerGrid14>
+      <ChannelValuePerGrid15>25.5</ChannelValuePerGrid15>
+      <ChannelValuePerGrid16>25.5</ChannelValuePerGrid16>
+      <ChannelValueOffset1>0</ChannelValueOffset1>
+      <ChannelValueOffset2>0</ChannelValueOffset2>
+      <ChannelValueOffset3>0</ChannelValueOffset3>
+      <ChannelValueOffset4>0</ChannelValueOffset4>
+      <ChannelValueOffset5>0</ChannelValueOffset5>
+      <ChannelValueOffset6>0</ChannelValueOffset6>
+      <ChannelValueOffset7>0</ChannelValueOffset7>
+      <ChannelValueOffset8>0</ChannelValueOffset8>
+      <ChannelValueOffset9>0</ChannelValueOffset9>
+      <ChannelValueOffset10>0</ChannelValueOffset10>
+      <ChannelValueOffset11>0</ChannelValueOffset11>
+      <ChannelValueOffset12>0</ChannelValueOffset12>
+      <ChannelValueOffset13>0</ChannelValueOffset13>
+      <ChannelValueOffset14>0</ChannelValueOffset14>
+      <ChannelValueOffset15>0</ChannelValueOffset15>
+      <ChannelValueOffset16>0</ChannelValueOffset16>
+      <ChannelColor1>c0ff0a4f</ChannelColor1>
+      <ChannelColor2>c05be416</ChannelColor2>
+      <ChannelColor3>c0056dff</ChannelColor3>
+      <ChannelColor4>c0ff541c</ChannelColor4>
+      <ChannelColor5>c04fc1ff</ChannelColor5>
+      <ChannelColor6>c0a932ff</ChannelColor6>
+      <ChannelColor7>c0ffd91c</ChannelColor7>
+      <ChannelColor8>c0ff30a5</ChannelColor8>
+      <ChannelColor9>c0bee02f</ChannelColor9>
+      <ChannelColor10>c05510ff</ChannelColor10>
+      <ChannelColor11>c0ff97e4</ChannelColor11>
+      <ChannelColor12>c0913a37</ChannelColor12>
+      <ChannelColor13>c0c68e15</ChannelColor13>
+      <ChannelColor14>c0317f0c</ChannelColor14>
+      <ChannelColor15>c060493e</ChannelColor15>
+      <ChannelColor16>c072808e</ChannelColor16>
+    </Instance>
+  </Class>
+  <Class Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+    <Instance Guid="2a2c2a43-ecdb-4e88-80bd-e75f3e33db90">
+      <ProductVersion>7.00.00.00</ProductVersion>
+    </Instance>
+  </Class>
+</CubeSuiteProject>
Index: rubycfg_asp/trunk/csp/sample1n/route_cfg.c
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/route_cfg.c	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/route_cfg.c	(revision 313)
@@ -0,0 +1,113 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ã«ã¼ãã£ã³ã°è¡¨
+ */
+
+#include <kernel.h>
+
+#include <tinet_defs.h>
+#include <tinet_config.h>
+
+#include <netinet/in.h>
+#include <netinet/in_var.h>
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#ifdef _IP6_CFG
+
+#if NUM_IN6_ROUTE_ENTRY > 0
+
+T_IN6_RTENTRY routing6_tbl[NUM_IN6_ROUTE_ENTRY];
+
+#endif	/* of #if NUM_IN6_ROUTE_ENTRY > 0 */
+
+#endif	/* of #ifdef _IP6_CFG */
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+#ifdef _IP4_CFG
+
+#ifdef SUPPORT_LOOP
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+	{ 0, 0, 0 },
+	};
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_PPP
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+	{ 0, 0, 0 },
+	};
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+T_IN4_RTENTRY routing4_tbl[NUM_IN4_ROUTE_ENTRY] = {
+
+	/* ç°ãªã LANãdefault gateway ã«ããéæ¥é
+é	*/
+	{ 0,			0,			IPV4_ADDR_DEFAULT_GW	},
+
+	/* åä¸ LAN å
+ãç´æ¥é
+é				*/
+	{ IPV4_ADDR_LOCAL &
+	  IPV4_ADDR_LOCAL_MASK,	IPV4_ADDR_LOCAL_MASK,	0			},
+
+	/* åä¸ LAN å
+ã¸ã®ãã­ã¼ãã­ã£ã¹ããç´æ¥é
+é	*/
+	{ 0xffffffff,		0xffffffff,		0			},
+
+	};
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#endif	/* of #ifdef _IP4_CFG */
Index: rubycfg_asp/trunk/csp/sample1n/sample1.c
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1.c	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1.c	(revision 313)
@@ -0,0 +1,606 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ * 
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2012 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ * 
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  $Id$
+ */
+
+/* 
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ *
+ *  ASPã«ã¼ãã«ã®åºæ¬çãªåä½ãç¢ºèªããããã®ãµã³ãã«ãã­ã°ã©ã ï¼
+ *
+ *  ãã­ã°ã©ã ã®æ¦è¦:
+ *
+ *  ã¦ã¼ã¶ã¤ã³ã¿ãã§ã¼ã¹ãåãæã¤ã¡ã¤ã³ã¿ã¹ã¯ï¼ã¿ã¹ã¯ID: MAIN_TASKï¼åª
+ *  å
+åº¦: MAIN_PRIORITYï¼ã¨ï¼3ã¤ã®ä¸¦è¡å®è¡ãããã¿ã¹ã¯ï¼ã¿ã¹ã¯ID:
+ *  TASK1ï½TASK3ï¼åæåªå
+åº¦: MID_PRIORITYï¼ã§æ§æãããï¼ã¾ãï¼èµ·åå¨
+ *  æã2ç§ã®å¨æãã³ãã©ï¼å¨æãã³ãã©ID: CYCHDR1ï¼ãç¨ããï¼
+ *
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¯ï¼task_loopåç©ºã«ã¼ããå®è¡ããåº¦ã«ï¼ã¿ã¹ã¯ã
+ *  å®è¡ä¸­ã§ãããã¨ãããããã¡ãã»ã¼ã¸ãè¡¨ç¤ºããï¼ç©ºã«ã¼ããå®è¡ãã
+ *  ã®ã¯ï¼ç©ºã«ã¼ããªãã§ã¡ãã»ã¼ã¸ãåºåããã¨ï¼å¤éã®ã¡ãã»ã¼ã¸ãåºå
+ *  ããï¼ãã­ã°ã©ã ã®åä½ãç¢ºèªãããããªãããã§ããï¼ã¾ãï¼ä½éãªã·
+ *  ãªã¢ã«ãã¼ããç¨ãã¦ã¡ãã»ã¼ã¸ãåºåããå ´åã«ï¼ãã¹ã¦ã®ã¡ãã»ã¼ã¸
+ *  ãåºåã§ããããã«ï¼ã¡ãã»ã¼ã¸ã®éãå¶éããã¨ããçç±ãããï¼
+ *
+ *  å¨æãã³ãã©ã¯ï¼ä¸ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼
+ *  LOW_PRIORITYï¼ã®ã¬ãã£ã­ã¥ã¼ãåè»¢ãããï¼ãã­ã°ã©ã ã®èµ·åç´å¾ã¯ï¼
+ *  å¨æãã³ãã©ã¯åæ­¢ç¶æ
+ã«ãªã£ã¦ããï¼
+ *
+ *  ã¡ã¤ã³ã¿ã¹ã¯ã¯ï¼ã·ãªã¢ã«I/Oãã¼ãããã®æå­å
+¥åãè¡ãï¼æå­å
+¥åã
+ *  å¾
+ã£ã¦ããéã¯ï¼ä¸¦è¡å®è¡ãããã¿ã¹ã¯ãå®è¡ããã¦ããï¼ï¼å
+¥åããã
+ *  æå­ã«å¯¾å¿ããå¦çãå®è¡ããï¼å
+¥åãããæå­ã¨å¦çã®é¢ä¿ã¯æ¬¡ã®éãï¼
+ *  Control-Cã¾ãã¯'Q'ãå
+¥åãããã¨ï¼ãã­ã°ã©ã ãçµäºããï¼
+ *
+ *  '1' : å¯¾è±¡ã¿ã¹ã¯ãTASK1ã«åãæããï¼åæè¨­å®ï¼ï¼
+ *  '2' : å¯¾è±¡ã¿ã¹ã¯ãTASK2ã«åãæããï¼
+ *  '3' : å¯¾è±¡ã¿ã¹ã¯ãTASK3ã«åãæããï¼
+ *  'a' : å¯¾è±¡ã¿ã¹ã¯ãact_tskã«ããèµ·åããï¼
+ *  'A' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åè¦æ±ãcan_actã«ããã­ã£ã³ã»ã«ããï¼
+ *  'e' : å¯¾è±¡ã¿ã¹ã¯ã«ext_tskãå¼ã³åºããï¼çµäºãããï¼
+ *  't' : å¯¾è±¡ã¿ã¹ã¯ãter_tskã«ããå¼·å¶çµäºããï¼
+ *  '>' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãHIGH_PRIORITYã«ããï¼
+ *  '=' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãMID_PRIORITYã«ããï¼
+ *  '<' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãLOW_PRIORITYã«ããï¼
+ *  'G' : å¯¾è±¡ã¿ã¹ã¯ã®åªå
+åº¦ãget_priã§èª­ã¿åºãï¼
+ *  's' : å¯¾è±¡ã¿ã¹ã¯ã«slp_tskãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'S' : å¯¾è±¡ã¿ã¹ã¯ã«tslp_tsk(10ç§)ãå¼ã³åºããï¼èµ·åºå¾
+ã¡ã«ãããï¼
+ *  'w' : å¯¾è±¡ã¿ã¹ã¯ãwup_tskã«ããèµ·åºããï¼
+ *  'W' : å¯¾è±¡ã¿ã¹ã¯ã«å¯¾ããèµ·åºè¦æ±ãcan_wupã«ããã­ã£ã³ã»ã«ããï¼
+ *  'l' : å¯¾è±¡ã¿ã¹ã¯ãrel_waiã«ããå¼·å¶çã«å¾
+ã¡è§£é¤ã«ããï¼
+ *  'u' : å¯¾è±¡ã¿ã¹ã¯ãsus_tskã«ããå¼·å¶å¾
+ã¡ç¶æ
+ã«ããï¼
+ *  'm' : å¯¾è±¡ã¿ã¹ã¯ã®å¼·å¶å¾
+ã¡ç¶æ
+ãrsm_tskã«ããè§£é¤ããï¼
+ *  'd' : å¯¾è±¡ã¿ã¹ã¯ã«dly_tsk(10ç§)ãå¼ã³åºããï¼æéçµéå¾
+ã¡ã«ãããï¼
+ *  'x' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0001ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'X' : å¯¾è±¡ã¿ã¹ã¯ã«ä¾å¤ãã¿ã¼ã³0x0002ã®ä¾å¤å¦çãè¦æ±ããï¼
+ *  'y' : å¯¾è±¡ã¿ã¹ã¯ã«dis_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãç¦æ­¢ããï¼
+ *  'Y' : å¯¾è±¡ã¿ã¹ã¯ã«ena_texãå¼ã³åºããï¼ã¿ã¹ã¯ä¾å¤ãè¨±å¯ããï¼
+ *  'r' : 3ã¤ã®åªå
+åº¦ï¼HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITYï¼ã®ã¬
+ *        ãã£ã­ã¥ã¼ãåè»¢ãããï¼
+ *  'c' : å¨æãã³ãã©ãåä½éå§ãããï¼
+ *  'C' : å¨æãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'b' : ã¢ã©ã¼ã ãã³ãã©ã5ç§å¾ã«èµ·åããããåä½éå§ãããï¼
+ *  'B' : ã¢ã©ã¼ã ãã³ãã©ãåä½åæ­¢ãããï¼
+ *  'z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUä¾å¤ãçºçãããï¼ã¿ã¹ã¯ãçµäºãããï¼ï¼
+ *  'Z' : å¯¾è±¡ã¿ã¹ã¯ã«CPUã­ãã¯ç¶æ
+ã§CPUä¾å¤ãçºçãããï¼ãã­ã°ã©ã ã
+ *        çµäºããï¼ï¼
+ *  '@' : ã¿ã¹ã¯3ãacre_tskã«ããçæãï¼def_texã«ããã¿ã¹ã¯ä¾å¤å¦ç
+ *        ã«ã¼ãã³ãè¨­å®ããï¼
+ *  '!' : å¯¾è±¡ã¿ã¹ã¯ãdel_tskã«ããåé¤ããï¼
+ *  'V' : get_utmã§æ§è½è©ä¾¡ç¨ã·ã¹ãã æå»ã2åèª­ãï¼
+ *  'v' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããï¼ããã©ã«ãï¼ï¼
+ *  'q' : çºè¡ããã·ã¹ãã ã³ã¼ã«ãè¡¨ç¤ºããªãï¼
+ */
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include <t_stdlib.h>
+#include "syssvc/serial.h"
+#include "syssvc/syslog.h"
+#include "kernel_cfg.h"
+#include "sample1n.h"
+#include "sample1.h"
+
+/*
+ *  ãµã¼ãã¹ã³ã¼ã«ã®ã¨ã©ã¼ã®ã­ã°åºå
+ */
+Inline void
+svc_perror(const char *file, int_t line, const char *expr, ER ercd)
+{
+	if (ercd < 0) {
+		t_perror(LOG_ERROR, file, line, expr, ercd);
+	}
+}
+
+#define	SVC_PERROR(expr)	svc_perror(__FILE__, __LINE__, #expr, (expr))
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã¸ã®ã¡ãã»ã¼ã¸é å
+ */
+char	message[3];
+
+/*
+ *  ã«ã¼ãåæ°
+ */
+ulong_t	task_loop;		/* ã¿ã¹ã¯å
+ã§ã®ã«ã¼ãåæ° */
+ulong_t	tex_loop;		/* ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ã«ã¼ãåæ° */
+
+/*
+ *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯
+ */
+void task(intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t		n = 0;
+	int_t		tskno = (int_t) exinf;
+	const char	*graph[] = { "|", "  +", "    *" };
+	char		c;
+
+	SVC_PERROR(ena_tex());
+	while (true) {
+		syslog(LOG_NOTICE, "task%d is running (%03d).   %s",
+										tskno, ++n, graph[tskno-1]);
+		for (i = 0; i < task_loop; i++);
+		c = message[tskno-1];
+		message[tskno-1] = 0;
+		switch (c) {
+		case 'e':
+			syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+			SVC_PERROR(ext_tsk());
+			assert(0);
+		case 's':
+			syslog(LOG_INFO, "#%d#slp_tsk()", tskno);
+			SVC_PERROR(slp_tsk());
+			break;
+		case 'S':
+			syslog(LOG_INFO, "#%d#tslp_tsk(10000)", tskno);
+			SVC_PERROR(tslp_tsk(10000));
+			break;
+		case 'd':
+			syslog(LOG_INFO, "#%d#dly_tsk(10000)", tskno);
+			SVC_PERROR(dly_tsk(10000));
+			break;
+		case 'y':
+			syslog(LOG_INFO, "#%d#dis_tex()", tskno);
+			SVC_PERROR(dis_tex());
+			break;
+		case 'Y':
+			syslog(LOG_INFO, "#%d#ena_tex()", tskno);
+			SVC_PERROR(ena_tex());
+			break;
+#ifdef CPUEXC1
+		case 'z':
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			break;
+		case 'Z':
+			SVC_PERROR(loc_cpu());
+			syslog(LOG_NOTICE, "#%d#raise CPU exception", tskno);
+			RAISE_CPU_EXCEPTION;
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* CPUEXC1 */
+		default:
+			break;
+		}
+	}
+}
+
+/*
+ *  ä¸¦è¡ãã¦å®è¡ãããã¿ã¹ã¯ç¨ã®ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³
+ */
+void tex_routine(TEXPTN texptn, intptr_t exinf)
+{
+	volatile ulong_t	i;
+	int_t	tskno = (int_t) exinf;
+
+	syslog(LOG_NOTICE, "task%d receives exception 0x%04x.", tskno, texptn);
+	for (i = 0; i < tex_loop; i++);
+
+	if ((texptn & 0x8000U) != 0U) {
+		syslog(LOG_INFO, "#%d#ext_tsk()", tskno);
+		SVC_PERROR(ext_tsk());
+		assert(0);
+	}
+}
+
+/*
+ *  CPUä¾å¤ãã³ãã©
+ */
+#ifdef CPUEXC1
+
+void
+cpuexc_handler(void *p_excinf)
+{
+	ID		tskid;
+
+	syslog(LOG_NOTICE, "CPU exception handler (p_excinf = %08p).", p_excinf);
+	if (sns_ctx() != true) {
+		syslog(LOG_WARNING,
+					"sns_ctx() is not true in CPU exception handler.");
+	}
+	if (sns_dpn() != true) {
+		syslog(LOG_WARNING,
+					"sns_dpn() is not true in CPU exception handler.");
+	}
+	syslog(LOG_INFO, "sns_loc = %d sns_dsp = %d sns_tex = %d",
+									sns_loc(), sns_dsp(), sns_tex());
+	syslog(LOG_INFO, "xsns_dpn = %d xsns_xpn = %d",
+									xsns_dpn(p_excinf), xsns_xpn(p_excinf));
+
+	if (xsns_xpn(p_excinf)) {
+		syslog(LOG_NOTICE, "Sample program ends with exception.");
+		SVC_PERROR(ext_ker());
+		assert(0);
+	}
+
+	SVC_PERROR(iget_tid(&tskid));
+	SVC_PERROR(iras_tex(tskid, 0x8000U));
+}
+
+#endif /* CPUEXC1 */
+
+/*
+ *  å¨æãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void cyclic_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¢ã©ã¼ã ãã³ãã©
+ *
+ *  HIGH_PRIORITYï¼MID_PRIORITYï¼LOW_PRIORITY ã®ååªå
+åº¦ã®ã¬ãã£ã­ã¥ã¼
+ *  ãåè»¢ãããï¼
+ */
+void alarm_handler(intptr_t exinf)
+{
+	SVC_PERROR(irot_rdq(HIGH_PRIORITY));
+	SVC_PERROR(irot_rdq(MID_PRIORITY));
+	SVC_PERROR(irot_rdq(LOW_PRIORITY));
+}
+
+/*
+ *  ã¡ã¤ã³ã¿ã¹ã¯
+ */
+void main_task(intptr_t exinf)
+{
+	char	c;
+	ID		tskid = TASK1;
+	int_t	tskno = 1;
+	ER_UINT	ercd;
+	PRI		tskpri;
+#ifndef TASK_LOOP
+	volatile ulong_t	i;
+	SYSTIM	stime1, stime2;
+#endif /* TASK_LOOP */
+#ifdef TOPPERS_SUPPORT_GET_UTM
+	SYSUTM	utime1, utime2;
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+	T_CTSK	ctsk;
+	T_DTEX	dtex;
+	ID		TASK3 = -1;
+
+	SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO), LOG_UPTO(LOG_EMERG)));
+	syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf);
+
+	/*
+	 *  ã·ãªã¢ã«ãã¼ãã®åæå
+	 *
+	 *  ã·ã¹ãã ã­ã°ã¿ã¹ã¯ã¨åãã·ãªã¢ã«ãã¼ããä½¿ãå ´åãªã©ï¼ã·ãªã¢ã«
+	 *  ãã¼ãããªã¼ãã³æ¸ã¿ã®å ´åã«ã¯ããã§E_OBJã¨ã©ã¼ã«ãªããï¼æ¯éã¯
+	 *  ãªãï¼
+	 */
+	ercd = serial_opn_por(TASK_PORTID);
+	if (ercd < 0 && MERCD(ercd) != E_OBJ) {
+		syslog(LOG_ERROR, "%s (%d) reported by `serial_opn_por'.",
+									itron_strerror(ercd), SERCD(ercd));
+	}
+	SVC_PERROR(serial_ctl_por(TASK_PORTID,
+							(IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV)));
+
+	/*
+ 	 *  ã«ã¼ãåæ°ã®è¨­å®
+	 *
+	 *  ä¸¦è¡å®è¡ãããã¿ã¹ã¯å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼task_loopï¼ã¯ï¼ç©ºã«ã¼
+	 *  ãã®å®è¡æéãç´0.4ç§ã«ãªãããã«è¨­å®ããï¼ãã®è¨­å®ã®ããã«ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãï¼ãã®åå¾ã§get_timãå¼ã¶ãã¨ã§
+	 *  æ¸¬å®ãï¼ãã®æ¸¬å®çµæããç©ºã«ã¼ãã®å®è¡æéã0.4ç§ã«ãªãã«ã¼ãå
+	 *  æ°ãæ±ãï¼task_loopã«è¨­å®ããï¼
+	 *
+	 *  LOOP_REFã¯ï¼ããã©ã«ãã§ã¯1,000,000ã«è¨­å®ãã¦ãããï¼æ³å®ããã
+	 *  ãé
+ããã­ã»ããµã§ã¯ï¼ãµã³ãã«ãã­ã°ã©ã ã®å®è¡éå§ã«æéããã
+	 *  ããããã¨ããåé¡ãçããï¼éã«æ³å®ããããéããã­ã»ããµã§ã¯ï¼
+	 *  LOOP_REFåã®ç©ºã«ã¼ãã®å®è¡æéãç­ããªãï¼task_loopã«è¨­å®ããå¤
+	 *  ã®èª¤å·®ãå¤§ãããªãã¨ããåé¡ãããï¼
+	 *
+	 *  ããã§ï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼target_test.hã§ï¼LOOP_REFãé©
+	 *  åãªå¤ã«å®ç¾©ããã®ãæã¾ããï¼
+	 *
+	 *  ã¾ãï¼task_loopã®å¤ãåºå®ãããå ´åã«ã¯ï¼ãã®å¤ãTASK_LOOPã«ã
+	 *  ã¯ã­å®ç¾©ããï¼TASK_LOOPããã¯ã­å®ç¾©ããã¦ããå ´åï¼ä¸è¨ã®æ¸¬å®ã
+	 *  è¡ããã«ï¼TASK_LOOPã«å®ç¾©ãããå¤ãç©ºã«ã¼ãã®åæ°ã¨ããï¼
+	 *
+	 * ã¿ã¼ã²ããã«ãã£ã¦ã¯ï¼ç©ºã«ã¼ãã®å®è¡æéã®1åç®ã®æ¸¬å®ã§ï¼æ¬æ¥ã
+	 * ããé·ãã«ãªããã®ãããï¼ãã®ãããªã¿ã¼ã²ããã§ã¯ï¼MEASURE_TWICE
+	 * ããã¯ã­å®ç¾©ãããã¨ã§ï¼1åç®ã®æ¸¬å®çµæãæ¨ã¦ã¦ï¼2åç®ã®æ¸¬å®çµæ
+	 * ãä½¿ãï¼
+	 *
+	 *  ã¿ã¹ã¯ä¾å¤å¦çã«ã¼ãã³å
+ã§ã®ç©ºã«ã¼ãã®åæ°ï¼tex_loopï¼ã¯ï¼
+	 *  task_loopã®4åã®1ã®å¤ï¼ç©ºã«ã¼ãã®å®è¡æéã0.1ç§ã«ãªãã«ã¼ãå
+	 *  æ°ï¼ã«è¨­å®ããï¼
+	 */
+#ifdef TASK_LOOP
+	task_loop = TASK_LOOP;
+#else /* TASK_LOOP */
+
+#ifdef MEASURE_TWICE
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+#endif /* MEASURE_TWICE */
+
+	task_loop = LOOP_REF;
+	SVC_PERROR(get_tim(&stime1));
+	for (i = 0; i < task_loop; i++);
+	SVC_PERROR(get_tim(&stime2));
+	task_loop = LOOP_REF * 400UL / (stime2 - stime1);
+
+#endif /* TASK_LOOP */
+	tex_loop = task_loop / 4;
+
+	/*
+ 	 *  ã¿ã¹ã¯ã®èµ·å
+	 */
+	SVC_PERROR(act_tsk(TASK1));
+	SVC_PERROR(act_tsk(TASK2));
+
+	/*
+ 	 *  ã¡ã¤ã³ã«ã¼ã
+	 */
+	do {
+		SVC_PERROR(serial_rea_dat(TASK_PORTID, &c, 1));
+		switch (c) {
+		case 'e':
+		case 's':
+		case 'S':
+		case 'd':
+		case 'y':
+		case 'Y':
+		case 'z':
+		case 'Z':
+			message[tskno-1] = c;
+			break;
+		case '1':
+			tskno = 1;
+			tskid = TASK1;
+			break;
+		case '2':
+			tskno = 2;
+			tskid = TASK2;
+			break;
+		case '3':
+			tskno = 3;
+			tskid = TASK3;
+			break;
+		case 'a':
+			syslog(LOG_INFO, "#act_tsk(%d)", tskno);
+			SVC_PERROR(act_tsk(tskid));
+			break;
+		case 'A':
+			syslog(LOG_INFO, "#can_act(%d)", tskno);
+			SVC_PERROR(ercd = can_act(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_act(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 't':
+			syslog(LOG_INFO, "#ter_tsk(%d)", tskno);
+			SVC_PERROR(ter_tsk(tskid));
+			break;
+		case '>':
+			syslog(LOG_INFO, "#chg_pri(%d, HIGH_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, HIGH_PRIORITY));
+			break;
+		case '=':
+			syslog(LOG_INFO, "#chg_pri(%d, MID_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, MID_PRIORITY));
+			break;
+		case '<':
+			syslog(LOG_INFO, "#chg_pri(%d, LOW_PRIORITY)", tskno);
+			SVC_PERROR(chg_pri(tskid, LOW_PRIORITY));
+			break;
+		case 'G':
+			syslog(LOG_INFO, "#get_pri(%d, &tskpri)", tskno);
+			SVC_PERROR(ercd = get_pri(tskid, &tskpri));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "priority of task %d is %d", tskno, tskpri);
+			}
+			break;
+		case 'w':
+			syslog(LOG_INFO, "#wup_tsk(%d)", tskno);
+			SVC_PERROR(wup_tsk(tskid));
+			break;
+		case 'W':
+			syslog(LOG_INFO, "#can_wup(%d)", tskno);
+			SVC_PERROR(ercd = can_wup(tskid));
+			if (ercd >= 0) {
+				syslog(LOG_NOTICE, "can_wup(%d) returns %d", tskno, ercd);
+			}
+			break;
+		case 'l':
+			syslog(LOG_INFO, "#rel_wai(%d)", tskno);
+			SVC_PERROR(rel_wai(tskid));
+			break;
+		case 'u':
+			syslog(LOG_INFO, "#sus_tsk(%d)", tskno);
+			SVC_PERROR(sus_tsk(tskid));
+			break;
+		case 'm':
+			syslog(LOG_INFO, "#rsm_tsk(%d)", tskno);
+			SVC_PERROR(rsm_tsk(tskid));
+			break;
+		case 'x':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0001U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0001U));
+			break;
+		case 'X':
+			syslog(LOG_INFO, "#ras_tex(%d, 0x0002U)", tskno);
+			SVC_PERROR(ras_tex(tskid, 0x0002U));
+			break;
+		case 'r':
+			syslog(LOG_INFO, "#rot_rdq(three priorities)");
+			SVC_PERROR(rot_rdq(HIGH_PRIORITY));
+			SVC_PERROR(rot_rdq(MID_PRIORITY));
+			SVC_PERROR(rot_rdq(LOW_PRIORITY));
+			break;
+		case 'c':
+			syslog(LOG_INFO, "#sta_cyc(1)");
+			SVC_PERROR(sta_cyc(CYCHDR1));
+			break;
+		case 'C':
+			syslog(LOG_INFO, "#stp_cyc(1)");
+			SVC_PERROR(stp_cyc(CYCHDR1));
+			break;
+		case 'b':
+			syslog(LOG_INFO, "#sta_alm(1, 5000)");
+			SVC_PERROR(sta_alm(ALMHDR1, 5000));
+			break;
+		case 'B':
+			syslog(LOG_INFO, "#stp_alm(1)");
+			SVC_PERROR(stp_alm(ALMHDR1));
+			break;
+		case '@':
+			ctsk.tskatr = TA_NULL;
+			ctsk.exinf = 3;
+			ctsk.task = task;
+			ctsk.itskpri = MID_PRIORITY;
+			ctsk.stksz = STACK_SIZE;
+			ctsk.stk = NULL;
+			SVC_PERROR(TASK3 = acre_tsk(&ctsk));
+
+			dtex.texatr = TA_NULL;
+			dtex.texrtn = tex_routine;
+			SVC_PERROR(def_tex(TASK3, &dtex));
+
+			syslog(LOG_NOTICE, "task3 is created with tskid = %d.",
+														(int_t) TASK3);
+			break;
+		case '!':
+			syslog(LOG_INFO, "#del_tsk(%d)", tskno);
+			SVC_PERROR(del_tsk(tskid));
+			break;
+
+		case 'V':
+#ifdef TOPPERS_SUPPORT_GET_UTM
+			SVC_PERROR(get_utm(&utime1));
+			SVC_PERROR(get_utm(&utime2));
+			syslog(LOG_NOTICE, "utime1 = %ld, utime2 = %ld",
+										(ulong_t) utime1, (ulong_t) utime2);
+#else /* TOPPERS_SUPPORT_GET_UTM */
+			syslog(LOG_NOTICE, "get_utm is not supported.");
+#endif /* TOPPERS_SUPPORT_GET_UTM */
+			break;
+
+		case 'v':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_INFO),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+		case 'q':
+			SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_NOTICE),
+										LOG_UPTO(LOG_EMERG)));
+			break;
+
+#ifdef BIT_KERNEL
+		case ' ':
+			SVC_PERROR(loc_cpu());
+			{
+				extern ER	bit_kernel(void);
+
+				SVC_PERROR(ercd = bit_kernel());
+				if (ercd >= 0) {
+					syslog(LOG_NOTICE, "bit_kernel passed.");
+				}
+			}
+			SVC_PERROR(unl_cpu());
+			break;
+#endif /* BIT_KERNEL */
+
+		default:
+			break;
+		}
+	} while (c != '\003' && c != 'Q');
+
+	syslog(LOG_NOTICE, "Sample program ends.");
+	SVC_PERROR(ext_ker());
+	assert(0);
+}
Index: rubycfg_asp/trunk/csp/sample1n/sample1.cfg
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1.cfg	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1.cfg	(revision 313)
@@ -0,0 +1,26 @@
+/*
+ *  $Id$
+ */
+
+/*
+ *  ãµã³ãã«ãã­ã°ã©ã (1)ã®ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+INCLUDE("target_timer.cfg");
+INCLUDE("syssvc/syslog.cfg");
+INCLUDE("syssvc/banner.cfg");
+INCLUDE("syssvc/serial.cfg");
+INCLUDE("syssvc/logtask.cfg");
+
+#include "sample1.h"
+CRE_TSK(TASK1, { TA_NULL, 1, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(TASK2, { TA_NULL, 2, task, MID_PRIORITY, STACK_SIZE, NULL });
+CRE_TSK(MAIN_TASK, { TA_ACT, 0, main_task, MAIN_PRIORITY, STACK_SIZE, NULL });
+AID_TSK(3);
+DEF_TEX(TASK1, { TA_NULL, tex_routine });
+DEF_TEX(TASK2, { TA_NULL, tex_routine });
+CRE_CYC(CYCHDR1, { TA_NULL, 0, cyclic_handler, 2000, 0 });
+CRE_ALM(ALMHDR1, { TA_NULL, 0, alarm_handler });
+#ifdef CPUEXC1
+DEF_EXC(CPUEXC1, { TA_NULL, cpuexc_handler });
+#endif /* CPUEXC1 */
+DEF_KMM({ KMM_SIZE, NULL });
Index: rubycfg_asp/trunk/csp/sample1n/sample1.h
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1.h	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1.h	(revision 313)
@@ -0,0 +1,116 @@
+/*
+ *  TOPPERS/ASP Kernel
+ *      Toyohashi Open Platform for Embedded Real-Time Systems/
+ *      Advanced Standard Profile Kernel
+ *
+ *  Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
+ *                              Toyohashi Univ. of Technology, JAPAN
+ *  Copyright (C) 2004-2010 by Embedded and Real-Time Systems Laboratory
+ *              Graduate School of Information Science, Nagoya Univ., JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã®(1)ï½(4)ã®æ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§
+ *  ã¢ï¼æ¬ã½ããã¦ã§ã¢ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹
+ *  å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®ããããã®æ¡ä»¶ãæºããã
+ *      ã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *    (b) åé
+å¸ã®å½¢æ
+ãï¼å¥ã«å®ããæ¹æ³ã«ãã£ã¦ï¼TOPPERSãã­ã¸ã§ã¯ãã«
+ *        å ±åãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *      ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®ã¦ã¼ã¶ã¾ãã¯ã¨ã³ãã¦ã¼ã¶ããã®ãããªãç
+ *      ç±ã«åºã¥ãè«æ±ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ãã
+ *      å
+è²¬ãããã¨ï¼
+ * 
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ç¹å®ã®ä½¿ç¨ç®ç
+ *  ã«å¯¾ããé©åæ§ãå«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§
+ *  ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ã
+ *  ã®è²¬ä»»ãè² ããªãï¼
+ *
+ *  $Id$
+ */
+
+/*
+ *		ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ */
+
+/*
+ *  ã¿ã¼ã²ããä¾å­ã®å®ç¾©
+ */
+#include "target_test.h"
+
+/*
+ *  åã¿ã¹ã¯ã®åªå
+åº¦ã®å®ç¾©
+ */
+
+#define MAIN_PRIORITY	5		/* ã¡ã¤ã³ã¿ã¹ã¯ã®åªå
+åº¦ */
+								/* HIGH_PRIORITYããé«ããããã¨ */
+
+#define HIGH_PRIORITY	9		/* ä¸¦è¡å®è¡ãããã¿ã¹ã¯ã®åªå
+åº¦ */
+#define MID_PRIORITY	10
+#define LOW_PRIORITY	11
+
+/*
+ *  ã¿ã¼ã²ããã«ä¾å­ããå¯è½æ§ã®ããå®æ°ã®å®ç¾©
+ */
+
+#ifndef TASK_PORTID
+#define	TASK_PORTID		1			/* æå­å
+¥åããã·ãªã¢ã«ãã¼ãID */
+#endif /* TASK_PORTID */
+
+#ifndef STACK_SIZE
+#define	STACK_SIZE		4096		/* ã¿ã¹ã¯ã®ã¹ã¿ãã¯ãµã¤ãº */
+#endif /* STACK_SIZE */
+
+#ifndef KMM_SIZE
+#define	KMM_SIZE		(STACK_SIZE * 16)	/* ã«ã¼ãã«ãå²ãä»ãã   */
+#endif /* KMM_SIZE */						/*     ã¡ã¢ãªé åã®ãµã¤ãº */
+
+#ifndef LOOP_REF
+#define LOOP_REF		ULONG_C(1000000)	/* éåº¦è¨æ¸¬ç¨ã®ã«ã¼ãåæ° */
+#endif /* LOOP_REF */
+
+/*
+ *  é¢æ°ã®ãã­ãã¿ã¤ãå®£è¨
+ */
+#ifndef TOPPERS_MACRO_ONLY
+
+extern void	task(intptr_t exinf);
+extern void	main_task(intptr_t exinf);
+extern void	tex_routine(TEXPTN texptn, intptr_t exinf);
+#ifdef CPUEXC1
+extern void	cpuexc_handler(void *p_excinf);
+#endif /* CPUEXC1 */
+extern void	cyclic_handler(intptr_t exinf);
+extern void	alarm_handler(intptr_t exinf);
+
+#endif /* TOPPERS_MACRO_ONLY */
Index: rubycfg_asp/trunk/csp/sample1n/sample1n.c
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1n.c	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1n.c	(revision 313)
@@ -0,0 +1,775 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/* 
+ *  ãããã¯ã¼ã¯åãµã³ãã«ãã­ã°ã©ã (1)ã®æ¬ä½
+ */
+
+#include <stdarg.h>
+
+#include <kernel.h>
+#include <t_syslog.h>
+#include "syssvc/serial.h"
+#include "kernel_cfg.h"
+#include "tinet_cfg.h"
+
+#include <netinet/in4.h>
+#include <netinet6/in6.h>
+#include <netinet/in_itron.h>
+
+#include "sample1n.h"
+
+/*
+ *  ãã¯ã­å®ç¾©
+ */
+
+/*  ãªãã¼ã ã®è§£é¤  */
+
+#undef syslog
+#undef serial_rea_dat
+#undef serial_ctl_por
+
+#define EOF		(-1)
+
+/*  TELNET ãªãã·ã§ã³ */
+
+#define TELNET_OPT_SE		(240)
+#define TELNET_OPT_NOP		(241)
+#define TELNET_OPT_DM		(242)
+#define TELNET_OPT_BRK		(243)
+#define TELNET_OPT_IP		(244)
+#define TELNET_OPT_AO		(245)
+#define TELNET_OPT_AYT		(246)
+#define TELNET_OPT_EC		(247)
+#define TELNET_OPT_EL		(248)
+#define TELNET_OPT_GA		(249)
+#define TELNET_OPT_SB		(250)
+#define TELNET_OPT_WILL		(251)
+#define TELNET_OPT_WONT		(252)
+#define TELNET_OPT_DO		(253)
+#define TELNET_OPT_DONT		(254)
+#define TELNET_OPT_IAC		(255)
+
+/*
+ *  å¤æ°
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+uint8_t tcp_swbuf[TCP_SWBUF_SIZE];
+uint8_t tcp_rwbuf[TCP_RWBUF_SIZE];
+
+bool_t		connected	= false;	/* ã³ãã¯ã·ã§ã³ã®ç¶æ
+	*/
+bool_t		wait_accept	= false;	/* æ¥ç¶è¦æ±å¾
+ã¡ä¸­	*/
+
+#ifdef SUPPORT_INET6
+
+T_IPV6EP	dst;
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+T_IPV4EP	dst;
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+uint8_t		*snd_buff	= NULL;
+uint8_t		*rcv_buff	= NULL;
+uint_t		snd_off		= 0;
+uint_t		rcv_off		= 0;
+ER_UINT		snd_len		= 0;
+ER_UINT		rcv_len		= 0;
+uint_t		net_ioctl	= IOCTL_NULL;
+uint8_t		addr[sizeof("0123:4567:89ab:cdef:0123:4567:89ab:cdef")];
+
+/*
+ *  ãããã¯ã¼ã¯å±¤ã®é¸æ
+ */
+
+#ifdef SUPPORT_INET6
+
+#define TCP_ACP_CEP(c,r,d,t)	tcp6_acp_cep(c,r,d,t)
+#define IP2STR(s,a)		ipv62str(s,a)
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+#define TCP_ACP_CEP(c,r,d,t)	tcp_acp_cep(c,r,d,t)
+#define IP2STR(s,a)		ip2str(s,a)
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/*
+ *  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°
+ */
+
+ER
+callback_nblk_tcp (ID cepid, FN fncd, void *p_parblk)
+{
+	ER	error = E_OK;
+
+	switch (fncd) {
+
+	case TFN_TCP_ACP_CEP:
+		IP2STR(addr, &dst.ipaddr);
+		syslog(LOG_NOTICE, "connected:    %s.%d", addr, dst.portno);
+		if (*(ER*)p_parblk == E_OK)
+			connected = true;
+		snd_len = snd_off = rcv_len = rcv_off = 0;
+		wait_accept = false;
+		break;
+
+	case TFN_TCP_CLS_CEP:
+	case TFN_TCP_RCV_BUF:
+	case TFN_TCP_GET_BUF:
+	case TFN_TCP_RCV_DAT:
+	case TFN_TCP_SND_DAT:
+	case TFN_TCP_CON_CEP:
+	case TFN_TCP_SND_OOB:
+	default:
+		error = E_PAR;
+		break;
+		}
+	return error;
+	}
+
+/*
+ *  ã³ãã¯ã·ã§ã³ãåæ­
+ */
+
+ER
+disconnecting (void)
+{
+	ER	error = E_OK;
+
+	if (connected) {
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off > 0)
+			tcp_snd_buf(TCP_CEPID, snd_off);
+		tcp_sht_cep(TCP_CEPID);
+		tcp_cls_cep(TCP_CEPID, TMO_FEVR);
+		connected = false;
+		syscall(sig_sem(SEM_NET_SEND));
+		IP2STR(addr, &dst.ipaddr);
+		syslog(LOG_NOTICE, "disconnected: %s.%d", addr, dst.portno);
+		}
+	return error;
+	}
+
+/*
+ *  éä¿¡ãããã¡ã®ãã©ãã·ã¥
+ */
+
+void
+flush_snd_buff (ID cepid)
+{
+	if (connected) {
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off > 0) {
+			tcp_snd_buf(cepid, snd_off);
+			snd_len = snd_off = 0;
+			}
+		syscall(sig_sem(SEM_NET_SEND));
+		}
+	return;
+	}
+
+/*
+ *  æå­éä¿¡
+ */
+
+void
+put_char (ID cepid, char ch)
+{
+	if (connected) {
+		if (ch == '\n' && (net_ioctl & IOCTL_CRLF) != 0)
+			put_char(cepid, '\r');
+		syscall(wai_sem(SEM_NET_SEND));
+		if (snd_off >= snd_len) {
+			if (tcp_snd_buf(cepid, snd_off) != E_OK) {
+				syscall(sig_sem(SEM_NET_SEND));
+				return;
+				}
+			snd_off = 0;
+			if ((snd_len = tcp_get_buf(cepid, (void**)&snd_buff, TMO_FEVR)) <= 0) {
+				syscall(sig_sem(SEM_NET_SEND));
+				return;
+				}
+			}
+		snd_buff[snd_off ++] = ch;
+		syscall(sig_sem(SEM_NET_SEND));
+		}
+	}
+
+/*
+ *  æå­åä¿¡ï¼å¤æãªãï¼
+ */
+
+int_t
+get_char_raw (ID cepid)
+{
+	if (connected) {
+		if (rcv_off >= rcv_len) {
+			rcv_off = 0;
+			if (tcp_rel_buf(TCP_CEPID, rcv_len) != E_OK) {
+				disconnecting();
+				return EOF;
+				}
+			if ((rcv_len = tcp_rcv_buf(TCP_CEPID, (void**)&rcv_buff, TMO_FEVR)) == 0) {
+				disconnecting();
+				return EOF;
+				}
+			else if (rcv_len < 0) {
+				disconnecting();
+				return EOF;
+				}
+			}
+		return rcv_buff[rcv_off ++];
+		}
+	else
+		return EOF;
+	}
+
+/*
+ *  æå­åä¿¡ï¼TELNET ãªãã·ã§ã³ãã¹ã­ããï¼
+ */
+
+int_t
+get_char (ID cepid)
+{
+	int_t	ch, req;
+
+	while ((ch = get_char_raw(cepid)) == TELNET_OPT_IAC || ch == '\0') {
+		if (ch != '\0') {
+			switch (ch = get_char_raw(cepid)) {
+			case TELNET_OPT_WILL:
+			case TELNET_OPT_WONT:
+			case TELNET_OPT_DO:
+			case TELNET_OPT_DONT:
+				req = get_char_raw(cepid);
+				break;
+			case TELNET_OPT_SB:
+				while ((ch = get_char_raw(cepid)) != EOF && ch != TELNET_OPT_IAC) {
+					if ((ch = get_char_raw(cepid)) == EOF || ch == TELNET_OPT_SE)
+						break;
+					}
+				break;
+			default:
+				break;
+				}
+			}
+		}
+	return ch;
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãããã®èª­åºã
+ */
+
+ER_UINT
+net_serial_rea_dat (ID portid, char *buf, uint_t len)
+{
+	T_SERIAL_RPOR	rpor;
+	uint_t		off;
+	int_t		ch;
+
+	if (!wait_accept && !connected) {
+		wait_accept = true;
+		if (TCP_ACP_CEP(TCP_CEPID, TCP_REPID, &dst, TMO_NBLK) != E_WBLK)
+			return 0;
+		}
+
+	while (true) {
+		if (connected) {
+			off = 0;
+			while (off < len && (ch = get_char(TCP_CEPID)) != EOF) {
+				*(buf + off ++) = ch;
+				if ((net_ioctl & IOCTL_ECHO) != 0) {
+					put_char(TCP_CEPID, ch);
+					flush_snd_buff(TCP_CEPID);
+					}
+				}
+			return off;
+			}
+		else if (serial_ref_por(portid, &rpor) == E_OK && rpor.reacnt > 0) {
+			return serial_rea_dat(portid, buf, len);
+			}
+		dly_tsk(500);
+		}
+	return off;
+	}
+
+/*
+ *  ã·ãªã¢ã«ãã¼ãã®å¶å¾¡
+ */
+
+ER
+net_serial_ctl_por (ID portid, uint_t ioctl)
+{
+	net_ioctl = ioctl;
+	return serial_ctl_por(portid, ioctl);
+	}
+
+/*
+ *  ãã£ã¨ãé·ãæ´æ°å (LONGEST) ã¨ç¬¦å·ãªãæ´æ°å (ULONGEST)
+ */
+
+#ifdef LONGLONG_TYPE
+
+typedef LONGLONG_TYPE		LONGEST;
+typedef unsigned LONGLONG_TYPE	ULONGEST;
+
+#else	/* of #ifdef LONGLONG_TYPE */
+
+#ifdef LONG_TYPE
+
+typedef LONG_TYPE		LONGEST;
+typedef unsigned LONG_TYPE	ULONGEST;
+
+#else	/* of #ifdef LONG_TYPE */
+
+typedef int_t			LONGEST;
+typedef uint_t			ULONGEST;
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#endif	/* of #ifdef LONGLONG_TYPE */
+
+/*
+ *  ã­ã°ã®ã·ãã¥ã¬ã¼ã·ã§ã³
+ */
+
+/*  æ°å¤å¤æã®ããã®å¤æè¡¨  */
+
+static const char radhex[] = "0123456789abcdef";
+static const char radHEX[] = "0123456789ABCDEF";
+
+/*
+ *  put_num -- printf ã®æ°å¤å¤æ
+ */
+
+int_t
+put_num(ID cepid, ULONGEST val, int_t radix, const char *radchar, int_t width, bool_t minus, char padchar)
+{
+	char	digits[24];
+	int_t	ix, pad, pchars;
+	bool_t	left;
+
+	if (width < 0) {
+		width = -width;
+		left = true;
+		}
+	else
+		left = false;
+
+	ix = 0;
+	do {
+		digits[ix ++] = radchar[val % radix];
+		val /= radix;
+		} while (val != 0);
+
+	if (minus)
+		digits[ix ++] = '-';
+
+	if (width > ix)
+		pchars = width;
+	else
+		pchars = ix;
+
+	pad = ix;
+	if (!left)	/* å³è©°ã */
+		for ( ; pad < width; pad ++)
+			put_char(cepid, padchar);
+
+	while (ix -- > 0)
+		put_char(cepid, digits[ix]);
+
+	if (left)	/* å·¦è©°ã */
+		for ( ; pad < width; pad ++)
+			put_char(cepid, padchar);
+
+	return pchars;
+	}
+
+/*
+ *  ipv6addr -- IPv6 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv6addr (ID cepid, const T_IN6_ADDR *addr, int_t width)
+{
+	int_t	len = 0, ix;
+	bool_t	omit = false, zero = false;
+
+	if (addr == NULL) {
+		put_char(cepid, '0');
+		put_char(cepid, ':');
+		put_char(cepid, ':');
+		put_char(cepid, '0');
+		len = 4;
+		}
+	else {
+		for (ix = 0; ix < sizeof(T_IN6_ADDR) / 2; ix ++) {
+			if (omit) {
+				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					put_char(cepid, ':');
+					len ++;
+					}
+				}
+			else if (ix > 0 && ix < 7 && addr->s6_addr16[ix] == 0)
+				zero = true;
+			else {
+				if (zero) {
+					omit = true;
+					put_char(cepid, ':');
+					len ++;
+					}
+				len += put_num(cepid, addr->s6_addr16[ix], 16, radhex, 0, false, ' '); 
+				if (ix < 7) {
+					put_char(cepid, ':');
+					len ++;
+					}
+				}
+			}
+
+		for ( ; len < width; len ++)
+			put_char(cepid, ' ');
+		}
+	return len;
+	}
+
+/*
+ *  put_ipv4addr -- IPv4 ã¢ãã¬ã¹åºå
+ */
+
+int_t
+put_ipv4addr (ID cepid, ULONGEST *addr, int_t width)
+{
+	int_t len = 3;	/* 3 ã¯ '.' ã®æå­æ° */
+
+#if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN
+
+	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+
+#else	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+	len += put_num(cepid,  *addr        & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >>  8) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 16) & 0xff, 10, radhex, 0, false, ' '); 
+	put_char(cepid, '.');
+	len += put_num(cepid, (*addr >> 24) & 0xff, 10, radhex, 0, false, ' '); 
+
+#endif	/* of #if _NET_CFG_BYTE_ORDER == _NET_CFG_BIG_ENDIAN */
+
+	for ( ; len < width; len ++)
+		put_char(cepid, ' ');
+
+	return len;
+	}
+
+/*
+ *  put_macaddr -- MAC ã¢ãã¬ã¹åºå
+ */
+
+static int_t
+put_macaddr (ID cepid, char *mac, int_t width)
+{
+	int_t oct, len;
+
+	for (oct = 5; oct -- > 0; ) {
+		put_num(cepid, *mac ++, 16, radhex, 2, false, '0'); 
+		put_char(cepid, ':');
+		}
+	put_num(cepid, *mac, 16, radhex, 2, false, '0'); 
+
+	for (len = 17; len < width; len ++)
+		put_char(cepid, ' ');
+
+	return len;
+	}
+
+/*
+ *  å¼æ°ãåãåºãããã®ãã¯ã­
+ */
+
+#ifdef LONGLONG_TYPE
+
+#ifdef LONG_TYPE
+
+#define GET_ARG(ap,lf)	((lf > 1) ? va_arg(ap, LONGLONG_TYPE)	\
+			 (lf      ? va_arg(ap, LONG_TYPE)	\
+			          : va_arg(ap, int_t)))
+
+#else	/* of #ifdef LONG_TYPE */
+
+#define GET_ARG(ap,lf)	((lf > 1) ? va_arg(ap, LONGLONG_TYPE)	\
+			          : va_arg(ap, int_t))
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#else	/* of #ifdef LONGLONG_TYPE */
+
+#ifdef LONG_TYPE
+
+#define GET_ARG(ap,lf)	 (lf      ? va_arg(ap, LONG_TYPE)	\
+			          : va_arg(ap, int_t))
+
+#else	/* of #ifdef LONG_TYPE */
+
+#define GET_ARG(ap,lf)	(va_arg(ap, int_t))
+
+#endif	/* of #ifdef LONG_TYPE */
+
+#endif	/* of #ifdef LONGLONG_TYPE */
+
+/*
+ *  ã­ã°åºå
+ */
+
+void
+net_syslog (uint_t prio, const char *format, ...)
+{
+	LONGEST	val;
+	SYSLOG	log;
+	va_list	ap;
+	char	padchar, *str;
+	int_t	ch, width, longflag, shortflag, left, i, c;
+
+	if (connected) {
+		syscall(wai_sem(SEM_TCP_SYSLOG));
+		va_start(ap, format);
+		while ((ch = *format ++) != '\0') {
+			if (ch != '%') {		/* æ¸å¼æå®ä»¥å¤ */
+				put_char(TCP_CEPID, (char)ch);
+				continue;
+				}
+
+			width = longflag = shortflag = 0;
+			padchar = ' ';
+
+			if (ch == '-') {		/* å·¦è©°ã */
+				format ++;
+				left = -1;
+				}
+			else
+				left = 1;
+
+			if ((ch = *format ++) == '0') {	/* ä¸ä½æ¡ã® 0 */
+				padchar = '0';
+				ch = *format ++;
+				}
+
+			while ('0' <= ch && ch <= '9') {	/* åºåå¹
+ */
+				width = width * 10 + ch - '0';
+				ch = *format ++;
+				}
+
+			while (ch == 'l') {		/* long (long) ã®æå® */
+				longflag ++;
+				ch = *format ++;
+				}
+
+			while (ch == 'h') {		/* short ã®æå® */
+				shortflag ++;
+				ch = *format ++;
+				}
+
+			switch (ch) {
+			case 'd':
+				val = GET_ARG(ap, longflag);
+				if (val >= 0)
+					put_num(TCP_CEPID,  val, 10, radhex, width * left, false, padchar);
+				else
+					put_num(TCP_CEPID, -val, 10, radhex, width * left, true, padchar);
+				break;
+
+			case 'u':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 10, radhex, width * left, false, padchar);
+				break;
+
+			case 'x':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 16, radhex, width * left, false, padchar);
+				break;
+
+			case 'X':
+				val = GET_ARG(ap, longflag);
+				put_num(TCP_CEPID, val, 16, radHEX, width * left, false, padchar);
+				break;
+
+			case 'c':
+				ch = va_arg(ap, int_t);
+				put_char(TCP_CEPID, (char)ch);
+				break;
+
+			case 's':
+				str = va_arg(ap, char*);
+				while ((ch = *str ++) != '\0') {
+					put_char(TCP_CEPID, (char)ch);
+					width --;
+					}
+				while (width -- > 0)
+					put_char(TCP_CEPID, ' ');
+				break;
+
+			case 'I':
+
+				if (longflag) {
+					str = va_arg(ap, char*);
+					put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
+					}
+				else if (shortflag) {
+					val = GET_ARG(ap, longflag);
+					put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
+					}
+				else {
+
+#ifdef SUPPORT_INET6
+
+					str = va_arg(ap, char*);
+					put_ipv6addr(TCP_CEPID, (T_IN6_ADDR *)str, width);
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+					val = GET_ARG(ap, longflag);
+					put_ipv4addr(TCP_CEPID, (ULONGEST *)val, width);
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+					}
+
+				break;
+
+			case 'M':
+				str = va_arg(ap, char*);
+				put_macaddr(TCP_CEPID, str, width);
+				break;
+
+			case '%':
+				put_char(TCP_CEPID, '%');
+				break;
+
+			case '0':
+				format --;
+				break;
+
+			default:
+				break;
+				}
+
+			}
+		va_end(ap);
+		put_char(TCP_CEPID, '\n');
+		flush_snd_buff(TCP_CEPID);
+		syscall(sig_sem(SEM_TCP_SYSLOG));
+		return /*E_OK*/;
+		}
+	else {
+		log.logtype = LOG_TYPE_COMMENT;
+		log.loginfo[0] = (intptr_t)format;
+		i = 1;
+		va_start(ap, format);
+
+		while ((c = *format++) != '\0' && i < TMAX_LOGINFO) {
+			if (c != '%') {
+				continue;
+				}
+
+			c = *format++;
+			while ('0' <= c && c <= '9') {
+				c = *format++;
+				}
+			switch (c) {
+			case 'd':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, int_t);
+				break;
+			case 'u':
+			case 'x':
+			case 'X':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, uint_t);
+				break;
+			case 'p':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, void *);
+				break;
+			case 'c':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, int_t);
+				break;
+			case 's':
+				log.loginfo[i++] = (intptr_t)va_arg(ap, const char *);
+				break;
+			case '\0':
+				format--;
+				break;
+			default:
+				break;
+				}
+			}
+		va_end(ap);
+		return /*(syslog_wri_log(prio, &log))*/;
+		}
+	}
Index: rubycfg_asp/trunk/csp/sample1n/sample1n.cfg
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1n.cfg	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1n.cfg	(revision 313)
@@ -0,0 +1,22 @@
+/*
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®
+ *  ã·ã¹ãã ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+
+#include "sample1n.h"
+
+INCLUDE("sample1.cfg");
+
+INCLUDE("tinet_asp.cfg");
+
+INCLUDE("tinet_sample1n.cfg");
+
+/* ã»ããã© */
+
+CRE_SEM(SEM_TCP_SYSLOG, { TA_TPRI, 1, 1 });
+CRE_SEM(SEM_NET_SEND,   { TA_TPRI, 1, 1 });
Index: rubycfg_asp/trunk/csp/sample1n/sample1n.h
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/sample1n.h	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/sample1n.h	(revision 313)
@@ -0,0 +1,85 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _SAMPLE1N_H_
+#define _SAMPLE1N_H_
+
+#include <tinet_defs.h>
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ãµã³ãã«ãã­ã°ã©ã (1)ã®ããããã¡ã¤ã«
+ */
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡ãµã¤ãº  */
+
+#define TCP_SWBUF_SIZE	512
+#define TCP_RWBUF_SIZE	512
+
+/*  ãªãã¼ã   */
+
+#define syslog		net_syslog
+#define serial_rea_dat	net_serial_rea_dat
+#define serial_ctl_por	net_serial_ctl_por
+
+#ifndef _MACRO_ONLY
+
+/*  TCP éåä¿¡ã¦ã£ã³ããããã¡  */
+
+extern uint8_t tcp_swbuf[];
+extern uint8_t tcp_rwbuf[];
+
+/*  ãããã¯ã¼ã¯å¯¾å¿åé¢æ°  */
+
+extern void net_syslog(uint_t prio, const char *format, ...) throw();
+extern ER_UINT	net_serial_rea_dat(ID portid, char *buf, uint_t len) throw();
+extern ER	net_serial_ctl_por(ID portid, uint_t ioctl) throw();
+
+/*  ãã³ãã­ãã­ã³ã°ã³ã¼ã«ã®ã³ã¼ã«ããã¯é¢æ°  */
+
+extern ER	callback_nblk_tcp(ID cepid, FN fncd, void *p_parblk);
+
+#endif /* _MACRO_ONLY */
+
+#endif	/* of #ifndef _SAMPLE1N_H_ */
Index: rubycfg_asp/trunk/csp/sample1n/tinet_app_config.h
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/tinet_app_config.h	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/tinet_app_config.h	(revision 313)
@@ -0,0 +1,668 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+#ifndef _TINET_APP_CONFIG_H_
+#define _TINET_APP_CONFIG_H_
+
+/*
+ *  ã¤ã³ã¿ã¼ããããã­ãã³ã«ãã¡ããªã¼ã®ãµãã¼ã
+ *
+ *    Makefile ã§æå®ãã¦ãè¯ã
+ */
+
+/*#define SUPPORT_INET4		TCP/IP,IPv4		*/
+/*#define SUPPORT_INET6		TCP/IP,IPv6		*/
+/*#define SUPPORT_TCP		TCP			*/
+/*#define SUPPORT_UDP		UDP			*/
+
+/*ãã¼ã¿ãªã³ã¯å±¤ã®ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹ãé¸æãã	*/
+/*ããããä¸ã¤ã ãé¸æã§ããã				*/
+
+/*#define SUPPORT_PPP		PointtoPointProtocol	*/
+/*#define SUPPORT_LOOP		LocalLoopBack		*/
+/*#define SUPPORT_ETHER		Ethernet		*/
+
+/*#define SUPPORT_MIB		MIB(SNMP)		*/
+
+/*
+ *  TCP/IP ã«é¢ããå®ç¾©
+ */
+
+/* TCP ã«é¢ããå®ç¾© */
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½
+ *    æ³¨æ: Makefile ã§æå®ãã¦ããã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_RWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE_ONLY*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã¿æå¹ã«ããã	*/
+/*#define TCP_CFG_SWBUF_CSAVE*/
+			/* TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã«ããã	*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®åä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã®ã
+ *  åä¿¡ã¦ã£ã³ããããã¡ã­ã¥ã¼ã®æå¤§ã¨ã³ããªæ°ã
+ *  ãã ããæ­£å¸¸ã«åä¿¡ããã»ã°ã¡ã³ããç ´æ£ãããããåéåæ°ãå¢å ããã
+ *  ã¾ããæå®ããªãã¨å¶éããªãã
+ */
+/*#define TCP_CFG_RWBUF_CSAVE_MAX_QUEUES	2*/
+
+/*
+ *  TCP éä¿¡ç«¯ç¹ã®éä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ã§ã
+ *  éä¿¡ã¦ã£ã³ããããã¡ã«ä½¿ç¨ãããããã¯ã¼ã¯ãããã¡ã®ãµã¤ãºã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef SUPPORT_INET6
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IPV6_MMTU)	/* æå¤§ãµã¤ãº */
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	(IF_HDR_SIZE + IP4_MSS)		/* æå¤§ãµã¤ãº */
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MAX_SIZE	IF_PDU_SIZE			/* æå¤§ãµã¤ãº */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+#define TCP_CFG_SWBUF_CSAVE_MIN_SIZE	0				/* æå°ãµã¤ãº */
+
+/*
+ *  TCP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_TCP_CFG_NON_BLOCKING
+#undef TCP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  MAX_TCP_SND_SEG: éä¿¡ã»ã°ã¡ã³ããµã¤ãºã®æå¤§å¤
+ *
+ *    ç¸æãã MSS ãªãã·ã§ã³ã§ã»ã°ã¡ã³ããµã¤ãºãæå®ããã¦ãã
+ *    ãã®å¤ã§ãã»ã°ã¡ã³ããµã¤ãºãå¶éã§ããã
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef MAX_TCP_SND_SEG
+#undef MAX_TCP_SND_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define MAX_TCP_SND_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define MAX_TCP_SND_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  DEF_TCP_RCV_SEG: åä¿¡ã»ã°ã¡ã³ããµã¤ãºã®è¦å®å¤
+ */
+
+#ifdef USE_TCP_MSS_SEG
+
+#ifdef DEF_TCP_RCV_SEG
+#undef DEF_TCP_RCV_SEG
+#endif
+
+#ifdef SUPPORT_INET6
+
+#define DEF_TCP_RCV_SEG			TCP6_MSS
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+#define DEF_TCP_RCV_SEG			TCP_MSS
+#endif
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  ã¿ã¹ã¯ããã® Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹åé¢æ©è½
+ *
+ *  Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ã®ã¨ã³ããªæ°ãæå®ããã
+ *  æå®ããªããã0 ãæå®ããã¨ã
+ *  ã¿ã¹ã¯ãã Time Wait ç¶æ
+ã® TCP éä¿¡ç«¯ç¹ãåé¢ããæ©è½ã¯çµè¾¼ã¾ãªãã
+ */
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_TCP_TW_CEP_ENTRY		3
+#else
+#define NUM_TCP_TW_CEP_ENTRY		6
+#endif
+
+/*
+ *  TCP ãããã®ãã¬ã¼ã¹åºåæ©è½
+ */
+//#define TCP_CFG_TRACE
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã® IPv4 ã¢ãã¬ã¹
+ *  IPV4_ADDRANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¹ããå¯¾è±¡ã¨ããã
+ */
+#define TCP_CFG_TRACE_IPV4_RADDR	IPV4_ADDRANY
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ãªã¢ã¼ããã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_RPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_RPORTNO		UINT_C(7)
+
+/*
+ *  ãã¬ã¼ã¹åºåå¯¾è±¡ã®ã­ã¼ã«ã«ãã¹ãã®ãã¼ãçªå·
+ *  TCP_PORTANY ãæå®ããã¨ãå
+¨ã¦ã®ãã¼ãçªå·ãå¯¾è±¡ã«ããã
+ */
+#define TCP_CFG_TRACE_LPORTNO		TCP_PORTANY
+//#define TCP_CFG_TRACE_LPORTNO		UINT_C(7)
+
+/*
+ *  ITRON TCP/IP APIãTCP ã®æ¡å¼µæ©è½
+ */
+//#define TCP_CFG_EXTENTIONS
+
+/*
+ *  TCP_CFG_URG_OFFSET: ç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®ãªãã»ãã
+ *
+ *    -1: BSD ã®å®è£
+ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ãã®æ¬¡ã®ãã¤ããå·®ãã
+ *     0: RFC1122 ã®è¦å®ãç·æ¥ãã¤ã³ã¿ã¯ãç·æ¥ãã¼ã¿ã®æå¾ã®ãã¤ããå·®ãã
+ */
+
+//#define TCP_CFG_URG_OFFSET	-1
+//#define TCP_CFG_URG_OFFSET	0
+
+/* UDP ã«é¢ããå®ç¾© */
+
+/*
+ *  UDP ã®ãã³ãã­ãã­ã³ã°ã³ã¼ã«æ©è½
+ */
+
+#ifdef UNDEF_UDP_CFG_NON_BLOCKING
+#undef UDP_CFG_NON_BLOCKING
+#endif
+
+/*
+ *  ITRON TCP/IP APIãUDP ã®æ¡å¼µæ©è½
+ */
+//#define UDP_CFG_EXTENTIONS
+
+/* IPv6 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+#ifdef SUPPORT_ETHER
+
+#define NUM_IN6_STATIC_ROUTE_ENTRY	0
+#define NUM_IN6_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/* IPv4 ã«é¢ããå®ç¾© */
+
+#ifdef SUPPORT_PPP
+
+#if 1
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(192,168,1,21)
+#else
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#if 1
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(192,168,1,31)
+#else
+#define IPV4_ADDR_REMOTE		MAKE_IPV4_ADDR(0,0,0,0)		/* ç¸æã«å²ãå½ã¦ã¦ãããå ´å	*/
+#endif
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_PPP */
+
+#ifdef SUPPORT_ETHER
+
+#ifdef DHCP4_CLI_CFG
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(0,0,0,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(0,0,0,0)
+
+#else	/* of #ifdef DHCP4_CLI_CFG */
+
+#define IPV4_ADDR_LOCAL			MAKE_IPV4_ADDR(172,25,129,200)
+#define IPV4_ADDR_LOCAL_MASK		MAKE_IPV4_ADDR(255,255,255,0)
+#define IPV4_ADDR_DEFAULT_GW		MAKE_IPV4_ADDR(172,25,129,140)
+
+#endif	/* of #ifdef DHCP4_CLI_CFG */
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	3
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	1
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+#ifdef SUPPORT_LOOP
+
+#define NUM_IN4_STATIC_ROUTE_ENTRY	1
+#define NUM_IN4_REDIRECT_ROUTE_ENTRY	0
+
+#endif	/* of #ifdef SUPPORT_LOOP */
+
+/*
+ *  ãã¼ã¿ãªã³ã¯å±¤ (ãããã¯ã¼ã¯ã¤ã³ã¿ãã§ã¼ã¹) ã«é¢ããå®ç¾©
+ */
+
+/*
+ *  ã¤ã¼ãµãããã«é¢ããå®ç¾©
+ */
+
+/*
+ *  PPP ã«é¢ããå®ç¾©
+ */
+
+#define HDLC_PORTID			1	/* HDLC(PPP)ã«ç¨ããã·ãªã¢ã«ãã¼ãçªå·	*/
+
+/*#define PPP_IDLE_TIMEOUT		(180*NET_TIMER_HZ)*/
+					/* åæ­ã¾ã§ã®ã¢ã¤ãã«æéã		*/
+					/* åæ­ããªãå ´åã¯ã³ã¡ã³ãã¢ã¦ãããã	*/
+
+/*#define PPP_CFG_MODEM			 ã¢ãã æ¥ç¶ã®å ´åã¯ã³ã¡ã³ããå¤ãã	*/
+
+#define MODEM_CFG_INIT			"ATE1&D0&S0\\V0\\Q1S0=1"
+					/* ã¢ãã åæåæå­å			*/
+					/* NTT DoComo ã¢ãã¤ã«ã¢ããã¿ 96F ç¨	*/
+					/*   E1: ã¨ã³ã¼ããã¯ãã			*/
+					/*  &D0: ERä¿¡å·ç¡è¦			*/
+					/*  &S0: DRä¿¡å·å¸¸æ ON			*/
+					/*  \V0: ãªã¶ã«ãã³ã¼ã TYPE 1		*/
+					/*  \Q1: XON/XOFF ãã­ã¼å¶å¾¡		*/
+					/* S0=1: èªåçä¿¡ãªã³ã°åæ° = 1 å	*/
+
+#define MODEM_CFG_PHONE_NUMBER		"090-xxxx-9242"
+
+					/* èªæ§ææ
+å ±ã®è¦å®å¤			*/
+#define DEF_LCP_LOCAL_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+					/* ç¸æã«è¨±ãæ§ææ
+å ±ã®è¦å®å¤		*/
+#define DEF_LCP_REMOTE_CFGS		(LCP_CFG_MRU|LCP_CFG_ACCM|LCP_CFG_MAGIC|\
+					 LCP_CFG_ACCOMP|LCP_CFG_PCOMP|LCP_CFG_PAP)
+
+/*
+ *  èªè¨¼ã«é¢ããå®ç¾©
+ */
+
+#define AUTH_CFG_CLIENT		   	/* èªè¨¼ã¯ã©ã¤ã¢ã³ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã	*/
+#define AUTH_CFG_SERVER			/* èªè¨¼ãµã¼ãã¢ã¼ãã®æã¯ã³ã¡ã³ããå¤ãã		*/
+
+#define AUTH_LOCAL_USER			"h8"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å	*/
+#define AUTH_LOCAL_PASSWD		"3048f"		/* èªãã¹ãã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã	*/
+#define AUTH_REMOTE_USER		"pen3"		/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ã¦ã¼ã¶å		*/
+#define AUTH_REMOTE_PASSWD		"600MHz"	/* ç¸æã¸ã®ã­ã°ã¤ã³èªè¨¼ãã¹ã¯ã¼ã		*/
+
+/*
+ *  ARP ã«é¢ããå®ç¾©
+ */
+
+/*#define ARP_CFG_CALLBACK_DUPLICATED*/	/* IP ã¢ãã¬ã¹éè¤æ¤åºã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã		*/
+
+/*
+ *  ICMPv4/v6 ã«é¢ããå®ç¾©
+ */
+
+#ifdef USE_PING
+
+#define ICMP_CFG_CALLBACK_ECHO_REPLY	/* ICMP ECHO å¿ç­ãåä¿¡ããã¨ãå¼åºãã³ã¼ã«ããã¯é¢æ°ã	*/
+					/* å®ç¾©ããå ´åã¯ã³ã¡ã³ããå¤ãã			*/
+
+#endif	/* of #ifdef USE_PING */
+
+/*
+ *  ãããã¯ã¼ã¯ãããã¡ã«é¢ããå®ç¾©
+ */
+
+#ifdef SUPPORT_ETHER
+
+/*
+ *  ã¤ã¼ãµãããã®å ´åã®ãããã¯ã¼ã¯ãããã¡æ°ã®å²ãå½ã¦
+ */
+
+/*
+ *  64 ãªã¯ããã
+ *
+ *    IPv4 ã§ã®ã¿å²ãå½ã¦ãã
+ *
+ *    IPv6 ã§ã¯ãTCP å¶å¾¡ã»ã°ã¡ã³ãï¼CSEGãSDU ãªãï¼ãµã¤ãºã®
+ *    ãããã¯ã¼ã¯ãããã¡ï¼IF + IPv6 + TCP = 74ï¼ä»¥ä¸ã®
+ *    ãããã¯ã¼ã¯ãããã¡ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_64
+#undef NUM_MPF_NET_BUF_64
+#endif
+
+#ifdef SUPPORT_INET4
+#define NUM_MPF_NET_BUF_64		2
+#else
+#define NUM_MPF_NET_BUF_64		0
+#endif
+
+/*
+ *  CSEGï¼IF + IP + TCPï¼
+ *
+ *    IPv6 ã§ã®ã¿å²ãå½ã¦ãã
+ *
+ *    NE2000 äºæ NIC ã®ãã£ãã¤ã¹ãã©ã¤ãï¼if_edï¼ã®æä½å²å½ã¦é·ã¯ã
+ *    ã¤ã¼ãµããããã¬ã¼ã ã®æç­é·ã§ãã 60ï¼CRC ã® 4 ãªã¯ããããé¤ãã
+ *    æ´ã«ã¢ã©ã¤ã³ãã¦ 62ï¼ãªã¯ãããã§ããã
+ *    å¾ã£ã¦ãIPv4 ã§ã¯ãCSEG ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡
+ *   ï¼IF + IPv4 + TCP = 54ï¼ã¯ä¸è¦ã§ããã
+ */
+
+#ifdef NUM_MPF_NET_BUF_CSEG
+#undef NUM_MPF_NET_BUF_CSEG
+#endif
+
+#ifdef SUPPORT_INET6
+#define NUM_MPF_NET_BUF_CSEG		2
+#else
+#define NUM_MPF_NET_BUF_CSEG		0
+#endif
+
+/*
+ *  128 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    128 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_128
+#undef NUM_MPF_NET_BUF_128
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_128		0
+#else
+#define NUM_MPF_NET_BUF_128		1
+#endif
+
+/*
+ *  256 ãªã¯ããã
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    256 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_256
+#undef NUM_MPF_NET_BUF_256
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_256		0
+#else
+#define NUM_MPF_NET_BUF_256		1
+#endif
+
+/*
+ *  512 ãªã¯ããã	
+ *
+ *    IPv4 ã§ãTCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼ã®
+ *    ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    512 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_512
+#undef NUM_MPF_NET_BUF_512
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_512		0
+#else
+#define NUM_MPF_NET_BUF_512		1
+#endif
+
+/*
+ *  TCP MSSï¼IP MSSãIF + 576 ãªã¯ãããï¼
+ *
+ *   ã»IPv4 ã§ã®ã¿å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IP_MSS
+#undef NUM_MPF_NET_BUF_IP_MSS
+#endif
+
+#if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG)
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IP_MSS		3
+#else
+#define NUM_MPF_NET_BUF_IP_MSS		2	/* IF + 576 ãªã¯ããã	*/
+#endif
+
+#else	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+#define NUM_MPF_NET_BUF_IP_MSS		0	/* IF + 576 ãªã¯ããã	*/
+
+#endif	/* of #if defined(SUPPORT_INET4) && defined(USE_TCP_MSS_SEG) */
+
+/*
+ *  1024 ãªã¯ããã	
+ *
+ *    TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *    1024 ãªã¯ãããã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_1024
+#undef NUM_MPF_NET_BUF_1024
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF_1024		0	/* 1024 ãªã¯ããã	*/
+#else
+#define NUM_MPF_NET_BUF_1024		1	/* 1024 ãªã¯ããã	*/
+#endif
+
+/*
+ *  TCP MSSï¼IPV6 MMTUãIF + 1280 ãªã¯ãããï¼
+ *
+ *   ã»IPv6 ã§ã®ã¿å²ãå½ã¦ãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IPV6_MMTU
+#undef NUM_MPF_NET_BUF_IPV6_MMTU
+#endif
+
+#if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU))
+
+#if (defined(TCP_CFG_RWBUF_CSAVE)      || defined(TCP_CFG_SWBUF_CSAVE) ||	\
+     defined(TCP_CFG_RWBUF_CSAVE_ONLY) || defined(TCP_CFG_SWBUF_CSAVE_ONLY)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IPV6_MMTU	3	/* IF + 1280	*/
+#else
+#define NUM_MPF_NET_BUF_IPV6_MMTU	2	/* IF + 1280	*/
+#endif
+
+#else	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+#define NUM_MPF_NET_BUF_IPV6_MMTU	0	/* IF + 1280	*/
+
+#endif	/* of #if defined(SUPPORT_INET6) && (defined(USE_TCP_MSS_SEG) || defined(USE_IPV6_MMTU)) */
+
+/*
+ *  IF æå¤§ PDU ãµã¤ãº
+ *
+ *   ã»TCP MSS ã®ãããã¯ã¼ã¯ãããã¡ãå²ãå½ã¦ãå ´åã
+ *     IF æå¤§ PDU ãµã¤ãºã®ãããã¯ã¼ã¯ãããã¡ã¯å²ãå½ã¦ãªãã
+ *   ã»éåä¿¡ã¦ã£ã³ããããã¡ã®çã³ãã¼æ©è½ãæå¹ã§ã
+ *     çã³ãã¼ API ãä½¿ç¨ããã¨ãã¯ã+1 å²ãå½ã¦ãã
+ */
+
+#ifdef NUM_MPF_NET_BUF_IF_PDU
+#undef NUM_MPF_NET_BUF_IF_PDU
+#endif
+
+#ifdef USE_TCP_MSS_SEG
+
+#define NUM_MPF_NET_BUF_IF_PDU		0
+
+#else	/* of #ifdef USE_TCP_MSS_SEG */
+
+#if (defined(TCP_CFG_RWBUF_CSAVE) || defined(TCP_CFG_SWBUF_CSAVE)) && defined(USE_COPYSAVE_API)
+#define NUM_MPF_NET_BUF_IF_PDU		9
+#else
+#define NUM_MPF_NET_BUF_IF_PDU		8
+#endif
+
+#endif	/* of #ifdef USE_TCP_MSS_SEG */
+
+/*
+ *  65536 ãªã¯ããã
+ *
+ *  ã»NET_BUF_CFG_LONG_LEN ãå®ç¾©ããã¨ãã®ã¿å²ãå½ã¦ãã
+ */
+
+#ifdef NET_BUF_CFG_LONG_LEN
+
+/* IPv6 ç¨ */
+
+#ifdef NUM_MPF_NET_BUF6_65536
+#undef NUM_MPF_NET_BUF6_65536
+#endif
+
+#if defined(USE_TCP_MSS_SEG)
+#define NUM_MPF_NET_BUF6_65536	0
+#else
+#define NUM_MPF_NET_BUF6_65536	2
+#endif
+
+#else	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#define NUM_MPF_NET_BUF6_65536	0
+
+#endif	/* of ifdef NET_BUF_CFG_LONG_LEN */
+
+#endif	/* of #ifdef SUPPORT_ETHER */
+
+/*
+ *  DNS ãµã¼ãã«é¢ããå®ç¾©
+ */
+
+/* DNS ãµã¼ãã® IP ã¢ãã¬ã¹ */
+
+#if !defined(DHCP6_CLI_CFG)
+
+#define IPV6_ADDR_DNS_INIT	\
+	{{{ UINT_C(0xfd), UINT_C(0x90), UINT_C(0xcc), UINT_C(0xe5), \
+	    UINT_C(0x25), UINT_C(0xf6), UINT_C(0xff), UINT_C(0x81), \
+	    UINT_C(0x02), UINT_C(0xa0), UINT_C(0x24), UINT_C(0xff), \
+	    UINT_C(0xfe), UINT_C(0x56), UINT_C(0xc5), UINT_C(0xd6) }}}
+
+#endif	/* of #if !defined(DHCP6_CLI_CFG) */
+
+#if !defined(DHCP4_CLI_CFG)
+#define IPV4_ADDR_DNS		MAKE_IPV4_ADDR(172,25,129,140)
+#endif
+
+/* DOMAIN å */
+
+#if !(defined(DHCP4_CLI_CFG) || defined(DHCP6_CLI_CFG))
+#define RSLV_CFG_DNS_DOMAIN_NAME_STR	"jo.tomakomai-ct.ac.jp"
+#endif
+
+/*
+ *  DHCP ã¯ã©ã¤ã¢ã³ãã«é¢ããå®ç¾©
+ */
+
+/* DHCPv6 ã®åä½ã¢ã¼ãã®è¨­å® */
+
+#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATELESS
+//#define DHCP6_CLI_CFG_MODE	DHCP6_CLI_CFG_STATEFULL
+
+#endif /* _TINET_APP_CONFIG_H_ */
Index: rubycfg_asp/trunk/csp/sample1n/tinet_sample1n.cfg
===================================================================
--- rubycfg_asp/trunk/csp/sample1n/tinet_sample1n.cfg	(revision 313)
+++ rubycfg_asp/trunk/csp/sample1n/tinet_sample1n.cfg	(revision 313)
@@ -0,0 +1,96 @@
+/*
+ *  TINET (TCP/IP Protocol Stack)
+ * 
+ *  Copyright (C) 2001-2017 by Dep. of Computer Science and Engineering
+ *                   Tomakomai National College of Technology, JAPAN
+ *
+ *  ä¸è¨èä½æ¨©è
+ã¯ï¼ä»¥ä¸ã® (1)ï½(4) ã®æ¡ä»¶ãï¼Free Software Foundation 
+ *  ã«ãã£ã¦å
+¬è¡¨ããã¦ãã GNU General Public License ã® Version 2 ã«è¨
+ *  è¿°ããã¦ããæ¡ä»¶ãæºããå ´åã«éãï¼æ¬ã½ããã¦ã§ã¢ï¼æ¬ã½ããã¦ã§ã¢
+ *  ãæ¹å¤ãããã®ãå«ãï¼ä»¥ä¸åãï¼ãä½¿ç¨ã»è¤è£½ã»æ¹å¤ã»åé
+å¸ï¼ä»¥ä¸ï¼
+ *  å©ç¨ã¨å¼ã¶ï¼ãããã¨ãç¡åã§è¨±è«¾ããï¼
+ *  (1) æ¬ã½ããã¦ã§ã¢ãã½ã¼ã¹ã³ã¼ãã®å½¢ã§å©ç¨ããå ´åã«ã¯ï¼ä¸è¨ã®èä½
+ *      æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãï¼ãã®ã¾ã¾ã®å½¢ã§ã½ã¼
+ *      ã¹ã³ã¼ãä¸­ã«å«ã¾ãã¦ãããã¨ï¼
+ *  (2) æ¬ã½ããã¦ã§ã¢ãï¼ã©ã¤ãã©ãªå½¢å¼ãªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨
+ *      è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®èä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨
+ *      ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (3) æ¬ã½ããã¦ã§ã¢ãï¼æ©å¨ã«çµã¿è¾¼ããªã©ï¼ä»ã®ã½ããã¦ã§ã¢éçºã«ä½¿
+ *      ç¨ã§ããªãå½¢ã§åé
+å¸ããå ´åã«ã¯ï¼æ¬¡ã®æ¡ä»¶ãæºãããã¨ï¼
+ *    (a) åé
+å¸ã«ä¼´ããã­ã¥ã¡ã³ãï¼å©ç¨è
+ããã¥ã¢ã«ãªã©ï¼ã«ï¼ä¸è¨ã®è
+ *        ä½æ¨©è¡¨ç¤ºï¼ãã®å©ç¨æ¡ä»¶ããã³ä¸è¨ã®ç¡ä¿è¨¼è¦å®ãæ²è¼ãããã¨ï¼
+ *  (4) æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´æ¥çã¾ãã¯éæ¥çã«çãããããªãæ
+ *      å®³ãããï¼ä¸è¨èä½æ¨©è
+ããã³TOPPERSãã­ã¸ã§ã¯ããå
+è²¬ãããã¨ï¼
+ *
+ *  æ¬ã½ããã¦ã§ã¢ã¯ï¼ç¡ä¿è¨¼ã§æä¾ããã¦ãããã®ã§ããï¼ä¸è¨èä½æ¨©è
+ã
+ *  ãã³TOPPERSãã­ã¸ã§ã¯ãã¯ï¼æ¬ã½ããã¦ã§ã¢ã«é¢ãã¦ï¼ãã®é©ç¨å¯è½æ§ã
+ *  å«ãã¦ï¼ãããªãä¿è¨¼ãè¡ããªãï¼ã¾ãï¼æ¬ã½ããã¦ã§ã¢ã®å©ç¨ã«ããç´
+ *  æ¥çã¾ãã¯éæ¥çã«çãããããªãæå®³ã«é¢ãã¦ãï¼ãã®è²¬ä»»ãè² ããªãï¼
+ * 
+ *  @(#) $Id$
+ */
+
+/*
+ *  ãããã¯ã¼ã¯å¯¾å¿ sample1.c ãã­ã°ã©ã ã® TCP/IP ã³ã³ãã£ã®ã¥ã¬ã¼ã·ã§ã³ãã¡ã¤ã«
+ */
+
+#include "sample1n.h"
+
+/* TCP åä»å£ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_REP (TCP_REPID, { 0, { IPV6_ADDRANY, 23 } } );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_REP (TCP_REPID,	 { 0, { IPV4_ADDRANY, 23 } } );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
+
+/* TCP éä¿¡ç«¯ç¹ */
+
+#ifdef SUPPORT_INET6
+
+TCP6_CRE_CEP (TCP_CEPID, {
+	0,
+	tcp_swbuf,
+	TCP_SWBUF_SIZE,
+	tcp_rwbuf,
+	TCP_RWBUF_SIZE,
+	(FP)callback_nblk_tcp
+	} );
+
+#else	/* of #ifdef SUPPORT_INET6 */
+
+#ifdef SUPPORT_INET4
+
+TCP_CRE_CEP (TCP_CEPID, {
+	0,
+	tcp_swbuf,
+	TCP_SWBUF_SIZE,
+	tcp_rwbuf,
+	TCP_RWBUF_SIZE,
+	(FP)callback_nblk_tcp
+	} );
+
+#endif	/* of #ifdef SUPPORT_INET4 */
+
+#endif	/* of #ifdef SUPPORT_INET6 */
